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