[ https://issues.apache.org/jira/browse/MATH-147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Henri Yandell reopened MATH-147: -------------------------------- > Adding new methods to RealMatrix > -------------------------------- > > Key: MATH-147 > URL: https://issues.apache.org/jira/browse/MATH-147 > Project: Commons Math > Issue Type: Improvement > Affects Versions: 1.0 Final > Environment: Operating System: All > Platform: All > Reporter: Kim van der Linde > Priority: Minor > Fix For: 1.0 Final > > > /* > * Copyright 2003-2004 The Apache Software Foundation. > * > * Licensed under the Apache License, Version 2.0 (the "License"); > * you may not use this file except in compliance with the License. > * You may obtain a copy of the License at > * > * http://www.apache.org/licenses/LICENSE-2.0 > * > * Unless required by applicable law or agreed to in writing, software > * distributed under the License is distributed on an "AS IS" BASIS, > * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > * See the License for the specific language governing permissions and > * limitations under the License. > */ > package org.apache.commons.math.linear; > /** > * Interface defining a real-valued matrix with basic algebraic operations > * @version $Revision: 1.20 $ $Date: 2004/08/22 01:42:58 $ > */ > public interface RealMatrix { > /** > * Get a submatrix. Rows and columns are indicated counting from 1 to n, > NOT > from 0 to n-1. > * @param startRow Initial row index > * @param endRow Final row index > * @param startColumn Initial column index > * @param endColumn Final column index > * @return The subMatrix containing the data of > the specified rows and > columns > * @exception MatrixIndexException matrix dimension mismatch > */ > RealMatrix getSubMatrix (int startRow, int endRow, int startColumn, int > endColumn) > throws MatrixIndexException; > /** > * Get a submatrix. Rows and columns are indicated counting from 1 to n, > NOT > from 0 to n-1. > * @param rows Array of row indices. > * @param columns Array of column indices. > * @return The subMatrix containing the data of > the specified rows and > columns > * @exception MatrixIndexException matrix dimension mismatch > */ > RealMatrix getSubMatrix (int[] rows, int[] columns) > throws MatrixIndexException; > /** > * Get a submatrix. Rows and columns are indicated counting from 1 to n, > NOT > from 0 to n-1. > * @param startRow Initial row index > * @param endRow Final row index > * @param columns Array of column indices. > * @return The subMatrix containing the data of > the specified rows and > columns > * @exception MatrixIndexException matrix > dimension mismatch > */ > RealMatrix getSubMatrix (int startRow, int endRow, int[] columns) > throws MatrixIndexException; > > /** > * Get a submatrix. Rows and columns are indicated counting from 1 to n, > NOT > from 0 to n-1. > * @param rows Array of row indices. > * @param startColumn Initial column index > * @param endColumn Final column index > * @return The subMatrix containing the data of > the specified rows and > columns > * @exception MatrixIndexException matrix dimension > mismatch > */ > RealMatrix getSubMatrix (int[] rows, int startColumn, int endColumn) > throws MatrixIndexException; > /** > * Returns a (deep) copy of this. > * > * @return matrix copy > */ > RealMatrix copy(); > /** > * Compute the sum of this and m. > * > * @param m matrix to be added > * @return this + m > * @throws IllegalArgumentException if m is not the same size as this > */ > RealMatrix add(RealMatrix m) throws IllegalArgumentException; > /** > * Compute this minus m. > * > * @param m matrix to be subtracted > * @return this + m > * @throws IllegalArgumentException if m is not the same size as this > */ > RealMatrix subtract(RealMatrix m) throws IllegalArgumentException; > /** > * Returns the result of adding d to each entry of this. > * > * @param d value to be added to each entry > * @return d + this > */ > RealMatrix scalarAdd(double d); > /** > * Returns the result multiplying each entry of this by d. > * > * @param d value to multiply all entries by > * @return d * this > */ > RealMatrix scalarMultiply(double d); > /** > * Returns the result of postmultiplying this by m. > * > * @param m matrix to postmultiply by > * @return this * m > * @throws IllegalArgumentException > * if columnDimension(this) != rowDimension(m) > */ > RealMatrix multiply(RealMatrix m) throws IllegalArgumentException; > /** > * Returns the result premultiplying this by <code>m</code>. > * @param m matrix to premultiply by > * @return m * this > * @throws IllegalArgumentException > * if rowDimension(this) != columnDimension(m) > */ > RealMatrix preMultiply(RealMatrix m) throws IllegalArgumentException; > /** > * Returns matrix entries as a two-dimensional array. > * > * @return 2-dimensional array of entries > */ > double[][] getData(); > /** > * Overwrites the underlying data for the matrix with > * a fresh copy of <code>data</code>. > * > * @param data 2-dimensional array of entries > */ > void setData(double[][] data); > /** > * Returns the <a > href="http://mathworld.wolfram.com/MaximumAbsoluteRowSumNorm.html"> > * maximum absolute row sum norm</a> of the matrix. > * > * @return norm > */ > double getNorm(); > /** > * Returns the entries in row number <code>row</code> as an array. > * > * @param row the row to be fetched > * @return array of entries in the row > * @throws MatrixIndexException if the specified row is greater > * than the number of rows in this matrix > */ > double[] getRow(int row) throws MatrixIndexException; > /** > * Returns the entries in row number <code>row</code> as a RealMatrix > object. > * > * @param row the row to be fetched > * @return RealMatrix with only one row > * @throws MatrixIndexException if the specified row is greater > * than the number of rows in this matrix > */ > RealMatrix getRowMatrix(int row) throws MatrixIndexException; > /** > * Returns the entries in column number <code>col</code> as an array. > * > * @param col column to fetch > * @return array of entries in the column > * @throws MatrixIndexException if the specified column is greater > * than the number of columns in this matrix > */ > double[] getColumn(int col) throws MatrixIndexException; > /** > * Returns the entries in column number <code>col</code> as a RealMatrix > object. > * > * @param col column to fetch > * @return RealMatrix with only one column > * @throws MatrixIndexException if the specified column is greater > * than the number of columns in this matrix > */ > RealMatrix getColumnMatrix(int col) throws MatrixIndexException; > /** Gives the means of each colums of the matrix. > @return the column means > */ > double[] columnMeans(); > /** Gives the means of each row of the matrix. > @return the row means > */ > double[] rowMeans(); > > /** > * Returns the entry in the specified row and column. > * > * @param row row location of entry to be fetched > * @param column column location of entry to be fetched > * @return matrix entry in row,column > * @throws MatrixIndexException if the specified coordinate is outside > * the dimensions of this matrix > */ > double getEntry(int row, int column) throws MatrixIndexException; > /** > * Sets the entry in the specified row and column to the specified value. > * > * @param row row location of entry to be set > * @param column column location of entry to be set > * @param value value to set > * @throws MatrixIndexException if the specified coordinate is outside > * he dimensions of this matrix > */ > void setEntry(int row, int column, double value) > throws MatrixIndexException; > /** > * Returns the transpose of this matrix. > * > * @return transpose matrix > */ > RealMatrix transpose(); > /** > * Returns the inverse of this matrix. > * > * @return inverse matrix > * @throws InvalidMatrixException if this is not invertible > */ > RealMatrix inverse() throws InvalidMatrixException; > /** > * Returns the determinant of this matrix. > * > * @return determinant > */ > double getDeterminant(); > /** > * Is this a square matrix? > * @return true if the matrix is square (rowDimension = columnDimension) > */ > boolean isSquare(); > /** > * Is this a singular matrix? > * @return true if the matrix is singular > */ > boolean isSingular(); > /** > * Returns the number of rows in the matrix. > * > * @return rowDimension > */ > int getRowDimension(); > /** > * Returns the number of columns in the matrix. > * > * @return columnDimension > */ > int getColumnDimension(); > > /** > * Returns the <a href="http://mathworld.wolfram.com/MatrixTrace.html"> > * trace</a> of the matrix (the sum of the elements on the main diagonal). > * > * @return trace > */ > double getTrace(); > /** > * Returns the result of multiplying this by the vector <code>v</code>. > * > * @param v the vector to operate on > * @return this*v > * @throws IllegalArgumentException if columnDimension != v.size() > */ > double[] operate(double[] v) throws IllegalArgumentException; > /** > * Returns the (row) vector result of premultiplying this by the vector > <code>v</code>. > * > * @param v the row vector to premultiply by > * @return v*this > * @throws IllegalArgumentException if rowDimension != v.size() > */ > double[] preMultiply(double[] v) throws IllegalArgumentException; > /** > * Returns the solution vector for a linear system with coefficient > * matrix = this and constant vector = <code>b</code>. > * > * @param b constant vector > * @return vector of solution values to AX = b, where A is *this > * @throws IllegalArgumentException if this.rowDimension != b.length > * @throws InvalidMatrixException if this matrix is not square or is > singular > */ > double[] solve(double[] b) throws IllegalArgumentException, > InvalidMatrixException; > /** > * Returns a matrix of (column) solution vectors for linear systems with > * coefficient matrix = this and constant vectors = columns of > * <code>b</code>. > * > * @param b matrix of constant vectors forming RHS of linear systems to > * to solve > * @return matrix of solution vectors > * @throws IllegalArgumentException if this.rowDimension != row dimension > * @throws InvalidMatrixException if this matrix is not square or is > singular > */ > RealMatrix solve(RealMatrix b) throws IllegalArgumentException, > InvalidMatrixException; > } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]