From 772d74b0fb2161f825d0bccf81ad563553033d1b Mon Sep 17 00:00:00 2001 From: Dirk Verbeeck Date: Sat, 15 Nov 2003 18:38:16 +0000 Subject: [PATCH] Reapply changeset (mdiggory 2003/11/09 12:17:50) 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 --- xdocs/developers.xml | 63 ++- xdocs/index.xml | 3 +- xdocs/navigation.xml | 2 +- xdocs/proposal.xml | 3 +- xdocs/stylesheets/maven.css | 114 +++++ xdocs/stylesheets/print.css | 7 + xdocs/stylesheets/tigris.css | 789 ++++++++++++++++++++++++++++++++++ xdocs/tasks.xml | 5 +- xdocs/userguide/analysis.xml | 171 ++++---- xdocs/userguide/index.xml | 3 +- xdocs/userguide/linear.xml | 2 + xdocs/userguide/overview.xml | 3 +- xdocs/userguide/random.xml | 2 + xdocs/userguide/special.xml | 81 ++-- xdocs/userguide/stat.xml | 183 ++++---- xdocs/userguide/utilities.xml | 2 + xdocs/xdoc.xsl | 42 ++ 17 files changed, 1251 insertions(+), 224 deletions(-) create mode 100644 xdocs/stylesheets/maven.css create mode 100644 xdocs/stylesheets/print.css create mode 100644 xdocs/stylesheets/tigris.css create mode 100644 xdocs/xdoc.xsl diff --git a/xdocs/developers.xml b/xdocs/developers.xml index 3eb7d4475..c90396671 100644 --- a/xdocs/developers.xml +++ b/xdocs/developers.xml @@ -1,5 +1,6 @@ - + + Developers Guide @@ -23,6 +24,66 @@ will not be committed. Our aim will be to fix all of the exceptions to the "should" guidelines prior to a release.

+ +

+ Becoming involved with a community project such as Commons Math can at + first appear to be very daunting. The Math projects motivations are to + design and build a well thoughtout API. With this in mind, there is a great + deal of review and discussion revolving around how and why a particular + package is included or written into the project. It is understandable that + individuals may have an interest in donating either their time or code to the + project, and we want to promote this. For this reason, we are working to + maintain guidelines for proposing additional packages or coding efforts + within the project. +

+

+

    +
  1. Formost it is important to review the overall objectives + and proposal upon which the project is + founded. +
  2. +
  3. Review the completed, current and future + tasks of the project. +
  4. +
  5. Be sure to join the Commons Developer and Interest + email lists and use them appropriately (make sure the string "[math]" is + somewhere in the Subject line of all your postings). Make any proposals here + where the group can comment on them +
  6. +
  7. + Setup an account on Bugzilla + and use it to formally submit Patches and identify bugs. Read the + directions for + submitting bugs and search the database to determine if an issue exists or has + already been dealt with. + +

    + Submitting Issues: +

    + + +

    + Querying the Database: +

    + +
  8. +
+

+

Commons-math follows Code diff --git a/xdocs/index.xml b/xdocs/index.xml index 0a2a5f339..8c32549a4 100644 --- a/xdocs/index.xml +++ b/xdocs/index.xml @@ -1,5 +1,6 @@ - + + diff --git a/xdocs/navigation.xml b/xdocs/navigation.xml index 8115531e1..e71a35bb4 100644 --- a/xdocs/navigation.xml +++ b/xdocs/navigation.xml @@ -1,5 +1,5 @@ - + Math diff --git a/xdocs/proposal.xml b/xdocs/proposal.xml index 3adde598c..c16ad56b3 100644 --- a/xdocs/proposal.xml +++ b/xdocs/proposal.xml @@ -1,5 +1,6 @@ - + + diff --git a/xdocs/stylesheets/maven.css b/xdocs/stylesheets/maven.css new file mode 100644 index 000000000..6addb4c6e --- /dev/null +++ b/xdocs/stylesheets/maven.css @@ -0,0 +1,114 @@ +body { + background: #fff; + color: #000; + } + +.app h3 { + color: #fff; + background-color: #036; + } + +.app h4 { + color: #fff; + background-color: #888; + } + +.a td { + background: #ddd; + color: #000; + } + +.b td { + background: #efefef; + color: #000; + } + +.app th { + background-color: #bbb; + color: #fff; + } + +div#banner { + border-top: 1px solid #369; + border-bottom: 1px solid #003; + } + +#banner, #banner td { + background: #036; + color: #fff; + } + +#leftcol { + background: #eee; + color: #000; + border-right: 1px solid #aaa; + border-bottom: 1px solid #aaa; + border-top: 1px solid #fff; +} + +#navcolumn { + background: #eee; + color: #000; + border-right: none; + border-bottom: none; + border-top: none; + } + +#breadcrumbs { + background-color: #ddd; + color: #000; + border-top: 1px solid #fff; + border-bottom: 1px solid #aaa; + } + +#source { + background-color: #fff; + color: #000; + border-right: 1px solid #888; + border-left: 1px solid #888; + border-top: 1px solid #888; + border-bottom: 1px solid #888; + margin-right: 7px; + margin-left: 7px; + margin-top: 1em; + } + +#source pre { + margin-right: 7px; + margin-left: 7px; + } + +a[name]:hover, #leftcol a[name]:hover { + color: inherit !important; + } + +a:link, #breadcrumbs a:visited, #navcolumn a:visited, .app a:visited, .tasknav a:visited { + color: blue; + } + +a:active, a:hover, #leftcol a:active, #leftcol a:hover { + color: #f30 !important; + } + +a:link.selfref, a:visited.selfref { + color: #555 !important; + } + +h3, h4 { + margin-top: 1em; + margin-bottom: 0; + } + +img.handle { + border: 0; + padding-right: 2px; +} + +#navcolumn div div { + background-image: none; + background-repeat: no-repeat; +} + +#navcolumn div div { + padding-left: 10px; +} diff --git a/xdocs/stylesheets/print.css b/xdocs/stylesheets/print.css new file mode 100644 index 000000000..cef55dce5 --- /dev/null +++ b/xdocs/stylesheets/print.css @@ -0,0 +1,7 @@ +#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks { + display: none; + } +body.docs div.docs { + margin: 0 !important; + border: none !important + } diff --git a/xdocs/stylesheets/tigris.css b/xdocs/stylesheets/tigris.css new file mode 100644 index 000000000..b63d91be4 --- /dev/null +++ b/xdocs/stylesheets/tigris.css @@ -0,0 +1,789 @@ +/* $Id: tigris.css,v 1.1 2003/11/15 18:38:16 dirkv Exp $ + + This file defines basic default formatting for HTML conforming to Tigris application style. To extend or override these rules for your instance, edit inst.css instead of this file. */ + +/* colors, backgrounds, borders, link indication */ +body { + background: #fff; + color: #000; +} + +.app h3, .app h4, .tabs td, .tabs th, .functnbar { + background-image: url(../images/nw_maj_rond.gif); + background-repeat: no-repeat; +} + +.functnbar, .functnbar2 { + background-color: #aaa; +} + +.functnbar2, .functnbar3 { + background-color: #aaa; + background-image: url(../images/sw_maj_rond.gif); + background-repeat: no-repeat; + background-position: bottom left; +} + +.functnbar3 { + background-color: #ddd; + background-image: url(../images/sw_med_rond.gif); +} + +.functnbar, .functnbar2, .functnbar3 { + color: #000; +} + +.functnbar a, .functnbar2 a, .functnbar3 a { + color: #000; + text-decoration: underline; +} + +#navcolumn .body div, body.docs #toc li li { + background-image: url(../images/strich.gif); + background-repeat: no-repeat; + background-position: .5em .5em; +} + +#searchbox .body div, #navcolumn .body .heading { + background-image: none; +} + +a:link, #navcolumn a:visited, .app a:visited, .tasknav a:visited { + color: blue; +} + +a:link.selfref, a:visited.selfref { + color: #555 !important; + text-decoration: none; +} + +a:active, a:hover, #leftcol a:active, #leftcol a:hover { + color: #f30 !important; +} + +#leftcol a, #breadcrumbs a { + text-decoration: none; +} + +.app h3, .app h4 { + color: #fff; +} + +.app h3 { + background-color: #333; +} + +.app h3 a:link, .app h3 a:visited, .app h4 a:link, .app h4 a:visited { + color: #fff !important; + text-decoration: underline; +} + +.app h4 { + background-color: #888; +} + +.a td { + background: #ddd; +} + +.b td { + background: #efefef; +} + +table, th, td { + border: none; +} + +div.colbar { + background: #eee; + border-color: #999 #EEE #EEE #999; + border-width: 1px; + border-style: solid; +} + +.toolgroup { + background: #efefef; +} + +.toolgroup .label { + border-bottom: 1px solid #666; + border-right: 1px solid #666; + background: #ddd; + color: #555; +} + +.toolgroup .body { + border-right: 1px solid #aaa; + border-bottom: 1px solid #aaa; +} + +#breadcrumbs { + border-top: 1px solid #fff; + background-color: #ccc; +} + +#main { + border-top: 1px solid #999; +} + +#rightcol div.www, #rightcol div.help { + border: 1px solid #ddd; +} + +body.docs div.docs { + background-color: #fff; + border-left: 1px solid #ddd; + border-top: 1px solid #ddd; +} + +#helptext .label { + background-image: url(../images/icon_help_sml.gif); + background-repeat: no-repeat; + background-position: 97%; +} + +body.docs { + background: #eee url(../images/help_logo.gif) top right no-repeat !important; +} + +.docs h3, .docs h4 { + border-top: solid 1px #000; +} + +#apphead h2 em { + color: #777; +} + +.app th { + background-color: #bbb; +} + +.tabs th { + border-right: 1px solid #333; + background-color: #ddd; + color: #fff; + border-left: 1px solid #fff; +} + +.tabs td { + background-color: #999; + border-bottom: 1px solid #fff; + border-right: 1px solid #fff; + border-left: 1px solid #fff; +} + +.tabs { + border-bottom: 6px #ddd solid; +} + +.tabs th, .tabs th a:link, .tabs th a:visited { + color: #555; +} + +.tabs td, .tabs td a:link, .tabs td a:visited { + color: #fff; +} + +.tabs a { + text-decoration: none; +} + +.axial th { + background-color: #ddd; + color: black; +} + +.alert { + background-color: #ff9; +} + +.expandedwaste { + background: url(../images/icon_arrowwaste2_sml.gif) no-repeat; +} + +.collapsedwaste { + background: url(../images/icon_arrowwaste1_sml.gif) no-repeat; +} + +.filebrowse .expanded, .filebrowse-alt .expanded { + background-image: url(../images/icon_arrowfolderopen2_sml.gif); + background-repeat: no-repeat; +} + +.filebrowse .collapsed, .filebrowse-alt .collapsed { + background-image: url(../images/icon_arrowfolderclosed1_sml.gif); + background-repeat: no-repeat; +} + +.filebrowse .leafnode, .filebrowse-alt .leafnode { + background-image: url(../images/icon_folder_sml.gif); + background-repeat: no-repeat; +} + +.filebrowse .leaf, .filebrowse-alt .leaf { + background-image: url(../images/icon_doc_sml.gif); + background-repeat: no-repeat; +} + +.sortup { + background: url(../images/icon_sortup.gif) no-repeat; +} + +.sortdown { + background: url(../images/icon_sortdown.gif) no-repeat; +} + +.collapsedwaste { + background: url(../images/icon_arrowwaste1_sml.gif) no-repeat; +} + +body .grid td { + border-top: 1px solid #ccc; + border-left: 1px solid #ccc; + background-color: transparent; +} + +.confirm { + color: #090; +} + +.info { + color: #069; +} + +.errormessage, .warningmessage, .donemessage, .infomessage { + border-top: 5px solid #900; + border-left: 1px solid #900; + background-image: url(../images/icon_error_lrg.gif); + background-repeat: no-repeat; + background-position: 5px 1.33em; +} + +.warningmessage { + background-image: url(../images/icon_warning_lrg.gif); + border-color: #c60; +} + +.donemessage { + background-image: url(../images/icon_success_lrg.gif); + border-color: #090; +} + +.infomessage { + background-image: url(../images/icon_info_lrg.gif); + border-color: #069; +} + +.docinfo { + background: url(../images/icon_doc_lrg.gif) no-repeat; +} + +.dirinfo { + background: url(../images/icon_folder_lrg.gif) no-repeat; +} + +.memberinfo { + background: url(../images/icon_members_lrg.gif) no-repeat; +} + +.usergroupinfo { + background: url(../images/icon_usergroups_lrg.gif) no-repeat; +} + +.errormark, .warningmark, .donemark, .infomark { + background: url(../images/icon_error_sml.gif) no-repeat; +} + +.warningmark { + background-image: url(../images/icon_warning_sml.gif); +} + +.donemark { + background-image: url(../images/icon_success_sml.gif); +} + +.infomark { + background-image: url(../images/icon_info_sml.gif); +} + +.cvsdiff, .cvsblame { + background-color: #ccc; +} + +.cvsdiffadd { + background-color: #afa; +} + +.cvsdiffremove { + background-color: #faa; +} + +.cvsdiffchanges1 { + background-color: #ff7; +} + +.cvsdiffchanges2 { + background-color: #ff7; +} + +li.selection ul a { + background: #fff; +} + +.band1 { + color: #fff; + background-color: #663; +} + +.band2 { + color: #fff; + background-color: #66C; +} + +.band3 { + background-color: #C99; +} + +.band4 { + background-color: #CFF; +} + +.band5 { + color: #fff; + background-color: #336; +} + +.band6 { + color: #fff; + background-color: #966; +} + +.band7 { + background-color: #9CC; +} + +.band8 { + background-color: #FFC; +} + +.band9 { + color: #fff; + background-color: #633; +} + +.band10 { + color: #fff; + background-color: #699; +} + +.band11 { + background-color: #CC9; +} + +.band12 { + background-color: #CCF; +} + +.band13 { + color: #fff; + background-color: #366; +} + +.band14 { + color: #fff; + background-color: #996; +} + +.band15 { + background-color: #99C; +} + +.band16 { + background-color: #FCC; +} + +.app .helplink, #helptext .helplink { + cursor: help; +} + +.legend th, .bars th { + background-color: #fff; +} + +/* font and text properties, exclusive of link indication, alignment, text-indent */ +body, th, td, input, select { + font-family: Verdana, Helvetica, Arial, sans-serif; +} + +code, pre { + font-family: 'Andale Mono', Courier, monospace; +} + +body, .app h3, .app h4, #rightcol h3, pre, code, #apphead h2 small, h4, th, td { + font-size: x-small; + voice-family: "\"}\""; + voice-family: inherit; + font-size: small; +} + +small, div#footer, div#login, div.tabs th, div.tabs td, input, select, .paginate, .functnbar, .functnbar2, .functnbar3, #breadcrumbs, .courtesylinks, #rightcol div.help, .colbar, .tasknav, body.docs div#toc, #leftcol, .legend, .bars { + font-size: xx-small; + voice-family: "\"}\""; + voice-family: inherit; + font-size: x-small; +} + +.tabs td, .tabs th, dt, .tasknav .selfref, #login .username, .selection { + font-weight: bold; +} + +li.selection ul { + font-weight: normal; +} + +#apphead h2 em { + font-style: normal; +} + +#banner h1 { + font-size: 1.25em; +} + +/* box properties (exclusive of borders), positioning, alignments, list types, text-indent */ +#bodycol h2 { + margin-top: .3em; + margin-bottom: .5em; +} + +p, ul, ol, dl, .bars table { + margin-top: .67em; + margin-bottom: .67em; +} + +h3, h4 { + margin-bottom: 0; +} + +form { + margin: 0; +} + +#bodycol { + padding-left: 12px; + padding-right: 12px; + width: 100%; + voice-family: "\"}\""; + voice-family: inherit; + width: auto; +} + +html>body #bodycol { + width: auto; +} + +.docs { + line-height: 1.4; +} + +ol ol { + list-style-type: lower-alpha; +} + +ol ol ol { + list-style-type: lower-roman; +} + +.app h3, .app h4 { + padding: 5px; + margin-right: 2px; + margin-left: 2px; +} + +.app td, .app th { + padding: 2px 3px; +} + +.h3 p, .h4 p, .h3 dt, .h4 dt { + margin-right: 7px; + margin-left: 7px; +} + +.tasknav { + margin-bottom: 1.33em; +} + +div.colbar { + padding: 3px; + margin: 2px 2px 0; +} + +.tabs { + margin-top: .67em; + margin-right: 2px; + margin-left: 2px; + padding-left: 8px; +} + +.tabs td, .tabs th { + padding: 3px 9px; +} + +#rightcol div.www, #rightcol div.help { + padding: 0 .5em; +} + +body.docs #toc { + position: absolute; + top: 15px; + left: 0px; + width: 120px; + padding: 0 20px 0 0; +} + +body.docs #toc ul, #toc ol { + margin-left: 0; + padding-left: 0; +} + +body.docs #toc li { + margin-top: 7px; + padding-left: 10px; + list-style-type: none; +} + +body.docs div.docs { + margin: 61px 0 0 150px; + padding: 1em 2em 1em 1em !important; +} + +.docs p+p { + text-indent: 5%; + margin-top: -.67em; +} + +.docs h3, .docs h4 { + margin-bottom: .1em; + padding-top: .3em; +} + +.functnbar, .functnbar2, .functnbar3 { + padding: 5px; + margin: .67em 2px; +} + +.functnbar3 { + margin-top: 0; +} + +body { + padding: 1em; +} + +body.composite, body.docs { + margin: 0; + padding: 0; +} + +th, td { + text-align: left; + vertical-align: top; +} + +.right { + text-align: right !important; +} + +.center { + text-align: center !important; +} + +.axial th, .axial th .strut { + text-align: right; +} + +.app .axial td th { + text-align: left; +} + +body .stb { + margin-top: 1em; + text-indent: 0; +} + +body .mtb { + margin-top: 2em; + text-indent: 0; +} + +.courtesylinks { + margin-top: 1em; + padding-top: 1em; +} + +dd { + margin-bottom: .67em; +} + +.toolgroup { + margin-bottom: 6px; +} + +.toolgroup .body { + padding: 4px 4px 4px 0; +} + +.toolgroup .label { + padding: 4px; +} + +.toolgroup .body div { + padding-bottom: .3em; + padding-left: 1em; +} + +.toolgroup .body div div { + margin-top: .3em; + padding-bottom: 0; +} + +.tier1 { + margin-left: 0; +} + +.tier2 { + margin-left: 1.5em; +} + +.tier3 { + margin-left: 3em; +} + +.tier4 { + margin-left: 4.5em; +} + +.tier5 { + margin-left: 6em; +} + +.tier6 { + margin-left: 7.5em; +} + +.tier7 { + margin-left: 9em; +} + +.tier8 { + margin-left: 10.5em; +} + +.tier9 { + margin-left: 12em; +} + +.tier10 { + margin-left: 13.5em; +} + +.filebrowse .expanded, .filebrowse .collapsed { + padding-left: 34px; +} + +.filebrowse .leafnode, .filebrowse .leaf { + padding-left: 20px; +} + +.messagechild { + padding-left: 34px; +} + +.filebrowse-alt .expanded, .filebrowse-alt .collapsed, .filebrowse-alt .leaf, .filebrowse-alt .leafnode, .expandedwaste, .collapsedwaste, .sortup, .sortdown { + /* hide from macie5\*/ + float: left; + /* resume */ + display: inline-block; + height: 15px; + width: 34px; + padding-left: 0 !important; +} + +.filebrowse-alt .leaf, .filebrowse-alt .leafnode, .sortup, .sortdown { + width: 20px; +} + +.filebrowse ul, .filebrowse-alt ul { + list-style-type: none; + padding-left: 0; + margin-left: 0; +} + +.filebrowse ul ul, .filebrowse-alt ul ul { + margin-left: 1.5em; + margin-top: 0; + padding-top: .67em; +} + +.filebrowse li, .filebrowse-alt li { + margin-bottom: .67em; +} + +td.filebrowse h3 { + margin-top: 0; +} + +.errormessage, .warningmessage, .donemessage, .infomessage, .docinfo, .dirinfo, .memberinfo, .usergroupinfo { + margin: .67em 0; + padding: .33em 0 .67em 42px; + min-height: 32px; +} + +.errormark, .warningmark, .donemark, .infomark { + padding-left: 20px; + min-height: 15px; +} + +.alt { + display: none; +} + +#banner h1 { + margin: 0; +} + +#leftcol { + width: 14em; +} + +.axial th, .axial th .strut, #leftcol .strut { + width: 12em; +} + +#breadcrumbs { + padding: 2px 8px; +} + +.app h3, .app h4, .bars { + clear: both; +} + +.legend { + float: right; +} + +.legend th, .bars th { + text-align: right; + padding-left: 1em; +} + +.bars table { + table-layout: fixed; +} + +.bars th { + width: 12em; +} + +#projectdocumentlist td.filebrowse-alt { + padding-right: .75em; +} diff --git a/xdocs/tasks.xml b/xdocs/tasks.xml index 1f8d3dc5a..b3749a48c 100644 --- a/xdocs/tasks.xml +++ b/xdocs/tasks.xml @@ -1,5 +1,6 @@ - + + Tasks: Done And To Do @@ -58,7 +59,7 @@

  • Thread Subject: [math] Complex dilemmas
  • -
  • +
  • Thread Subject: [math] Complex implementation
  • diff --git a/xdocs/userguide/analysis.xml b/xdocs/userguide/analysis.xml index c7878b226..bdf9d9fb2 100644 --- a/xdocs/userguide/analysis.xml +++ b/xdocs/userguide/analysis.xml @@ -1,85 +1,86 @@ - - - - - The Commons Math User Guide - Numerical Analysis - Phil Steitz - - -
    - -

    This is yet to be written. Any contributions will be gratefully - accepted!

    -
    - -

    - org.apache.commons.math.analysis.UnivariateRealSolver provides the means to - find roots of univariate, real valued, functions. Commons-Math supports various - implementations of UnivariateRealSolver to solve functions with differing - characteristics. -

    -

    - In order to use the root-finding features, first a solver object must be created. It is - encouraged that all solver object creation occurs via the org.apache.commons.math.analysis.UnivariateRealSolverFactory - class. UnivariateRealSolverFactory is a simple factory used to create all - of the solver objects supported by Commons-Math. The typical usage of UnivariateRealSolverFactory - to create a solver object would be:

    - UnivariateRealFunction function = // some user defined function object - UnivariateRealSolverFactory factory = UnivariateRealSolverFactory.newInstance(); - UnivariateRealSolver solver = factory.newDefaultSolver(function); -

    - The solvers that can be instantiated via the UnivariateRealSolverFactory are detailed below: - - - - - -
    SolverFactory MethodNotes on Use
    BisectionnewBisectionSolver
    Root must be bracketted.
    Linear, guaranteed convergence
    BrentnewBrentSolver
    Root must be bracketted.
    Super-linear, guaranteed convergence
    SecantnewSecantSolver
    Root must be bracketted.
    Super-linear, non-guaranteed convergence
    -

    -

    - Using a solver object, roots of functions are easily found using the solve - methods. For a function f, and two domain values, min and - max, solve computes the value c such that: -

      -
    • f(c) = 0.0
    • -
    • min <= c <= max
    • -
    -

    - UnivariateRealFunction function = // some user defined function object - UnivariateRealSolverFactory factory = UnivariateRealSolverFactory.newInstance(); - UnivariateRealSolver solver = factory.newBisectionSolver(function); - double c = solver.solve(1.0, 5.0); -

    - Along with the solve methods, the UnivariateRealSolver - interface provides many properties to control the convergence of a solver. For the most - part, these properties should not have to change from their default values to produce - quality results. In the circumstances where changing these property values is needed, it - is easily done through getter and setter methods on UnivariateRealSolver: - - - - - - -
    PropertyMethodsPurpose
    Absolute accuracy -
    getAbsoluteAccuracy
    -
    resetAbsoluteAccuracy
    -
    setAbsoluteAccuracy
    This is yet to be written. Any contributions will be greatfully accepted!
    Function value accuracy -
    getFunctionValueAccuracy
    -
    resetFunctionValueAccuracy
    -
    setFunctionValueAccuracy
    This is yet to be written. Any contributions will be greatfully accepted!
    Maximum iteration count -
    getMaximumIterationCount
    -
    resetMaximumIterationCount
    -
    setMaximumIterationCount
    This is yet to be written. Any contributions will be greatfully accepted!
    Relative accuracy -
    getRelativeAccuracy
    -
    resetRelativeAccuracy
    -
    setRelativeAccuracy
    This is yet to be written. Any contributions will be greatfully accepted!
    -

    -
    - -

    This is yet to be written. Any contributions will be gratefully - accepted!

    -
    -
    - -
    + + + + + + The Commons Math User Guide - Numerical Analysis + Phil Steitz + + +
    + +

    This is yet to be written. Any contributions will be gratefully + accepted!

    +
    + +

    + org.apache.commons.math.analysis.UnivariateRealSolver provides the means to + find roots of univariate, real valued, functions. Commons-Math supports various + implementations of UnivariateRealSolver to solve functions with differing + characteristics. +

    +

    + In order to use the root-finding features, first a solver object must be created. It is + encouraged that all solver object creation occurs via the org.apache.commons.math.analysis.UnivariateRealSolverFactory + class. UnivariateRealSolverFactory is a simple factory used to create all + of the solver objects supported by Commons-Math. The typical usage of UnivariateRealSolverFactory + to create a solver object would be:

    + UnivariateRealFunction function = // some user defined function object + UnivariateRealSolverFactory factory = UnivariateRealSolverFactory.newInstance(); + UnivariateRealSolver solver = factory.newDefaultSolver(function); +

    + The solvers that can be instantiated via the UnivariateRealSolverFactory are detailed below: + + + + + +
    SolverFactory MethodNotes on Use
    BisectionnewBisectionSolver
    Root must be bracketted.
    Linear, guaranteed convergence
    BrentnewBrentSolver
    Root must be bracketted.
    Super-linear, guaranteed convergence
    SecantnewSecantSolver
    Root must be bracketted.
    Super-linear, non-guaranteed convergence
    +

    +

    + Using a solver object, roots of functions are easily found using the solve + methods. For a function f, and two domain values, min and + max, solve computes the value c such that: +

      +
    • f(c) = 0.0
    • +
    • min <= c <= max
    • +
    +

    + UnivariateRealFunction function = // some user defined function object + UnivariateRealSolverFactory factory = UnivariateRealSolverFactory.newInstance(); + UnivariateRealSolver solver = factory.newBisectionSolver(function); + double c = solver.solve(1.0, 5.0); +

    + Along with the solve methods, the UnivariateRealSolver + interface provides many properties to control the convergence of a solver. For the most + part, these properties should not have to change from their default values to produce + quality results. In the circumstances where changing these property values is needed, it + is easily done through getter and setter methods on UnivariateRealSolver: + + + + + + +
    PropertyMethodsPurpose
    Absolute accuracy +
    getAbsoluteAccuracy
    +
    resetAbsoluteAccuracy
    +
    setAbsoluteAccuracy
    This is yet to be written. Any contributions will be greatfully accepted!
    Function value accuracy +
    getFunctionValueAccuracy
    +
    resetFunctionValueAccuracy
    +
    setFunctionValueAccuracy
    This is yet to be written. Any contributions will be greatfully accepted!
    Maximum iteration count +
    getMaximumIterationCount
    +
    resetMaximumIterationCount
    +
    setMaximumIterationCount
    This is yet to be written. Any contributions will be greatfully accepted!
    Relative accuracy +
    getRelativeAccuracy
    +
    resetRelativeAccuracy
    +
    setRelativeAccuracy
    This is yet to be written. Any contributions will be greatfully accepted!
    +

    +
    + +

    This is yet to be written. Any contributions will be gratefully + accepted!

    +
    +
    + +
    diff --git a/xdocs/userguide/index.xml b/xdocs/userguide/index.xml index 54e1ea729..0339b7912 100644 --- a/xdocs/userguide/index.xml +++ b/xdocs/userguide/index.xml @@ -1,6 +1,7 @@ + + - Phil Steitz The Commons Math User Guide - Table of Contents diff --git a/xdocs/userguide/linear.xml b/xdocs/userguide/linear.xml index 6b7cb8ac7..9f9a31520 100644 --- a/xdocs/userguide/linear.xml +++ b/xdocs/userguide/linear.xml @@ -1,4 +1,6 @@ + + diff --git a/xdocs/userguide/overview.xml b/xdocs/userguide/overview.xml index 16ea34871..3f85556c7 100644 --- a/xdocs/userguide/overview.xml +++ b/xdocs/userguide/overview.xml @@ -1,5 +1,6 @@ - + + User Guide - Overview diff --git a/xdocs/userguide/random.xml b/xdocs/userguide/random.xml index 92c974b5f..f25d4a906 100644 --- a/xdocs/userguide/random.xml +++ b/xdocs/userguide/random.xml @@ -1,4 +1,6 @@ + + diff --git a/xdocs/userguide/special.xml b/xdocs/userguide/special.xml index ec0f1e8bf..e3ccaa848 100644 --- a/xdocs/userguide/special.xml +++ b/xdocs/userguide/special.xml @@ -1,40 +1,41 @@ - - - - - The Commons Math User Guide - Special Functions - Phil Steitz - - -
    - -

    - The special functions portion of Commons-Math contains several useful functions not - provided by java.lang.Math. These functions mostly serve as building blocks - for other portions of Commons-Math but, as others may find them useful as stand-alone - methods, these special functions were included as part of the Commons-Math public API. -

    -
    - -

    - org.apache.commons.math.special.Gamma contains several useful functions involving the Gamma Function. - - - - -
    FunctionMethodReference
    Log GammalogGammaSee Gamma Function from MathWorld
    Regularized GammaregularizedGammaPSee Regularized Gamma Function from MathWorld
    -

    -
    - -

    - org.apache.commons.math.special.Beta contains several useful functions involving the Beta Function. - - - - -
    FunctionMethodReference
    Log BetalogBetaSee Beta Function from MathWorld
    Regularized BetaregularizedBetaSee Regularized Beta Function from MathWorld
    -

    -
    -
    - -
    + + + + + + The Commons Math User Guide - Special Functions + Phil Steitz + + +
    + +

    + The special functions portion of Commons-Math contains several useful functions not + provided by java.lang.Math. These functions mostly serve as building blocks + for other portions of Commons-Math but, as others may find them useful as stand-alone + methods, these special functions were included as part of the Commons-Math public API. +

    +
    + +

    + org.apache.commons.math.special.Gamma contains several useful functions involving the Gamma Function. + + + + +
    FunctionMethodReference
    Log GammalogGammaSee Gamma Function from MathWorld
    Regularized GammaregularizedGammaPSee Regularized Gamma Function from MathWorld
    +

    +
    + +

    + org.apache.commons.math.special.Beta contains several useful functions involving the Beta Function. + + + + +
    FunctionMethodReference
    Log BetalogBetaSee Beta Function from MathWorld
    Regularized BetaregularizedBetaSee Regularized Beta Function from MathWorld
    +

    +
    +
    + +
    diff --git a/xdocs/userguide/stat.xml b/xdocs/userguide/stat.xml index fdee0d946..f5a353b6d 100644 --- a/xdocs/userguide/stat.xml +++ b/xdocs/userguide/stat.xml @@ -1,91 +1,92 @@ - - - - - The Commons Math User Guide - Statistics - Phil Steitz - - -
    - -

    This is yet to be written. Any contributions will be greatfully - accepted!

    -
    - -

    This is yet to be written. Any contributions will be gratefully - accepted!

    -
    - -

    This is yet to be written. Any contributions will be gratefully - accepted!

    -
    - -

    This is yet to be written. Any contributions will be gratefully - accepted!

    -
    - -

    This is yet to be written. Any contributions will be gratefully - accepted!

    -
    - -

    - The distribution framework provides the means to compute probability density - function (PDF) probabilities and cumulative distribution function (CDF) - probabilities for common probability distributions. Along with the direct - computation of PDF and CDF probabilities, the framework also allows for the - computation of inverse PDF and inverse CDF values. -

    -

    - In order to use the distribution framework, first a distribution object must - be created. It is encouraged that all distribution object creation occurs via - the org.apache.commons.math.stat.distribution.DistributionFactory - class. DistributionFactory is a simple factory used to create all - of the distribution objects supported by Commons-Math. The typical usage of - DistributionFactory to create a distribution object would be: -

    - DistributionFactory factory = DistributionFactory.newInstance(); - BinomialDistribution binomial = factory.createBinomialDistribution(10, .75); -

    - The distributions that can be instantiated via the DistributionFactory - are detailed below: - - - - - - - - - -
    DistributionFactory MethodParameters
    BinomialcreateBinomialDistribution
    Number of trials
    Probability of success
    Chi-SquaredcreateChiSquaredDistribution
    Degrees of freedom
    ExponentialcreateExponentialDistribution
    Mean
    FcreateFDistribution
    Numerator degrees of freedom
    Denominator degrees of freedom
    GammacreateGammaDistribution
    Alpha
    Beta
    HypergeometriccreateHypogeometricDistribution
    Population size
    Number of successes in population
    Sample size
    tcreateTDistribution
    Degrees of freedom
    -

    -

    - Using a distribution object, PDF and CDF probabilities are easily computed - using the cummulativeProbability methods. For a distribution X, - and a domain value, x, cummulativeProbability computes - P(X <= x) (i.e. the lower tail probability of X). -

    - DistributionFactory factory = DistributionFactory.newInstance(); - TDistribution t = factory.createBinomialDistribution(29); - double lowerTail = t.cummulativeProbability(-2.656); // P(T <= -2.656) - double upperTail = 1.0 - t.cummulativeProbability(2.75); // P(T >= 2.75) -

    - The inverse PDF and CDF values are just as easily computed using the - inverseCummulativeProbabilitymethods. For a distribution X, - and a probability, p, inverseCummulativeProbability - computes the domain value x, such that: -

      -
    • P(X <= x) = p, for continuous distributions
    • -
    • P(X <= x) <= p, for discrete distributions
    • -
    - Notice the different cases for continuous and discrete distributions. This is the result - of PDFs not being invertible functions. As such, for discrete distributions, an exact - domain value can not be returned. Only the "best" domain value. For Commons-Math, the "best" - domain value is determined by the largest domain value whose cummulative probability is - less-than or equal to the given probability. -

    -
    - -
    - -
    + + + + + + The Commons Math User Guide - Statistics + Phil Steitz + + +
    + +

    This is yet to be written. Any contributions will be greatfully + accepted!

    +
    + +

    This is yet to be written. Any contributions will be gratefully + accepted!

    +
    + +

    This is yet to be written. Any contributions will be gratefully + accepted!

    +
    + +

    This is yet to be written. Any contributions will be gratefully + accepted!

    +
    + +

    This is yet to be written. Any contributions will be gratefully + accepted!

    +
    + +

    + The distribution framework provides the means to compute probability density + function (PDF) probabilities and cumulative distribution function (CDF) + probabilities for common probability distributions. Along with the direct + computation of PDF and CDF probabilities, the framework also allows for the + computation of inverse PDF and inverse CDF values. +

    +

    + In order to use the distribution framework, first a distribution object must + be created. It is encouraged that all distribution object creation occurs via + the org.apache.commons.math.stat.distribution.DistributionFactory + class. DistributionFactory is a simple factory used to create all + of the distribution objects supported by Commons-Math. The typical usage of + DistributionFactory to create a distribution object would be: +

    + DistributionFactory factory = DistributionFactory.newInstance(); + BinomialDistribution binomial = factory.createBinomialDistribution(10, .75); +

    + The distributions that can be instantiated via the DistributionFactory + are detailed below: + + + + + + + + + +
    DistributionFactory MethodParameters
    BinomialcreateBinomialDistribution
    Number of trials
    Probability of success
    Chi-SquaredcreateChiSquaredDistribution
    Degrees of freedom
    ExponentialcreateExponentialDistribution
    Mean
    FcreateFDistribution
    Numerator degrees of freedom
    Denominator degrees of freedom
    GammacreateGammaDistribution
    Alpha
    Beta
    HypergeometriccreateHypogeometricDistribution
    Population size
    Number of successes in population
    Sample size
    tcreateTDistribution
    Degrees of freedom
    +

    +

    + Using a distribution object, PDF and CDF probabilities are easily computed + using the cummulativeProbability methods. For a distribution X, + and a domain value, x, cummulativeProbability computes + P(X <= x) (i.e. the lower tail probability of X). +

    + DistributionFactory factory = DistributionFactory.newInstance(); + TDistribution t = factory.createBinomialDistribution(29); + double lowerTail = t.cummulativeProbability(-2.656); // P(T <= -2.656) + double upperTail = 1.0 - t.cummulativeProbability(2.75); // P(T >= 2.75) +

    + The inverse PDF and CDF values are just as easily computed using the + inverseCummulativeProbabilitymethods. For a distribution X, + and a probability, p, inverseCummulativeProbability + computes the domain value x, such that: +

      +
    • P(X <= x) = p, for continuous distributions
    • +
    • P(X <= x) <= p, for discrete distributions
    • +
    + Notice the different cases for continuous and discrete distributions. This is the result + of PDFs not being invertible functions. As such, for discrete distributions, an exact + domain value can not be returned. Only the "best" domain value. For Commons-Math, the "best" + domain value is determined by the largest domain value whose cummulative probability is + less-than or equal to the given probability. +

    +
    + +
    + +
    diff --git a/xdocs/userguide/utilities.xml b/xdocs/userguide/utilities.xml index ff527cb3d..9b447fa92 100644 --- a/xdocs/userguide/utilities.xml +++ b/xdocs/userguide/utilities.xml @@ -1,4 +1,6 @@ + + diff --git a/xdocs/xdoc.xsl b/xdocs/xdoc.xsl new file mode 100644 index 000000000..ece067ae4 --- /dev/null +++ b/xdocs/xdoc.xsl @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + +
    + +
    + +
    + +
    +

    + +
    +
    + +
    +

    + +
    +
    + + + + + + +