public abstract class AbstractMatrixField extends java.lang.Object implements MatrixFieldI
GenericMatrixField
should be used. This class is for case when the matrix does not implement
GenericMatrix
such as an
double[][]
.Modifier and Type | Field and Description |
---|---|
protected MatrixFactoryI |
mf |
Constructor and Description |
---|
AbstractMatrixField(MatrixFactoryI mf)
Construction
|
AbstractMatrixField(MatrixFactoryI mf,
boolean skipElements)
Constructor where operations on the base field can be switched off.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
add(java.lang.Object l,
java.lang.Object r)
Adds two matrices or vectors.
|
protected abstract java.lang.Object |
addEle(java.lang.Object l,
java.lang.Object r) |
protected abstract MatrixI |
addMM(MatrixI l,
MatrixI r) |
protected abstract VectorI |
addVV(VectorI lv,
VectorI rv)
Add two vectors
|
java.lang.Boolean |
and(java.lang.Object l,
java.lang.Object r)
Logical and.
|
protected abstract java.lang.Boolean |
andEle(java.lang.Object l,
java.lang.Object r) |
java.lang.Object |
cross(java.lang.Object l,
java.lang.Object r)
Default inefficient implementation.
|
protected java.lang.Object |
crossVV(VectorI lv,
VectorI rv)
Default inefficient implementation.
|
java.lang.Object |
det(java.lang.Object m)
Determinant of a matrix
|
protected java.lang.Object |
detM(MatrixI mat)
Return the determinant of a matrix.
|
java.lang.Object |
div(java.lang.Object l,
java.lang.Object r)
Divides two members of the field.
|
protected abstract java.lang.Object |
divEle(java.lang.Object l,
java.lang.Object r) |
protected abstract MatrixI |
divMO(MatrixI l,
java.lang.Object r) |
protected abstract VectorI |
divVO(VectorI l,
java.lang.Object r) |
java.lang.Object |
dot(java.lang.Object l,
java.lang.Object r)
The dot product of two vectors
|
protected java.lang.Object |
dotVV(VectorI lv,
VectorI rv)
Default inefficient implementation.
|
java.lang.Boolean |
eq(java.lang.Object l,
java.lang.Object r)
Equals
|
protected abstract java.lang.Boolean |
eqEle(java.lang.Object l,
java.lang.Object r) |
protected abstract java.lang.Boolean |
eqMM(MatrixI l,
MatrixI r) |
protected abstract java.lang.Boolean |
eqVV(VectorI l,
VectorI r) |
java.lang.Boolean |
ge(java.lang.Object l,
java.lang.Object r)
Greater or equal to
|
protected abstract java.lang.Boolean |
geEle(java.lang.Object l,
java.lang.Object r) |
java.lang.Boolean |
gt(java.lang.Object l,
java.lang.Object r)
Greater than
|
protected abstract java.lang.Boolean |
gtEle(java.lang.Object l,
java.lang.Object r) |
java.lang.Object |
inv(java.lang.Object l)
Returns the inverse of a square matrix.
|
protected MatrixI |
invM(MatrixI mat)
Finds the inverse of a matrix.
|
java.lang.Boolean |
le(java.lang.Object l,
java.lang.Object r)
Less than or equals to
|
protected abstract java.lang.Boolean |
leEle(java.lang.Object l,
java.lang.Object r) |
java.lang.Boolean |
lt(java.lang.Object l,
java.lang.Object r)
Less than
|
protected abstract java.lang.Boolean |
ltEle(java.lang.Object l,
java.lang.Object r) |
protected MatrixI |
minor(MatrixI m,
int row,
int col)
Finds the minor matrix formed by excluding a row and vector
|
java.lang.Object |
mod(java.lang.Object l,
java.lang.Object r)
The modulus of two members of the field.
|
protected abstract java.lang.Object |
modEle(java.lang.Object l,
java.lang.Object r) |
java.lang.Object |
mul(java.lang.Object l,
java.lang.Object r)
Multiplies two members of the field.
|
protected abstract java.lang.Object |
mulEle(java.lang.Object l,
java.lang.Object r) |
protected abstract MatrixI |
mulMM(MatrixI l,
MatrixI r) |
protected abstract MatrixI |
mulMO(MatrixI l,
java.lang.Object r) |
protected abstract VectorI |
mulMV(MatrixI l,
VectorI r) |
protected void |
mulRow(MatrixI m,
int row,
java.lang.Object mul)
In place multiply all elements of a row by a number
|
protected abstract VectorI |
mulVM(VectorI l,
MatrixI r) |
protected abstract VectorI |
mulVO(VectorI l,
java.lang.Object r) |
protected abstract MatrixI |
mulVV(VectorI l,
VectorI r) |
java.lang.Boolean |
ne(java.lang.Object l,
java.lang.Object r)
Not Equals
|
protected abstract java.lang.Boolean |
neEle(java.lang.Object l,
java.lang.Object r) |
java.lang.Object |
neg(java.lang.Object l)
The negation -x of an element.
|
protected abstract java.lang.Object |
negEle(java.lang.Object l) |
protected abstract MatrixI |
negM(MatrixI l) |
protected abstract VectorI |
negV(VectorI lv) |
protected abstract java.lang.Boolean |
neMM(MatrixI l,
MatrixI r) |
protected abstract java.lang.Boolean |
neVV(VectorI l,
VectorI r) |
java.lang.Boolean |
not(java.lang.Object l)
Logical not.
|
protected abstract java.lang.Boolean |
notEle(java.lang.Object l) |
java.lang.Boolean |
or(java.lang.Object l,
java.lang.Object r)
Logical or.
|
protected abstract java.lang.Boolean |
orEle(java.lang.Object l,
java.lang.Object r) |
java.lang.Object |
pow(java.lang.Object l,
java.lang.Object r)
The power operator.
|
protected abstract java.lang.Object |
powEle(java.lang.Object l,
java.lang.Object r) |
java.lang.Object |
solve(java.lang.Object A,
java.lang.Object B)
Solve equation A * X = B
|
protected MatrixI |
solveMM(MatrixI A,
MatrixI b) |
protected VectorI |
solveMV(MatrixI A,
VectorI b) |
java.lang.Object |
sub(java.lang.Object l,
java.lang.Object r)
Subtract two members of the field.
|
protected abstract java.lang.Object |
subEle(java.lang.Object l,
java.lang.Object r) |
protected abstract MatrixI |
subMM(MatrixI l,
MatrixI r) |
protected void |
subtractMul(MatrixI m,
int targetRow,
int sourceRow,
java.lang.Object mul)
In place Subtract a multiply of the source row from the target
m(t,j) = m(t,j) - mul * m(s,j) |
protected abstract VectorI |
subVV(VectorI lv,
VectorI rv) |
protected void |
swapRows(MatrixI m,
int i,
int j)
In place swap of two rows
|
java.lang.Object |
trace(java.lang.Object l)
Trace of a matrix
|
java.lang.Object |
traceM(MatrixI m)
Default inefficient implementation.
|
java.lang.Object |
trans(java.lang.Object l)
Transpose of a matrix
|
protected java.lang.Object |
transM(MatrixI mat) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
convertFromInt, convertToInt
getLightWeightInstance, init
protected MatrixFactoryI mf
public AbstractMatrixField(MatrixFactoryI mf)
mf
- corresponding matrix factorypublic AbstractMatrixField(MatrixFactoryI mf, boolean skipElements)
mf
- The factory used to generate matricesskipElements
- whether to skip operations on the base elementsprotected abstract java.lang.Object addEle(java.lang.Object l, java.lang.Object r) throws EvaluationException
EvaluationException
protected abstract VectorI addVV(VectorI lv, VectorI rv) throws EvaluationException
lv
- lhs vectorrv
- rhs vectorEvaluationException
- if the dimension do not matchprotected abstract MatrixI addMM(MatrixI l, MatrixI r) throws EvaluationException
EvaluationException
public java.lang.Object add(java.lang.Object l, java.lang.Object r) throws EvaluationException
addVV(VectorI, VectorI)
or addMM(MatrixI, MatrixI)
depending on the arguments.add
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorprotected abstract java.lang.Object subEle(java.lang.Object l, java.lang.Object r) throws EvaluationException
EvaluationException
protected abstract VectorI subVV(VectorI lv, VectorI rv) throws EvaluationException
EvaluationException
protected abstract MatrixI subMM(MatrixI l, MatrixI r) throws EvaluationException
EvaluationException
public java.lang.Object sub(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
sub
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorprotected abstract java.lang.Object negEle(java.lang.Object l) throws EvaluationException
EvaluationException
protected abstract VectorI negV(VectorI lv) throws EvaluationException
EvaluationException
protected abstract MatrixI negM(MatrixI l) throws EvaluationException
EvaluationException
public java.lang.Object neg(java.lang.Object l) throws EvaluationException
FieldI
neg
in interface FieldI
l
- the argumentEvaluationException
- on errorprotected abstract java.lang.Object mulEle(java.lang.Object l, java.lang.Object r) throws EvaluationException
EvaluationException
protected abstract VectorI mulVO(VectorI l, java.lang.Object r) throws EvaluationException
EvaluationException
protected abstract MatrixI mulMO(MatrixI l, java.lang.Object r) throws EvaluationException
EvaluationException
protected abstract MatrixI mulVV(VectorI l, VectorI r) throws EvaluationException
EvaluationException
protected abstract VectorI mulVM(VectorI l, MatrixI r) throws EvaluationException
EvaluationException
protected abstract VectorI mulMV(MatrixI l, VectorI r) throws EvaluationException
EvaluationException
protected abstract MatrixI mulMM(MatrixI l, MatrixI r) throws EvaluationException
EvaluationException
public java.lang.Object mul(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
mul
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorprotected abstract java.lang.Object divEle(java.lang.Object l, java.lang.Object r) throws EvaluationException
EvaluationException
protected abstract VectorI divVO(VectorI l, java.lang.Object r) throws EvaluationException
EvaluationException
protected abstract MatrixI divMO(MatrixI l, java.lang.Object r) throws EvaluationException
EvaluationException
public java.lang.Object div(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
div
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorprotected abstract java.lang.Object modEle(java.lang.Object l, java.lang.Object r) throws EvaluationException
EvaluationException
public java.lang.Object mod(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
mod
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorprotected abstract java.lang.Object powEle(java.lang.Object l, java.lang.Object r) throws EvaluationException
EvaluationException
public java.lang.Object pow(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
pow
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorprotected abstract java.lang.Boolean eqEle(java.lang.Object l, java.lang.Object r) throws EvaluationException
EvaluationException
protected abstract java.lang.Boolean eqVV(VectorI l, VectorI r) throws EvaluationException
EvaluationException
protected abstract java.lang.Boolean eqMM(MatrixI l, MatrixI r) throws EvaluationException
EvaluationException
public java.lang.Boolean eq(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
eq
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorprotected abstract java.lang.Boolean neEle(java.lang.Object l, java.lang.Object r) throws EvaluationException
EvaluationException
protected abstract java.lang.Boolean neVV(VectorI l, VectorI r) throws EvaluationException
EvaluationException
protected abstract java.lang.Boolean neMM(MatrixI l, MatrixI r) throws EvaluationException
EvaluationException
public java.lang.Boolean ne(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
ne
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorprotected abstract java.lang.Boolean andEle(java.lang.Object l, java.lang.Object r) throws EvaluationException
EvaluationException
public java.lang.Boolean and(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
and
in interface FieldI
l
- left hand argument implimentationr
- right hand argumentEvaluationException
- on errorprotected abstract java.lang.Boolean orEle(java.lang.Object l, java.lang.Object r) throws EvaluationException
EvaluationException
public java.lang.Boolean or(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
or
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorprotected abstract java.lang.Boolean notEle(java.lang.Object l) throws EvaluationException
EvaluationException
public java.lang.Boolean not(java.lang.Object l) throws EvaluationException
FieldI
not
in interface FieldI
l
- argumentEvaluationException
- on errorprotected abstract java.lang.Boolean gtEle(java.lang.Object l, java.lang.Object r) throws EvaluationException
EvaluationException
public java.lang.Boolean gt(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
gt
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorprotected abstract java.lang.Boolean geEle(java.lang.Object l, java.lang.Object r) throws EvaluationException
EvaluationException
public java.lang.Boolean ge(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
ge
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorprotected abstract java.lang.Boolean ltEle(java.lang.Object l, java.lang.Object r) throws EvaluationException
EvaluationException
public java.lang.Boolean lt(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
lt
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorprotected abstract java.lang.Boolean leEle(java.lang.Object l, java.lang.Object r) throws EvaluationException
EvaluationException
public java.lang.Boolean le(java.lang.Object l, java.lang.Object r) throws EvaluationException
FieldI
le
in interface FieldI
l
- left hand argumentr
- right hand argumentEvaluationException
- on errorpublic java.lang.Object trans(java.lang.Object l) throws EvaluationException
MatrixFieldI
trans
in interface MatrixFieldI
l
- the matrixEvaluationException
protected java.lang.Object transM(MatrixI mat) throws EvaluationException
EvaluationException
public java.lang.Object dot(java.lang.Object l, java.lang.Object r) throws EvaluationException
MatrixFieldI
dot
in interface MatrixFieldI
EvaluationException
protected java.lang.Object dotVV(VectorI lv, VectorI rv) throws EvaluationException
lv
- lhs vectorrv
- rhs vectorEvaluationException
public java.lang.Object cross(java.lang.Object l, java.lang.Object r) throws EvaluationException
cross
in interface MatrixFieldI
EvaluationException
- if vectors not of length 3protected java.lang.Object crossVV(VectorI lv, VectorI rv) throws EvaluationException
EvaluationException
public java.lang.Object traceM(MatrixI m) throws EvaluationException
EvaluationException
public java.lang.Object trace(java.lang.Object l) throws EvaluationException
trace
in interface MatrixFieldI
l
- the matrixEvaluationException
public java.lang.Object det(java.lang.Object m) throws EvaluationException
det
in interface MatrixFieldI
m
- the matrixEvaluationException
- if matrix is not square.protected java.lang.Object detM(MatrixI mat) throws EvaluationException
mat
- the matrixEvaluationException
protected MatrixI minor(MatrixI m, int row, int col) throws EvaluationException
m
- the matrixrow
- row to removecol
- column to removeEvaluationException
protected void swapRows(MatrixI m, int i, int j) throws EvaluationException
m
- matrixi
- index of first rowj
- index of second rowEvaluationException
protected void mulRow(MatrixI m, int row, java.lang.Object mul) throws EvaluationException
m
- the matrixrow
- the row to multiplymul
- value to multiply byEvaluationException
protected void subtractMul(MatrixI m, int targetRow, int sourceRow, java.lang.Object mul) throws EvaluationException
m(t,j) = m(t,j) - mul * m(s,j)
m
- targetRow
- sourceRow
- mul
- EvaluationException
protected MatrixI invM(MatrixI mat) throws EvaluationException
mat
- EvaluationException
- if matrix is singularpublic java.lang.Object inv(java.lang.Object l) throws EvaluationException
MatrixFieldI
inv
in interface MatrixFieldI
l
- the matrixEvaluationException
- if matrix is not square or is singularprotected MatrixI solveMM(MatrixI A, MatrixI b) throws EvaluationException
EvaluationException
protected VectorI solveMV(MatrixI A, VectorI b) throws EvaluationException
EvaluationException
public java.lang.Object solve(java.lang.Object A, java.lang.Object B) throws EvaluationException
MatrixFieldI
solve
in interface MatrixFieldI
A
- a square matrixB
- either a vector or matrix with same number of rows as AEvaluationException
- if matrix is not square or is singularCopyright © 2018 Singular Systems http://www.singularsys.com/jep