added new commons math component
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/math/trunk@140822 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4a8cbc2867
commit
925847780e
|
@ -0,0 +1,3 @@
|
|||
build.properties
|
||||
target
|
||||
dist
|
|
@ -0,0 +1,97 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Proposal for math Package</title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
|
||||
<div align="center">
|
||||
<h1>Proposal for <em>math</em> Package</h1>
|
||||
</div>
|
||||
|
||||
<h3>(0) Rationale</h3>
|
||||
|
||||
<p>The Java programming language and the math extensions in commons-lang provide implementations for only the most basic mathematical algorithms. Routine development tasks such as computing basic statistics or solving a system of linear equations require components not available in java or commons-lang.</p>
|
||||
|
||||
<p>Most basic mathematical or statistical algorithms are available in open source implementations, but to assemble a simple set of capabilities one has to use multiple libraries, many of which have more restrictive licensing terms than the ASF. In addition, many of the best open source implementations (e.g. the R statistical package) are either not available in Java or require large support libraries and/or external dependencies to work.</p>
|
||||
|
||||
<p>A commons-math community will provide a productive environment for aggregation, testing and support of efficient Java implementations of commonly used mathematical and statistical algorithms.</p>
|
||||
</p>
|
||||
|
||||
|
||||
<h3>(1) Scope of the Package</h3>
|
||||
|
||||
<p>The Math project shall create and maintain a library of lightweight, self-contained mathematics and statistics components addressing the most common practical problems not immediately available in the Java programming language or commons-lang. The guiding principles for commons-math will be:
|
||||
|
||||
<ol>
|
||||
<li>Real-world application use cases determine priority</li>
|
||||
<li>Emphasis on small, easily integrated components rather than large libraries with complex dependencies</li>
|
||||
<li>All algorithms are fully documented and follow generally accepted best practices</li>
|
||||
<li>In situations where multiple standard algorithms exist, use the Strategy pattern to support multiple implementations</li>
|
||||
<li>Limited dependencies. No external dependencies beyond Commons components and the JDK</li>
|
||||
</ol>
|
||||
|
||||
<h3>(1.5) Interaction With Other Packages</h3>
|
||||
|
||||
<p><em>math</em> relies only on standard JDK 1.2 (or later) APIs for
|
||||
production deployment. It utilizes the JUnit unit testing framework for
|
||||
developing and executing unit tests, but this is of interest only to
|
||||
developers of the component.</p>
|
||||
|
||||
<p>No external configuration files are utilized.</p>
|
||||
|
||||
|
||||
<h3>(2) Initial Source of the Package</h3>
|
||||
|
||||
<p>The initial codebase will consist of implementations of basic statistical algorithms such as the following:
|
||||
<ul>
|
||||
<li>Simple univariate statistics (mean, standard deviation, n, confidence intervals)</li>
|
||||
<li>Frequency distributions</li>
|
||||
<li>t-test, chi-square test</li>
|
||||
<li>Random numbers from Gaussian, Exponential, Poisson distributions</li>
|
||||
<li>Random sampling/resampling</li>
|
||||
<li>Bivariate regression, corellation</li>
|
||||
</ul>
|
||||
|
||||
and mathematical algorithms such as the following:
|
||||
<ul>
|
||||
<li>Basic Complex Number representation with algebraic operations</li>
|
||||
<li>Newton's method for finding roots</li>
|
||||
<li>Binomial coefficients</li>
|
||||
<li>Exponential growth and decay (set up for financial applications)</li>
|
||||
<li>Polynomial Interpolation (curve fitting)</li>
|
||||
<li>Basic Matrix representation with algebraic operations</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<p>The proposed package name for the new component is
|
||||
<code>org.apache.commons.math</code>.</p>
|
||||
|
||||
|
||||
<h3>(3) Required Jakarta-Commons Resources</h3>
|
||||
|
||||
<ul>
|
||||
<li>CVS Repository - New directory <code>math</code> in the
|
||||
<code>jakarta-commons</code> CVS repository.</li>
|
||||
<li>Mailing List - Discussions will take place on the general
|
||||
<em>commons-dev@jakarta.apache.org</em> mailing list. To help
|
||||
list subscribers identify messages of interest, it is suggested that
|
||||
the message subject of messages about this component be prefixed with
|
||||
[math].</li>
|
||||
<li>Bugzilla - New component "math" under the "Commons" product
|
||||
category, with appropriate version identifiers as needed.</li>
|
||||
<li>Jyve FAQ - New category "commons-math" (when available).</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3>(4) Initial Committers</h3>
|
||||
|
||||
<p>The initial committers on the math component shall be:
|
||||
<ul>
|
||||
<li><a href="mailto:rdonkin@apache.org">Robert Burrell Donkinn</a></li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,23 @@
|
|||
$Id: RELEASE-NOTES.txt,v 1.1 2003/05/12 15:03:24 rdonkin Exp $
|
||||
|
||||
Commons math Package
|
||||
Version 1.0-dev
|
||||
Release Notes
|
||||
|
||||
|
||||
INTRODUCTION:
|
||||
|
||||
This document contains the release notes for this version of the Commons
|
||||
math package, and highlights changes since the previous version. The
|
||||
current release adds new features and bug fixes, and is being done now to
|
||||
follow the release early/release often mentality.
|
||||
|
||||
|
||||
NEW FEATURES:
|
||||
|
||||
*
|
||||
|
||||
|
||||
BUG FIXES:
|
||||
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Status File for Jakarta Commons "math" Component</title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
|
||||
|
||||
<div align="center">
|
||||
<h1>The Jakarta Commons <em>math</em> Component</h1>
|
||||
$Id: STATUS.html,v 1.1 2003/05/12 15:03:33 rdonkin Exp $<br />
|
||||
<a href="#Introduction">[Introduction]</a>
|
||||
<a href="#Dependencies">[Dependencies]</a>
|
||||
<a href="#Release Info">[Release Info]</a>
|
||||
<a href="#Committers">[Committers]</a>
|
||||
<a href="#Action Items">[Action Items]</a>
|
||||
<br /><br />
|
||||
</div>
|
||||
|
||||
|
||||
<a name="Introduction"></a>
|
||||
<h3>1. INTRODUCTION</h3>
|
||||
|
||||
<p>The Math project is a library of lightweight, self-contained mathematics and statistics components addressing the most common practical problems not immediately available in the Java programming language or commons-lang. The guiding principles for commons-math are:
|
||||
|
||||
<ol>
|
||||
<li>Real-world application use cases determine priority</li>
|
||||
<li>Emphasis on small, easily integrated components rather than large libraries with complex dependencies</li>
|
||||
<li>All algorithms are fully documented and follow generally accepted best practices</li>
|
||||
<li>In situations where multiple standard algorithms exist, use the Strategy pattern to support multiple implementations</li>
|
||||
<li>Limited dependencies. No external dependencies beyond Commons components and the JDK</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<a name="Dependencies"></a>
|
||||
<h3>2. DEPENDENCIES</h3>
|
||||
|
||||
<p>The <em>math</em> component is dependent upon the following external
|
||||
components for development and use:</p>
|
||||
<ul>
|
||||
<li><a href="http://java.sun.com/j2se">Java Development Kit</a>
|
||||
(Version 1.2 or later)</li>
|
||||
<li><a href="http://www.junit.org">JUnit Testing Framework</a>
|
||||
(Version 3.7 or later) - for unit tests only, not required
|
||||
for deployment</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<a name="Release Info"></a>
|
||||
<h3>3. RELEASE INFO</h3>
|
||||
|
||||
<p>Math is really still at the prototyping stage.</p>
|
||||
|
||||
<a name="Committers"></a>
|
||||
<h3>4. COMMITTERS</h3>
|
||||
|
||||
<p>The following individuals are the primary developers and maintainers of this
|
||||
component. Developers who plan to use <em>math</em> in their own
|
||||
projects are encouraged to collaborate on the future development of this
|
||||
component to ensure that it continues to meet a variety of needs.</p>
|
||||
<ul>
|
||||
<li><a href="mailto:rdonkin@apache.org">Robert Burrell Donkin</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<a name="Action Items"></a>
|
||||
<h3>5. ACTION ITEMS</h3>
|
||||
|
||||
<p>The following action items need to be completed prior to a Version 1.3
|
||||
release of this component:</p>
|
||||
|
||||
<table border="1">
|
||||
|
||||
<tr>
|
||||
<th width="80%">Action Item</th>
|
||||
<th width="20%">Volunteer</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><strong>CODE!</strong>. Add code to make this package useful.</td>
|
||||
<td align="center">Everyone</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,6 @@
|
|||
# The directory containing your binary distribution of JUnit,
|
||||
# version 3.7 or later
|
||||
junit.home = /usr/local/junit3.7
|
||||
|
||||
# The pathname of the "junit.jar" JAR file
|
||||
junit.jar = ${junit.home}/junit.jar
|
|
@ -0,0 +1,240 @@
|
|||
<project name="math" default="compile" basedir=".">
|
||||
|
||||
|
||||
<!--
|
||||
"math" component of the Jakarta Commons Subproject
|
||||
$Id: build.xml,v 1.1 2003/05/12 15:07:41 rdonkin Exp $
|
||||
-->
|
||||
|
||||
|
||||
<!-- ========== Initialize Properties ===================================== -->
|
||||
|
||||
|
||||
<property file="build.properties"/> <!-- Component local -->
|
||||
<property file="../build.properties"/> <!-- Commons local -->
|
||||
<property file="${user.home}/build.properties"/> <!-- User local -->
|
||||
|
||||
|
||||
<!-- ========== External Dependencies ===================================== -->
|
||||
|
||||
|
||||
<!-- The directory containing your binary distribution of JUnit,
|
||||
version 3.7 or later -->
|
||||
<property name="junit.home" value="/usr/local/junit3.7"/>
|
||||
|
||||
|
||||
<!-- ========== Derived Values ============================================ -->
|
||||
|
||||
|
||||
<!-- The pathname of the "junit.jar" JAR file -->
|
||||
<property name="junit.jar" value="${junit.home}/junit.jar"/>
|
||||
|
||||
|
||||
<!-- ========== Component Declarations ==================================== -->
|
||||
|
||||
|
||||
<!-- The name of this component -->
|
||||
<property name="component.name" value="math"/>
|
||||
|
||||
<!-- The primary package name of this component -->
|
||||
<property name="component.package" value="org.apache.commons.math"/>
|
||||
|
||||
<!-- The title of this component -->
|
||||
<property name="component.title" value="math Utilities"/>
|
||||
|
||||
<!-- The current version number of this component -->
|
||||
<property name="component.version" value="0.1-dev"/>
|
||||
|
||||
<!-- The base directory for compilation targets -->
|
||||
<property name="build.home" value="target"/>
|
||||
|
||||
<!-- The base directory for component configuration files -->
|
||||
<property name="conf.home" value="src/conf"/>
|
||||
|
||||
<!-- The base directory for distribution targets -->
|
||||
<property name="dist.home" value="dist"/>
|
||||
|
||||
<!-- The base directory for component sources -->
|
||||
<property name="source.home" value="src/java"/>
|
||||
|
||||
<!-- The base directory for unit test sources -->
|
||||
<property name="test.home" value="src/test"/>
|
||||
|
||||
|
||||
<!-- ========== Compiler Defaults ========================================= -->
|
||||
|
||||
|
||||
<!-- Should Java compilations set the 'debug' compiler option? -->
|
||||
<property name="compile.debug" value="true"/>
|
||||
|
||||
<!-- Should Java compilations set the 'deprecation' compiler option? -->
|
||||
<property name="compile.deprecation" value="true"/>
|
||||
|
||||
<!-- Should Java compilations set the 'optimize' compiler option? -->
|
||||
<property name="compile.optimize" value="true"/>
|
||||
|
||||
<!-- Construct compile classpath -->
|
||||
<path id="compile.classpath">
|
||||
<pathelement location="${build.home}/classes"/>
|
||||
</path>
|
||||
|
||||
|
||||
<!-- ========== Test Execution Defaults =================================== -->
|
||||
|
||||
|
||||
<!-- Construct unit test classpath -->
|
||||
<path id="test.classpath">
|
||||
<pathelement location="${build.home}/classes"/>
|
||||
<pathelement location="${build.home}/tests"/>
|
||||
<pathelement location="${junit.jar}"/>
|
||||
</path>
|
||||
|
||||
<!-- Should all tests fail if one does? -->
|
||||
<property name="test.failonerror" value="true"/>
|
||||
|
||||
<!-- The test runner to execute -->
|
||||
<property name="test.runner" value="junit.textui.TestRunner"/>
|
||||
|
||||
|
||||
<!-- ========== Executable Targets ======================================== -->
|
||||
|
||||
|
||||
<target name="init"
|
||||
description="Initialize and evaluate conditionals">
|
||||
<echo message="-------- ${component.name} ${component.version} --------"/>
|
||||
<filter token="name" value="${component.name}"/>
|
||||
<filter token="package" value="${component.package}"/>
|
||||
<filter token="version" value="${component.version}"/>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="prepare" depends="init"
|
||||
description="Prepare build directory">
|
||||
<mkdir dir="${build.home}"/>
|
||||
<mkdir dir="${build.home}/classes"/>
|
||||
<mkdir dir="${build.home}/conf"/>
|
||||
<mkdir dir="${build.home}/tests"/>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="static" depends="prepare"
|
||||
description="Copy static files to build directory">
|
||||
<tstamp/>
|
||||
<copy todir="${build.home}/conf" filtering="on">
|
||||
<fileset dir="${conf.home}" includes="*.MF"/>
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="compile" depends="static"
|
||||
description="Compile shareable components">
|
||||
<javac srcdir="${source.home}"
|
||||
destdir="${build.home}/classes"
|
||||
debug="${compile.debug}"
|
||||
deprecation="${compile.deprecation}"
|
||||
optimize="${compile.optimize}">
|
||||
<classpath refid="compile.classpath"/>
|
||||
</javac>
|
||||
<copy todir="${build.home}/classes" filtering="on">
|
||||
<fileset dir="${source.home}" excludes="**/*.java"/>
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="compile.tests" depends="compile"
|
||||
description="Compile unit test cases">
|
||||
<javac srcdir="${test.home}"
|
||||
destdir="${build.home}/tests"
|
||||
debug="${compile.debug}"
|
||||
deprecation="${compile.deprecation}"
|
||||
optimize="${compile.optimize}">
|
||||
<classpath refid="test.classpath"/>
|
||||
</javac>
|
||||
<copy todir="${build.home}/tests" filtering="on">
|
||||
<fileset dir="${test.home}" excludes="**/*.java"/>
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="clean"
|
||||
description="Clean build and distribution directories">
|
||||
<delete dir="${build.home}"/>
|
||||
<delete dir="${dist.home}"/>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="all" depends="clean,compile"
|
||||
description="Clean and compile all components"/>
|
||||
|
||||
|
||||
<target name="javadoc" depends="compile"
|
||||
description="Create component Javadoc documentation">
|
||||
<mkdir dir="${dist.home}"/>
|
||||
<mkdir dir="${dist.home}/docs"/>
|
||||
<mkdir dir="${dist.home}/docs/api"/>
|
||||
<javadoc sourcepath="${source.home}"
|
||||
destdir="${dist.home}/docs/api"
|
||||
packagenames="org.apache.commons.*"
|
||||
author="true"
|
||||
private="true"
|
||||
version="true"
|
||||
doctitle="<h1>${component.title}</h1>"
|
||||
windowtitle="${component.title} (Version ${component.version})"
|
||||
bottom="Copyright (c) 2001-2002 - Apache Software Foundation">
|
||||
<classpath refid="compile.classpath"/>
|
||||
</javadoc>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="dist" depends="compile,javadoc"
|
||||
description="Create binary distribution">
|
||||
<mkdir dir="${dist.home}"/>
|
||||
<copy file="../LICENSE"
|
||||
todir="${dist.home}"/>
|
||||
<copy file="RELEASE-NOTES.txt"
|
||||
todir="${dist.home}"/>
|
||||
<antcall target="jar"/>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="jar" depends="compile"
|
||||
description="Create jar">
|
||||
<mkdir dir="${dist.home}"/>
|
||||
<mkdir dir="${build.home}/classes/META-INF"/>
|
||||
<copy file="../LICENSE"
|
||||
tofile="${build.home}/classes/META-INF/LICENSE.txt"/>
|
||||
<jar jarfile="${dist.home}/commons-${component.name}.jar"
|
||||
basedir="${build.home}/classes"
|
||||
manifest="${build.home}/conf/MANIFEST.MF"/>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="install-jar" depends="jar"
|
||||
description="--> Installs jar file in ${lib.repo}">
|
||||
<copy todir="${lib.repo}" filtering="no">
|
||||
<fileset dir="${dist.home}">
|
||||
<include name="commons-${component.name}.jar"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- ========== Unit Test Targets ========================================= -->
|
||||
|
||||
|
||||
<target name="test" depends="compile.tests,
|
||||
test.math"
|
||||
description="Run all unit test cases">
|
||||
</target>
|
||||
|
||||
|
||||
<target name="test.math" depends="compile.tests">
|
||||
<echo message="Running math tests ..."/>
|
||||
<java classname="${test.runner}" fork="yes"
|
||||
failonerror="${test.failonerror}">
|
||||
<arg value="org.apache.commons.math.SomeTestCase"/>
|
||||
<classpath refid="test.classpath"/>
|
||||
</java>
|
||||
</target>
|
||||
|
||||
</project>
|
|
@ -0,0 +1,7 @@
|
|||
Extension-Name: org.apache.commons.math
|
||||
Specification-Title: Jakarta Commons Math
|
||||
Specification-Vendor: Apache Software Foundation
|
||||
Specification-Version: 0.1
|
||||
Implementation-Title: org.apache.commons.math
|
||||
Implementation-Vendor: Apache Software Foundation
|
||||
Implementation-Version: 0.1
|
Loading…
Reference in New Issue