The Commons Math User Guide - Statistics

The complex packages provides a complex number type as well as complex versions of common transcendental functions and complex number formatting.

org.apache.commons.math.complex.Complex provides a complex number type that forms the basis for the complex functionality found in commons-math.

To create a complex number, simply call the constructor passing in two floating-point arguments, the first being the real part of the complex number and the second being the imaginary part: Complex c = new Complex(1.0, 3.0); // 1 + 3i

The Complex class provides many unary and binary complex number operations. These operations provide the means to add, subtract, multiple and, divide complex numbers along with other complex number functions similar to the real number functions found in java.math.BigDecimal: Complex lhs = new Complex(1.0, 3.0); Complex rhs = new Complex(2.0, 5.0); Complex answer = lhs.add(rhs); // add two complex numbers answer = lhs.subtract(rhs); // subtract two complex numbers answer = lhs.abs(); // absolute value answer = lhs.conjugate(rhs); // complex conjugate

org.apache.commons.math.complex.ComplexMath provides implementations of serveral transcendental functions involving complex number arguments. These operations provide the means to compute the log, sine, tangent and, other complex values similar to the real number functions found in java.lang.Math: Complex first = new Complex(1.0, 3.0); Complex second = new Complex(2.0, 5.0); Complex answer = ComplexMath.log(first); // natural logarithm. answer = ComplexMath.cos(first); // cosine answer = ComplexMath.pow(first, second); // first raised to the power of second

This is yet to be written. Any contributions will be gratefully accepted!