Changeset 270 for bdm/stat/libFN.h
- Timestamp:
- 02/16/09 10:02:08 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
bdm/stat/libFN.h
r262 r270 28 28 vec eval ( const vec &cond ) {return val;}; 29 29 //!Default constructor 30 constfn ( const vec &val0 ) :fnc( val0.length()), val ( val0 ) {};30 constfn ( const vec &val0 ) :fnc(), val ( val0 ) {dimy=val.length();}; 31 31 }; 32 32 … … 38 38 //! Matrix A 39 39 mat A; 40 //! MatrixB40 //! vector B 41 41 vec B; 42 42 public : 43 vec eval (const vec &cond ) {it_assert_debug ( cond.length() == rv.count(), "linfn::eval Wrong cond." );return A*cond+B;};43 vec eval (const vec &cond ) {it_assert_debug ( cond.length() ==A.cols(), "linfn::eval Wrong cond." );return A*cond+B;}; 44 44 45 45 // linfn evalsome ( ivec &rvind ); 46 46 //!default constructor 47 linfn ( const RV &rv0 ) : fnc(rv0.count()), rv ( rv0 ),A ( eye ( rv0.count() ) ),B ( zeros ( rv0.count() )) { };47 linfn ( ) : fnc(), A ( ),B () { }; 48 48 //! Set values of \c A and \c B 49 void set_parameters ( const mat &A0 , const vec &B0 ) {A=A0; B=B0; };49 void set_parameters ( const mat &A0 , const vec &B0 ) {A=A0; B=B0; dimy=A.rows();}; 50 50 }; 51 51 … … 86 86 virtual void dfdu_cond ( const vec &x0, const vec &u0, mat &A, bool full=true ) {}; 87 87 //!Default constructor (dimy is not set!) 88 diffbifn ( int dimy, const RV rvx0, const RV rvu0 ) : fnc(dimy), rvx ( rvx0 ),rvu ( rvu0 ) {dimx=rvx.count();dimu=rvu.count();};88 diffbifn () : fnc() {}; 89 89 //! access function 90 90 int _dimx() const{return dimx;} … … 100 100 mat B; 101 101 public : 102 //!\name Constructors 103 //!@{ 104 105 bilinfn () : diffbifn () ,A() ,B() {}; 106 bilinfn (const mat A0, const mat B0) {set_parameters(A0,B0);}; 107 //! Alternative constructor 108 void set_parameters(const mat A0, const mat B0){ 109 it_assert_debug(A0.rows()==B0.rows(),""); 110 A=A0;B=B0; 111 dimy=A.rows(); 112 dimx=A.cols(); 113 dimu=B.cols(); 114 } 115 //!@} 116 117 //!\name Mathematical operations 118 //!@{ 102 119 vec eval ( const vec &x0, const vec &u0 ); 103 104 //! Default constructor105 bilinfn ( const RV &rvx0, const RV &rvu0 ) : diffbifn (dimx, rvx0,rvu0 ) ,A ( eye ( dimx ) ),B ( zeros ( dimx,dimu ) ) {};106 //! Alternative constructor107 bilinfn ( const RV &rvx0, const RV &rvu0, const mat &A0, const mat &B0 );108 //!109 120 void dfdx_cond ( const vec &x0, const vec &u0, mat &F, bool full ) 110 121 { … … 118 129 if ( full ) F=B; //else : nothing has changed no need to regenerate 119 130 } 131 //!@} 120 132 }; 121 133