Return-Path: Delivered-To: apmail-commons-dev-archive@www.apache.org Received: (qmail 89983 invoked from network); 21 Feb 2011 15:01:22 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 21 Feb 2011 15:01:22 -0000 Received: (qmail 52312 invoked by uid 500); 21 Feb 2011 15:01:21 -0000 Delivered-To: apmail-commons-dev-archive@commons.apache.org Received: (qmail 52101 invoked by uid 500); 21 Feb 2011 15:01:19 -0000 Mailing-List: contact dev-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Commons Developers List" Delivered-To: mailing list dev@commons.apache.org Received: (qmail 52087 invoked by uid 99); 21 Feb 2011 15:01:18 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 21 Feb 2011 15:01:18 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [209.85.212.47] (HELO mail-vw0-f47.google.com) (209.85.212.47) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 21 Feb 2011 15:01:12 +0000 Received: by vws4 with SMTP id 4so379072vws.6 for ; Mon, 21 Feb 2011 07:00:51 -0800 (PST) Received: by 10.52.164.103 with SMTP id yp7mr2006419vdb.101.1298299719113; Mon, 21 Feb 2011 06:48:39 -0800 (PST) MIME-Version: 1.0 Received: by 10.220.177.76 with HTTP; Mon, 21 Feb 2011 06:48:19 -0800 (PST) In-Reply-To: <120223801.6201751298294211434.JavaMail.root@spooler6-g27.priv.proxad.net> References: <120223801.6201751298294211434.JavaMail.root@spooler6-g27.priv.proxad.net> From: Mikkel Meyer Andersen Date: Mon, 21 Feb 2011 15:48:19 +0100 Message-ID: Subject: Re: [MATH] Matrix hierarchy reorganization To: Commons Developers List Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org 2011/2/21 : > Hi Mikkel, > > ----- "Mikkel Meyer Andersen" a =E9crit : > >> Dear community, >> >> I've started on implementing Kalman filter and have once again run >> into a structural challenge in regards to matrix hierarchy (as with >> https://issues.apache.org/jira/browse/MATH-435 and >> https://issues.apache.org/jira/browse/MATH-437 ). >> >> We have two base types of matrices: RealMatrix and FieldMatrix, both >> extending AnyMatrix. Both RealMatrix and FieldMatrix have a lot of >> the >> same functionality, e.g. add, subtract, scalarAdd, scalarMultiply, >> multiply, preMultiply etc. >> >> I think it would be beneficial to try to move these standard matrix >> methods to AnyMatrix, or at least introduce a new intermediate >> AnyAlgebraicMatrix (or similar). It would be natural in several >> aspects to just require an AnyAlgebraicMatrix, e.g. with Kalman >> filter >> or repeated squaring, instead of forcing the user to use either >> RealMatrix or FieldMatrix (or implement almost similar code for >> both). >> >> What do you think about such a reorganization of the matrix >> hierarchy? > > I think we really need to reorganize our linear algebra, but am not sure = about > this specific change, as I fear it would deter performances (which alread= y > needs improvements). > > At ApacheCon Atlanta, we had a short discussion with Isabel Drost form th= e Mahout > project. We would really much have liked to have Ted Tunning around too > but he was not there. We said to Isabel that once we have 2.2 out and > will be reflecting about 3.0, we would like to have some requirements fro= m > the Mahout project. We were not able up to now to satisfy their needs bec= ause > of backward compatibility. However, now is the time we can change anythin= g > we want. > > The current problems I see with our linear algebra package are the follow= ing ones: > =A0- clumsy hierarchy > =A0- inefficient for large matrices (say above 4000 rows and columns) > =A0- insufficient support for sparse matrices (most algorithms simply don= 't use sparsity) > =A0- SVD is still not stable, after 3 complete rewrites > =A0- missing features (eigen decomposition for non-symetric matrices) > > The cool features we have are: > =A0- support for field matrices (this is really useful with Complex eleme= nts, > =A0 with Fraction elements when we need exact computation of polynomial c= oefficients for > =A0 example, and with Dfp elements for high accuracy) > =A0- reasonable API for decomposition, mainly Jama compatible but slightl= y better IMHO > > The things we can change at 3.0 are: > =A0- API > =A0- implementation > > The things we will for sure have some difficult discussions are: > =A0- dependencies > =A0 (I guess Phil and myself don't like dependencies, whereas Ted and Gil= les > =A0 =A0are happy with them) > > What I would like to see: > =A0- more exchanges with the Mahout community > > I'm not sure if we should have this discussion here, or on the Mahout lis= t or > on both. Ted, what to you think about this, are their a sufficient number= of > Mahout people here or should we cross-post everything ? > > Thanks for bringing up this really important topic Mikkel! > Luc > >> >> Cheers, Mikkel. >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org >> For additional commands, e-mail: dev-help@commons.apache.org > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org > For additional commands, e-mail: dev-help@commons.apache.org > > Hi Luc, It wasn't my meaning to open such huge a discussion at the moment :-). Sorry for that. I think we should postpone this discussion until 2.2 is out. Meanwhile, I'll be thinking about possible ways to go with the hierarchy. Cheers, Mikkel. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org For additional commands, e-mail: dev-help@commons.apache.org