Conversation
|
Very nice, thanks! Whats the reason for removing @interval T a b? |
|
SparseArrays seems to have a hook |
Well that's just for consistency, since the method |
|
Aqua tests are failing on Julia 1.10 due to method ambiguities with |
|
I have removed the old functions which controlled the default behaviour for the flavor, matrix multiplication, the rounding, the power. |
|
Codecov ReportAttention: Patch coverage is
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## master #698 +/- ##
==========================================
- Coverage 78.04% 77.58% -0.47%
==========================================
Files 30 30
Lines 2920 2913 -7
==========================================
- Hits 2279 2260 -19
- Misses 641 653 +12 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Note: maybe |
|
The problem I see with the discussion around I think we could have them but within a submodule (e.g., |
|
I think a reasonable philosophy for v1.0 is
It could be nice to have some in-between for specific applications. But I think it is reasonable for the time being to redirect users to use |
|
Other things to do:
|
|
I have added the following definition in the ForwardDiff extension: ForwardDiff.DiffRules._abs_deriv(x::Dual{T,<:Interval}) where {T} =
Dual{T}(ForwardDiff.DiffRules._abs_deriv(value(x)), zero(partials(x)))We now get the behaviour: julia> using IntervalArithmetic, ForwardDiff
julia> g(x) = abs(x)^2
g (generic function with 1 method)
julia> a = ForwardDiff.hessian(v -> g(v[1]), [interval(0)])
1×1 Matrix{Interval{Float64}}:
[0.0, 0.0]_trv_NG
julia> b = ForwardDiff.hessian(v -> g(v[1]), [interval(-1, 1)])
1×1 Matrix{Interval{Float64}}:
[-2.0, 2.0]_trv_NG
julia> c = ForwardDiff.hessian(v -> g(v[1]), [interval(1)])
1×1 Matrix{Interval{Float64}}:
[2.0, 2.0]_com_NG
julia> d = ForwardDiff.hessian(v -> g(v[1]), [interval(-1)])
1×1 Matrix{Interval{Float64}}:
[2.0, 2.0]_com_NG(it used to error before) Obviously, the correct answer is
So @Kolaru any thoughts? Could this break IntervalRootFinding.jl? EDIT: now the derivative of |
|
On this version of the 1.0 release, julia> x = interval(1); y = interval(2); z = interval(2, 3)
[2.0, 3.0]_com
julia> x == y
false
julia> y == z
ERROR: ArgumentError: `==` is purposely not supported when the number is contained in the interval. See instead `isthin`
julia> z == z
ERROR: ArgumentError: `==` is purposely not supported when the intervals are overlapping. See instead `isequal_interval`
julia> x < y
true
julia> y < y
false
julia> z < z
ERROR: ArgumentError: `<` is purposely not supported when the intervals are overlapping. See instead `strictprecedes`
julia> y in z
ERROR: ArgumentError: `==` is purposely not supported when the number is contained in the interval. See instead `isthin`
julia> z in z
ERROR: ArgumentError: `==` is purposely not supported when the intervals are overlapping. See instead `isequal_interval`
julia> issubset(y, z)
ERROR: ArgumentError: `==` is purposely not supported when the number is contained in the interval. See instead `isthin`
julia> issubset(z, z)
ERROR: ArgumentError: `==` is purposely not supported when the intervals are overlapping. See instead `isequal_interval`julia> interval(2) ≤ interval(2)
true |
|
@Kolaru if you can double check the changes |
|
@OlivierHnt I was a bit slow, but still double checked the last changes, and everything looks good to me. It is really great we finally made it :D |
This PR aims to prepare the 1.0 release.