Go to the documentation of this file.00001
00002
00003 #include "boolean.h"
00004 #include "myexcept.h"
00005
00006 #ifdef use_namespace
00007 namespace RBD_COMMON {
00008 #endif
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 class R1_R1
00020 {
00021
00022
00023
00024
00025
00026
00027 protected:
00028 Real x;
00029 bool xSet;
00030
00031 public:
00032 Real minX, maxX;
00033 bool minXinf, maxXinf;
00034 R1_R1() : xSet(false), minXinf(true), maxXinf(true) {}
00035 virtual Real operator()() = 0;
00036
00037 virtual void Set(Real X);
00038 Real operator()(Real X) { Set(X); return operator()(); }
00039
00040 virtual bool IsValid(Real X);
00041 operator Real();
00042 virtual ~R1_R1() {}
00043 };
00044
00045 class SolutionException : public BaseException
00046 {
00047 public:
00048 static unsigned long Select;
00049 SolutionException(const char* a_what = 0);
00050 };
00051
00052 class OneDimSolve
00053 {
00054 R1_R1& function;
00055 Real accX;
00056 Real accY;
00057 int lim;
00058
00059 public:
00060 OneDimSolve(R1_R1& f, Real AccY = 0.0001, Real AccX = 0.0)
00061 : function(f), accX(AccX), accY(AccY) {}
00062
00063 Real Solve(Real Y, Real X, Real Dev, int Lim=100);
00064
00065
00066
00067
00068
00069
00070 private:
00071 Real x[3], y[3];
00072 int L,C,U,Last;
00073 int vpol, hpol;
00074 Real YY;
00075 int i;
00076 void LookAt(int);
00077 bool Finish;
00078 bool Captured;
00079 void VFlip();
00080 void HFlip();
00081 void Flip();
00082 void State(int I, int J, int K);
00083 void Linear(int, int, int);
00084 void Quadratic(int, int, int);
00085 };
00086
00087
00088 #ifdef use_namespace
00089 }
00090 #endif
00091
00092
00093
00094
00095