/* AUTO-GENERATED */
package jsci.maths.matrices;
import java.awt.Dimension;
import java.util.Hashtable;
import jsci.maths.algebras.Algebra;
import jsci.maths.fields.Ring;
import jsci.maths.groups.AbelianGroup;
public final class DoubleMatrixAlgebra implements Algebra, Ring {
private static final Hashtable algebras = new Hashtable();
static DoubleMatrixAlgebra get(int rows, int cols) {
Dimension dim = new Dimension(rows, cols);
DoubleMatrixAlgebra algebra = (DoubleMatrixAlgebra) algebras.get(dim);
if(algebra == null) {
algebra = new DoubleMatrixAlgebra(rows, cols);
algebras.put(dim, algebra);
}
return algebra;
}
private final int rows;
private final int cols;
private AbstractDoubleMatrix zero;
private AbstractDoubleSquareMatrix one;
private DoubleMatrixAlgebra(int rows, int cols) {
this.rows = rows;
this.cols = cols;
}
/**
* Returns the (right) identity.
*/
public Ring.Member one() {
if(one == null)
one = DoubleDiagonalMatrix.identity(cols);
return one;
}
public boolean isOne(Ring.Member r) {
return one().equals(r);
}
public AbelianGroup.Member zero() {
if(zero == null)
zero = new DoubleMatrix(rows, cols);
return zero;
}
public boolean isZero(AbelianGroup.Member r) {
return zero().equals(r);
}
public boolean isNegative(AbelianGroup.Member a, AbelianGroup.Member b) {
return zero().equals(a.add(b));
}
}
Ads help maintain this website.