mirror of
https://github.com/apache/commons-math.git
synced 2025-02-07 10:38:55 +00:00
Adding documentation for Contributors. Adding xsl stylesheets to render xdoc in browser and css to style content, this makes testing documentation additions easier without rendering the entire site. Simply open up xdoc in browser to see what it will look like after rendering. git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/math/trunk@141018 13f79535-47bb-0310-9956-ffa450edef68
116 lines
4.5 KiB
XML
116 lines
4.5 KiB
XML
<?xml version="1.0"?>
|
|
<?xml-stylesheet type="text/xsl" href="xdoc.xsl"?>
|
|
<!-- $Revision: 1.4 $ $Date: 2003/11/15 18:38:16 $ -->
|
|
<document>
|
|
|
|
<properties>
|
|
<title>Proposal for math Package</title>
|
|
<author email="martin@mvdb.net">Robert Burrell Donkin</author>
|
|
</properties>
|
|
|
|
<body>
|
|
|
|
<section name='Proposal for math Package'>
|
|
|
|
<subsection name='(0) Rationale'>
|
|
<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>
|
|
|
|
</subsection>
|
|
|
|
<subsection name='(1) Scope of the Package'>
|
|
|
|
<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>
|
|
</p>
|
|
</subsection>
|
|
|
|
<subsection name='(1.5) Interaction With Other Packages'>
|
|
|
|
<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>
|
|
|
|
</subsection>
|
|
<subsection name='(2) Initial Source of the Package'>
|
|
|
|
<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>
|
|
|
|
</subsection>
|
|
<subsection name='(3) Required Jakarta-Commons Resources'>
|
|
|
|
<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>
|
|
|
|
</subsection>
|
|
<subsection name='(4) Initial Committers'>
|
|
|
|
<p>The initial committers on the math component shall be:
|
|
<ul>
|
|
<li><a href="mailto:rdonkin@apache.org">Robert Burrell Donkin</a></li>
|
|
<li><a href="mailto:tobrien@apache.org">Tim O'Brien</a></li>
|
|
</ul>
|
|
</p>
|
|
</subsection>
|
|
</section>
|
|
</body>
|
|
</document>
|