org.apfloat
Class ApcomplexMath

java.lang.Object
  extended byorg.apfloat.ApcomplexMath

public class ApcomplexMath
extends java.lang.Object

Various mathematical functions for arbitrary precision complex numbers.

Version:
1.0.2
Author:
Mikko Tommila

Method Summary
static Apfloat abs(Apcomplex z)
          Absolute value.
static Apcomplex acos(Apcomplex z)
          Inverse cosine.
static Apcomplex acosh(Apcomplex z)
          Inverse hyperbolic cosine.
static Apcomplex agm(Apcomplex a, Apcomplex b)
          Arithmetic-geometric mean.
static Apfloat arg(Apcomplex z)
          Angle of the complex vector in the complex plane.
static Apcomplex asin(Apcomplex z)
          Inverse sine.
static Apcomplex asinh(Apcomplex z)
          Inverse hyperbolic sine.
static Apcomplex atan(Apcomplex z)
          Inverse tangent.
static Apcomplex atanh(Apcomplex z)
          Inverse hyperbolic tangent.
static Apcomplex cbrt(Apcomplex z)
          Cube root.
static Apcomplex cos(Apcomplex z)
          Cosine.
static Apcomplex cosh(Apcomplex z)
          Hyperbolic cosine.
static Apcomplex exp(Apcomplex z)
          Exponent function.
static Apcomplex inverseRoot(Apcomplex z, long n)
          Inverse positive integer root.
static Apcomplex log(Apcomplex z)
          Natural logarithm.
static Apcomplex negate(Apcomplex z)
          Negative value.
static Apfloat norm(Apcomplex z)
          Norm.
static Apcomplex pow(Apcomplex z, Apcomplex w)
          Arbitrary power.
static Apcomplex pow(Apcomplex z, long n)
          Integer power.
static Apcomplex root(Apcomplex z, long n)
          Positive integer root.
static Apcomplex scale(Apcomplex z, long scale)
          Multiply by a power of the radix.
static Apcomplex sin(Apcomplex z)
          Sine.
static Apcomplex sinh(Apcomplex z)
          Hyperbolic sine.
static Apcomplex sqrt(Apcomplex z)
          Square root.
static Apcomplex tan(Apcomplex z)
          Tangent.
static Apcomplex tanh(Apcomplex z)
          Hyperbolic tangent.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

negate

public static Apcomplex negate(Apcomplex z)
Negative value.

Parameters:
z - The argument.
Returns:
-z.

abs

public static Apfloat abs(Apcomplex z)
Absolute value.

Parameters:
z - The argument.
Returns:
sqrt(x2 + y2), where z = x + i y.

norm

public static Apfloat norm(Apcomplex z)
Norm. Square of the magnitude.

Parameters:
z - The argument.
Returns:
x2 + y2, where z = x + i y.

arg

public static Apfloat arg(Apcomplex z)
Angle of the complex vector in the complex plane.

Parameters:
z - The argument.
Returns:
arctan(y / x) from the appropriate branch, where z = x + i y.

scale

public static Apcomplex scale(Apcomplex z,
                              long scale)
                       throws ApfloatRuntimeException
Multiply by a power of the radix.

Parameters:
z - The argument.
scale - The scaling factor.
Returns:
z * z.radix()scale.
Throws:
ApfloatRuntimeException

pow

public static Apcomplex pow(Apcomplex z,
                            long n)
                     throws java.lang.ArithmeticException,
                            ApfloatRuntimeException
Integer power.

Parameters:
z - Base of the power operator.
n - Exponent of the power operator.
Returns:
z to the n:th power, that is zn.
Throws:
java.lang.ArithmeticException - If both z and n are zero.
ApfloatRuntimeException

sqrt

public static Apcomplex sqrt(Apcomplex z)
                      throws ApfloatRuntimeException
Square root.

Parameters:
z - The argument.
Returns:
Square root of z.
Throws:
ApfloatRuntimeException

cbrt

public static Apcomplex cbrt(Apcomplex z)
                      throws ApfloatRuntimeException
Cube root.

Parameters:
z - The argument.
Returns:
Cube root of z.
Throws:
ApfloatRuntimeException

root

public static Apcomplex root(Apcomplex z,
                             long n)
                      throws java.lang.ArithmeticException,
                             ApfloatRuntimeException
Positive integer root. The branch that has the smallest angle and same sign of imaginary part as z is always chosen.

Parameters:
z - The argument.
n - Which root to take.
Returns:
n:th root of z, that is z1/n.
Throws:
java.lang.ArithmeticException - If n is zero.
ApfloatRuntimeException

inverseRoot

public static Apcomplex inverseRoot(Apcomplex z,
                                    long n)
                             throws java.lang.ArithmeticException,
                                    ApfloatRuntimeException
Inverse positive integer root. The branch that has the smallest angle and different sign of imaginary part than z is always chosen.

Parameters:
z - The argument.
n - Which inverse root to take.
Returns:
Inverse n:th root of z, that is z-1/n.
Throws:
java.lang.ArithmeticException - If z or n is zero.
ApfloatRuntimeException

agm

public static Apcomplex agm(Apcomplex a,
                            Apcomplex b)
                     throws ApfloatRuntimeException
Arithmetic-geometric mean.

Parameters:
a - First argument.
b - Second argument.
Returns:
Arithmetic-geometric mean of a and b.
Throws:
ApfloatRuntimeException

log

public static Apcomplex log(Apcomplex z)
                     throws java.lang.ArithmeticException,
                            ApfloatRuntimeException
Natural logarithm.

The logarithm is calculated using the arithmetic-geometric mean. See the Borweins' book for the formula.

Parameters:
z - The argument.
Returns:
Natural logarithm of z.
Throws:
java.lang.ArithmeticException - If z is zero.
ApfloatRuntimeException

exp

public static Apcomplex exp(Apcomplex z)
                     throws ApfloatRuntimeException
Exponent function. Calculated using Newton's iteration for the inverse of logarithm.

Parameters:
z - The argument.
Returns:
ez.
Throws:
ApfloatRuntimeException

pow

public static Apcomplex pow(Apcomplex z,
                            Apcomplex w)
Arbitrary power. Calculated using log() and exp().

Parameters:
z - The base.
w - The exponent.
Returns:
zw.
Throws:
java.lang.ArithmeticException - If both z and w are zero.

acos

public static Apcomplex acos(Apcomplex z)
                      throws ApfloatRuntimeException
Inverse cosine. Calculated using log().

Parameters:
z - The argument.
Returns:
Inverse cosine of z.
Throws:
ApfloatRuntimeException

acosh

public static Apcomplex acosh(Apcomplex z)
                       throws ApfloatRuntimeException
Inverse hyperbolic cosine. Calculated using log().

Parameters:
z - The argument.
Returns:
Inverse hyperbolic cosine of z.
Throws:
ApfloatRuntimeException

asin

public static Apcomplex asin(Apcomplex z)
                      throws ApfloatRuntimeException
Inverse sine. Calculated using log().

Parameters:
z - The argument.
Returns:
Inverse sine of z.
Throws:
ApfloatRuntimeException

asinh

public static Apcomplex asinh(Apcomplex z)
                       throws ApfloatRuntimeException
Inverse hyperbolic sine. Calculated using log().

Parameters:
z - The argument.
Returns:
Inverse hyperbolic sine of z.
Throws:
ApfloatRuntimeException

atan

public static Apcomplex atan(Apcomplex z)
                      throws java.lang.ArithmeticException,
                             ApfloatRuntimeException
Inverse tangent. Calculated using log().

Parameters:
z - The argument.
Returns:
Inverse tangent of z.
Throws:
java.lang.ArithmeticException - If z == i.
ApfloatRuntimeException

atanh

public static Apcomplex atanh(Apcomplex z)
                       throws java.lang.ArithmeticException,
                              ApfloatRuntimeException
Inverse hyperbolic tangent. Calculated using log().

Parameters:
z - The argument.
Returns:
Inverse hyperbolic tangent of z.
Throws:
java.lang.ArithmeticException - If z is 1 or -1.
ApfloatRuntimeException

cos

public static Apcomplex cos(Apcomplex z)
                     throws ApfloatRuntimeException
Cosine. Calculated using exp().

Parameters:
z - The argument.
Returns:
Cosine of z.
Throws:
ApfloatRuntimeException

cosh

public static Apcomplex cosh(Apcomplex z)
                      throws ApfloatRuntimeException
Hyperbolic cosine. Calculated using exp().

Parameters:
z - The argument.
Returns:
Hyperbolic cosine of z.
Throws:
ApfloatRuntimeException

sin

public static Apcomplex sin(Apcomplex z)
                     throws ApfloatRuntimeException
Sine. Calculated using exp().

Parameters:
z - The argument.
Returns:
Sine of z.
Throws:
ApfloatRuntimeException

sinh

public static Apcomplex sinh(Apcomplex z)
                      throws ApfloatRuntimeException
Hyperbolic sine. Calculated using exp().

Parameters:
z - The argument.
Returns:
Hyperbolic sine of z.
Throws:
ApfloatRuntimeException

tan

public static Apcomplex tan(Apcomplex z)
                     throws ApfloatRuntimeException
Tangent. Calculated using exp().

Parameters:
z - The argument.
Returns:
Tangent of z.
Throws:
java.lang.ArithmeticException - If z is π/2 + n π where n is an integer.
ApfloatRuntimeException

tanh

public static Apcomplex tanh(Apcomplex z)
                      throws ApfloatRuntimeException
Hyperbolic tangent. Calculated using exp().

Parameters:
z - The argument.
Returns:
Hyperbolic tangent of z.
Throws:
java.lang.ArithmeticException - If z is i (π/2 + n π) where n is an integer.
ApfloatRuntimeException