Skip to content

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

Description

@zomborid

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

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