[ 
https://issues.apache.org/jira/browse/MATH-765?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sébastien Brisard updated MATH-765:
-----------------------------------

    Description: 
{panel:title=Warning|borderStyle=solid}
This is not a bug report, but rather a summary of all discussions which have 
taken place on the mailing list regarding the refactoring of the vector and 
matrix classes. Indeed, it has been argued many times that the {{RealVector}} 
and {{RealMatrix}} interfaces are really cluttered, and could benefit from 
other approaches (like functional programming). 

The description of this ticket will be updated as the discussion progresses on 
the mailing-list, and new JIRA tickets will be created to carry out the "real" 
work. In order to keep this ticket tidy, contributors should refrain from 
commenting on this website. Instead, messages should be posted on the dev 
mailing-list.
{panel}


h1. The current API (version 3.0)

In this section, the current interfaces for vectors and matrices are compared. 
Vectors and matrices are two mathematical objects which are very close in 
nature. Their implementations should therefore be as similar as possible. The 
methods will be sorted as follows
* methods reflecting the mathematical structure of vector space: addition, 
multiplication by a scalar, matrix-vector product, ...
* methods reflecting the mathematical structure of euclidean space
* ...

h2. Methods reflecting the mathematical structure of vector space
|| {{RealVector}}                      || {{RealMatrix}}                        
                   || Comments ||
| {{RealVector add(RealVector v)}}     | {{RealMatrix add(RealMatrix m)}}       
                   |           |
| {{int getDimension()}}               | {{int getRowDimension()}},\\ {{int 
getColumnDimension()}} |           |
| {{RealVector mapMultiply(double d)}} | {{scalarMultiply(double d)}}           
                   |           |
|                                      | {{multiply(RealMatrix m)}}             
                   |           |
|                                      | {{double[] operate(double[])}}         
                   |           |
|                                      | {{RealVector operate(RealVector)}}     
                   |           |
|                                      | {{double[] preMultiply(double[])}}     
                   |           |
|                                      | {{RealMatrix preMultiply(RealMatrix)}} 
                   |           |
|                                      | {{RealVector preMultiply(RealVector)}} 
                   |           |

h2. Methods reflecting the mathematical structure of euclidean space

  was:
{panel:title=Warning|borderStyle=solid}
This is not a bug report, but rather a summary of all discussions which have 
taken place on the mailing list regarding the refactoring of the vector and 
matrix classes. Indeed, it has been argued many times that the {{RealVector}} 
and {{RealMatrix}} interfaces are really cluttered, and could benefit from 
other approaches (like functional programming). 

The description of this ticket will be updated as the discussion progresses on 
the mailing-list, and new JIRA tickets will be created to carry out the "real" 
work. In order to keep this ticket tidy, contributors should refrain from 
commenting on this website. Instead, messages should be posted on the dev 
mailing-list.
{panel}

    
> Refactoring the vector and matrix classes
> -----------------------------------------
>
>                 Key: MATH-765
>                 URL: https://issues.apache.org/jira/browse/MATH-765
>             Project: Commons Math
>          Issue Type: Improvement
>    Affects Versions: 4.0
>            Reporter: Sébastien Brisard
>              Labels: api-change, linear
>
> {panel:title=Warning|borderStyle=solid}
> This is not a bug report, but rather a summary of all discussions which have 
> taken place on the mailing list regarding the refactoring of the vector and 
> matrix classes. Indeed, it has been argued many times that the {{RealVector}} 
> and {{RealMatrix}} interfaces are really cluttered, and could benefit from 
> other approaches (like functional programming). 
> The description of this ticket will be updated as the discussion progresses 
> on the mailing-list, and new JIRA tickets will be created to carry out the 
> "real" work. In order to keep this ticket tidy, contributors should refrain 
> from commenting on this website. Instead, messages should be posted on the 
> dev mailing-list.
> {panel}
> h1. The current API (version 3.0)
> In this section, the current interfaces for vectors and matrices are 
> compared. Vectors and matrices are two mathematical objects which are very 
> close in nature. Their implementations should therefore be as similar as 
> possible. The methods will be sorted as follows
> * methods reflecting the mathematical structure of vector space: addition, 
> multiplication by a scalar, matrix-vector product, ...
> * methods reflecting the mathematical structure of euclidean space
> * ...
> h2. Methods reflecting the mathematical structure of vector space
> || {{RealVector}}                      || {{RealMatrix}}                      
>                      || Comments ||
> | {{RealVector add(RealVector v)}}     | {{RealMatrix add(RealMatrix m)}}     
>                      |           |
> | {{int getDimension()}}               | {{int getRowDimension()}},\\ {{int 
> getColumnDimension()}} |           |
> | {{RealVector mapMultiply(double d)}} | {{scalarMultiply(double d)}}         
>                      |           |
> |                                      | {{multiply(RealMatrix m)}}           
>                      |           |
> |                                      | {{double[] operate(double[])}}       
>                      |           |
> |                                      | {{RealVector operate(RealVector)}}   
>                      |           |
> |                                      | {{double[] preMultiply(double[])}}   
>                      |           |
> |                                      | {{RealMatrix 
> preMultiply(RealMatrix)}}                    |           |
> |                                      | {{RealVector 
> preMultiply(RealVector)}}                    |           |
> h2. Methods reflecting the mathematical structure of euclidean space

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to