You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Phil Steitz (JIRA)" <ji...@apache.org> on 2006/07/06 07:30:30 UTC

[jira] Closed: (MATH-147) Adding new methods to RealMatrix

     [ http://issues.apache.org/jira/browse/MATH-147?page=all ]
     
Phil Steitz closed MATH-147:
----------------------------


MatrixUtils method with requested functionality was added in 1.0 final.

> Adding new methods to RealMatrix
> --------------------------------
>
>          Key: MATH-147
>          URL: http://issues.apache.org/jira/browse/MATH-147
>      Project: Commons Math
>         Type: Improvement

>     Versions: 1.0 Final
>  Environment: Operating System: All
> Platform: All
>     Reporter: Kim van der Linde
>     Priority: Minor

>
> /*
>  * 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.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org