JuliaDiff / JuliaDiff/TaylorDiff.jl
Correctness issues + annoying behavior
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 83
- Forks
- 12
- PR merge metrics
- No merged PRs in 30d
Description
Hey,
The following behaviors are really annoying:
julia> t = TaylorScalar{Float64, 3}((Inf, 1.0, 0.0))
TaylorScalar{Float64, 3}((Inf, 1.0, 0.0))
julia> t+1
TaylorScalar{Float64, 3}((Inf, 1.0, 0.0)) ##### OK
julia> t*1
TaylorScalar{Float64, 3}((Inf, NaN, NaN)) ##### Should be Inf, 1.0, 0.0
julia> t*2
TaylorScalar{Float64, 3}((Inf, NaN, NaN)) ##### Should be Inf, 2.0, 0.0
julia>
The last one even looks like a correctness issue...
but also :
julia> t2 = TaylorScalar{Float64, 3}((0.0, 1.0, 0.0))
TaylorScalar{Float64, 3}((0.0, 1.0, 0.0))
julia> t2^1
TaylorScalar{Float64, 3}((0.0, NaN, NaN)) ##### Should be 0.0, 1.0, 0.0
julia> t2^2
TaylorScalar{Float64, 3}((0.0, NaN, NaN)) ##### Should not be NaNs...
julia>
Using TaylorSeries.jl dos not produce these NaNs, and this makes my test cases fail... Do you think this is something that would be fixable in the current state of TaylorDiff ?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the TaylorScalar multiplication and power examples in the issue, then inspect the implementations of TaylorScalar arithmetic and exponentiation. Compare the results with TaylorSeries.jl and add coverage for the Inf and zero-base cases; done means the shown operations produce the stated coefficients without NaNs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100