PuffinPlot issue tracker

Bug: a88/21b

ID : 21bd8be0-288f-40bd-b7b5-9eab10a1693a
Short name : a88/21b
Status : wontfix
Severity : minor
Assigned :
Reporter : Pontus Lurcock <pont@talvi.net>
Creator : Pontus Lurcock <pont@talvi.net>
Created : Tue, 05 Feb 2013 08:21:44 +0000
Target : 1.4
Summary : Drop JAMA for PCA calculation [261]

Comment: --------- Comment ---------
ID: dddb414f-d673-469d-afbb-274c6d91a462
Short name: a88/21b/ddd
From: Pontus Lurcock <pont@talvi.net>
Date: Tue, 05 Feb 2013 08:21:44 +0000

IIRC I'm only using JAMA to calculate eigenvectors for PCA
analysis. If so it might be worth coding the calculation in
PuffinPlot itself and dropping JAMA, which accounts for almost 10%
of PuffinPlot's source code (although of course in the binary it's
dwarfed by Batik and FreeHEP). Note that the calculation should
be simplified by the fact that we know the matrix to be symmetric.
DAIE does it in an Excel spreadsheet which (with all due respect
to Leo's ingenuity) implies it's not *too* hairy.

Comment: --------- Comment ---------
ID: f35a0c1e-173a-4135-a6b7-682f1561283d
Short name: a88/21b/f35
From: Pontus Lurcock <pont@talvi.net>
Date: Tue, 13 Oct 2015 21:54:06 +0000

I'm going to close this. There's no difficulty with implementing it in
principle: JAMA is public domain so I could even cut out the relevant
parts and paste them into PuffinPlot's source. However the benefit would
be negligible: JAMA is now <7.5% of Puffin's source, and even if
I drop Batik and FreeHEP for something smaller, Jython is still huge.
The changes would risk introducing new bugs, and the time is better
spent on more important improvements.


Comment: --------- Comment ---------
ID: 2fea0f4d-ffcf-42f7-a00c-fc2f4042b637
Short name: a88/21b/2fe
From: Pontus Lurcock <pont@talvi.net>
Date: Mon, 17 Dec 2018 17:28:02 +0000

I have tidied things up a little by removing the JAMA source code from
the PuffinPlot repository and using a jar from Maven Central instead.
Now that Apache Commons Math is in any case a PuffinPlot dependency, it
would make sense in the longer term to drop JAMA entirely and use
Commons Math instead for eigenvectors. Commons Math is more actively
maintained than JAMA, and its matrix API is explicitly based on JAMA,
IIRC, so it shouldn't be a big job. But it's by no means urgent.