Skip to content

lamellarPC is precision limited (Trac #484) #330

@pkienzle

Description

@pkienzle

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"
}

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions