I love commons-math, one problem though!
lets take a look at the dependecies
common-lang: 189 kb commons-beanutils: 116 kb commons-collections-SNAPSHOT.jar 463 commons-discovery 70 kb commons-logging-1.0.3.jar 31 kb kb
Thats 850 kb!!! of 3rd party libraries that are only used in a few places.
So to calculate a simple mean I need to include around 6 jars (including commons-math)
So lets get the list down a bit.
* Commons-lang
Getting rid of Commons-lang is pretty easy since it is only used in one place: MathException
Solution : Let MathException extend Exception instead of NestableException. There aren't really anywhere we use the ability to nest Exceptions inside other Exceptions in commons-math.
* Commons-collections
Getting rid of commons-collections is also pretty easy
Solution: Getting a copy of HashBag (and the Testcase) and put into math.util (no need to copy the interface)
now we got rid of ~ 650 kb in around 2 minutes, 3 jars left, this is a fun game!!
* Commons-Beanutils
Okay the transformers are nice but come on how many people are going to use them?
Solution: put them into a new small library: commons-math-transformers.jar
** Commons-Discovery
KISS keep it simple stupid, who on earth is going to provide there own UnivariateRealSolverFactory??
and for those few people that need it... I think they are smart enough to do figure it out themself.
Solution: remove it (or do something like we do for commons-logging)
** Commons-logging
Lastly commons-logging...
I would think returning NaN is enough, but okay if people insist we can do something like (pseudo code)
public class logutil static Method logMethod; static { try { Class clazz = Class.forName("commons.LogFactory"); logMethod = clazz.getMethod("error"); } catch (ClassNotFoundException e) {} } public static logError(String msg, Throwable t) { if (logMethod!=null) { logMethod.invoke(msg + t); } } }
and whoops we have now gotten rid of all the libraries, and we have easy embeddable little commons math jar.
regards Kasper
-------- Kasper Nielsen kaspern at apache.org
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]