/** * Creates a new solver targeted at the specified matrix size. * * @param maxRows The expected largest matrix it might have to process. Can be larger. * @param maxCols The expected largest matrix it might have to process. Can be larger. */ public SolvePseudoInverseSvd(int maxRows, int maxCols) { svd = DecompositionFactory.svd(maxRows,maxCols,true,true,true); }
/** * Creates a linear solver using QR decomposition */ public static LinearSolver<DenseMatrix64F> qr( int numRows , int numCols ) { return leastSquares(numRows,numCols); }
/** * Creates a general purpose solver. Use this if you are not sure what you need. * * @param numRows The number of rows that the decomposition is optimized for. * @param numCols The number of columns that the decomposition is optimized for. */ public static LinearSolver<DenseMatrix64F> general( int numRows , int numCols ) { if( numRows == numCols ) return linear(numRows); else return leastSquares(numRows,numCols); }
/** * Creates a linear solver using LU decomposition */ public static LinearSolver<DenseMatrix64F> lu( int numRows ) { return linear(numRows); }
/** * Creates a linear solver using Cholesky decomposition */ public static LinearSolver<DenseMatrix64F> chol( int numRows ) { return symmPosDef(numRows); }
/** * * @param computeVectors * @param tol Tolerance for a matrix being symmetric */ public SwitchingEigenDecomposition( int matrixSize , boolean computeVectors , double tol ) { symmetricAlg = DecompositionFactory.eig(matrixSize,computeVectors,true); generalAlg = DecompositionFactory.eig(matrixSize,computeVectors,false); this.computeVectors = computeVectors; this.tol = tol; }
public ActiveSearchOptimizationSettings(double epsilonConstraintActive, int maxIterations, boolean useSVD) { this.epsilonConstraintActive = epsilonConstraintActive; this.maxIterations = maxIterations; this.linearSolver = LinearSolverFactory.pseudoInverse(useSVD); }
public SymmetricQRAlgorithmDecomposition_D64GCFree(boolean computeVectors) { this(DecompositionFactory.tridiagonal(0), computeVectors); }
/** * Creates a linear solver using QRP decomposition */ public static LinearSolver<DenseMatrix64F> qrp( boolean computeNorm2, boolean computeQ ) { return leastSquaresQrPivot(computeNorm2,computeQ); }
/** * Creates a new solver targeted at the specified matrix size. * * @param maxRows The expected largest matrix it might have to process. Can be larger. * @param maxCols The expected largest matrix it might have to process. Can be larger. */ public ConfigurableSolvePseudoInverseSVD(int maxRows, int maxCols, double singularValueLimit) { svd = DecompositionFactory.svd(maxRows, maxCols, true, true, true); this.singularValueLimit = singularValueLimit; }
/** * Creates a general purpose solver. Use this if you are not sure what you need. * * @param numRows The number of rows that the decomposition is optimized for. * @param numCols The number of columns that the decomposition is optimized for. */ public static LinearSolver<DenseMatrix64F> general( int numRows , int numCols ) { if( numRows == numCols ) return linear(numRows); else return leastSquares(numRows,numCols); }
/** * * @param computeVectors * @param tol Tolerance for a matrix being symmetric */ public SwitchingEigenDecomposition( int matrixSize , boolean computeVectors , double tol ) { symmetricAlg = DecompositionFactory.eig(matrixSize,computeVectors,true); generalAlg = DecompositionFactory.eig(matrixSize,computeVectors,false); this.computeVectors = computeVectors; this.tol = tol; }
public ActiveSearchOptimizationSettings(double epsilonConstraintActive, int maxIterations, boolean useSVD) { this.epsilonConstraintActive = epsilonConstraintActive; this.maxIterations = maxIterations; this.linearSolver = LinearSolverFactory.pseudoInverse(useSVD); }
public SymmetricQRAlgorithmDecomposition_D64GCFree(boolean computeVectors) { this(DecompositionFactory.tridiagonal(0), computeVectors); }
/** * Creates a new solver targeted at the specified matrix size. * * @param maxRows The expected largest matrix it might have to process. Can be larger. * @param maxCols The expected largest matrix it might have to process. Can be larger. */ public SolvePseudoInverseSvd(int maxRows, int maxCols) { svd = DecompositionFactory.svd(maxRows,maxCols,true,true,true); }
/** * Creates a general purpose solver. Use this if you are not sure what you need. * * @param numRows The number of rows that the decomposition is optimized for. * @param numCols The number of columns that the decomposition is optimized for. */ public static LinearSolver<DenseMatrix64F> general( int numRows , int numCols ) { if( numRows == numCols ) return linear(numRows); else return leastSquares(numRows,numCols); }
/** * * @param computeVectors * @param tol Tolerance for a matrix being symmetric */ public SwitchingEigenDecomposition( int matrixSize , boolean computeVectors , double tol ) { symmetricAlg = DecompositionFactory.eig(matrixSize,computeVectors,true); generalAlg = DecompositionFactory.eig(matrixSize,computeVectors,false); this.computeVectors = computeVectors; this.tol = tol; }
public SymmetricQRAlgorithmDecomposition_D64(boolean computeVectors) { this(DecompositionFactory.tridiagonal(0),computeVectors); }
/** * Creates a new solver targeted at the specified matrix size. * * @param maxRows The expected largest matrix it might have to process. Can be larger. * @param maxCols The expected largest matrix it might have to process. Can be larger. */ public ConfigurableSolvePseudoInverseSVD(int maxRows, int maxCols, double singularValueLimit) { svd = DecompositionFactory.svd(maxRows, maxCols, true, true, true); this.singularValueLimit = singularValueLimit; }
/** * Creates a new solver targeted at the specified matrix size. * * @param maxRows The expected largest matrix it might have to process. Can be larger. * @param maxCols The expected largest matrix it might have to process. Can be larger. */ public SolvePseudoInverseSvd(int maxRows, int maxCols) { svd = DecompositionFactory.svd(maxRows,maxCols,true,true,true); }