[jira] [Updated] (MATH-765) Refactoring the vector and matrix classes
[ https://issues.apache.org/jira/browse/MATH-765?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Leandro Ariel Pezzente updated MATH-765: Comment: was deleted (was: Gilles , do you know if MIT License is compatibles with APL 2.0 ?) 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. {color:red}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{color}. {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 h3. List of the methods || {{RealVector}} || {{RealMatrix}} || Comments || | {{RealVector add(RealVector v)}} | {{RealMatrix add(RealMatrix m)}} | | | {{int getDimension()}} | {{int getRowDimension()}},\\ {{int getColumnDimension()}} | | | {{RealVector mapMultiply(double d)}} | {{scalarMultiply(double d)}} | (1) | | | {{double getTrace()}} | | | | {{multiply(RealMatrix m)}} | | | | {{double[] operate(double[])}} | (2) | | | {{RealVector operate(RealVector)}} | | | | {{RealMatrix power(int p)}} | | | | {{double[] preMultiply(double[])}} | (2) | | | {{RealMatrix preMultiply(RealMatrix)}}| | | | {{RealVector preMultiply(RealVector)}}| | | | {{RealMatrix transpose()}} | | h3. Comments on the above methods h4. Comment (1) {{RealVector RealVector.mapMultiply(double)}} and {{RealMatrix RealMatrix.scalarMultiply(double)}} perform essentially the same task. Readibility of the classes would be improved if they add the same name. This is very important since these methods reflect the fact that the space of vectors as well as the space of matrices are two vector spaces. h4. Comment (2) Prior to the release of version 3.0, all methods involving taking as argument, or returning, {{double[]}} representing vectors were removed. The rationale for this is that calling {{new ArrayRealVector(double[], false)}} is very easy, and comes at virtually no cost (see MATH-653 and MATH-660). It might be worth considering the same simplification for the {{RealMatrix}} interface. h2. Methods reflecting the mathematical structure of euclidean space h2. Constructors, factory methods and related methods h2. Manipulation of entries h2. Various norms h2. Functional-programming-like methods -- 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
[jira] [Updated] (MATH-745) up to 5x Performance Improvement on FasFourierTransformer.java by using a recursive iterative sumation Approach
[ https://issues.apache.org/jira/browse/MATH-745?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Leandro Ariel Pezzente updated MATH-745: Attachment: FastFourierTransformer.patch.txt patch uploadad up to 5x Performance Improvement on FasFourierTransformer.java by using a recursive iterative sumation Approach --- Key: MATH-745 URL: https://issues.apache.org/jira/browse/MATH-745 Project: Commons Math Issue Type: Improvement Affects Versions: 3.0 Reporter: Leandro Ariel Pezzente Labels: FFT, Fast, Fourier, Transform Attachments: FastFourierTransformer.patch.txt By swithinch form a loop iterative approach to a recursive iterative approach on fastFourierTransformer.java a Perfomance Improvement of up to 5x is gained. -- 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
[jira] [Updated] (MATH-742) Please make PolynomialSplineFunction Serializable
[ https://issues.apache.org/jira/browse/MATH-742?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Leandro Ariel Pezzente updated MATH-742: Attachment: PolynomialSplineFunction.java Please make PolynomialSplineFunction Serializable - Key: MATH-742 URL: https://issues.apache.org/jira/browse/MATH-742 Project: Commons Math Issue Type: Improvement Affects Versions: 2.2 Reporter: Neil Roeth Priority: Minor Attachments: PolynomialSplineFunction.java PolynomialSplineFunction is not Serializable, while the very similar PolynomialFunction class in the same package is. All that needs to be done is to add the import: {{import java.io.Serializable;}} and change this: {{public class PolynomialSplineFunction implements DifferentiableUnivariateRealFunction}} to this: {{public class PolynomialSplineFunction implements DifferentiableUnivariateRealFunction, Serializable}} I made exactly that modification to a local copy and it serialized successfully. Before the change, I got serialization errors. Thanks. -- 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
[jira] [Updated] (MATH-741) Univariate Function Series Abstract Factory Implementation
[ https://issues.apache.org/jira/browse/MATH-741?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Leandro Ariel Pezzente updated MATH-741: Attachment: TestHypergeometric.java Hypergeometric.java UnivariateFunctionFactory.java UnivariateFuncionFactory.java is the main abstract class. Hypergeometric.java is an Hypergeometric function implementation constructed using this abstract superclass. TestHypergeometric.java is a Junit test that check the assertion between the Hypergeometric and 2 very well know equialities. Univariate Function Series Abstract Factory Implementation -- Key: MATH-741 URL: https://issues.apache.org/jira/browse/MATH-741 Project: Commons Math Issue Type: New Feature Affects Versions: 4.0 Reporter: Leandro Ariel Pezzente Priority: Minor Attachments: Hypergeometric.java, TestHypergeometric.java, UnivariateFunctionFactory.java To Implement an abstract class for witch Univariate functions constructed using functional series. This abstract class must resolve all terms sums using recursive iterative methods. Classes subclassed by this abstract function must implement UnivariateFunction interface. -- 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
[jira] [Updated] (MATH-737) Multi Dimensional Legendre Polynomials Interpolation Class
[ https://issues.apache.org/jira/browse/MATH-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Leandro Ariel Pezzente updated MATH-737: Description: Extend legendre Polynomial Interpolation Class to support Multi-dimensional sets of points. This Class would be implemented in analysis,interpolation package. (was: Extend legendre Polynomial Interpolation Class to support Multi-dimensional sets of points. This Class would be implemented in Polynomials package. ) Issue Type: New Feature (was: Improvement) Affects Version/s: (was: 3.0) 4.0 Remaining Estimate: 0h Original Estimate: 0h Multi Dimensional Legendre Polynomials Interpolation Class -- Key: MATH-737 URL: https://issues.apache.org/jira/browse/MATH-737 Project: Commons Math Issue Type: New Feature Affects Versions: 4.0 Reporter: Leandro Ariel Pezzente Priority: Trivial Labels: Legendre, Polynomials Original Estimate: 0h Remaining Estimate: 0h Extend legendre Polynomial Interpolation Class to support Multi-dimensional sets of points. This Class would be implemented in analysis,interpolation package. -- 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