Closed lucaferranti closed 11 months ago
@lucaferranti Some comments your list:
Regarding 1 and 2: they are solved by #517. Should we backport them to master?
Regarding 10: I think we should emit a warning, as it is currently done in master.
Regarding 13: they are implemented in 1.0-dev branch. I followed your suggestion, and now it returns enum elements that are of type OverlapType
; see #518
I have recently created the package ITF1788.jl which translates ITL to julia tests, runs the tests and marks the failing ones as broken. This should make it easier to see what is missing. Here is a summary (except for reverse functions, I will open an issue for those in IntervalContractors.jl soonish).
fi_lib.itl
ieee1788-exceptions.itl
[x] 3.
b-textToInterval "[+infinity]" = [empty] signal UndefinedOperation;
fixed in #522[ ] 4. Interval part of
NaI
should return the empty interval, now it returns[NaN, NaN]
[x] 5.
b-textToInterval "[1.0000000000000001, 1.0000000000000002]" = [1.0, 0x1.0000000000001p+0] signal PossiblyUndefinedOperation;
fixed in #522ieee1788-class.itl
[x] 6. invalid inputs should return an empty interval for bare intervals #457 and #461 e.g.
[x] 7. invalid strings should return an empty interval fixed in #522
[x] 8. some problems in parsing intervals from strings, probably due to current implementation being case sensitive fixed in #522
[x] 9. in some cases same problem due to #464
[ ] 10. a few tests failing when constructing decorated intervals.
ieee1788-elem
ieee1788-num
midRad [nai] [nai] = NaN NaN;
, I don't understand why midRad would take two intervals as input, indeed it does not for other tests in the same test block. edit: I think this is so obviously a typo in the ITL source code, that I dare marking this as done. I also opened an issue in the original repositoryieee1788-overlap
ieee1788-reduction :
sum, dot, sumSquare, sumAbs
sumSquare
andsumAbs
can be easily implemented in julia, e.g.sumSquare(x) = sum(x.^2)
. However the point of those functions is to have accurate summation, ITF has only trivial tests for thosedot_nearest {0x10000000000001p0, 0x1p104} {0x0fffffffffffffp0, -1.0} = -1.0;
. Using floating point arithmetic, the result is 0, using bigfloats the result is -1, could be solved using the Oishi-Rump-Ogita accurate dot product from AccurateArithmetic.jl.reverse functions
IntervalContractors.jl
package, since reverse functions are implemented there. Anyway, the standard requires those to be implemented in an interval arithmetic software, I guess this would be ok if we advertiseValidatedNumerics
as compliant software?