120 lines
5.7 KiB
XML
120 lines
5.7 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!--
|
|
Copyright 2003-2004 The Apache Software Foundation
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<?xml-stylesheet type="text/xsl" href="./xdoc.xsl"?>
|
|
<!-- $Revision: 1.8 $ $Date: 2004/02/29 18:50:10 $ -->
|
|
<document>
|
|
<properties>
|
|
<title>User Guide - Overview</title>
|
|
</properties>
|
|
|
|
<body>
|
|
|
|
<section name="Overview">
|
|
|
|
<subsection name="0.1 About The User Guide" href="about">
|
|
<p>
|
|
This guide is intended to help programmers quickly find what they need to develop
|
|
solutions using Commons Math. It also provides a supplement to the javadoc API documentation,
|
|
providing a little more explanation of the mathematical objects and functions included
|
|
in the package.
|
|
</p>
|
|
</subsection>
|
|
|
|
<subsection name="0.2 What's in commons-math" href="summary">
|
|
<p>
|
|
Commons Math is made up of a small set of math/stat utilities addressing
|
|
programming problems like the ones in the list below. This list is not exhaustive,
|
|
it's just meant to give a feel for the kinds of things that Commons Math provides.
|
|
<ul>
|
|
<li>Computing means, variances and other summary statistics for a list of numbers</li>
|
|
<li>Fitting a line to a set of data points using linear regression</li>
|
|
<li>Solving equations involving real-valued functions (i.e. root-finding)</li>
|
|
<li>Performing statistical significance tests</li>
|
|
<li>Solving systems of linear equations</li>
|
|
<li>Generating random numbers with more restrictions (e.g distribution, range) than what
|
|
is possible using the JDK</li>
|
|
<li>Generating random samples and/or datasets that are "like" the data in an input file</li>
|
|
<li>Finding a smooth curve that passes through a collection of points (interpolation)</li>
|
|
<li>Miscellaneous mathematical functions such as factorials and binomial
|
|
coefficients</li>
|
|
</ul></p>
|
|
<p>
|
|
Commons Math is a new project and we are actively seeking ideas for additional components that
|
|
fit into the <a href="../index.html#summary">Commons Math vision</a> of a set of lightweight,
|
|
self-contained math/stat components useful for solving common programming problems.
|
|
Suggestions for new components or enhancements to existing functionality are always welcome!
|
|
All feedback/suggestions for improvement should be sent to the
|
|
<a href="http://jakarta.apache.org/site/mail.html">commons-dev mailing list</a> with
|
|
[math] at the beginning of the subject line.
|
|
</p>
|
|
</subsection>
|
|
|
|
<subsection name="0.3 How commons-math is organized" href="organization">
|
|
<p>
|
|
Commons Math is divided into 6 subpackages, based on functionality provided.
|
|
<ol><li><a href="stat.html">org.apache.commons.math.stat</a> - statistics, statistical tests, probability distributions</li>
|
|
<li><a href="analysis.html">org.apache.commons.math.analysis</a> - rootfinding and interpolation</li>
|
|
<li><a href="random.html">org.apache.commons.math.random</a> - random numbers, strings and data generation</li>
|
|
<li><a href="special.html">org.apache.commons.math.special</a> - special functions (Gamma, Beta) </li>
|
|
<li><a href="linear.html">org.apache.commons.math.linear</a> - matrices, solving linear systems </li>
|
|
<li><a href="utilities.html">org.apache.commons.math.util</a> - common math/stat functions extending java.lang.Math </li>
|
|
</ol>
|
|
Package javadocs are <a href="../apidocs/index.html">here</a>
|
|
</p>
|
|
</subsection>
|
|
|
|
<subsection name="0.4 How interface contracts are specified in commons-math javadoc" href="contracts">
|
|
<p>
|
|
You should always read the javadoc class and method comments carefully when using
|
|
Commons Math components in your programs. The javadoc provides references to the algorithms
|
|
that are used, usage notes about limitations, performance, etc. as well as interface contracts.
|
|
Interface contracts are specified in terms of preconditions (what has to be true in order
|
|
for the method to return valid results), special values returned (e.g. Double.NaN)
|
|
or exceptions that may be thrown if the preconditions are not met, and definitions for returned
|
|
values/objects or state changes.</p>
|
|
<p>
|
|
When the actual parameters provide to a method or the internal state of an object
|
|
make a computation meaningless, an IllegalArgumentException or IllegalStateException may
|
|
be thrown. Exact conditions under which runtime exceptions (and any other exceptions) are
|
|
thrown are specified in the javadoc method comments. In some cases, to be consistent with
|
|
the <a href="http://grouper.ieee.org/groups/754/">IEEE 754 standard</a> for floating point
|
|
arithmetic and with java.lang.Math, Commons Math methods return Double.NaN values.
|
|
Conditions under which Double.NaN or other special values are returned are fully specified
|
|
in the javadoc method comments.
|
|
</p>
|
|
</subsection>
|
|
|
|
<subsection name="0.5 Dependencies" href="dependencies">
|
|
<p>
|
|
Commons Math requires JDK 1.2+ and has no dependencies other than the following Jakarta Commons
|
|
components:
|
|
<ul>
|
|
<li>commons-beanutils 1.5 </li>
|
|
<li>commons-collections 2.1 </li>
|
|
<li>commons-logging 1.0.3 </li>
|
|
</ul>
|
|
</p>
|
|
</subsection>
|
|
|
|
</section>
|
|
|
|
</body>
|
|
</document>
|
|
|