[
https://issues.apache.org/jira/browse/MATH-765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13224866#comment-13224866
]
Gilles commented on MATH-765:
-----------------------------
Before they try to reinvent the wheel, I suggest that everyone interested in
this refactoring has a look at the [ojAlgo|http://www.ojalgo.org] project.
Certainly, there are things to learn from it, either to take inspiration from,
or to avoid.
> 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