mrgsolve
Public Member Functions | Static Public Member Functions | Public Attributes | Private Attributes | List of all members
LSODA Class Reference

#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_
 

Constructor & Destructor Documentation

◆ LSODA()

LSODA::LSODA ( int  neq,
const Rcpp::List &  parin 
)

◆ ~LSODA()

LSODA::~LSODA ( )

Member Function Documentation

◆ _freevectors()

void LSODA::_freevectors ( void  )

◆ abs_compare()

bool LSODA::abs_compare ( double  a,
double  b 
)
static

◆ cfode()

void LSODA::cfode ( int  meth_)

◆ corfailure()

void LSODA::corfailure ( double *  told,
double *  rh,
size_t *  ncf,
size_t *  corflag 
)

◆ correction()

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 
)

◆ daxpy1()

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 
)

◆ ddot1()

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 
)

◆ dgefa1()

void LSODA::dgefa1 ( vector< vector< double >> &  a,
const size_t  n,
vector< int > &  ipvt,
size_t *const  info 
)

◆ dgesl1()

void LSODA::dgesl1 ( const vector< vector< double >> &  a,
const size_t  n,
vector< int > &  ipvt,
vector< double > &  b,
const size_t  job 
)

◆ dscal1()

void LSODA::dscal1 ( const double  da,
vector< double > &  dx,
const size_t  n,
const size_t  offset = 0 
)

◆ endstoda()

void LSODA::endstoda ( void  )

◆ ewset()

void LSODA::ewset ( const vector< double > &  ycur)

◆ fnorm()

double LSODA::fnorm ( int  n,
const vector< vector< double >> &  a,
const vector< double > &  w 
)

◆ hmax_()

void LSODA::hmax_ ( const double  value)

◆ hmin_()

void LSODA::hmin_ ( const double  value)

◆ idamax1()

size_t LSODA::idamax1 ( const vector< double > &  dx,
const size_t  n,
const size_t  offset = 0 
)

◆ intdy()

void LSODA::intdy ( double  t,
int  k,
vector< double > &  dky,
int *  iflag 
)

◆ ixpr_()

void LSODA::ixpr_ ( const int  value)

◆ lsoda()

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 
)

◆ lsoda_update()

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

◆ maxsteps_()

void LSODA::maxsteps_ ( const int  value)

◆ methodswitch()

void LSODA::methodswitch ( double  dsm,
double  pnorm,
double *  pdh,
double *  rh 
)

◆ mxhnil_()

void LSODA::mxhnil_ ( const int  value)

◆ orderswitch()

void LSODA::orderswitch ( double *  rhup,
double  dsm,
double *  pdh,
double *  rh,
size_t *  orderflag 
)

◆ prja()

void LSODA::prja ( const size_t  neq,
vector< double > &  y,
LSODA_ODE_SYSTEM_TYPE  f,
dtype  _data 
)

◆ resetcoeff()

void LSODA::resetcoeff ( void  )

◆ scaleh()

void LSODA::scaleh ( double *  rh,
double *  pdh 
)

◆ solsy()

void LSODA::solsy ( vector< double > &  y)

◆ stoda()

void LSODA::stoda ( const size_t  neq,
vector< double > &  y,
LSODA_ODE_SYSTEM_TYPE  f,
dtype  _data 
)

◆ successreturn()

void LSODA::successreturn ( vector< double > &  y,
double *  t,
int  itask,
int  ihit,
double  tcrit,
int *  istate 
)

◆ terminate()

void LSODA::terminate ( int *  istate)

◆ terminate2()

void LSODA::terminate2 ( vector< double > &  y,
double *  t 
)

◆ vmnorm()

double LSODA::vmnorm ( const size_t  n,
const vector< double > &  v,
const vector< double > &  w 
)

Member Data Documentation

◆ acor

vector<double> LSODA::acor
private

◆ Atol

double LSODA::Atol

◆ atol_

std::vector<double> LSODA::atol_
private

◆ ccmax

double LSODA::ccmax =0.0
private

◆ cm1

array<double, 13> LSODA::cm1
private

◆ cm2

array<double, 6> LSODA::cm2
private

◆ conit

double LSODA::conit =0.0
private

◆ crate

double LSODA::crate =0.0
private

◆ el

array<double, 14> LSODA::el
private

◆ el0

double LSODA::el0 =0.0
private

◆ elco

array<array<double, 14>, 13> LSODA::elco
private

◆ ewt

vector<double> LSODA::ewt
private

◆ h_

double LSODA::h_ = .0
private

◆ hmin

double LSODA::hmin =0.0
private

◆ hmxi

double LSODA::hmxi =0.0
private

◆ hold

double LSODA::hold =0.0
private

◆ hu

double LSODA::hu =0.0
private

◆ ialth

size_t LSODA::ialth =0
private

◆ icount

int LSODA::icount =0
private

◆ ierpj

size_t LSODA::ierpj =0
private

◆ iersl

size_t LSODA::iersl =0
private

◆ illin

size_t LSODA::illin =0
private

◆ imxer

size_t LSODA::imxer =0
private

◆ init

size_t LSODA::init =0
private

◆ iopt

int LSODA::iopt

◆ ipup

size_t LSODA::ipup =0
private

◆ ipvt

vector<int> LSODA::ipvt
private

◆ irflag

int LSODA::irflag =0
private

◆ itask

int LSODA::itask

◆ itol_

int LSODA::itol_ = 2
private

◆ iworks

array<int, 7> LSODA::iworks

◆ ixpr

size_t LSODA::ixpr =0
private

◆ jcur

size_t LSODA::jcur =0
private

◆ jstart

int LSODA::jstart =0

◆ jt

int LSODA::jt

◆ jtyp

size_t LSODA::jtyp =0
private

◆ kflag

int LSODA::kflag =0

◆ l

size_t LSODA::l =0
private

◆ lmax

size_t LSODA::lmax =0
private

◆ maxcor

size_t LSODA::maxcor =0
private

◆ maxord

size_t LSODA::maxord =0
private

◆ Maxsteps

int LSODA::Maxsteps

◆ meth_

size_t LSODA::meth_ =0
private

◆ miter

size_t LSODA::miter =0
private

◆ ml

size_t LSODA::ml =0
private

◆ mord

array<size_t, 3> LSODA::mord
private

◆ msbp

size_t LSODA::msbp =0
private

◆ mu

size_t LSODA::mu =0
private

◆ mused

size_t LSODA::mused =0
private

◆ mxhnil

size_t LSODA::mxhnil =0
private

◆ mxncf

size_t LSODA::mxncf =0
private

◆ mxordn

size_t LSODA::mxordn =0
private

◆ mxords

size_t LSODA::mxords = 12
private

◆ mxstep

size_t LSODA::mxstep =0
private

◆ n

size_t LSODA::n =0
private

◆ Neq

int LSODA::Neq

◆ nfe

size_t LSODA::nfe =0
private

◆ nhnil

size_t LSODA::nhnil =0
private

◆ nje

size_t LSODA::nje =0
private

◆ nq

size_t LSODA::nq =0
private

◆ nqu

size_t LSODA::nqu =0
private

◆ nslast

size_t LSODA::nslast =0
private

◆ nslp

size_t LSODA::nslp =0
private

◆ nst

size_t LSODA::nst =0
private

◆ ntrep

size_t LSODA::ntrep =0
private

◆ nyh

size_t LSODA::nyh =0
private

◆ pdest

double LSODA::pdest =0.0
private

◆ pdlast

double LSODA::pdlast =0.0
private

◆ pdnorm

double LSODA::pdnorm =0.0
private

◆ ratio

double LSODA::ratio =0.0
private

◆ rc

double LSODA::rc =0.0
private

◆ rmax

double LSODA::rmax =0.0
private

◆ Rtol

double LSODA::Rtol

◆ rtol_

std::vector<double> LSODA::rtol_
private

◆ rworks

array<double, 4> LSODA::rworks

◆ savf

vector<double> LSODA::savf
private

◆ sm1

array<double, 13> LSODA::sm1
private

◆ sqrteta

double LSODA::sqrteta =0.0
private

◆ tesco

array<array<double, 4>, 13> LSODA::tesco
private

◆ tn_

double LSODA::tn_ = 0.0
private

◆ tsw

double LSODA::tsw =0.0
private

◆ wm_

vector<vector<double> > LSODA::wm_
private

◆ yh_

vector<vector<double> > LSODA::yh_
private

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