2 from sympy
.core
import SingleValuedFunction
, S
, Basic
, pi
4 ###############################################################################
5 ###################### HURWITZ GENERALIZED ZETA FUNCTION ######################
6 ###############################################################################
8 class zeta(SingleValuedFunction
):
13 def canonize(cls
, z
, a
=S
.One
):
14 z
, a
= map(Basic
.sympify
, (z
, a
))
16 if isinstance(a
, Basic
.Number
):
17 if isinstance(a
, Basic
.NaN
):
19 elif isinstance(a
, Basic
.Zero
):
22 if isinstance(z
, Basic
.Number
):
23 if isinstance(z
, Basic
.NaN
):
25 elif isinstance(z
, Basic
.Infinity
):
27 elif isinstance(z
, Basic
.Zero
):
32 elif isinstance(z
, Basic
.One
):
33 return S
.ComplexInfinity
34 elif isinstance(z
, Basic
.Integer
):
35 if isinstance(a
, Basic
.Integer
):
37 zeta
= (-1)**z
* Basic
.bernoulli(-z
+1)/(-z
+1)
39 B
, F
= Basic
.bernoulli(z
), Basic
.Factorial(z
)
40 zeta
= 2**(z
-1) * abs(B
) * pi
**z
/ F
43 return zeta
+ Basic
.harmonic(abs(a
), z
)
45 return zeta
- Basic
.harmonic(a
-1, z
)
48 class dirichlet_eta(SingleValuedFunction
):
50 Dirichlet eta function
59 return (1-2**(1-s
)) * zeta(s
)