lanczos1_functor Struct Reference
+ Inheritance diagram for lanczos1_functor:

Public Member Functions

 lanczos1_functor (void)
 
int operator() (const VectorXd &b, VectorXd &fvec)
 
int df (const VectorXd &b, MatrixXd &fjac)
 
 lanczos1_functor (void)
 
int operator() (const VectorXd &b, VectorXd &fvec)
 
int df (const VectorXd &b, MatrixXd &fjac)
 
- Public Member Functions inherited from Eigen::DenseFunctor< double >
 DenseFunctor ()
 
 DenseFunctor (int inputs, int values)
 
int inputs () const
 
int values () const
 
- Public Member Functions inherited from Functor< double >
 Functor ()
 
 Functor (int inputs, int values)
 
 Functor ()
 
 Functor (int inputs_, int values_)
 
int inputs () const
 
int inputs () const
 
int values () const
 
int values () const
 

Static Public Attributes

static const double x [24]
 
static const double y [24]
 

Additional Inherited Members

- Public Types inherited from Eigen::DenseFunctor< double >
enum  
 
typedef double Scalar
 
typedef Matrix< Scalar, InputsAtCompileTime, 1 > InputType
 
typedef Matrix< Scalar, ValuesAtCompileTime, 1 > ValueType
 
typedef Matrix< Scalar, ValuesAtCompileTime, InputsAtCompileTimeJacobianType
 
typedef ColPivHouseholderQR< JacobianTypeQRSolver
 
- Public Types inherited from Functor< double >
enum  
 
enum  
 
typedef double Scalar
 
typedef double Scalar
 
typedef Matrix< Scalar, InputsAtCompileTime, 1 > InputType
 
typedef Matrix< Scalar, InputsAtCompileTime, 1 > InputType
 
typedef Matrix< Scalar, ValuesAtCompileTime, 1 > ValueType
 
typedef Matrix< Scalar, ValuesAtCompileTime, 1 > ValueType
 
typedef Matrix< Scalar, ValuesAtCompileTime, InputsAtCompileTimeJacobianType
 
typedef Matrix< Scalar, ValuesAtCompileTime, InputsAtCompileTimeJacobianType
 
- Public Attributes inherited from Eigen::DenseFunctor< double >
const int m_inputs
 
const int m_values
 
- Public Attributes inherited from Functor< double >
const int m_inputs
 
int m_inputs
 
const int m_values
 
int m_values
 

Constructor & Destructor Documentation

◆ lanczos1_functor() [1/2]

lanczos1_functor::lanczos1_functor ( void  )
inline

◆ lanczos1_functor() [2/2]

lanczos1_functor::lanczos1_functor ( void  )
inline

Member Function Documentation

◆ df() [1/2]

int lanczos1_functor::df ( const VectorXd &  b,
MatrixXd &  fjac 
)
inline
623  {
624  assert(b.size() == 6);
625  assert(fjac.rows() == 24);
626  assert(fjac.cols() == 6);
627  for (int i = 0; i < 24; i++) {
628  fjac(i, 0) = exp(-b[1] * x[i]);
629  fjac(i, 1) = -b[0] * x[i] * exp(-b[1] * x[i]);
630  fjac(i, 2) = exp(-b[3] * x[i]);
631  fjac(i, 3) = -b[2] * x[i] * exp(-b[3] * x[i]);
632  fjac(i, 4) = exp(-b[5] * x[i]);
633  fjac(i, 5) = -b[4] * x[i] * exp(-b[5] * x[i]);
634  }
635  return 0;
636  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
#define assert(e,...)
Definition: Logger.h:744
Scalar * b
Definition: benchVecAdd.cpp:17
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 exp(const bfloat16 &a)
Definition: BFloat16.h:615
static const double x[24]
Definition: levenberg_marquardt.cpp:614

References assert, b, Eigen::bfloat16_impl::exp(), i, and x.

◆ df() [2/2]

int lanczos1_functor::df ( const VectorXd &  b,
MatrixXd &  fjac 
)
inline
960  {
961  assert(b.size() == 6);
962  assert(fjac.rows() == 24);
963  assert(fjac.cols() == 6);
964  for (int i = 0; i < 24; i++) {
965  fjac(i, 0) = exp(-b[1] * x[i]);
966  fjac(i, 1) = -b[0] * x[i] * exp(-b[1] * x[i]);
967  fjac(i, 2) = exp(-b[3] * x[i]);
968  fjac(i, 3) = -b[2] * x[i] * exp(-b[3] * x[i]);
969  fjac(i, 4) = exp(-b[5] * x[i]);
970  fjac(i, 5) = -b[4] * x[i] * exp(-b[5] * x[i]);
971  }
972  return 0;
973  }

References assert, b, Eigen::bfloat16_impl::exp(), i, and x.

◆ operator()() [1/2]

int lanczos1_functor::operator() ( const VectorXd &  b,
VectorXd &  fvec 
)
inline
616  {
617  assert(b.size() == 6);
618  assert(fvec.size() == 24);
619  for (int i = 0; i < 24; i++)
620  fvec[i] = b[0] * exp(-b[1] * x[i]) + b[2] * exp(-b[3] * x[i]) + b[4] * exp(-b[5] * x[i]) - y[i];
621  return 0;
622  }
static const double y[24]
Definition: levenberg_marquardt.cpp:615

References assert, b, Eigen::bfloat16_impl::exp(), i, x, and y.

◆ operator()() [2/2]

int lanczos1_functor::operator() ( const VectorXd &  b,
VectorXd &  fvec 
)
inline
953  {
954  assert(b.size() == 6);
955  assert(fvec.size() == 24);
956  for (int i = 0; i < 24; i++)
957  fvec[i] = b[0] * exp(-b[1] * x[i]) + b[2] * exp(-b[3] * x[i]) + b[4] * exp(-b[5] * x[i]) - y[i];
958  return 0;
959  }

References assert, b, Eigen::bfloat16_impl::exp(), i, x, and y.

Member Data Documentation

◆ x

const double lanczos1_functor::x
static
Initial value:
= {0.000000000000E+00, 5.000000000000E-02, 1.000000000000E-01, 1.500000000000E-01,
2.000000000000E-01, 2.500000000000E-01, 3.000000000000E-01, 3.500000000000E-01,
4.000000000000E-01, 4.500000000000E-01, 5.000000000000E-01, 5.500000000000E-01,
6.000000000000E-01, 6.500000000000E-01, 7.000000000000E-01, 7.500000000000E-01,
8.000000000000E-01, 8.500000000000E-01, 9.000000000000E-01, 9.500000000000E-01,
1.000000000000E+00, 1.050000000000E+00, 1.100000000000E+00, 1.150000000000E+00}

Referenced by df(), and operator()().

◆ y

const double lanczos1_functor::y
static
Initial value:
= {2.513400000000E+00, 2.044333373291E+00, 1.668404436564E+00, 1.366418021208E+00,
1.123232487372E+00, 9.268897180037E-01, 7.679338563728E-01, 6.388775523106E-01,
5.337835317402E-01, 4.479363617347E-01, 3.775847884350E-01, 3.197393199326E-01,
2.720130773746E-01, 2.324965529032E-01, 1.996589546065E-01, 1.722704126914E-01,
1.493405660168E-01, 1.300700206922E-01, 1.138119324644E-01, 1.000415587559E-01,
8.833209084540E-02, 7.833544019350E-02, 6.976693743449E-02, 6.239312536719E-02}

Referenced by operator()().


The documentation for this struct was generated from the following files: