Comments (9)
(Closed accidentally.)
from intervalarithmetic.jl.
I understand the idea, but I'm not so sure about it; I'm simply thinking about the "validated" part of all that.
What about implementing an UnsafeInterval
type (or whatever name you want) which does what you want (and is not exported), and the relevant methods to convert it to an Interval
, which involves checking the correctness of the interval?
from intervalarithmetic.jl.
Given a valid interval, all the functions in the library will return a valid interval.
(If they didn't, then the current test suite would fail.)
So the problem is only constructing valid intervals to start with, which is what the interval
function will check for.
Using an UnsafeInterval
type will simply require rewriting every function in the library to use it ;)
from intervalarithmetic.jl.
Although it's possible that it would be useful to make a SafeInterval
type that does all the checking (as currently stands), make both of them subtypes of an abstract supertype, and rewrite everything to use the abstract supertype.
abstract Interval
immutable UnsafeInterval <: Interval
immutable SafeInterval <: Interval
and run the test suite with both types sometimes.
from intervalarithmetic.jl.
Whatever (SafeInterval
or UnsafeInterval
) I think this is more convenient than the function interval
, since we would be dispatching on them.
The question is how to enforce the user to use the SafeInterval
? I think we should do it by only exporting the SafeInterval
version (currently Interval
) and constructing a fast conversion from UnsafeInterval
to SafeInterval
. Yet, I'm not sure how to avoid the checks in SafeInterval
...
from intervalarithmetic.jl.
I have implemented a simpler solution in the simplify_constructor
branch: there is a global variable validity_check
defined at the start of intervals.jl
. If it is true, then the validity check is compiled into the constructor; if not, then the validity check is omitted.
Currently you have to manually go and change it in that file, and then do using IntervalArithmetic
, and validity checks will be enabled.
If validity checks are disabled, then the interval
function validates the input and creates the interval.
from intervalarithmetic.jl.
Not sure what else there is to do here.
from intervalarithmetic.jl.
Same as for #36...
from intervalarithmetic.jl.
This has been done: the Interval
constructor does no checks; checks are done by using interval
.
from intervalarithmetic.jl.
Related Issues (20)
- Clarification on 'NG' Decoration HOT 2
- Warning seriously (using Logging.jl and with user settings)
- Don't display `NG` when `decorations = false` HOT 1
- ForwardDiff with min, max, and clamp HOT 3
- `string(x::Interval)` is not working correctly HOT 1
- Unclear error for malformed interval
- Can't multiply a `BareInterval` by a scalar HOT 5
- Document `in` behaviour HOT 2
- Define ` ∩` and `∪` for `BareInterval` HOT 6
- Define and export Heaviside function HOT 2
- No mechanism to define functions restricted to a domain HOT 2
- Piecewise functions HOT 5
- Add `\infty` symbol to Symbols module HOT 1
- `zero(emptyinterval())` should be empty HOT 1
- Expose domain of functions HOT 5
- `hull` with `NaI` gives non-NaI HOT 1
- Reinstate fast rounding with `prevfloat` and `nextfloat` HOT 2
- Give a hand to downstream packages to update to v0.22
- Define `x // 3` for an interval `x` HOT 2
- Document the decoration and flag system HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from intervalarithmetic.jl.