-
Notifications
You must be signed in to change notification settings - Fork 70
Release 1.0 #698
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Release 1.0 #698
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 |
This PR aims to prepare the 1.0 release.