edu.jas.arith
Class BigQuaternion

java.lang.Object
  extended by edu.jas.arith.BigQuaternion
All Implemented Interfaces:
Coefficient, java.io.Serializable, java.lang.Comparable

public class BigQuaternion
extends java.lang.Object
implements Coefficient, java.lang.Comparable, java.io.Serializable

BigQuaternion class based on BigRational implementing the Coefficient interface and with the familiar SAC method names.

See Also:
Serialized Form

Field Summary
static BigQuaternion I
           
static BigQuaternion J
           
static BigQuaternion K
           
static BigQuaternion ONE
           
static BigQuaternion ZERO
          constants: 1, 0 und i
 
Constructor Summary
BigQuaternion()
           
BigQuaternion(BigRational r)
           
BigQuaternion(BigRational r, BigRational i)
           
BigQuaternion(BigRational r, BigRational i, BigRational j)
           
BigQuaternion(BigRational r, BigRational i, BigRational j, BigRational k)
          The constructors create a BigQuaternion object from two BigRational objects real and imaginary parts.
BigQuaternion(int r)
           
BigQuaternion(java.lang.String s)
          The BigQuaternion string constructor accepts the following formats: empty string, "rational", or "rat i rat j rat k rat"
 
Method Summary
 Coefficient abs()
           
 Coefficient add(Coefficient b)
          arithmetic operations: +, -, -
 int compareTo(java.lang.Object b)
          since quaternion numbers are unordered, there is no compareTo method.
 BigQuaternion conjugate()
          arithmetic operations: conjugate, absolut value
 Coefficient divide(Coefficient b)
           
 boolean equals(java.lang.Object b)
          comparison of two BigQuaternion numbers
 Coefficient fromInteger(java.math.BigInteger a)
           
 Coefficient fromInteger(long a)
           
 BigRational getIm()
           
 BigRational getJm()
           
 BigRational getKm()
           
 BigRational getRe()
          get the real and imaginary part
 Coefficient inverse()
           
static boolean isCONE(BigQuaternion A)
          Quaternion number one.
static boolean isCZERO(BigQuaternion A)
          Quaternion number zero.
 boolean isIMAG()
           
 boolean isONE()
           
 boolean isZERO()
           
 Coefficient multiply(Coefficient b)
          arithmetic operations: *, inverse, /
 Coefficient negate()
           
static BigRational QABS(BigQuaternion A)
          Quaternion number absolute value.
static BigQuaternion QCON(BigQuaternion A)
          Quaternion number conjugate.
static BigQuaternion QDIF(BigQuaternion A, BigQuaternion B)
          Quaternion number difference.
static BigQuaternion QINV(BigQuaternion A)
          Quaternion number inverse.
static BigQuaternion QNEG(BigQuaternion A)
          Quaternion number negative.
static BigQuaternion QPROD(BigQuaternion A, BigQuaternion B)
          Quaternion number product.
static BigQuaternion QQ(BigQuaternion A, BigQuaternion B)
          Quaternion number quotient.
static BigQuaternion QRAND(int n)
          Quaternion number, random.
static BigQuaternion QSUM(BigQuaternion A, BigQuaternion B)
          Quaternion number sum.
 Coefficient random(int n)
          random quaternion number
 int signum()
           
 Coefficient subtract(Coefficient b)
           
 java.lang.String toString()
          string representation compatible with string constructor
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ZERO

public static final BigQuaternion ZERO
constants: 1, 0 und i


ONE

public static final BigQuaternion ONE

I

public static final BigQuaternion I

J

public static final BigQuaternion J

K

public static final BigQuaternion K
Constructor Detail

BigQuaternion

public BigQuaternion(BigRational r,
                     BigRational i,
                     BigRational j,
                     BigRational k)
The constructors create a BigQuaternion object from two BigRational objects real and imaginary parts.


BigQuaternion

public BigQuaternion(BigRational r,
                     BigRational i,
                     BigRational j)

BigQuaternion

public BigQuaternion(BigRational r,
                     BigRational i)

BigQuaternion

public BigQuaternion(BigRational r)

BigQuaternion

public BigQuaternion(int r)

BigQuaternion

public BigQuaternion()

BigQuaternion

public BigQuaternion(java.lang.String s)
              throws java.lang.NumberFormatException
The BigQuaternion string constructor accepts the following formats: empty string, "rational", or "rat i rat j rat k rat"

Throws:
java.lang.NumberFormatException
Method Detail

fromInteger

public Coefficient fromInteger(java.math.BigInteger a)
Specified by:
fromInteger in interface Coefficient

fromInteger

public Coefficient fromInteger(long a)
Specified by:
fromInteger in interface Coefficient

getRe

public BigRational getRe()
get the real and imaginary part


getIm

public BigRational getIm()

getJm

public BigRational getJm()

getKm

public BigRational getKm()

toString

public java.lang.String toString()
string representation compatible with string constructor

Overrides:
toString in class java.lang.Object

isCZERO

public static boolean isCZERO(BigQuaternion A)
Quaternion number zero. A is a quaternion number. If A is 0 then true is returned, else false.


isZERO

public boolean isZERO()
Specified by:
isZERO in interface Coefficient

isCONE

public static boolean isCONE(BigQuaternion A)
Quaternion number one. A is a quaternion number. If A is 1 then true is returned, else false.


isONE

public boolean isONE()
Specified by:
isONE in interface Coefficient

isIMAG

public boolean isIMAG()

equals

public boolean equals(java.lang.Object b)
comparison of two BigQuaternion numbers

Overrides:
equals in class java.lang.Object

compareTo

public int compareTo(java.lang.Object b)
since quaternion numbers are unordered, there is no compareTo method. We define the result to be

Specified by:
compareTo in interface Coefficient
Specified by:
compareTo in interface java.lang.Comparable
Returns:
-1 if b is not a BigQuaternion object

signum

public int signum()
Specified by:
signum in interface Coefficient

add

public Coefficient add(Coefficient b)
arithmetic operations: +, -, -

Specified by:
add in interface Coefficient

QSUM

public static BigQuaternion QSUM(BigQuaternion A,
                                 BigQuaternion B)
Quaternion number sum. A and B are quaternion numbers.

Returns:
T=A+B.

QDIF

public static BigQuaternion QDIF(BigQuaternion A,
                                 BigQuaternion B)
Quaternion number difference. A and B are quaternion numbers.

Returns:
T=A-B.

subtract

public Coefficient subtract(Coefficient b)
Specified by:
subtract in interface Coefficient

QNEG

public static BigQuaternion QNEG(BigQuaternion A)
Quaternion number negative. A is a quaternion number.

Returns:
S=-A.

negate

public Coefficient negate()
Specified by:
negate in interface Coefficient

QCON

public static BigQuaternion QCON(BigQuaternion A)
Quaternion number conjugate. A is a quaternion number. S is the quaternion conjugate of A.


conjugate

public BigQuaternion conjugate()
arithmetic operations: conjugate, absolut value


abs

public Coefficient abs()
Specified by:
abs in interface Coefficient

QABS

public static BigRational QABS(BigQuaternion A)
Quaternion number absolute value. R is a quaternion number. S is the absolute value of R, a rational number.


QPROD

public static BigQuaternion QPROD(BigQuaternion A,
                                  BigQuaternion B)
Quaternion number product. A and B are quaternion numbers.

Returns:
T=A*B.

multiply

public Coefficient multiply(Coefficient b)
arithmetic operations: *, inverse, /

Specified by:
multiply in interface Coefficient

QINV

public static BigQuaternion QINV(BigQuaternion A)
Quaternion number inverse. A is a non-zero quaternion number. S A=1.


inverse

public Coefficient inverse()
Specified by:
inverse in interface Coefficient

QQ

public static BigQuaternion QQ(BigQuaternion A,
                               BigQuaternion B)
Quaternion number quotient. A and B are quaternion numbers, B non-zero.

Returns:
T=R/S.

divide

public Coefficient divide(Coefficient b)
Specified by:
divide in interface Coefficient

QRAND

public static BigQuaternion QRAND(int n)
Quaternion number, random. n is a positive beta-integer. Random rational numbers A and B are generated using RNRAND(n). Then R is the quaternion number with real part A and imaginary part B.


random

public Coefficient random(int n)
random quaternion number

Specified by:
random in interface Coefficient