Jampack
Class Z

java.lang.Object
  extended by Jampack.Z

public class Z
extends java.lang.Object

Z is a mutable complex variable class. It is designed to perform complex arithmetic without creating a new Z at each operation. Specifically, binary operations have the form c.op(a,b), in which a, b, and c need not be different. The method places the complex number a.op.b in c. The method also returns a pointer to c. Thus the class supports two styles of programming. For example to compute e = a*b + c*d you can write

z1.Times(a,b)
z2.Times(c,d)
e.Plus(z1,z2)

or

e.Plus(z1.Times(a,b), z2.Times(a,b))

Since objects of class Z are mutable, the use of the assignment operator "=" with these objects is deprecated. Use Eq.

The functions are reasonably resistent to overflow and underflow. But the more complicated ones could almost certainly be improved.

Version:
Pre-alpha
Author:
G. W. Stewart

Field Summary
static Z I
          Imaginary unit.
 double im
          The imaginary part of Z.
static Z ONE
          Complex 1.
 double re
          The real part of Z.
static Z ZERO
          Complex 0.
 
Constructor Summary
Z()
          Creates a Z and initializes it to zero.
Z(double x)
          Creates a Z and initializes its real part.
Z(double x, double y)
          Creates a Z and initializes its real and imaginary parts.
Z(Z a)
          Creates a Z and initializes it to another Z.
 
Method Summary
static double abs(Z z)
          Computes the absolute value of a Z.
static double abs1(Z z)
          Computes the 1-norm of a Z
 Z Conj(Z a)
          Computes the conjugate of a Z.
 Z Div(Z a, double b)
          Computes the quotient of a Z and a double.
 Z Div(Z a, Z b)
          Computes the quotient of two Z's.
 Z Eq(double a, double b)
          Resets the real and imaginary parts of a Z.
 Z Eq(Z a)
          Resets the real and imaginary parts of a Z to those of another Z.
 Z Exch(Z a)
          Interchanges the real and imaginary parts of two Z's.
 boolean IsEqual(Z z1, Z z2)
          Tests two Z'z for equality.
 Z Minus(Z a)
          Computes unary minus of a Z.
 Z Minus(Z a, Z b)
          Computes the difference of two Z's.
 Z Plus(Z a, Z b)
          Computes the sum of two Z's.
 Z Sqrt(Z a)
          Computes the principal value of the square root of a Z.
 Z Times(double a, Z b)
          Computes the product of a double and a Z.
 Z Times(Z a, Z b)
          Computes the product of two Z's.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ONE

public static final Z ONE
Complex 1.


ZERO

public static final Z ZERO
Complex 0.


I

public static final Z I
Imaginary unit.


re

public double re
The real part of Z.


im

public double im
The imaginary part of Z.

Constructor Detail

Z

public Z()
Creates a Z and initializes it to zero.


Z

public Z(double x,
         double y)
Creates a Z and initializes its real and imaginary parts.

Parameters:
x - a double
y - a double

Z

public Z(double x)
Creates a Z and initializes its real part.

Parameters:
x - a double

Z

public Z(Z a)
Creates a Z and initializes it to another Z.

Parameters:
a - a Z
Method Detail

IsEqual

public boolean IsEqual(Z z1,
                       Z z2)
Tests two Z'z for equality.

Parameters:
z1 - a Z
z2 - a Z
Returns:
true if z1=z2, otherwise false

Eq

public Z Eq(Z a)
Resets the real and imaginary parts of a Z to those of another Z.

Parameters:
a - a Z
Returns:
this = a;

Eq

public Z Eq(double a,
            double b)
Resets the real and imaginary parts of a Z.

Parameters:
a - a double
b - a double
Returns:
this = a + ib

Exch

public Z Exch(Z a)
Interchanges the real and imaginary parts of two Z's.

Parameters:
a - a Z
Returns:
this = a, with a set to the original value of this.

abs1

public static double abs1(Z z)
Computes the 1-norm of a Z


abs

public static double abs(Z z)
Computes the absolute value of a Z.

Parameters:
z - a Z
Returns:
the absolute vaue of Z

Conj

public Z Conj(Z a)
Computes the conjugate of a Z.

Parameters:
a - a Z
Returns:
this = conj(a);

Minus

public Z Minus(Z a)
Computes unary minus of a Z.

Parameters:
a - a Z
Returns:
this = -a;

Plus

public Z Plus(Z a,
              Z b)
Computes the sum of two Z's.

Parameters:
a - a Z
b - a Z
Returns:
this = a + b

Minus

public Z Minus(Z a,
               Z b)
Computes the difference of two Z's.

Parameters:
a - a Z
b - a Z
Returns:
this = a - b

Times

public Z Times(Z a,
               Z b)
Computes the product of two Z's.

Parameters:
a - a Z
b - a Z
Returns:
this = ab

Times

public Z Times(double a,
               Z b)
Computes the product of a double and a Z.

Parameters:
a - a double
b - a Z
Returns:
this = ab

Div

public Z Div(Z a,
             Z b)
      throws JampackException
Computes the quotient of two Z's. Throws a JampackException if the denominator is zero.

Parameters:
a - a Z
b - a Z
Returns:
this = a/b
Throws:
JampackException - Thrown if b is zero.

Div

public Z Div(Z a,
             double b)
      throws JampackException
Computes the quotient of a Z and a double. Throws a JampackException if the denominator is zero.

Parameters:
a - a Z
b - a double
Returns:
this = a/b
Throws:
JampackException - Thrown if b is zero.

Sqrt

public Z Sqrt(Z a)
Computes the principal value of the square root of a Z.

Parameters:
a - a Z
this - = sqrt(a)