Constants

POLYMORPHIC_ARGUMENT_EXCEPTION

POLYMORPHIC_ARGUMENT_EXCEPTION = 'Invalid argument pattern for polymorphic function.'

ARGUMENT_TYPE_EXCEPTION

ARGUMENT_TYPE_EXCEPTION = 'Invalid argument type.'

ARGUMENT_BOUNDS_EXCEPTION

ARGUMENT_BOUNDS_EXCEPTION = 'Invalid argument range.'

MATRIX_DIMENSION_EXCEPTION

MATRIX_DIMENSION_EXCEPTION = 'Matrix dimensions are not equal.'

ARRAY_LENGTH_EXCEPTION

ARRAY_LENGTH_EXCEPTION = 'Array length must be a multiple of m.'

MATRIX_SPD_EXCEPTION

MATRIX_SPD_EXCEPTION = 'Can only perform operation on symmetric positive definite matrix.'

Properties

$A

$A : array

Matrix storage.

Type

array

$m

$m : integer

Matrix row dimension.

Type

integer

$n

$n : integer

Matrix column dimension.

Type

integer

Methods

__construct()

__construct(  $args) 

Polymorphic constructor.

As PHP has no support for polymorphic constructors, we use tricks to make our own sort of polymorphism using func_num_args, func_get_arg, and gettype. In essence, we're just implementing a simple RTTI filter and calling the appropriate constructor.

Parameters

$args

getArray()

getArray() : array

getArray.

Returns

array —

Matrix array

getRowDimension()

getRowDimension() : integer

getRowDimension.

Returns

integer —

Row dimension

getColumnDimension()

getColumnDimension() : integer

getColumnDimension.

Returns

integer —

Column dimension

get()

get(integer  $i = null, integer  $j = null) : mixed

get.

Get the i,j-th element of the matrix.

Parameters

integer $i

Row position

integer $j

Column position

Returns

mixed —

Element (int/float/double)

checkMatrixDimensions()

checkMatrixDimensions(\PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix  $B = null) : boolean

checkMatrixDimensions.

Is matrix B the same size?

Parameters

\PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix $B

Matrix B

Returns

boolean

set()

set(integer  $i = null, integer  $j = null, mixed  $c = null) : mixed

set.

Set the i,j-th element of the matrix.

Parameters

integer $i

Row position

integer $j

Column position

mixed $c

Int/float/double value

Returns

mixed —

Element (int/float/double)

identity()

identity(integer  $m = null, integer  $n = null) : \PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

identity.

Generate an identity matrix.

Parameters

integer $m

Row dimension

integer $n

Column dimension

Returns

\PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

Identity matrix

diagonal()

diagonal(integer  $m = null, integer  $n = null, mixed  $c = 1) : \PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

diagonal.

Generate a diagonal matrix

Parameters

integer $m

Row dimension

integer $n

Column dimension

mixed $c

Diagonal value

Returns

\PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

Diagonal matrix

getMatrixByRow()

getMatrixByRow(integer  $i0 = null, integer  $iF = null) : \PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

getMatrixByRow.

Get a submatrix by row index/range

Parameters

integer $i0

Initial row index

integer $iF

Final row index

Returns

\PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

Submatrix

getMatrixByCol()

getMatrixByCol(integer  $j0 = null, integer  $jF = null) : \PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

getMatrixByCol.

Get a submatrix by column index/range

Parameters

integer $j0

Initial column index

integer $jF

Final column index

Returns

\PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

Submatrix

trace()

trace() : float

trace.

Sum of diagonal elements

Returns

float —

Sum of diagonal elements

arrayTimes()

arrayTimes(  $args) : \PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

arrayTimes.

Element-by-element multiplication Cij = Aij * Bij

Parameters

$args

Returns

\PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

Matrix Cij

arrayTimesEquals()

arrayTimesEquals(  $args) : \PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

arrayTimesEquals.

Element-by-element multiplication Aij = Aij * Bij

Parameters

$args

Returns

\PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

Matrix Aij

arrayRightDivide()

arrayRightDivide(  $args) : \PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

arrayRightDivide.

Element-by-element right division A / B

Parameters

$args

Returns

\PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

Division result

arrayRightDivideEquals()

arrayRightDivideEquals(  $args) : \PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

arrayRightDivideEquals.

Element-by-element right division Aij = Aij / Bij

Parameters

$args

Returns

\PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

Matrix Aij

arrayLeftDivide()

arrayLeftDivide(  $args) : \PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

arrayLeftDivide.

Element-by-element Left division A / B

Parameters

$args

Returns

\PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

Division result

arrayLeftDivideEquals()

arrayLeftDivideEquals(  $args) : \PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

arrayLeftDivideEquals.

Element-by-element Left division Aij = Aij / Bij

Parameters

$args

Returns

\PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix

Matrix Aij

det()

det() : float

det.

Calculate determinant

Returns

float —

Determinant