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.
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:
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.