diff --git a/Project.toml b/Project.toml index 4829f3a..b697659 100644 --- a/Project.toml +++ b/Project.toml @@ -13,7 +13,7 @@ SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" IrrationalConstants = "0.1.1, 0.2" LogExpFunctions = "0.3.2" NaNMath = "0.3, 1" -SpecialFunctions = "0.10, 1.0, 2" +SpecialFunctions = "1.1, 2" julia = "1.3" [extras] diff --git a/src/rules.jl b/src/rules.jl index cbd4448..7b9b59e 100644 --- a/src/rules.jl +++ b/src/rules.jl @@ -181,6 +181,8 @@ _abs_deriv(x) = sign(x) @define_diffrule SpecialFunctions.ellipe(m) = :( (SpecialFunctions.ellipe($m) - SpecialFunctions.ellipk($m)) / (2 * $m) ) +@define_diffrule SpecialFunctions.expint(x) = :( -exp(-$x) / $x ) + # TODO: # # eta @@ -236,6 +238,10 @@ _abs_deriv(x) = sign(x) @define_diffrule SpecialFunctions.logbeta(a, b) = :( SpecialFunctions.digamma($a) - SpecialFunctions.digamma($a + $b) ), :( SpecialFunctions.digamma($b) - SpecialFunctions.digamma($a + $b) ) +# derivative wrt to `ν` is not implemented +@define_diffrule SpecialFunctions.expint(ν, x) = + :NaN, :( -SpecialFunctions.expint($ν - 1, $x) ) + # derivative wrt to `s` is not implemented @define_diffrule SpecialFunctions.zeta(s, z) = :NaN, :( - $s * SpecialFunctions.zeta($s + 1, $z) )