Yuto Horikawa
Yuto Horikawa
>For intervals, one interesting case is -0.0. Should -0.0 in 0..1 return true or false? It should be `true` because `-0.0 == 0` is `true`.
Should we drop the following constructor, not just the conversion? ```julia julia> d = (1)..(1+im) 1 + 0im..1 + 1im julia> 1 in d ERROR: MethodError: no method matching isless(::Complex{Int64},...
How about using macro? * `@open 1..2` (`Interval{:open,:open}(1,2)`) * `@leftopen 1..2` (`Interval{:open,:closed}(1,2)`) * `@rightopen 1..2` (`Interval{:closed,:open}(1,2)`)
Note that there still be some incorrect non-zero with `changebasis` function. ```julia julia> using BasicBSpline julia> p = 3 3 julia> P1 = BSplineSpace{p}(KnotVector(1:8)) BSplineSpace{3, Int64}(KnotVector([1, 2, 3, 4, 5,...
Or, split `fittingcontrolpoints` function into BasicBSplineFitting.jl package?
`+(::BSplineSpace, ::BSplineSpace)` is not always `BSplineSpace`. Here are counter examples: * `BSplineSpace{2}(KnotVector([0,0,0,1,1,1])) + BSplineSpace{3}(KnotVector([2,2,2,2,3,3,3,3]))` * `BSplineSpace{0}(KnotVector([0,1,2])) + BSplineSpace{3}(KnotVector([0,0,0,0,2,2,2,2]))`
This discussion may be a good reference. https://discourse.julialang.org/t/mathematica-bsplinecurve-in-julia/78107
[Other Interpolation Packages](http://juliamath.github.io/Interpolations.jl/latest/other_packages/#Other-Interpolation-Packages) may be a good reference.
**Before this PR** ```julia julia> using BasicBSpline, Zygote, BenchmarkTools julia> P = BSplineSpace{2}(KnotVector(0:12)) BSplineSpace{2, Int64}(KnotVector([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])) julia> bsplinebasis(P,1,2.3) 0.24500000000000013...
Thanks for the benchmarks again! I have tried the benchmark on another PC (intel CPU), and I found the performance improvements! **On the current master** ```julia julia> using FastGaussQuadrature, BenchmarkTools,...