There are three core types: ArbFloat, ArbReal, ArbComplex. Vectors of elements of these types are formed and used in the usual ways. Some matrix operations are supported through the underlying C library, which requires data be given in row-dominant order, we have Matrix types: ArbFloatMatrix, ArbRealMatrix, ArbComplexMatrix. Their use is described in the section on Matrices.

## ArbFloat

An ArbFloat value is an extended precision floating point value where the precision is fixed at construction.

## ArbReal

An ArbReal value is implemented in the underlying C library as an ArbFloat midpoint and a value enclosing radius.

## ArbComplex

An ArbComplex value is implemented in as two ArbReal one for the real part and one for the imaginary part.

You can form an ArbComplex using two ArbReals or two ArbFloats or one of each.

• The real and imaginary parts are recovered using real(z) and imag(z) where z is an ArbComplex.

• angle(z) and magnitude(z) recover the phase angle and the lineal extent of an ArbComplex number.

• conj(z) obtains the complex conjugate of an ArbComplex number.