Giter Club home page Giter Club logo

Comments (4)

dpsanders avatar dpsanders commented on July 22, 2024

Or just overload the constructor, e.g.

Interval(x::Float64, :tight)

vs

Interval(x::Float64, :accurate)

from intervalarithmetic.jl.

dpsanders avatar dpsanders commented on July 22, 2024

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.

dpsanders avatar dpsanders commented on July 22, 2024

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.

lbenet avatar lbenet commented on July 22, 2024

Very very nice !!!

from intervalarithmetic.jl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.