close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 17 years ago

Closed 17 years ago

Last modified 17 years ago

#535 closed defect (fixed)

Unknown crash with DifEq

Reported by: César Pérez Álvarez Owned by: Víctor de Buen Remiro
Priority: high Milestone:
Component: Various Version: 1.1.6
Severity: critical Keywords:
Cc:

Description

When we compile this code:


Set RandNoise(Date ini, Date end, TimeSet dating)
{

Serie residuals = SubSer(Gaussian(0, 0.10, dating), ini, end);
Polyn ma = (1-0.6*B)*(1-0.5*B7);
Polyn ar = (1-0.4*B);
Polyn dif = (1-B)*(1-B
7)*(1-B365);

Date iniRes = Succ(ini, dating, -Degree(ma));
Date endRes = Succ(ini, dating, -1);
Serie iniResiduals = SubSer(Gaussian(0, 0.10, dating), iniRes, endRes);
Serie noise = DifEq(ma/(dif*ar), iniResiduals<<residuals,8);
SetOfSerie(ini, residuals)

};

Set test = RandNoise(y2000m01d01, y2007m01d01, Diario);


TOL crashes. Its obvious that we have an eror in "SetOfSerie(ini, residuals)" because "ini" is a "Date" when it must be a "Serie" but TOL never must crash.

If we try with this another code:


Set RandNoise(Date ini, Date end, TimeSet dating)
{

Serie residuals = SubSer(Gaussian(0, 0.10, dating), ini, end);
Polyn ma = (1-0.6*B)*(1-0.5*B7);
Polyn ar = (1-0.4*B);
Polyn dif = (1-B)*(1-B
7)*(1-B365);

Date iniRes = Succ(ini, dating, -Degree(ma));
Date endRes = Succ(ini, dating, -1);
Serie iniResiduals = SubSer(Gaussian(0, 0.10, dating), iniRes, endRes);

Serie noise = DifEq(ma/(dif*ar), iniResiduals<<residuals,8);

SetOfSerie(ini, residuals)

};

Set test = RandNoise(y2000m01d01, y2007m01d01, Diario);


TOL does not crash, and a correct warning is advise us of our error.

I can not isolate much more the error, sorry.

Change History (4)

comment:1 Changed 17 years ago by Víctor de Buen Remiro

Owner: changed from danirus to Víctor de Buen Remiro

We are working about this bug
Thanks to report it

comment:2 Changed 17 years ago by Víctor de Buen Remiro

Status: newassigned

comment:3 Changed 17 years ago by Víctor de Buen Remiro

bug_file_loc: http://cvs.tol-project.org/viewcvs.cgi/tol_tests/tol/Bugzilla/bug_000535
Resolution: fixed
Status: assignedclosed

Bug has been fixed in CVS (HEAD and 1.1.6 branches)

BTsrPolyn BTsrDifEq::ser_ must be a pointer to avoid default copy operator that jumps PutDating and doesn't increments reference of dating_

Congratulations!
This is a very old problem and this bug report has been a great help to detect it.

A standard test has been added at http://cvs.tol-project.org/viewcvs.cgi/tol_tests/tol/Bugzilla/bug_000535
Thanks

comment:4 Changed 17 years ago by Víctor de Buen Remiro

Summary: Unknown crashUnknown crash with DifEq
Note: See TracTickets for help on using tickets.