ZETA INDEX

ZETA _ _ _ _ _ _ _ _ _ _ _ _ operator

The Zeta operator returns Riemann's Zeta function,

Zeta (z) := sum(1/(k**z),k,1,infinity)

### syntax:

Zeta(<expression>)

### examples:

```
Zeta(2);

2
pi  / 6

on rounded;

Zeta 1.01;

100.577943338

```

Numerical computation for the Zeta function for arguments close to 1 are tedious, because the series is converging very slowly. In this case a formula (e.g. found in Bender/Orzag: Advanced Mathematical Methods for Scientists and Engineers, McGraw-Hill) is used.

No numerical approximation for complex arguments is done.

Bernoulli Euler Zeta

• BERNOULLI operator

• BERNOULLIP operator

• EULER operator

• EULERP operator

• ZETA operator

• BESSELJ INDEX

BESSELJ _ _ _ _ _ _ _ _ _ _ _ _ operator

The BesselJ operator returns the Bessel function of the first kind.

### syntax:

BesselJ(<order>,<argument>)

### examples:

```
BesselJ(1/2,pi);

0

on rounded;

BesselJ(0,1);

0.765197686558

```

BESSELY _ _ _ _ _ _ _ _ _ _ _ _ operator

The BesselY operator returns the Bessel function of the second kind.

### syntax:

BesselY(<order>,<argument>)

### examples:

```
BesselY (1/2,pi);

- sqrt(2) / pi

on rounded;

BesselY (1,3);

0.324674424792

```

The operator BesselY is also called Weber's function.

HANKEL1 _ _ _ _ _ _ _ _ _ _ _ _ operator

The Hankel1 operator returns the Hankel function of the first kind.

### syntax:

Hankel1(<order>,<argument>)

### examples:

```
on complex;

Hankel1 (1/2,pi);

- i * sqrt(2) / pi

Hankel1 (1,pi);

besselj(1,pi) + i*bessely(1,pi)

```

The operator Hankel1 is also called Bessel function of th e third kind. There is currently no numeric evaluation of Hankel functions.

HANKEL2 _ _ _ _ _ _ _ _ _ _ _ _ operator

The Hankel2 operator returns the Hankel function of the second kind.

### syntax:

Hankel2(<order>,<argument>)

### examples:

```
on complex;

Hankel2 (1/2,pi);

- i * sqrt(2) / pi

Hankel2 (1,pi);

besselj(1,pi) - i*bessely(1,pi)

```

The operator Hankel2 is also called Bessel function of th e third kind. There is currently no numeric evaluation of Hankel functions.

BESSELI _ _ _ _ _ _ _ _ _ _ _ _ operator

The BesselI operator returns the modified Bessel function I.

### syntax:

BesselI(<order>,<argument>)

### examples:

```
on rounded;

Besseli (1,1);

0.565159103992

```

The knowledge about the operator BesselI is currently fai rly limited.

BESSELK _ _ _ _ _ _ _ _ _ _ _ _ operator

The BesselK operator returns the modified Bessel function K.

### syntax:

BesselK(<order>,<argument>)

### examples:

```
df(besselk(0,x),x);

- besselk(1,x)

```

There is currently no numeric support for the operator BesselK .

STRUVEH _ _ _ _ _ _ _ _ _ _ _ _ operator

The StruveH operator returns Struve's H function.

### syntax:

StruveH(<order>,<argument>)

### examples:

```
struveh(-3/2,x);

- besselj(3/2,x) / i

```

STRUVEL _ _ _ _ _ _ _ _ _ _ _ _ operator

The StruveL operator returns the modified Struve L function .

### syntax:

StruveL(<order>,<argument>)

### examples:

```
struvel(-3/2,x);

besseli(3/2,x)

```

KUMMERM _ _ _ _ _ _ _ _ _ _ _ _ operator

The KummerM operator returns Kummer's M function.

### syntax:

KummerM(<parameter>,<parameter>,<argument>)

### examples:

```
kummerm(1,1,x);

x
e

on rounded;

kummerm(1,3,1.3);

1.62046942914

```

Kummer's M function is one of the Confluent Hypergeometric functio ns. For reference see the hypergeometric operator.

KUMMERU _ _ _ _ _ _ _ _ _ _ _ _ operator

The KummerU operator returns Kummer's U function.

### syntax:

KummerU(<parameter>,<parameter>,<argument>)

### examples:

```
df(kummeru(1,1,x),x)

- kummeru(2,2,x)

```

Kummer's U function is one of the Confluent Hypergeometric functio ns. For reference see the hypergeometric operator.

WHITTAKERW _ _ _ _ _ _ _ _ _ _ _ _ operator

The WhittakerW operator returns Whittaker's W function.

### syntax:

WhittakerW(<parameter>,<parameter>,<argument>)

### examples:

```
WhittakerW(2,2,2);

1
4*sqrt(2)*kummeru(-,5,2)
2
-------------------------
e

```

Whittaker's W function is one of the Confluent Hypergeometric func tions. For reference see the hypergeometric operator.

Bessel Functions

• BESSELJ operator

• BESSELY operator

• HANKEL1 operator

• HANKEL2 operator

• BESSELI operator

• BESSELK operator

• StruveH operator

• StruveL operator

• KummerM operator

• KummerU operator

• WhittakerW operator

• Airy_Ai INDEX

AIRY_AI _ _ _ _ _ _ _ _ _ _ _ _ operator

The Airy_Ai operator returns the Airy Ai function for a given argument.

### syntax:

Airy_Ai(<argument>)

### examples:

```
on complex;
on rounded;
Airy_Ai(0);

0.355028053888

Airy_Ai(3.45 + 17.97i);

- 5.5561528511e+9 - 8.80397899932e+9*i

```

AIRY_BI _ _ _ _ _ _ _ _ _ _ _ _ operator

The Airy_Bi operator returns the Airy Bi function for a given argument.

### syntax:

Airy_Bi(<argument>)

### examples:

```
Airy_Bi(0);

0.614926627446

Airy_Bi(3.45 + 17.97i);

8.80397899932e+9 - 5.5561528511e+9*i

```

AIRY_AIPRIME _ _ _ _ _ _ _ _ _ _ _ _ operator

The Airy_Aiprime operator returns the Airy Aiprime function for a given argument.

### syntax:

Airy_Aiprime(<argument>)

### examples:

```
Airy_Aiprime(0);

- 0.258819403793

Airy_Aiprime(3.45+17.97i);

- 3.83386421824e+19 + 2.16608828136e+19*i

```

AIRY_BIPRIME _ _ _ _ _ _ _ _ _ _ _ _ operator

The Airy_Biprime operator returns the Airy Biprime function for a given argument.

### syntax:

Airy_Biprime(<argument>)

### examples:

```
Airy_Biprime(0);

Airy_Biprime(3.45 + 17.97i);

3.84251916792e+19 - 2.18006297399e+19*i

```

Airy Functions

• Airy_Ai operator

• Airy_Bi operator

• Airy_Aiprime operator

• Airy_Biprime operator

• JacobiSN INDEX

JACOBISN _ _ _ _ _ _ _ _ _ _ _ _ operator

The Jacobisn operator returns the Jacobi Elliptic function sn.

### syntax:

Jacobisn(<expression>,<integer>)

### examples:

```
Jacobisn(0.672, 0.36)

0.609519691792

Jacobisn(1,0.9)

0.770085724907881

```

JACOBICN _ _ _ _ _ _ _ _ _ _ _ _ operator

The Jacobicn operator returns the Jacobi Elliptic function cn.

### syntax:

Jacobicn(<expression>,<integer>)

### examples:

```
Jacobicn(7.2, 0.6)

0.837288298482018

Jacobicn(0.11, 19)

0.994403862690043 - 1.6219006985556e-16*i

```

JACOBIDN _ _ _ _ _ _ _ _ _ _ _ _ operator

The Jacobidn operator returns the Jacobi Elliptic function dn.

### syntax:

Jacobidn(<expression>,<integer>)

### examples:

```
Jacobidn(15, 0.683)

0.640574162024592

Jacobidn(0,0)

1

```

JACOBICD _ _ _ _ _ _ _ _ _ _ _ _ operator

The Jacobicd operator returns the Jacobi Elliptic function cd.

### syntax:

Jacobicd(<expression>,<integer>)

### examples:

```
Jacobicd(1, 0.34)

0.657683337805273

Jacobicd(0.8,0.8)

0.925587311582301

```

JACOBISD _ _ _ _ _ _ _ _ _ _ _ _ operator

The Jacobisd operator returns the Jacobi Elliptic function sd.

### syntax:

Jacobisd(<expression>,<integer>)

### examples:

```
Jacobisd(12, 0.4)

0.357189729437272

Jacobisd(0.35,1)

- 1.17713873203043

```

JACOBIND _ _ _ _ _ _ _ _ _ _ _ _ operator

The Jacobind operator returns the Jacobi Elliptic function nd.

### syntax:

Jacobind(<expression>,<integer>)

### examples:

```
Jacobind(0.2, 17)

1.46553203037507 + 0.0000000000334032759313703*i

Jacobind(30, 0.001)

1.00048958438

```

JACOBIDC _ _ _ _ _ _ _ _ _ _ _ _ operator

The Jacobidc operator returns the Jacobi Elliptic function dc.

### syntax:

Jacobidc(<expression>,<integer>)

### examples:

```
Jacobidc(0.003,1)

1

Jacobidc(2, 0.75)

6.43472885111

```

JACOBINC _ _ _ _ _ _ _ _ _ _ _ _ operator

The Jacobinc operator returns the Jacobi Elliptic function nc.

### syntax:

Jacobinc(<expression>,<integer>)

### examples:

```
Jacobinc(1,0)

1.85081571768093

Jacobinc(56, 0.4387)

39.304842663512

```

JACOBISC _ _ _ _ _ _ _ _ _ _ _ _ operator

The Jacobisc operator returns the Jacobi Elliptic function sc.

### syntax:

Jacobisc(<expression>,<integer>)

### examples:

```
Jacobisc(9, 0.88)

- 1.16417697982095

Jacobisc(0.34, 7)

0.305851938390775 - 9.8768100944891e-12*i

```

JACOBINS _ _ _ _ _ _ _ _ _ _ _ _ operator

The Jacobins operator returns the Jacobi Elliptic function ns.

### syntax:

Jacobins(<expression>,<integer>)

### examples:

```
Jacobins(3, 0.9)

1.00945801599785

Jacobins(0.887, 15)

0.683578280513975 - 0.85023411082469*i

```

JACOBIDS _ _ _ _ _ _ _ _ _ _ _ _ operator

The Jacobisn operator returns the Jacobi Elliptic function ds.

### syntax:

Jacobids(<expression>,<integer>)

### examples:

```
Jacobids(98,0.223)

- 1.061253961477

Jacobids(0.36,0.6)

2.76693172243692

```

JACOBICS _ _ _ _ _ _ _ _ _ _ _ _ operator

The Jacobics operator returns the Jacobi Elliptic function cs.

### syntax:

Jacobics(<expression>,<integer>)

### examples:

```
Jacobics(0, 0.767)

infinity

Jacobics(1.43, 0)

0.141734127352112

```

JACOBIAMPLITUDE _ _ _ _ _ _ _ _ _ _ _ _ operator

The JacobiAmplitude operator returns the amplitude of u.

### syntax:

JacobiAmplitude(<expression>,<integer>)

### examples:

```
JacobiAmplitude(7.239, 0.427)

0.0520978301448978

JacobiAmplitude(0,0.1)

0

```

Amplitude u = asin(Jacobisn(u,m))

AGM_FUNCTION _ _ _ _ _ _ _ _ _ _ _ _ operator

The AGM_function operator returns a list of (N, AGM, list of aNtoa0, list of bNtob0, list of cNtoc0) where a0, b0 and c0 are the initial values; N is the index number of the last term used to generate the AGM. AGM is the Arithmetic Geometric Mean.

### syntax:

AGM_function(<integer>,<integer>,<integer>)

### examples:

```
AGM_function(1,1,1)

1,1,1,1,1,1,0,1

AGM_function(1, 0.1, 1.3)

{6,
2.27985615996629,
{2.27985615996629, 2.27985615996629,
2.2798561599706, 2.2798624278857,
2.28742283656583, 2.55, 1},
{2.27985615996629, 2.27985615996629,
2.27985615996198, 2.2798498920555,
2.27230201920557, 2.02484567313166, 4.1},
{0, 4.30803136219904e-12, 0.0000062679151007581,
0.00756040868012758, 0.262577163434171, - 1.55, 5.9}}

```

The other Jacobi functions use this function with initial values a0=1, b0=sqrt(1-m), c0=sqrt(m).

LANDENTRANS _ _ _ _ _ _ _ _ _ _ _ _ operator

The landentrans operator generates the descending landen transformation of the given imput values, returning a list of these values; initial to final in each case.

### syntax:

landentrans(<expression>,<integer>)

### examples:

```
landentrans(0,0.1)

{{0,0,0,0,0},{0.1,0.0025041751943776,

0.00000156772498954046,6.1444078 9914461e-13,0}}

```

The first list ascends in value, and the second descends in value.

ELLIPTICF _ _ _ _ _ _ _ _ _ _ _ _ operator

The EllipticF operator returns the Elliptic Integral of the First Kind.

### syntax:

EllitpicF(<expression>,<integer>)

### examples:

```
EllipticF(0.3, 8.222)

0.3

EllipticF(7.396, 0.1)

7.58123216114307

```

The Complete Elliptic Integral of the First Kind can be found by putting the first argument to pi/2 or by using EllipticK and the second argument.

ELLIPTICK _ _ _ _ _ _ _ _ _ _ _ _ operator

The EllipticK operator returns the Elliptic value K.

### syntax:

EllipticK(<integer>)

### examples:

```
EllipticK(0.2)

1.65962359861053

EllipticK(4.3)

0.808442364282734 - 1.05562492399206*i

EllipticK(0.000481)

1.57098526617635

```

The EllipticK function is the Complete Elliptic Integral of the First Kind.

ELLIPTICKPRIME _ _ _ _ _ _ _ _ _ _ _ _ operator

The EllipticK' operator returns the Elliptic value K(m).

### syntax:

EllipticKprime(<integer>)

### examples:

```
EllipticKprime(0.2)

2.25720532682085

EllipticKprime(4.3)

1.05562492399206

EllipticKprime(0.000481)

5.206621921966

```

The EllipticKprime function is the Complete Elliptic Inte gral of the First Kind of (1-m).

ELLIPTICE _ _ _ _ _ _ _ _ _ _ _ _ operator

The EllipticE operator used with two arguments returns the Elliptic Integral of the Second Kind.

### syntax:

EllipticE(<expression>,<integer>)

### examples:

```
EllipticE(1.2,0.22)

1.15094019180949

EllipticE(0,4.35)

0

EllipticE(9,0.00719)

8.98312465929145

```

The Complete Elliptic Integral of the Second Kind can be obtained by using just the second argument, or by using pi/2 as the first argument.

The EllipticE operator used with one argument returns the Elliptic value E.

### syntax:

EllipticE(<integer>)

### examples:

```
EllipticE(0.22)

1.48046637439519

EllipticE(pi/2, 0.22)

1.48046637439519

```

ELLIPTICTHETA _ _ _ _ _ _ _ _ _ _ _ _ operator

The EllipticTheta operator returns one of the four Theta functions. It cannot except any number other than 1,2,3 or 4 as its first argument.

### syntax:

EllipticTheta(<integer>,<expression>,<integer>)

### examples:

```
EllipticTheta(1, 1.4, 0.72)

0.91634775373

EllipticTheta(2, 3.9, 6.1 )

-48.0202736969 + 20.9881034377 i

EllipticTheta(3, 0.67, 0.2)

1.0083077448

EllipticTheta(4, 8, 0.75)

0.894963369304

EllipticTheta(5, 1, 0.1)

***** In EllipticTheta(a,u,m); a = 1,2,3 or 4.

```

Theta functions are important because every one of the Jacobian Elliptic functions can be expressed as the ratio of two theta functions.

JACOBIZETA _ _ _ _ _ _ _ _ _ _ _ _ operator

The JacobiZeta operator returns the Jacobian function Zeta.

### syntax:

JacobiZeta(<expression>,<integer>)

### examples:

```
JacobiZeta(3.2, 0.8)

- 0.254536403439

JacobiZeta(0.2, 1.6)

0.171766095970451 - 0.0717028569800147*i

```

The Jacobian function Zeta is related to the Jacobian function The ta. But it is significantly different from Riemann's Zeta Function Zeta.

Jacobi's Elliptic Functions and Elliptic Integrals

• JacobiSN operator

• JacobiCN operator

• JacobiDN operator

• JacobiCD operator

• JacobiSD operator

• JacobiND operator

• JacobiDC operator

• JacobiNC operator

• JacobiSC operator

• JacobiNS operator

• JacobiDS operator

• JacobiCS operator

• JacobiAMPLITUDE operator

• AGM_FUNCTION operator

• LANDENTRANS operator

• EllipticF operator

• EllipticK operator

• EllipticKprime operator

• EllipticE operator

• EllipticTHETA operator

• JacobiZETA operator

• POCHHAMMER INDEX

POCHHAMMER _ _ _ _ _ _ _ _ _ _ _ _ operator

The Pochhammer operator implements the Pochhammer notation (shifted factorial).

### syntax:

Pochhammer(<expression>,<expression>)

### examples:

```
pochhammer(17,4);

116280

pochhammer(1/2,z);

factorial(2*z)
--------------------
2*z
(2   *factorial(z))

```

A number of complex rules for Pochhammer are inactive, be cause they cause a huge system load in algebraic mode. If one wants to use more rules for the simplification of Pochhammer's notation, one can do:

let special!*pochhammer!*rules;

GAMMA _ _ _ _ _ _ _ _ _ _ _ _ operator

The Gamma operator returns the Gamma function.

### syntax:

Gamma(<expression>)

### examples:

```
gamma(10);

362880

gamma(1/2);

sqrt(pi)

```

BETA _ _ _ _ _ _ _ _ _ _ _ _ operator

The Beta operator returns the Beta function defined by

Beta (z,w) := defint(t**(z-1)* (1 - t)**(w-1),t,0,1) .

### syntax:

Beta(<expression>,<expression>)

### examples:

```
Beta(2,2);

1 / 6

Beta(x,y);

gamma(x)*gamma(y) / gamma(x + y)

```

The operator Beta is simplified towards the GAMMA operator.

PSI _ _ _ _ _ _ _ _ _ _ _ _ operator

The Psi operator returns the Psi (or DiGamma) function.

Psi(x) := df(Gamma(z),z)/ Gamma (z)

### syntax:

Gamma(<expression>)

### examples:

```
Psi(3);

(2*log(2) + psi(1/2) + psi(1) + 3)/2

on rounded;

- Psi(1);

0.577215664902

```

Euler's constant can be found as - Psi(1).

POLYGAMMA _ _ _ _ _ _ _ _ _ _ _ _ operator

The Polygamma operator returns the Polygamma function.

Polygamma(n,x) := df(Psi(z),z,n);

### syntax:

Polygamma(<integer>,<expression>)

### examples:

```
Polygamma(1,2);

2
(pi   - 6) / 6

on rounded;

Polygamma(1,2.35);

0.52849689109

```

The Polygamma function is used for simplification of the ZETA function for some arguments.

Gamma and Related Functions

• POCHHAMMER operator

• GAMMA operator

• BETA operator

• PSI operator

• POLYGAMMA operator

• DILOG_extended INDEX

DILOG EXTENDED _ _ _ _ _ _ _ _ _ _ _ _ operator

The package specfn supplies an extended support for the dilog operator which implements the dilog arithm function.

dilog(x) := - defint(log(t)/(t - 1),t,1,x);

### syntax:

Dilog(<order>,<expression>)

### examples:

```
defint(log(t)/(t - 1),t,1,x);

- dilog (x)

dilog 2;

2
- pi  /12

on rounded;

Dilog 20;

- 5.92783972438

```

The operator Dilog is sometimes called Spence's Integral for n = 2.

LAMBERT\_W FUNCTION _ _ _ _ _ _ _ _ _ _ _ _ operator

Lambert's W function is the inverse of the function w * e**w. It is used in the solve package for equations containing exponentials and logarithms.

### syntax:

Lambert_W(<z>)

### examples:

```
Lambert_W(-1/e);

-1

solve(w + log(w),w);

w=lambert_w(1)

on rounded;

Lambert_W(-0.05);

- 0.0527059835515

```

The current implementation will compute the principal branch in rounded mode only.

Miscellaneous Functions

• DILOG extended operator

• Lambert\_W function operator