001 /* 002 * Copyright (C) 2008-2010 by Holger Arndt 003 * 004 * This file is part of the Universal Java Matrix Package (UJMP). 005 * See the NOTICE file distributed with this work for additional 006 * information regarding copyright ownership and licensing. 007 * 008 * UJMP is free software; you can redistribute it and/or modify 009 * it under the terms of the GNU Lesser General Public License as 010 * published by the Free Software Foundation; either version 2 011 * of the License, or (at your option) any later version. 012 * 013 * UJMP is distributed in the hope that it will be useful, 014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 016 * GNU Lesser General Public License for more details. 017 * 018 * You should have received a copy of the GNU Lesser General Public 019 * License along with UJMP; if not, write to the 020 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 021 * Boston, MA 02110-1301 USA 022 */ 023 024 package org.ujmp.core.doublematrix; 025 026 import org.ujmp.core.Matrix; 027 import org.ujmp.core.calculation.DivideMatrix; 028 import org.ujmp.core.calculation.DivideMatrixCalculation; 029 import org.ujmp.core.calculation.DivideScalar; 030 import org.ujmp.core.calculation.DivideScalarCalculation; 031 import org.ujmp.core.calculation.MinusMatrix; 032 import org.ujmp.core.calculation.MinusMatrixCalculation; 033 import org.ujmp.core.calculation.MinusScalar; 034 import org.ujmp.core.calculation.MinusScalarCalculation; 035 import org.ujmp.core.calculation.Mtimes; 036 import org.ujmp.core.calculation.MtimesCalculation; 037 import org.ujmp.core.calculation.PlusMatrix; 038 import org.ujmp.core.calculation.PlusMatrixCalculation; 039 import org.ujmp.core.calculation.PlusScalar; 040 import org.ujmp.core.calculation.PlusScalarCalculation; 041 import org.ujmp.core.calculation.TimesMatrix; 042 import org.ujmp.core.calculation.TimesMatrixCalculation; 043 import org.ujmp.core.calculation.TimesScalar; 044 import org.ujmp.core.calculation.TimesScalarCalculation; 045 import org.ujmp.core.calculation.Transpose; 046 import org.ujmp.core.calculation.TransposeCalculation; 047 import org.ujmp.core.doublematrix.calculation.general.decomposition.Chol; 048 import org.ujmp.core.doublematrix.calculation.general.decomposition.Eig; 049 import org.ujmp.core.doublematrix.calculation.general.decomposition.Inv; 050 import org.ujmp.core.doublematrix.calculation.general.decomposition.InvSPD; 051 import org.ujmp.core.doublematrix.calculation.general.decomposition.InvSymm; 052 import org.ujmp.core.doublematrix.calculation.general.decomposition.LU; 053 import org.ujmp.core.doublematrix.calculation.general.decomposition.QR; 054 import org.ujmp.core.doublematrix.calculation.general.decomposition.SVD; 055 import org.ujmp.core.doublematrix.calculation.general.decomposition.Solve; 056 import org.ujmp.core.doublematrix.calculation.general.decomposition.SolveSPD; 057 import org.ujmp.core.doublematrix.calculation.general.decomposition.SolveSymm; 058 import org.ujmp.core.doublematrix.factory.DefaultDenseDoubleMatrix2DFactory; 059 import org.ujmp.core.doublematrix.factory.DenseDoubleMatrix2DFactory; 060 import org.ujmp.core.matrix.DenseMatrix2D; 061 062 public interface DenseDoubleMatrix2D extends DoubleMatrix2D, DenseDoubleMatrix, DenseMatrix2D { 063 064 public static DenseDoubleMatrix2DFactory factory = new DefaultDenseDoubleMatrix2DFactory(); 065 066 public static TransposeCalculation<DenseDoubleMatrix2D, DenseDoubleMatrix2D> transpose = Transpose.DENSEDOUBLEMATRIX2D; 067 068 public static PlusMatrixCalculation<DenseDoubleMatrix2D, DenseDoubleMatrix2D, DenseDoubleMatrix2D> plusMatrix = PlusMatrix.DENSEDOUBLEMATRIX2D; 069 070 public static MinusMatrixCalculation<DenseDoubleMatrix2D, DenseDoubleMatrix2D, DenseDoubleMatrix2D> minusMatrix = MinusMatrix.DENSEDOUBLEMATRIX2D; 071 072 public static TimesMatrixCalculation<DenseDoubleMatrix2D, DenseDoubleMatrix2D, DenseDoubleMatrix2D> timesMatrix = TimesMatrix.DENSEDOUBLEMATRIX2D; 073 074 public static DivideMatrixCalculation<DenseDoubleMatrix2D, DenseDoubleMatrix2D, DenseDoubleMatrix2D> divideMatrix = DivideMatrix.DENSEDOUBLEMATRIX2D; 075 076 public static PlusScalarCalculation<DenseDoubleMatrix2D, DenseDoubleMatrix2D> plusScalar = PlusScalar.DENSEDOUBLEMATRIX2D; 077 078 public static MinusScalarCalculation<DenseDoubleMatrix2D, DenseDoubleMatrix2D> minusScalar = MinusScalar.DENSEDOUBLEMATRIX2D; 079 080 public static TimesScalarCalculation<DenseDoubleMatrix2D, DenseDoubleMatrix2D> timesScalar = TimesScalar.DENSEDOUBLEMATRIX2D; 081 082 public static DivideScalarCalculation<DenseDoubleMatrix2D, DenseDoubleMatrix2D> divideScalar = DivideScalar.DENSEDOUBLEMATRIX2D; 083 084 public static MtimesCalculation<DenseDoubleMatrix2D, DenseDoubleMatrix2D, DenseDoubleMatrix2D> mtimes = Mtimes.DENSEDOUBLEMATRIX2D; 085 086 public static SVD<Matrix> svd = org.ujmp.core.doublematrix.calculation.general.decomposition.SVD.INSTANCE; 087 088 public static LU<Matrix> lu = org.ujmp.core.doublematrix.calculation.general.decomposition.LU.INSTANCE; 089 090 public static QR<Matrix> qr = org.ujmp.core.doublematrix.calculation.general.decomposition.QR.INSTANCE; 091 092 public static Inv<Matrix> inv = Inv.INSTANCE; 093 094 public static InvSymm<Matrix> invSymm = InvSymm.INSTANCE; 095 096 public static InvSPD<Matrix> invSPD = InvSPD.INSTANCE; 097 098 public static Solve<Matrix> solve = Solve.INSTANCE; 099 100 public static SolveSymm<Matrix> solveSymm = SolveSymm.INSTANCE; 101 102 public static SolveSPD<Matrix> solveSPD = SolveSPD.INSTANCE; 103 104 public static Chol<Matrix> chol = Chol.INSTANCE; 105 106 public static Eig<Matrix> eig = Eig.INSTANCE; 107 108 public DenseDoubleMatrix2DFactory getFactory(); 109 }