Skip to content

Incorrect result for addition with widely-varying floating point numbers #14

Open
@zomborid

Description

The front page description states that the package is intended to be a rigorous computational method however the implementation does not reflect this in any shape or form.

See the result of the following statement:

Affine(-1..1) + Affine(1e23) + Affine(2020.0) - Affine(1e23)

Evaluates to: ⟨0.0; [1.0]⟩
The correct answer: ⟨2020.0; [1.0]⟩
Acceptable answer: affine set containing the result, but overestimating due to limits of floating point arithmetic.

This error is from numeric source, not a software bug. A way to address these kinds of problems and make the package a real rigorous implementation is interval arithmetic. (I saw traces of that, but overall no reliable computation is implemented.)

Until a rigorous implementation is presented, I would highly recommend removing the word rigorous from the description. Maybe stating explicitly, that the current implementation is prone to the everyday numerical errors.

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions