## org.jscience.mathematics.analysis.elliptic Class Jacobi

```java.lang.Object
org.jscience.mathematics.analysis.elliptic.Elliptic
org.jscience.mathematics.analysis.elliptic.Jacobi
```

`public class Jacobiextends Elliptic`

Implementation for Jacobi's elliptic functions.

Attention! This class is not thread save. This is usually no problem, when you do numerics.

Method Summary
`static Complex` ```cn(Complex u, Complex k)```
Returns cn(u,k).
`static void` ```cn(Complex u, Complex tau, Complex[] thetaConstants, Complex cnOfU)```
Computes cn(u,k(τ)) for given latiuce paramter τ, and theta constants.
`static double` ```cn(double u, double k)```
Returns cn(u,k).
`static Complex` ```dn(Complex u, Complex k)```
Returns dn(u,k).
`static void` ```dn(Complex u, Complex tau, Complex[] thetaConstants, Complex dnOfU)```
Computes dn(u,k(τ)) for given latiuce paramter τ, and theta constants.
`static double` ```dn(double u, double k)```
Returns dn(u,k).
`static Complex` `K_from_k(Complex k)`
Returns quarter period K as function of the modulus k.
`static void` ```K_from_k(Complex k, Complex K)```
Computes quarter period K as function of the modulus k.
`static Complex` ```K_from_KPrime_and_tau(Complex KPrime, Complex tau)```
Returns quarter period K as function of complementary quarter period K' and lattice parameter τ.
`static void` ```K_from_KPrime_and_tau(Complex KPrime, Complex tau, Complex K)```
Computes quarter period K as function of complementary quarter period K' and lattice parameter τ.
`static Complex` `k_from_thetaConstants(Complex[] thetaConstants)`
Returns modulus k as function of theta constants.
`static Complex` `K_from_thetaConstants(Complex[] thetaConstants)`
Returns quarter period K as function of theta constants.
`static void` ```k_from_thetaConstants(Complex[] thetaConstants, Complex k)```
Computes modulus k as function of theta constants
`static void` ```K_from_thetaConstants(Complex[] thetaConstants, Complex K)```
Computes quarter period K as function of theta constants.
`static Complex` ```KPrime_from_K_and_tau(Complex K, Complex tau)```
Returns complementary quarter period K' as function of quarter period K and lattice parameter τ.
`static void` ```KPrime_from_K_and_tau(Complex K, Complex tau, Complex KPrime)```
Computes complementary quarter period K' as function of quarter period K and lattice parameter τ.
`static Complex` `kPrime_from_k(Complex k)`
Returns complementary modulus k' as function of the modulus.
`static Complex` `KPrime_from_k(Complex k)`
Returns complementary quarter Period K' as function of the modulus k.
`static void` ```kPrime_from_k(Complex k, Complex kPrime)```
Computes complementary modulus k' as function of the modulus.
`static void` ```KPrime_from_k(Complex k, Complex KPrime)```
Computes cmplementary quarter period K' as function of the modulus k.
`static double` `kPrime_from_k(double k)`
Returns complementary modulus k' as function of the modulus.
`static Complex` `kPrime_from_thetaConstants(Complex[] thetaConstants)`
Returns complementary modulus k' as function of theta constants.
`static void` ```kPrime_from_thetaConstants(Complex[] thetaConstants, Complex kPrime)```
Computes complementary modulus k' as function theta constants.
`static Complex` ```sn(Complex u, Complex k)```
Returns sn(u,k).
`static void` ```sn(Complex u, Complex tau, Complex[] thetaConstants, Complex snOfU)```
Computes sn(u,k(τ)) for given latiuce paramter τ, and theta constants.
`static double` ```sn(double u, double k)```
Returns sn(u,k).
`static Complex` `tau_from_k(Complex k)`
Computes lattice parameter τ as function of modulus k.
`static void` ```tau_from_k(Complex k, Complex tau)```
Computes lattice parameter τ as function of modulus k.
`static Complex` `tauPrime_from_tau(Complex tau)`
Returns complementary lattice paramter τ' = -1/τ for lattice parameter τ.
`static void` ```tauPrime_from_tau(Complex tau, Complex tauPrime)```
Computes complementary lattice paramter τ' = -1/τ for lattice parameter τ.

Methods inherited from class org.jscience.mathematics.analysis.elliptic.Elliptic
`theta, theta, theta0, theta0, theta1, theta1, theta2, theta2, theta3, theta3, theta4, theta4, thetaConstants, thetaConstants`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### sn

```public static void sn(Complex u,
Complex tau,
Complex[] thetaConstants,
Complex snOfU)```
Computes sn(u,k(τ)) for given latiuce paramter τ, and theta constants.

Parameters:
`u` - argument
`tau` - lattice parameter
`thetaConstants` - theta constants
`snOfU` - sn(u,k(τ)) (on output)
`Elliptic.thetaConstants(Complex)`, `tau_from_k(Complex)`, `sn(Complex,Complex)`, `sn(double,double)`

### sn

```public static Complex sn(Complex u,
Complex k)```
Returns sn(u,k). It computes the lattice paramter τ as function of k, and further the @theta;-constants. Therefore in most cases it is more efficient to hash these values and call `sn(Complex,Complex,Complex[],Complex)`.

Parameters:
`u` - argument
`k` - modulus
Returns:
sn(u,k)
`Elliptic.thetaConstants(Complex)`, `tau_from_k(Complex)`, `sn(Complex,Complex,Complex[],Complex)`, `sn(double,double)`

### sn

```public static double sn(double u,
double k)```
Returns sn(u,k). It computes the lattice paramter τ as function of k, and further the @theta;-constants. Therefore in most cases it is more efficient to hash these values and call `sn(Complex,Complex,Complex[],Complex)`.

Parameters:
`u` - argument
`k` - modulus
Returns:
sn(u,k)
`Elliptic.thetaConstants(Complex)`, `tau_from_k(Complex)`, `sn(Complex,Complex,Complex[],Complex)`, `sn(Complex,Complex)`

### cn

```public static void cn(Complex u,
Complex tau,
Complex[] thetaConstants,
Complex cnOfU)```
Computes cn(u,k(τ)) for given latiuce paramter τ, and theta constants.

Parameters:
`u` - argument
`tau` - lattice parameter
`thetaConstants` - theta constants
`cnOfU` - sn(u,k(τ)) (on output)
`Elliptic.thetaConstants(Complex)`, `tau_from_k(Complex)`, `cn(Complex,Complex)`

### cn

```public static Complex cn(Complex u,
Complex k)```
Returns cn(u,k). It computes the lattice paramter τ as function of k, and further the @theta;-constants. Therefore in most cases it is more efficient to hash these values and call `cn(Complex,Complex,Complex[],Complex)`.

Parameters:
`u` - argument
`k` - modulus
Returns:
cn(u,k)
`Elliptic.thetaConstants(Complex)`, `tau_from_k(Complex)`, `cn(Complex,Complex,Complex[],Complex)`

### cn

```public static double cn(double u,
double k)```
Returns cn(u,k). It computes the lattice paramter τ as function of k, and further the @theta;-constants. Therefore in most cases it is more efficient to hash these values and call `cn(Complex,Complex,Complex[],Complex)`.

Parameters:
`u` - argument
`k` - modulus
Returns:
cn(u,k)
`Elliptic.thetaConstants(Complex)`, `tau_from_k(Complex)`, `cn(Complex,Complex,Complex[],Complex)`, `cn(Complex,Complex)`

### dn

```public static void dn(Complex u,
Complex tau,
Complex[] thetaConstants,
Complex dnOfU)```
Computes dn(u,k(τ)) for given latiuce paramter τ, and theta constants.

Parameters:
`u` - argument
`tau` - lattice parameter
`thetaConstants` - theta constants
`dnOfU` - sn(u,k(τ)) (on output)
`Elliptic.thetaConstants(Complex)`, `tau_from_k(Complex)`, `dn(Complex,Complex)`

### dn

```public static Complex dn(Complex u,
Complex k)```
Returns dn(u,k). It computes the lattice paramter τ as function of k, and further the @theta;-constants. Therefore in most cases it is more efficient to hash these values and call `dn(Complex,Complex,Complex[],Complex)`.

Parameters:
`u` - argument
`k` - modulus
Returns:
dn(u,k)
`Elliptic.thetaConstants(Complex)`, `tau_from_k(Complex)`, `dn(Complex,Complex,Complex[],Complex)`

### dn

```public static double dn(double u,
double k)```
Returns dn(u,k). It computes the lattice paramter τ as function of k, and further the @theta;-constants. Therefore in most cases it is more efficient to hash these values and call `dn(Complex,Complex,Complex[],Complex)`.

Parameters:
`u` - argument
`k` - modulus
Returns:
dn(u,k)
`Elliptic.thetaConstants(Complex)`, `tau_from_k(Complex)`, `dn(Complex,Complex,Complex[],Complex)`, `dn(Complex,Complex)`

### kPrime_from_k

```public static void kPrime_from_k(Complex k,
Complex kPrime)```
Computes complementary modulus k' as function of the modulus.

Parameters:
`k` - modulus
`kPrime` - complementary modulus k'= sqrt( 1-k*k ) (on output)
`kPrime_from_k(Complex)`

### kPrime_from_k

`public static Complex kPrime_from_k(Complex k)`
Returns complementary modulus k' as function of the modulus.

Parameters:
`k` - modulus
Returns:
complementary modulus k'= sqrt( 1-k*k )
`kPrime_from_k(Complex,Complex)`

### kPrime_from_k

`public static double kPrime_from_k(double k)`
Returns complementary modulus k' as function of the modulus.

Parameters:
`k` - modulus
Returns:
complementary modulus k'= sqrt( 1-k*k )
`kPrime_from_k(Complex,Complex)`

### K_from_k

```public static void K_from_k(Complex k,
Complex K)```
Computes quarter period K as function of the modulus k.

Parameters:
`k` - modulus
`K` - quarter period K (on output) #see K_from_k(Complex)

### K_from_k

`public static Complex K_from_k(Complex k)`
Returns quarter period K as function of the modulus k.

Parameters:
`k` - modulus
Returns:
quarter period #see K_from_k(Complex,Complex)

### KPrime_from_k

```public static void KPrime_from_k(Complex k,
Complex KPrime)```
Computes cmplementary quarter period K' as function of the modulus k.

Parameters:
`k` - modulus
`KPrime` - complementary quarter period K' (on output)
`KPrime_from_k(Complex)`

### KPrime_from_k

`public static Complex KPrime_from_k(Complex k)`
Returns complementary quarter Period K' as function of the modulus k.

Parameters:
`k` - modulus
Returns:
complementary quarter Period K'
`KPrime_from_k(Complex,Complex)`

### k_from_thetaConstants

```public static void k_from_thetaConstants(Complex[] thetaConstants,
Complex k)```
Computes modulus k as function of theta constants

Parameters:
`thetaConstants` - theta constants
`k` - modulus (on output)
`Elliptic.thetaConstants(Complex)`, `k_from_thetaConstants(Complex[])`

### k_from_thetaConstants

`public static Complex k_from_thetaConstants(Complex[] thetaConstants)`
Returns modulus k as function of theta constants.

Parameters:
`thetaConstants` - theta constants
Returns:
modulus
`Elliptic.thetaConstants(Complex)`, `k_from_thetaConstants(Complex[],Complex)`

### kPrime_from_thetaConstants

```public static void kPrime_from_thetaConstants(Complex[] thetaConstants,
Complex kPrime)```
Computes complementary modulus k' as function theta constants.

Parameters:
`thetaConstants` - theta constants
`kPrime` - complementary modulus k' (on output)
`Elliptic.thetaConstants(Complex)`, `kPrime_from_thetaConstants(Complex[])`

### kPrime_from_thetaConstants

`public static Complex kPrime_from_thetaConstants(Complex[] thetaConstants)`
Returns complementary modulus k' as function of theta constants.

Parameters:
`thetaConstants` - theta constants
Returns:
complementary modulus
`Elliptic.thetaConstants(Complex)`, `kPrime_from_thetaConstants(Complex[],Complex)`

### K_from_thetaConstants

```public static void K_from_thetaConstants(Complex[] thetaConstants,
Complex K)```
Computes quarter period K as function of theta constants.

Parameters:
`thetaConstants` - theta constants
`K` - quarter period (on output)
`Elliptic.thetaConstants(Complex)`, `K_from_thetaConstants(Complex[])`

### K_from_thetaConstants

`public static Complex K_from_thetaConstants(Complex[] thetaConstants)`
Returns quarter period K as function of theta constants.

Parameters:
`thetaConstants` - theta constants
Returns:
quarter period
`Elliptic.thetaConstants(Complex)`, `K_from_thetaConstants(Complex[],Complex)`

### KPrime_from_K_and_tau

```public static void KPrime_from_K_and_tau(Complex K,
Complex tau,
Complex KPrime)```
Computes complementary quarter period K' as function of quarter period K and lattice parameter τ.

Parameters:
`K` - quarter period
`tau` - lattice parameter
`KPrime` - complementary quarter period (on output)
`KPrime_from_K_and_tau(Complex,Complex)`

### KPrime_from_K_and_tau

```public static Complex KPrime_from_K_and_tau(Complex K,
Complex tau)```
Returns complementary quarter period K' as function of quarter period K and lattice parameter τ.

Parameters:
`K` - quarter period
`tau` - lattice parameter
Returns:
complementary quarter period
`KPrime_from_K_and_tau(Complex,Complex,Complex)`

### K_from_KPrime_and_tau

```public static void K_from_KPrime_and_tau(Complex KPrime,
Complex tau,
Complex K)```
Computes quarter period K as function of complementary quarter period K' and lattice parameter τ.

Parameters:
`KPrime` - complementary quarter period
`tau` - lattice parameter
`K` - quarter period (on output)
`K_from_KPrime_and_tau(Complex,Complex)`

### K_from_KPrime_and_tau

```public static Complex K_from_KPrime_and_tau(Complex KPrime,
Complex tau)```
Returns quarter period K as function of complementary quarter period K' and lattice parameter τ.

Parameters:
`KPrime` - complementary quarter period
`tau` - lattice parameter
Returns:
quarter period (on output)
`K_from_KPrime_and_tau(Complex,Complex,Complex)`

### tauPrime_from_tau

```public static void tauPrime_from_tau(Complex tau,
Complex tauPrime)```
Computes complementary lattice paramter τ' = -1/τ for lattice parameter τ. tau and tauPrime may coinside.

Parameters:
`tau` - lattice paramter τ
`tauPrime` - complementary lattice paramter τ'(on output)
`tauPrime_from_tau(Complex)`

### tauPrime_from_tau

`public static Complex tauPrime_from_tau(Complex tau)`
Returns complementary lattice paramter τ' = -1/τ for lattice parameter τ.

Parameters:
`tau` - lattice paramter τ
Returns:
complementary lattice paramter τ'
`tauPrime_from_tau(Complex,Complex)`

### tau_from_k

```public static void tau_from_k(Complex k,
Complex tau)```
Computes lattice parameter τ as function of modulus k.

Parameters:
`k` - modulus
`tau` - lattice paramter τ
`tau_from_k(Complex)`
`public static Complex tau_from_k(Complex k)`
`k` - modulus
`tau_from_k(Complex,Complex)`