Adapt the Lamellar PC calculation to use less precision limited math.
That means replacing ww = exp(...) with ww-1 = expm1(...), which can be calculated without loss of precision. Similarly, 1 - cos(x) for cos(x) near zero can be replaced with 2*sin^2^(x).
The alternative is to force lamellarPC to use double or quad precision even if the rest of the calculations are in single precision.
Use compare -longdouble to evaluate a model with quad precision.
Migrated from http://trac.sasview.org/ticket/484
{
"status": "closed",
"changetime": "2016-03-20T12:26:27",
"_ts": "2016-03-20 12:26:27.152604+00:00",
"description": "Adapt the Lamellar PC calculation to use less precision limited math.\n\nThat means replacing ww = exp(...) with ww-1 = expm1(...), which can be calculated without loss of precision. Similarly, 1 - cos(x) for cos(x) near zero can be replaced with 2*sin^2^(x).\n\nThe alternative is to force lamellarPC to use double or quad precision even if the rest of the calculations are in single precision.\n\nUse compare -longdouble to evaluate a model with quad precision.",
"reporter": "pkienzle",
"cc": "",
"resolution": "fixed",
"workpackage": "SasModels Redesign",
"time": "2015-11-25T00:23:44",
"component": "SasView",
"summary": "lamellarPC is precision limited",
"priority": "critical",
"keywords": "",
"milestone": "SasView 4.0.0",
"owner": "richardh",
"type": "defect"
}
Adapt the Lamellar PC calculation to use less precision limited math.
That means replacing ww = exp(...) with ww-1 = expm1(...), which can be calculated without loss of precision. Similarly, 1 - cos(x) for cos(x) near zero can be replaced with 2*sin^2^(x).
The alternative is to force lamellarPC to use double or quad precision even if the rest of the calculations are in single precision.
Use compare -longdouble to evaluate a model with quad precision.
Migrated from http://trac.sasview.org/ticket/484
{ "status": "closed", "changetime": "2016-03-20T12:26:27", "_ts": "2016-03-20 12:26:27.152604+00:00", "description": "Adapt the Lamellar PC calculation to use less precision limited math.\n\nThat means replacing ww = exp(...) with ww-1 = expm1(...), which can be calculated without loss of precision. Similarly, 1 - cos(x) for cos(x) near zero can be replaced with 2*sin^2^(x).\n\nThe alternative is to force lamellarPC to use double or quad precision even if the rest of the calculations are in single precision.\n\nUse compare -longdouble to evaluate a model with quad precision.", "reporter": "pkienzle", "cc": "", "resolution": "fixed", "workpackage": "SasModels Redesign", "time": "2015-11-25T00:23:44", "component": "SasView", "summary": "lamellarPC is precision limited", "priority": "critical", "keywords": "", "milestone": "SasView 4.0.0", "owner": "richardh", "type": "defect" }