|
Fast Research Interface Library
Manual and Documentation
|
00001 // ---------------------- Doxygen info ---------------------- 00047 // ---------------------------------------------------------- 00048 // For a convenient reading of this file's source code, 00049 // please use a tab width of four characters. 00050 // ---------------------------------------------------------- 00051 00052 00053 00054 #include <TypeIRMLPolynomial.h> 00055 #include <TypeIRMLMath.h> 00056 00057 00058 //************************************************************************************ 00059 // Constructor 00060 00061 00062 TypeIRMLMath::TypeIRMLPolynomial::TypeIRMLPolynomial() 00063 { 00064 a0 = 0.0; 00065 a1 = 0.0; 00066 a2 = 0.0; 00067 DeltaT = 0.0; 00068 Degree = 0; 00069 } 00070 00071 00072 //************************************************************************************ 00073 // Destructor 00074 00075 TypeIRMLMath::TypeIRMLPolynomial::~TypeIRMLPolynomial() 00076 {} 00077 00078 00079 //************************************************************************************ 00080 // SetCoefficients() 00081 // f(x) = a_2 * (t - DeltaT)^2 + a_1 * (t - DeltaT) + a_0 00082 00083 void TypeIRMLMath::TypeIRMLPolynomial::SetCoefficients( const double &Coeff2 00084 , const double &Coeff1 00085 , const double &Coeff0 00086 , const double &Diff) 00087 { 00088 a0 = Coeff0; 00089 a1 = Coeff1; 00090 a2 = Coeff2; 00091 DeltaT = Diff; 00092 00093 if (a2 != 0.0) 00094 { 00095 Degree = 2; 00096 return; 00097 } 00098 00099 if (a1 != 0.0) 00100 { 00101 Degree = 1; 00102 return; 00103 } 00104 00105 Degree = 0; 00106 return; 00107 } 00108 00109 00110 //******************************************************************************************* 00111 // CalculateValue() 00112 // calculates f(t) 00113 00114 double TypeIRMLMath::TypeIRMLPolynomial::CalculateValue(const double &t) const 00115 { 00116 return( ((Degree == 2)? 00117 (a2 * (t - DeltaT) * (t - DeltaT) + a1 * (t - DeltaT) + a0): 00118 ((Degree == 1)? 00119 (a1 * (t - DeltaT) + a0): 00120 (a0)))); 00121 }