93 messages in org.apache.commons.devRe: [math] Re: commons-math, matrix-t...
FromSent OnAttachments
Sam HallidayMay 14, 2009 3:17 am 
Ted DunningMay 14, 2009 11:17 am 
Luc MaisonobeMay 14, 2009 12:08 pm 
Ted DunningMay 14, 2009 12:12 pm 
Luc MaisonobeMay 14, 2009 12:46 pm 
Sam HallidayMay 14, 2009 1:54 pm 
Ted DunningMay 14, 2009 3:12 pm 
Phil SteitzMay 15, 2009 6:22 pm 
Ted DunningMay 15, 2009 6:41 pm 
Phil SteitzMay 15, 2009 7:19 pm 
Luc MaisonobeMay 16, 2009 1:37 am 
Sam HallidayMay 16, 2009 7:21 am 
Sam HallidayMay 16, 2009 7:40 am 
Sam HallidayMay 16, 2009 7:44 am 
Sam HallidayMay 16, 2009 7:56 am 
Sam HallidayMay 16, 2009 8:14 am 
Luc MaisonobeMay 16, 2009 8:43 am 
Phil SteitzMay 16, 2009 8:55 am 
Sam HallidayMay 16, 2009 9:25 am 
Sam HallidayMay 16, 2009 9:30 am 
Luc MaisonobeMay 16, 2009 9:40 am 
Luc MaisonobeMay 16, 2009 9:43 am 
Sam HallidayMay 16, 2009 9:48 am 
Sam HallidayMay 16, 2009 9:52 am 
Sam HallidayMay 16, 2009 10:07 am 
Luc MaisonobeMay 16, 2009 10:09 am 
Luc MaisonobeMay 16, 2009 10:13 am 
Luc MaisonobeMay 16, 2009 10:26 am 
Sam HallidayMay 16, 2009 10:39 am 
Luc MaisonobeMay 16, 2009 10:57 am 
Sam HallidayMay 16, 2009 11:11 am 
Ted DunningMay 16, 2009 1:01 pm 
Ted DunningMay 16, 2009 1:03 pm 
Bill BarkerMay 16, 2009 3:49 pm 
Luc MaisonobeMay 17, 2009 1:12 am 
Phil SteitzMay 17, 2009 8:07 am 
Phil SteitzMay 17, 2009 8:14 am 
Phil SteitzMay 17, 2009 8:34 am 
Phil SteitzMay 17, 2009 8:56 am 
Luc MaisonobeMay 17, 2009 9:06 am 
Phil SteitzMay 17, 2009 5:13 pm 
Sam HallidayMay 18, 2009 4:28 am 
Bill BarkerMay 18, 2009 8:13 pm 
Sam HallidayMay 19, 2009 1:26 am 
Jin MingjianMay 19, 2009 2:59 am 
Ted DunningMay 19, 2009 11:17 am 
Phil SteitzMay 20, 2009 11:05 am 
Bill BarkerMay 20, 2009 6:52 pm 
Sam HallidayMay 21, 2009 3:13 am 
Luc MaisonobeMay 21, 2009 5:18 am 
sebbMay 21, 2009 5:46 am 
Luc MaisonobeMay 21, 2009 6:03 am 
sebbMay 21, 2009 7:09 am 
Sam HallidayMay 21, 2009 8:31 am 
Sam HallidayMay 21, 2009 8:34 am 
James CarmanMay 21, 2009 8:35 am 
Sam HallidayMay 21, 2009 8:42 am 
Luc MaisonobeMay 21, 2009 8:44 am 
Luc MaisonobeMay 21, 2009 9:03 am 
Sam HallidayMay 21, 2009 10:08 am 
Sam HallidayMay 21, 2009 10:13 am 
Ted DunningMay 21, 2009 12:08 pm 
John BollingerMay 21, 2009 1:53 pm 
Edward J. YoonMay 21, 2009 7:14 pm 
Bill BarkerMay 21, 2009 8:19 pm 
Ted DunningMay 21, 2009 8:52 pm 
Sam HallidayMay 22, 2009 1:18 am 
Luc MaisonobeMay 22, 2009 1:25 am 
Phil SteitzMay 22, 2009 3:22 am 
Sam HallidayMay 22, 2009 3:37 am 
Luc MaisonobeMay 22, 2009 4:05 am 
sebbMay 22, 2009 4:13 am 
Luc MaisonobeMay 22, 2009 4:19 am 
Luc MaisonobeMay 22, 2009 4:21 am 
sebbMay 22, 2009 4:36 am 
Luc MaisonobeMay 22, 2009 6:11 am 
Luc MaisonobeMay 22, 2009 6:14 am 
Edward J. YoonMay 22, 2009 10:13 am 
Ted DunningMay 22, 2009 11:16 am 
Bill BarkerMay 23, 2009 12:11 am 
Edward J. YoonMay 23, 2009 1:22 am 
Jin MingjianMay 23, 2009 6:28 am 
Ted DunningMay 23, 2009 10:32 am 
Bill BarkerMay 24, 2009 6:10 pm 
Ted DunningMay 24, 2009 11:46 pm 
Luc MaisonobeMay 25, 2009 12:38 pm 
Bill BarkerMay 25, 2009 2:22 pm 
Bill BarkerMay 25, 2009 4:32 pm 
Ted DunningMay 25, 2009 4:51 pm 
Bill BarkerMay 25, 2009 6:21 pm 
Sam HallidayMay 28, 2009 10:19 am 
Sam HallidayMay 28, 2009 12:00 pm 
Phil SteitzMay 30, 2009 10:46 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [math] Re: commons-math, matrix-toolkits-java and consolidationActions
From:Phil Steitz (phil@gmail.com)
Date:May 17, 2009 8:56:09 am
List:org.apache.commons.dev

Luc Maisonobe wrote:

Sam Halliday a écrit :

I've had a quick look at the 2.0 API and the only changes I'd like to request are:-

- create interfaces RealSparse{Matrix, Vector} to indicate a sparse storage implementation. Can be empty (for now).

I suppose these interfaces would extend Real{Matrix, Vector} ?

- rename SparseReal{Matrix, Vector} to OpenMapRealSparse{Matrix, Vector}. Implement above interfaces.

I have no opinion on that. What do others think ?

+1 for "dethroning" ;)

With the new interfaces, we could also drop the "Sparse" from the name - i.e, "OpenMapRealMatrix"

I am wondering now whether similar marking and "dethroning" should happen on the dense side - i.e DenseReal{Matrix, Vector}, BlockRealMatrix (currently DenseRealMatrix), ArrayRealMatrix (currently RealMatrixImpl)?

- implementations should subclass the return type of some methods in the Real{Matrix, Vector} API. e.g. RealVectorImpl.copy() returns a RealVector, but could declare that it returns a RealVectorImpl. This will avoid needless user casts. In future APIs, this could be a powerful way to define the return type of matrix-matrix computation when the storage classes are known... e.g. declaring that you return a DiagonalMatrix.

I didn't know changing the return type to a subtype was allowed when implementing an interface! This is for sure a good thing to do and could probably be used in many other places too.

+1 in general, but need to realize that when implemented, this changes locks us in. In the specific cases mentioned above, this is a no-brainer, but there are others (mostly in the decomp classes) where it is not so obvious.

- is it too late to define a Norm enum and take that as a parameter, rather than explicit methods for each Norm type?

There are many places where we use the same pattern outside of linear algebra. I'm reluctant to change this because if we extend the enum later, we may forget to add a new case in all implementations (somewhere in a switch statement), so we should add an exception for defensive programming. A method name enforced in an interface prevent such errors, you cannot compile your implementation if you forget a method.

Agree with Luc on this, but more from a Java style than maintenance standpoint. We have tried in general to stay away from "behavior flags" in method signatures up to now.

Phil