Comments (4)
Or just overload the constructor, e.g.
Interval(x::Float64, :tight)
vs
Interval(x::Float64, :accurate)
from intervalarithmetic.jl.
e.g.
function Interval(x::Float64, s::Symbol)
s == :tight && return convert(Interval{Float64}, rationalize(x))
s == :accurate && return Interval(prevfloat(x), nextfloat(x))
end
julia 0.6> @btime Interval(1/3, :tight)
231.728 ns (3 allocations: 128 bytes)
Interval(0.3333333333333333, 0.33333333333333337)
julia 0.6> @btime Interval(1/3, :accurate)
21.212 ns (0 allocations: 0 bytes)
Interval(0.33333333333333326, 0.33333333333333337)
cc @lbenet
from intervalarithmetic.jl.
Better yet:
julia 0.6> Interval(x::Float64, ::Type{Val{:tight}}) = convert(Interval{Float64}, rationalize(x))
IntervalArithmetic.Interval
julia 0.6> Interval(x::Float64, ::Type{Val{:accurate}}) = Interval(prevfloat(x), nextfloat(x))
IntervalArithmetic.Interval
julia 0.6> @btime Interval(1/3, Val{:tight})
207.937 ns (1 allocation: 80 bytes)
Interval(0.3333333333333333, 0.33333333333333337)
julia 0.6> @btime Interval(1/3, Val{:accurate})
12.242 ns (0 allocations: 0 bytes)
Interval(0.33333333333333326, 0.33333333333333337)
from intervalarithmetic.jl.
Very very nice !!!
from intervalarithmetic.jl.
Related Issues (20)
- Failure of `Interval{T}(x::AbstractIrrational)` HOT 7
- incorrect comparison for ieee standard HOT 1
- Make sure that the documentation is correct HOT 1
- Replacing CRlibm with CORE-MATH HOT 7
- Revive `@interval`
- constants in `@constraint` not working HOT 6
- "one" on complex intervals returns wrong value HOT 1
- Plotting intervals after removal of `IntervalBox` HOT 4
- Don't write inside of the package dir
- Non-thread safe use of `setrounding` HOT 11
- Incorrect rounding for extreme irrationals HOT 1
- Avoid `convert` to `Interval` in `^` HOT 23
- `quadrant` is not thread-safe
- Finding quadrants is flawed
- Should `intersect_interval` (or `hull`) return always `trv` decoration? HOT 7
- Compatibility with NaNMath.jl? HOT 1
- Compatibility with SparseArrays HOT 2
- Investigate incorporating testing as described in arxiv.org/abs/2205.11837 HOT 2
- Clarification on 'NG' Decoration HOT 2
- Warning seriously (using Logging.jl and with user settings)
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.