mrgsolve
|
#include <LSODA.h>
Public Member Functions | |
LSODA (int neq, const Rcpp::List &parin) | |
~LSODA () | |
void | hmax_ (const double value) |
void | hmin_ (const double value) |
void | maxsteps_ (const int value) |
void | ixpr_ (const int value) |
void | mxhnil_ (const int value) |
size_t | idamax1 (const vector< double > &dx, const size_t n, const size_t offset) |
void | dscal1 (const double da, vector< double > &dx, const size_t n, const size_t offset) |
double | ddot1 (const vector< double > &a, const vector< double > &b, const size_t n, const size_t offsetA, const size_t offsetB) |
void | daxpy1 (const double da, const vector< double > &dx, vector< double > &dy, const size_t n, const size_t offsetX, const size_t offsetY) |
void | dgesl1 (const vector< vector< double >> &a, const size_t n, vector< int > &ipvt, vector< double > &b, const size_t job) |
void | dgefa1 (vector< vector< double >> &a, const size_t n, vector< int > &ipvt, size_t *const info) |
void | prja (const size_t neq, vector< double > &y, LSODA_ODE_SYSTEM_TYPE f, dtype _data) |
void | lsoda (LSODA_ODE_SYSTEM_TYPE f, const size_t neq, vector< double > &y, double *t, double tout, int itask, int *istate, int iopt, int jt, dtype _data) |
void | correction (const size_t neq, vector< double > &y, LSODA_ODE_SYSTEM_TYPE f, size_t *corflag, double pnorm, double *del, double *delp, double *told, size_t *ncf, double *rh, size_t *m, dtype _data) |
void | stoda (const size_t neq, vector< double > &y, LSODA_ODE_SYSTEM_TYPE f, dtype _data) |
void | lsoda_update (LSODA_ODE_SYSTEM_TYPE f, const int neq, vector< double > &y, std::vector< double > &yout, double *t, const double tout, int *istate, dtype const _data) |
void | terminate (int *istate) |
void | terminate2 (vector< double > &y, double *t) |
void | successreturn (vector< double > &y, double *t, int itask, int ihit, double tcrit, int *istate) |
void | _freevectors (void) |
void | ewset (const vector< double > &ycur) |
void | resetcoeff (void) |
void | solsy (vector< double > &y) |
void | endstoda (void) |
void | orderswitch (double *rhup, double dsm, double *pdh, double *rh, size_t *orderflag) |
void | intdy (double t, int k, vector< double > &dky, int *iflag) |
void | corfailure (double *told, double *rh, size_t *ncf, size_t *corflag) |
void | methodswitch (double dsm, double pnorm, double *pdh, double *rh) |
void | cfode (int meth_) |
void | scaleh (double *rh, double *pdh) |
double | fnorm (int n, const vector< vector< double >> &a, const vector< double > &w) |
double | vmnorm (const size_t n, const vector< double > &v, const vector< double > &w) |
Static Public Member Functions | |
static bool | abs_compare (double a, double b) |
Public Attributes | |
int | iopt |
int | jt |
int | itask |
double | Atol |
double | Rtol |
int | Maxsteps |
int | Neq |
array< int, 7 > | iworks |
array< double, 4 > | rworks |
int | kflag =0 |
int | jstart =0 |
Private Attributes | |
size_t | ml =0 |
size_t | mu =0 |
size_t | imxer =0 |
double | sqrteta =0.0 |
array< size_t, 3 > | mord |
array< double, 13 > | sm1 |
array< double, 14 > | el |
array< double, 13 > | cm1 |
array< double, 6 > | cm2 |
array< array< double, 14 >, 13 > | elco |
array< array< double, 4 >, 13 > | tesco |
vector< double > | ewt |
vector< double > | savf |
vector< double > | acor |
vector< vector< double > > | yh_ |
vector< vector< double > > | wm_ |
vector< int > | ipvt |
size_t | illin =0 |
size_t | init =0 |
size_t | ierpj =0 |
size_t | iersl =0 |
size_t | jcur =0 |
size_t | l =0 |
size_t | miter =0 |
size_t | maxord =0 |
size_t | maxcor =0 |
size_t | msbp =0 |
size_t | mxncf =0 |
size_t | ixpr =0 |
size_t | jtyp =0 |
size_t | mused =0 |
size_t | mxordn =0 |
size_t | mxords = 12 |
size_t | meth_ =0 |
size_t | n =0 |
size_t | nq =0 |
size_t | nst =0 |
size_t | nfe =0 |
size_t | nje =0 |
size_t | nqu =0 |
size_t | mxstep =0 |
size_t | mxhnil =0 |
size_t | nslast =0 |
size_t | nhnil =0 |
size_t | ntrep =0 |
size_t | nyh =0 |
double | ccmax =0.0 |
double | el0 =0.0 |
double | h_ = .0 |
double | hmin =0.0 |
double | hmxi =0.0 |
double | hu =0.0 |
double | rc =0.0 |
double | tn_ = 0.0 |
double | tsw =0.0 |
double | pdnorm =0.0 |
double | conit =0.0 |
double | crate =0.0 |
double | hold =0.0 |
double | rmax =0.0 |
size_t | ialth =0 |
size_t | ipup =0 |
size_t | lmax =0 |
size_t | nslp =0 |
double | pdest =0.0 |
double | pdlast =0.0 |
double | ratio =0.0 |
int | icount =0 |
int | irflag =0 |
int | itol_ = 2 |
std::vector< double > | rtol_ |
std::vector< double > | atol_ |
LSODA::LSODA | ( | int | neq, |
const Rcpp::List & | parin | ||
) |
LSODA::~LSODA | ( | ) |
void LSODA::_freevectors | ( | void | ) |
|
static |
void LSODA::cfode | ( | int | meth_ | ) |
void LSODA::corfailure | ( | double * | told, |
double * | rh, | ||
size_t * | ncf, | ||
size_t * | corflag | ||
) |
void LSODA::correction | ( | const size_t | neq, |
vector< double > & | y, | ||
LSODA_ODE_SYSTEM_TYPE | f, | ||
size_t * | corflag, | ||
double | pnorm, | ||
double * | del, | ||
double * | delp, | ||
double * | told, | ||
size_t * | ncf, | ||
double * | rh, | ||
size_t * | m, | ||
dtype | _data | ||
) |
void LSODA::daxpy1 | ( | const double | da, |
const vector< double > & | dx, | ||
vector< double > & | dy, | ||
const size_t | n, | ||
const size_t | offsetX = 0 , |
||
const size_t | offsetY = 0 |
||
) |
double LSODA::ddot1 | ( | const vector< double > & | a, |
const vector< double > & | b, | ||
const size_t | n, | ||
const size_t | offsetA = 0 , |
||
const size_t | offsetB = 0 |
||
) |
void LSODA::dgefa1 | ( | vector< vector< double >> & | a, |
const size_t | n, | ||
vector< int > & | ipvt, | ||
size_t *const | info | ||
) |
void LSODA::dgesl1 | ( | const vector< vector< double >> & | a, |
const size_t | n, | ||
vector< int > & | ipvt, | ||
vector< double > & | b, | ||
const size_t | job | ||
) |
void LSODA::dscal1 | ( | const double | da, |
vector< double > & | dx, | ||
const size_t | n, | ||
const size_t | offset = 0 |
||
) |
void LSODA::endstoda | ( | void | ) |
void LSODA::ewset | ( | const vector< double > & | ycur | ) |
double LSODA::fnorm | ( | int | n, |
const vector< vector< double >> & | a, | ||
const vector< double > & | w | ||
) |
void LSODA::hmax_ | ( | const double | value | ) |
void LSODA::hmin_ | ( | const double | value | ) |
size_t LSODA::idamax1 | ( | const vector< double > & | dx, |
const size_t | n, | ||
const size_t | offset = 0 |
||
) |
void LSODA::intdy | ( | double | t, |
int | k, | ||
vector< double > & | dky, | ||
int * | iflag | ||
) |
void LSODA::ixpr_ | ( | const int | value | ) |
void LSODA::lsoda | ( | LSODA_ODE_SYSTEM_TYPE | f, |
const size_t | neq, | ||
vector< double > & | y, | ||
double * | t, | ||
double | tout, | ||
int | itask, | ||
int * | istate, | ||
int | iopt, | ||
int | jt, | ||
dtype | _data | ||
) |
void LSODA::lsoda_update | ( | LSODA_ODE_SYSTEM_TYPE | f, |
const int | neq, | ||
vector< double > & | y, | ||
std::vector< double > & | yout, | ||
double * | t, | ||
const double | tout, | ||
int * | istate, | ||
dtype const | _data | ||
) |
@Synopsis Simpler interface.
@Param f System @Param neq, size of system. @Param y, init values of size neq @Param yout, results vector for size neq+1, ignore yout[0] @Param t, start time. @Param tout, stop time. @Param istate state of the system @Param _data
void LSODA::maxsteps_ | ( | const int | value | ) |
void LSODA::methodswitch | ( | double | dsm, |
double | pnorm, | ||
double * | pdh, | ||
double * | rh | ||
) |
void LSODA::mxhnil_ | ( | const int | value | ) |
void LSODA::orderswitch | ( | double * | rhup, |
double | dsm, | ||
double * | pdh, | ||
double * | rh, | ||
size_t * | orderflag | ||
) |
void LSODA::prja | ( | const size_t | neq, |
vector< double > & | y, | ||
LSODA_ODE_SYSTEM_TYPE | f, | ||
dtype | _data | ||
) |
void LSODA::resetcoeff | ( | void | ) |
void LSODA::scaleh | ( | double * | rh, |
double * | pdh | ||
) |
void LSODA::solsy | ( | vector< double > & | y | ) |
void LSODA::stoda | ( | const size_t | neq, |
vector< double > & | y, | ||
LSODA_ODE_SYSTEM_TYPE | f, | ||
dtype | _data | ||
) |
void LSODA::successreturn | ( | vector< double > & | y, |
double * | t, | ||
int | itask, | ||
int | ihit, | ||
double | tcrit, | ||
int * | istate | ||
) |
void LSODA::terminate | ( | int * | istate | ) |
void LSODA::terminate2 | ( | vector< double > & | y, |
double * | t | ||
) |
double LSODA::vmnorm | ( | const size_t | n, |
const vector< double > & | v, | ||
const vector< double > & | w | ||
) |
|
private |
double LSODA::Atol |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
int LSODA::iopt |
|
private |
|
private |
|
private |
int LSODA::itask |
|
private |
array<int, 7> LSODA::iworks |
|
private |
|
private |
int LSODA::jstart =0 |
int LSODA::jt |
|
private |
int LSODA::kflag =0 |
|
private |
|
private |
|
private |
|
private |
int LSODA::Maxsteps |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
int LSODA::Neq |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
double LSODA::Rtol |
|
private |
array<double, 4> LSODA::rworks |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |