Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   Related Pages  

rdGCVSpline.h

00001 // rdGCVSpline.h
00002 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00003 // Copyright 2002
00004 // All rights reserved.
00005 //
00006 // Authors: Frank C. Anderson
00007 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00008 
00009 #ifndef __rdGCVSpline_h__
00010 #define __rdGCVSpline_h__
00011 
00012 
00013 // INCLUDES
00014 #include "rdTools.h"
00015 #include "rdFunction.h"
00016 
00017 
00018 //=============================================================================
00019 //=============================================================================
00047 class RDTOOLS_API rdGCVSpline : public rdFunction
00048 {
00049 //=============================================================================
00050 // DATA
00051 //=============================================================================
00052 public:
00053    static const char PROP_HALF_ORDER[];
00054    static const char PROP_ERROR_VARIANCE[];
00055    static const char PROP_X[];
00056    static const char PROP_COEFF[];
00057    static const char PROP_WEIGHTS[];
00058    static const char PROP_WK[];
00059 protected:
00061    int _halfOrder;
00063    int _n;
00066    double *_x;
00068    double *_weights;
00070    double *_coefficients;
00073    double _errorVariance;
00076    int _knotIndex;
00078    int _nw;
00080    double *_wk;
00082    double *_workEval;
00083 
00084 
00085 //=============================================================================
00086 // METHODS
00087 //=============================================================================
00088 public:
00089    //--------------------------------------------------------------------------
00090    // CONSTRUCTION
00091    //--------------------------------------------------------------------------
00092    rdGCVSpline();
00093    rdGCVSpline(int aDegree,int aN,const double *aTimes,const double *aValues,
00094       const char *aName=NULL,double aErrorVariance=0.0);
00095    rdGCVSpline(IDOM_Element *aElement);
00096    rdGCVSpline(const rdGCVSpline &aSpline);
00097    virtual ~rdGCVSpline();
00098    virtual rdFunction* copy() const;
00099    virtual rdFunction* copy(IDOM_Element *aElement) const;
00100 private:
00101    void setNull();
00102    void setEqual(const rdGCVSpline &aSpline);
00103 
00104    //--------------------------------------------------------------------------
00105    // OPERATORS
00106    //--------------------------------------------------------------------------
00107 public:
00108    rdGCVSpline& operator=(const rdGCVSpline &aSpline);
00109 
00110    //--------------------------------------------------------------------------
00111    // SET AND GET
00112    //--------------------------------------------------------------------------
00113    void setDegree(int aDegree);
00114 public:
00115    int getDegree();
00116    int getOrder();
00117    int getHalfOrder();
00118    int getN();
00119    double getMinX();
00120    double getMaxX();
00121    const double* getX();
00122    int getNW();
00123    const double* getWorkArray();
00124    const double* getCoefficients();
00125 
00126 
00127    //--------------------------------------------------------------------------
00128    // EVALUATION
00129    //--------------------------------------------------------------------------
00130    virtual void updateBoundingBox();
00131    virtual double
00132       evaluate(int aDerivOrder,double aX=0.0,double aY=0.0,double aZ=0.0);
00133 
00134    //--------------------------------------------------------------------------
00135    // XML
00136    //--------------------------------------------------------------------------
00137    virtual void updateObject(bool aDeep=true);
00138    virtual void updateNode(bool aDeep=true);
00139    virtual void generateNode(IDOM_Element *aParent);
00140    void updateData();   
00141 
00142 //=============================================================================
00143 }; // END class rdGCVSpline
00144 //=============================================================================
00145 //=============================================================================
00146 
00147 #endif  // __rdGCVSpline_h__

Generated on Wed Aug 20 02:17:06 2003 for Simulation Software by doxygen1.3