diff --git a/Project.toml b/Project.toml index b28831ba..341d9449 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "TaylorSeries" uuid = "6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea" repo = "https://github.com/JuliaDiff/TaylorSeries.jl.git" -version = "0.10.11" +version = "0.10.12" [deps] InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" diff --git a/src/power.jl b/src/power.jl index 79e2be3d..c06bc92a 100644 --- a/src/power.jl +++ b/src/power.jl @@ -178,7 +178,7 @@ exploits `k_0`, the order of the first non-zero coefficient of `a`. end # Relevant for positive integer r, to avoid round-off errors - if isinteger(r) && (k > r*findlast(a)) + if isinteger(r) && r > 0 && (k > r*findlast(a)) @inbounds c[k] = zero(a[0]) return nothing end diff --git a/test/onevariable.jl b/test/onevariable.jl index f90af081..eae10bab 100644 --- a/test/onevariable.jl +++ b/test/onevariable.jl @@ -184,6 +184,12 @@ Base.iszero(::SymbNumber) = false @test Taylor1(BigFloat,5)/6 == 1im*Taylor1(5)/complex(0,BigInt(6)) @test Taylor1(BigFloat,5)/(6*Taylor1(3)) == 1/BigInt(6) @test Taylor1(BigFloat,5)/(6im*Taylor1(3)) == -1im/BigInt(6) + @test isapprox((1+(1.5+t)/4)^(-2), inv(1+(1.5+t)/4)^2, rtol=eps(Float64)) + @test isapprox((1+(big(1.5)+t)/4)^(-2), inv(1+(big(1.5)+t)/4)^2, rtol=eps(BigFloat)) + @test isapprox((1+(1.5+t)/4)^(-2), inv(1+(1.5+t)/4)^2, rtol=eps(Float64)) + @test isapprox((1+(big(1.5)+t)/4)^(-2), inv(1+(big(1.5)+t)/4)^2, rtol=eps(BigFloat)) + @test isapprox((1+(1.5+t)/5)^(-2.5), inv(1+(1.5+t)/5)^2.5, rtol=eps(Float64)) + @test isapprox((1+(big(1.5)+t)/5)^(-2.5), inv(1+(big(1.5)+t)/5)^2.5, rtol=2eps(BigFloat)) # These tests involve some sort of factorization @test t/(t+t^2) == 1/(1+t)