oheim / itf1788 Goto Github PK
View Code? Open in Web Editor NEWThis project forked from kiesner/itf1788
Interval Test Framework for IEEE Std 1788-2015
License: Apache License 2.0
This project forked from kiesner/itf1788
Interval Test Framework for IEEE Std 1788-2015
License: Apache License 2.0
in lines 764-823 of the output of fi_lib.jl
, an extra whitespace character is generated for expm1
and log1p
, breaking the test suite.
I don't know where to look for fixing this, but it would greatly help our testing upstream.
cc. @dpsanders
Reference from mailing list: https://lists.gnu.org/archive/html/octave-maintainers/2017-06/msg00101.html
Currently, all generated tests check functions on scalar inputs, e. g. assert f (x1) = y1
, assert f (x2) = y2
and so on. When the function is a mapping function, it would be possible to additionally check a vectorized function evaluation like assert f ([x1, x2]) = [y1, y2]
and similarly for higher dimensions (matrices, 3-D arrays and so on).
To achieve this, the test data could be stored in a data container (mat files in Octave), which could then be loaded and used for different purposes like testing scalar function evaluation
for i = 1 : numel (data)
assert (f (data.input(i)), data.output(i));
endfor
and vectorized function evaluation
assert (f (data.input), data.output);
and higher dimension evaluations
assert (f (reshape (...)), reshape (...));
and maybe also broadcasting.
The main part would be to generate a test data dictionary with ITF1788 in native Octave data format, which could then be loaded and used as described above by the built-in self tests (BISTs) of respective functions.
@oheim !
Thank you so much for the amazing response you gave this weekend - it helps us greatly!
I would like to make a few quality of life PRs for our testing infrastructure, but am not too sure where to poke around - perhaps you could help.
Our goals right now are
FactCheck
testing library.IntervalContractors
, with all other presets being the same, except for an import of using IntervalContractors
at the top.If you have some pointers on how to get that done, I would highly appreciate it.
Once again, thanks a lot!
According to the standard, the mid point of unbounded intervals, as well as for empty intervals, should return no value at level 1; cf. table 10.2, in page 39 of the standard. Yet, at level 2, a value can be fixed, for instance for entire intervals.
The question is why (in the ITF1788) test suite mid(Interval(0,Inf)
the largest finite floating point?
See JuliaIntervals/IntervalArithmetic.jl#107
cc @dpsanders
Dear colleagues,
I am "revamping" the MPFI library and I am struggling to define pertinent tests.
I would like to understand what is important, how tests can be structured (at least in our minds), including IEEE-1788 compliance.
I would like some bibliography and this would include ITF1788, test for the Octave interval package, and if you have acces to it, Marco Nehmeier's PhD dissertation and any other useful material you could point to.
I would like to discuss these topics and possibly submit it to the minisymposium on intervals at the PPAM 2022 conference (deadline: 20 May 2022).
If you can help me /are interested in contributing and co-authoring this submission, I would be delighted!
Kind regards
Nathalie Revol
Hello,
first of all, great work with this repository. It is great!
One test in libieeep1788_num (here) is
midRad [nai] [nai] = NaN NaN;
is it a typo? I think midRad
should take only one interval as input?
best regards
Luca
The standard for interval arithmetic defines the following exceptions which shall be signaled and are independent of the decoration system (decorated intervals).
UndefinedOperation
—if a constructor is sure that there is no such Level 1 interval.PossiblyUndefinedOperation
–if a constructor cannot guarantee whether a Level 1 interval existsInvalidOperand
—(not sure how this could happen) if a parameter does not represent a Level 2 interval on Level 3IntvlPartOfNaI
—if intervalPart (NaI) is calledIntvlOverflow
—(not in set-based arithmetic) if an operation cannot find a containing intervalExamples:
b-numsToInterval +infinity -infinity = [empty] signal UndefinedOperation;
intervalPart [nai] = [empty] signal IntvlPartOfNaI;
b-textToInterval "[1.0…01, 1.0…02]" = [1.0, 1.0…01] signal PossiblyUndefinedOperation;
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.