42 : size(size), nout(nout), pdBase(NULL), ppdBase(NULL),
43 ldl(NULL), vldl(NULL), z(0), vz(0), theta(NULL), vtheta(NULL),
44 phi(NULL), y(NULL), err(NULL), pF(pf), k(0.), w(0.)
70 for (
integer j = i; j-- > 0; ) {
78 for (
integer j = size; j-- > 0; ) {
80 vldl[j][j] = ldl_init;
82 for (
integer j = nout; j-- > 0; ) {
110 }
else if (
w < 1.e-20) {
168 unsigned int iA,
unsigned int iB)
169 : iNumOutput(iOut), iNumInput(iIn), iOrdA(iA), iOrdB(iB), pIdent(NULL)
202 unsigned int iA,
unsigned int iB,
205 size(iOut*iA+iIn*(iB+1)), pdBase(NULL), pdPhi(NULL), pdY(NULL)
219 for (
integer j = i; j-- > 0; ) {
253 pdTmp[i] = pdUTmp[i];
273 unsigned int iA,
unsigned int iB,
276 size(2*iOut*iA+iIn*(iB+1)), pdBase(NULL), pdPhi(NULL), pdY(NULL), pdErr(NULL)
293 for (
integer j = i; j-- > 0; ) {
331 pdTmp[i] = pdUTmp[i];
virtual void Update(const doublereal *pErr=NULL)=0
doublereal * pdGetTheta(void)
virtual void GetTheta(doublereal *pdTheta)
IdentARXProcess(unsigned int iOut, unsigned int iIn, unsigned int iA, unsigned int iB, ForgettingFactor *pf)
flag fCheckMA(doublereal *pdTheta)
void SetForgettingFactor(const doublereal &kk)
void CreateIdent(integer size, integer nout, ForgettingFactor *pf)
#define SAFEDELETEARR(pnt)
virtual ~IdentProcess(void)
virtual ~IdentARXProcess(void)
doublereal * pdGetErr(void)
void Update(const doublereal *pphi, const doublereal *yy)
IdentProcess(unsigned int iOut, unsigned int iIn, unsigned int iA, unsigned int iB)
virtual void Update(const doublereal *pdYTmp, const doublereal *pdUTmp)
doublereal dGetForgettingFactor(void) const
int ldlsol(doublereal *ldl, integer *nrdldl, doublereal *b, integer *nrdb, integer *n, integer *nvet)
IdentARMAXProcess(unsigned int iOut, unsigned int iIn, unsigned int iA, unsigned int iB, ForgettingFactor *pf)
void GetErr(doublereal *pdE)
virtual doublereal dGet(void) const =0
#define ASSERT(expression)
GradientExpression< UnaryExpr< FuncSqrt, Expr > > sqrt(const GradientExpression< Expr > &u)
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
virtual void GetErr(doublereal *pdE)
void UpdateTheta(const doublereal *pd)
#define SAFENEWARR(pnt, item, sz)
int uldlad(doublereal *ldl, integer *nrdldl, integer *n, doublereal *x, doublereal *z, integer *nrdz, integer *nz, doublereal *y)
virtual void GetTheta(doublereal *pdTheta)
virtual ~IdentARMAXProcess(void)
Ident(integer size, integer nout, ForgettingFactor *pf, const doublereal &ldl_init=LDL_INIT)
virtual void Update(const doublereal *pdYTmp, const doublereal *pdUTmp)