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
This commit is contained in:
Dirk Verbeeck 2003-11-15 18:38:16 +00:00
parent dcc4de4874
commit 772d74b0fb
17 changed files with 1251 additions and 224 deletions

View File

@ -1,5 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="xdoc.xsl"?>
<!-- $Revision: 1.9 $ $Date: 2003/11/15 18:38:16 $ -->
<document> <document>
<properties> <properties>
<title>Developers Guide</title> <title>Developers Guide</title>
@ -23,6 +24,66 @@
will not be committed. Our aim will be to fix all of the exceptions to the will not be committed. Our aim will be to fix all of the exceptions to the
"<i>should</i>" guidelines prior to a release. "<i>should</i>" guidelines prior to a release.
</p> </p>
<subsection name="Contributing">
<p>
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.
</p>
<p>
<ol>
<li>Formost it is important to review the overall objectives
and <a href="proposal.html">proposal</a> upon which the project is
founded.
</li>
<li>Review the completed, current and future
<a href="tasks.html">tasks</a> of the project.
</li>
<li>Be sure to join the Commons Developer and Interest <a href="mail-lists.html">
email lists</a> 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
</li>
<li>
<a href="http://nagoya.apache.org/bugzilla/createaccount.cgi">Setup an account on Bugzilla</a>
and use it to formally submit Patches and identify bugs. Read the
<a href="http://nagoya.apache.org/bugzilla/bugwritinghelp.html">directions</a> for
submitting bugs and search the database to determine if an issue exists or has
already been dealt with.
<p>
Submitting Issues:
</p>
<ul>
<li><a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?reporter=&amp;product=Commons&amp;version=unspecified&amp;component=Math&amp;rep_platform=All&amp;op_sys=All&amp;priority=Other&amp;bug_severity=normal&amp;bug_status=NEW&amp;assigned_to=&amp;cc=&amp;bug_file_loc=&amp;short_desc=%5Bpatch%5D+%22Your+subject+heading+here%22&amp;comment=Please+provide+details+here.+Its+best+to+submit+patches+that+alter+existing+file%0D%0Acontent+in+%22unified+cvs+diff%22+format.+%0D%0A%0D%0ASubmissions+that+provide+new+files+can+be+supplied+as+direct+file+attachments+or%0D%0Aarchives+in+zip+or+tar.gz+format.+please+be+kind+enough+to+identify+the+format%0D%0Aof+the+attached+archive+as+bugzill+tends+to+strip+these+characterstics+by%0D%0Aremoving+the+files+extension.&amp;maketemplate=Remember+values+as+bookmarkable+template&amp;form_name=enter_bug">
Bookmarkable Template for submitting patches.
</a></li>
<li><a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?reporter=&amp;product=Commons&amp;version=unspecified&amp;component=Math&amp;rep_platform=All&amp;op_sys=All&amp;priority=Other&amp;bug_severity=normal&amp;bug_status=NEW&amp;assigned_to=&amp;cc=&amp;bug_file_loc=http%3A%2F%2F&amp;short_desc=%5Bbug+report%5D+%22Your+subject+heading+here%22&amp;comment=Please+review+the+bug+writing+guidelines+and+supply+as+much+detail+as+possible%0D%0Ato+allow+us+to+diagnose+and+correct+the+existing+issue.+Please+search+the+bug%0D%0Adatabase+to+determine+if+the+bug+has+possibly+been+addressed+in+the+past.&amp;maketemplate=Remember+values+as+bookmarkable+template&amp;form_name=enter_bug">
Bookmarkable Template for submitting bugs.
</a></li>
</ul>
<p>
Querying the Database:
</p>
<ul>
<li><a href="http://nagoya.apache.org/bugzilla/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=Commons&amp;component=Math&amp;short_desc=&amp;short_desc_type=allwordssubstr&amp;long_desc=&amp;long_desc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_file_loc_type=allwordssubstr&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">
New and Existing Issues.
</a></li>
<li><a href="http://nagoya.apache.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=Commons&amp;component=Math&amp;short_desc=&amp;short_desc_type=allwordssubstr&amp;long_desc=&amp;long_desc_type=allwordssubstr&amp;bug_file_loc=&amp;bug_file_loc_type=allwordssubstr&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">
Resolved and Closed Issues.
</a></li>
</ul>
</li>
</ol>
</p>
</subsection>
<subsection name='Coding Style'> <subsection name='Coding Style'>
<p> <p>
Commons-math follows <a href="http://java.sun.com/docs/codeconv/">Code Commons-math follows <a href="http://java.sun.com/docs/codeconv/">Code

View File

@ -1,5 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="xdoc.xsl"?>
<!-- $Revision: 1.6 $ $Date: 2003/11/15 18:38:16 $ -->
<document> <document>
<properties> <properties>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $Revision: 1.5 $ $Date: 2003/11/14 21:49:41 $ --> <!-- $Revision: 1.6 $ $Date: 2003/11/15 18:38:16 $ -->
<project name="Math"> <project name="Math">
<title>Math</title> <title>Math</title>

View File

@ -1,5 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="xdoc.xsl"?>
<!-- $Revision: 1.4 $ $Date: 2003/11/15 18:38:16 $ -->
<document> <document>
<properties> <properties>

114
xdocs/stylesheets/maven.css Normal file
View File

@ -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;
}

View File

@ -0,0 +1,7 @@
#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks {
display: none;
}
body.docs div.docs {
margin: 0 !important;
border: none !important
}

View File

@ -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;
}

View File

@ -1,5 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!-- $Revision: 1.14 $ $Date: 2003/11/14 21:49:41 $ --> <?xml-stylesheet type="text/xsl" href="xdoc.xsl"?>
<!-- $Revision: 1.15 $ $Date: 2003/11/15 18:38:16 $ -->
<document> <document>
<properties> <properties>
<title>Tasks: Done And To Do</title> <title>Tasks: Done And To Do</title>
@ -58,7 +59,7 @@
<li><a href="http://nagoya.apache.org/eyebrowse/ReadMsg?listId=15&amp;msgNo=28132"> <li><a href="http://nagoya.apache.org/eyebrowse/ReadMsg?listId=15&amp;msgNo=28132">
Thread Subject: [math] Complex dilemmas Thread Subject: [math] Complex dilemmas
</a></li> </a></li>
<li><a href="http://nagoya.apache.org/eyebrowse/ReadMsg?listName=commons-dev@jakarta.apache.org&msgNo=36293"> <li><a href="http://nagoya.apache.org/eyebrowse/ReadMsg?listName=commons-dev@jakarta.apache.org&amp;msgNo=36293">
Thread Subject: [math] Complex implementation Thread Subject: [math] Complex implementation
</a></li> </a></li>
</ul> </ul>

View File

@ -1,85 +1,86 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!-- $Revision: 1.4 $ $Date: 2003/11/14 21:50:39 $ --> <?xml-stylesheet type="text/xsl" href="./xdoc.xsl"?>
<document url="analysis.html"> <!-- $Revision: 1.5 $ $Date: 2003/11/15 18:38:16 $ -->
<properties> <document url="analysis.html">
<title>The Commons Math User Guide - Numerical Analysis</title> <properties>
<author email="phil@steitz.com">Phil Steitz</author> <title>The Commons Math User Guide - Numerical Analysis</title>
</properties> <author email="phil@steitz.com">Phil Steitz</author>
<body> </properties>
<section name="4 Numerical Analysis"> <body>
<subsection name="4.1 Overview" href="overview"> <section name="4 Numerical Analysis">
<p>This is yet to be written. Any contributions will be gratefully <subsection name="4.1 Overview" href="overview">
accepted!</p> <p>This is yet to be written. Any contributions will be gratefully
</subsection> accepted!</p>
<subsection name="4.2 Root-finding" href="rootfinding"> </subsection>
<p> <subsection name="4.2 Root-finding" href="rootfinding">
<code>org.apache.commons.math.analysis.UnivariateRealSolver</code> provides the means to <p>
find roots of univariate, real valued, functions. Commons-Math supports various <code>org.apache.commons.math.analysis.UnivariateRealSolver</code> provides the means to
implementations of <code>UnivariateRealSolver</code> to solve functions with differing find roots of univariate, real valued, functions. Commons-Math supports various
characteristics. implementations of <code>UnivariateRealSolver</code> to solve functions with differing
</p> characteristics.
<p> </p>
In order to use the root-finding features, first a solver object must be created. It is <p>
encouraged that all solver object creation occurs via the <code>org.apache.commons.math.analysis.UnivariateRealSolverFactory</code> In order to use the root-finding features, first a solver object must be created. It is
class. <code>UnivariateRealSolverFactory</code> is a simple factory used to create all encouraged that all solver object creation occurs via the <code>org.apache.commons.math.analysis.UnivariateRealSolverFactory</code>
of the solver objects supported by Commons-Math. The typical usage of <code>UnivariateRealSolverFactory</code> class. <code>UnivariateRealSolverFactory</code> is a simple factory used to create all
to create a solver object would be:</p> of the solver objects supported by Commons-Math. The typical usage of <code>UnivariateRealSolverFactory</code>
<source>UnivariateRealFunction function = // some user defined function object to create a solver object would be:</p>
UnivariateRealSolverFactory factory = UnivariateRealSolverFactory.newInstance(); <source>UnivariateRealFunction function = // some user defined function object
UnivariateRealSolver solver = factory.newDefaultSolver(function);</source> UnivariateRealSolverFactory factory = UnivariateRealSolverFactory.newInstance();
<p> UnivariateRealSolver solver = factory.newDefaultSolver(function);</source>
The solvers that can be instantiated via the <code>UnivariateRealSolverFactory</code> are detailed below: <p>
<table> The solvers that can be instantiated via the <code>UnivariateRealSolverFactory</code> are detailed below:
<tr><th>Solver</th><th>Factory Method</th><th>Notes on Use</th></tr> <table>
<tr><td>Bisection</td><td>newBisectionSolver</td><td><div>Root must be bracketted.</div><div>Linear, guaranteed convergence</div></td></tr> <tr><th>Solver</th><th>Factory Method</th><th>Notes on Use</th></tr>
<tr><td>Brent</td><td>newBrentSolver</td><td><div>Root must be bracketted.</div><div>Super-linear, guaranteed convergence</div></td></tr> <tr><td>Bisection</td><td>newBisectionSolver</td><td><div>Root must be bracketted.</div><div>Linear, guaranteed convergence</div></td></tr>
<tr><td>Secant</td><td>newSecantSolver</td><td><div>Root must be bracketted.</div><div>Super-linear, non-guaranteed convergence</div></td></tr> <tr><td>Brent</td><td>newBrentSolver</td><td><div>Root must be bracketted.</div><div>Super-linear, guaranteed convergence</div></td></tr>
</table> <tr><td>Secant</td><td>newSecantSolver</td><td><div>Root must be bracketted.</div><div>Super-linear, non-guaranteed convergence</div></td></tr>
</p> </table>
<p> </p>
Using a solver object, roots of functions are easily found using the <code>solve</code> <p>
methods. For a function <code>f</code>, and two domain values, <code>min</code> and Using a solver object, roots of functions are easily found using the <code>solve</code>
<code>max</code>, <code>solve</code> computes the value <code>c</code> such that: methods. For a function <code>f</code>, and two domain values, <code>min</code> and
<ul> <code>max</code>, <code>solve</code> computes the value <code>c</code> such that:
<li><code>f(c) = 0.0</code></li> <ul>
<li><code>min &lt;= c &lt;= max</code></li> <li><code>f(c) = 0.0</code></li>
</ul> <li><code>min &lt;= c &lt;= max</code></li>
</p> </ul>
<source>UnivariateRealFunction function = // some user defined function object </p>
UnivariateRealSolverFactory factory = UnivariateRealSolverFactory.newInstance(); <source>UnivariateRealFunction function = // some user defined function object
UnivariateRealSolver solver = factory.newBisectionSolver(function); UnivariateRealSolverFactory factory = UnivariateRealSolverFactory.newInstance();
double c = solver.solve(1.0, 5.0);</source> UnivariateRealSolver solver = factory.newBisectionSolver(function);
<p> double c = solver.solve(1.0, 5.0);</source>
Along with the <code>solve</code> methods, the <code>UnivariateRealSolver</code> <p>
interface provides many properties to control the convergence of a solver. For the most Along with the <code>solve</code> methods, the <code>UnivariateRealSolver</code>
part, these properties should not have to change from their default values to produce interface provides many properties to control the convergence of a solver. For the most
quality results. In the circumstances where changing these property values is needed, it part, these properties should not have to change from their default values to produce
is easily done through getter and setter methods on <code>UnivariateRealSolver</code>: quality results. In the circumstances where changing these property values is needed, it
<table> is easily done through getter and setter methods on <code>UnivariateRealSolver</code>:
<tr><th>Property</th><th>Methods</th><th>Purpose</th></tr> <table>
<tr><td>Absolute accuracy</td><td> <tr><th>Property</th><th>Methods</th><th>Purpose</th></tr>
<div>getAbsoluteAccuracy</div> <tr><td>Absolute accuracy</td><td>
<div>resetAbsoluteAccuracy</div> <div>getAbsoluteAccuracy</div>
<div>setAbsoluteAccuracy</div></td><td>This is yet to be written. Any contributions will be greatfully accepted!</td></tr> <div>resetAbsoluteAccuracy</div>
<tr><td>Function value accuracy</td><td> <div>setAbsoluteAccuracy</div></td><td>This is yet to be written. Any contributions will be greatfully accepted!</td></tr>
<div>getFunctionValueAccuracy</div> <tr><td>Function value accuracy</td><td>
<div>resetFunctionValueAccuracy</div> <div>getFunctionValueAccuracy</div>
<div>setFunctionValueAccuracy</div></td><td>This is yet to be written. Any contributions will be greatfully accepted!</td></tr> <div>resetFunctionValueAccuracy</div>
<tr><td>Maximum iteration count</td><td> <div>setFunctionValueAccuracy</div></td><td>This is yet to be written. Any contributions will be greatfully accepted!</td></tr>
<div>getMaximumIterationCount</div> <tr><td>Maximum iteration count</td><td>
<div>resetMaximumIterationCount</div> <div>getMaximumIterationCount</div>
<div>setMaximumIterationCount</div></td><td>This is yet to be written. Any contributions will be greatfully accepted!</td></tr> <div>resetMaximumIterationCount</div>
<tr><td>Relative accuracy</td><td> <div>setMaximumIterationCount</div></td><td>This is yet to be written. Any contributions will be greatfully accepted!</td></tr>
<div>getRelativeAccuracy</div> <tr><td>Relative accuracy</td><td>
<div>resetRelativeAccuracy</div> <div>getRelativeAccuracy</div>
<div>setRelativeAccuracy</div></td><td>This is yet to be written. Any contributions will be greatfully accepted!</td></tr> <div>resetRelativeAccuracy</div>
</table> <div>setRelativeAccuracy</div></td><td>This is yet to be written. Any contributions will be greatfully accepted!</td></tr>
</p> </table>
</subsection> </p>
<subsection name="4.3 Interpolation" href="interpolation"> </subsection>
<p>This is yet to be written. Any contributions will be gratefully <subsection name="4.3 Interpolation" href="interpolation">
accepted!</p> <p>This is yet to be written. Any contributions will be gratefully
</subsection> accepted!</p>
</section> </subsection>
</body> </section>
</document> </body>
</document>

View File

@ -1,6 +1,7 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="./xdoc.xsl"?>
<!-- $Revision: 1.4 $ $Date: 2003/11/15 18:38:16 $ -->
<document url="index.html"> <document url="index.html">
<properties> <properties>
<author email="phil@steitz.com">Phil Steitz</author> <author email="phil@steitz.com">Phil Steitz</author>
<title>The Commons Math User Guide - Table of Contents</title> <title>The Commons Math User Guide - Table of Contents</title>

View File

@ -1,4 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="./xdoc.xsl"?>
<!-- $Revision: 1.4 $ $Date: 2003/11/15 18:38:16 $ -->
<document url="linear.html"> <document url="linear.html">
<properties> <properties>

View File

@ -1,5 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="./xdoc.xsl"?>
<!-- $Revision: 1.5 $ $Date: 2003/11/15 18:38:16 $ -->
<document> <document>
<properties> <properties>
<title>User Guide - Overview</title> <title>User Guide - Overview</title>

View File

@ -1,4 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="./xdoc.xsl"?>
<!-- $Revision: 1.4 $ $Date: 2003/11/15 18:38:16 $ -->
<document url="random.html"> <document url="random.html">
<properties> <properties>

View File

@ -1,40 +1,41 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!-- $Revision: 1.4 $ $Date: 2003/11/14 21:50:39 $ --> <?xml-stylesheet type="text/xsl" href="./xdoc.xsl"?>
<document url="special.html"> <!-- $Revision: 1.5 $ $Date: 2003/11/15 18:38:16 $ -->
<properties> <document url="special.html">
<title>The Commons Math User Guide - Special Functions</title> <properties>
<author email="phil@steitz.com">Phil Steitz</author> <title>The Commons Math User Guide - Special Functions</title>
</properties> <author email="phil@steitz.com">Phil Steitz</author>
<body> </properties>
<section name="5 Special Functions"> <body>
<subsection name="5.1 Overview" href="overview"> <section name="5 Special Functions">
<p> <subsection name="5.1 Overview" href="overview">
The special functions portion of Commons-Math contains several useful functions not <p>
provided by <code>java.lang.Math</code>. These functions mostly serve as building blocks The special functions portion of Commons-Math contains several useful functions not
for other portions of Commons-Math but, as others may find them useful as stand-alone provided by <code>java.lang.Math</code>. These functions mostly serve as building blocks
methods, these special functions were included as part of the Commons-Math public API. for other portions of Commons-Math but, as others may find them useful as stand-alone
</p> methods, these special functions were included as part of the Commons-Math public API.
</subsection> </p>
<subsection name="5.2 Gamma functions" href="gamma"> </subsection>
<p> <subsection name="5.2 Gamma functions" href="gamma">
<code>org.apache.commons.math.special.Gamma</code> contains several useful functions involving the Gamma Function. <p>
<table> <code>org.apache.commons.math.special.Gamma</code> contains several useful functions involving the Gamma Function.
<tr><th>Function</th><th>Method</th><th>Reference</th></tr> <table>
<tr><td>Log Gamma</td><td>logGamma</td><td>See <a href="http://mathworld.wolfram.com/GammaFunction.html">Gamma Function</a> from MathWorld</td></tr> <tr><th>Function</th><th>Method</th><th>Reference</th></tr>
<tr><td>Regularized Gamma</td><td>regularizedGammaP</td><td>See <a href="http://mathworld.wolfram.com/RegularizedGammaFunction.html">Regularized Gamma Function</a> from MathWorld</td></tr> <tr><td>Log Gamma</td><td>logGamma</td><td>See <a href="http://mathworld.wolfram.com/GammaFunction.html">Gamma Function</a> from MathWorld</td></tr>
</table> <tr><td>Regularized Gamma</td><td>regularizedGammaP</td><td>See <a href="http://mathworld.wolfram.com/RegularizedGammaFunction.html">Regularized Gamma Function</a> from MathWorld</td></tr>
</p> </table>
</subsection> </p>
<subsection name="5.3 Beta funtions" href="beta"> </subsection>
<p> <subsection name="5.3 Beta funtions" href="beta">
<code>org.apache.commons.math.special.Beta</code> contains several useful functions involving the Beta Function. <p>
<table> <code>org.apache.commons.math.special.Beta</code> contains several useful functions involving the Beta Function.
<tr><th>Function</th><th>Method</th><th>Reference</th></tr> <table>
<tr><td>Log Beta</td><td>logBeta</td><td>See <a href="http://mathworld.wolfram.com/BetaFunction.html">Beta Function</a> from MathWorld</td></tr> <tr><th>Function</th><th>Method</th><th>Reference</th></tr>
<tr><td>Regularized Beta</td><td>regularizedBeta</td><td>See <a href="http://mathworld.wolfram.com/RegularizedBetaFunction.html">Regularized Beta Function</a> from MathWorld</td></tr> <tr><td>Log Beta</td><td>logBeta</td><td>See <a href="http://mathworld.wolfram.com/BetaFunction.html">Beta Function</a> from MathWorld</td></tr>
</table> <tr><td>Regularized Beta</td><td>regularizedBeta</td><td>See <a href="http://mathworld.wolfram.com/RegularizedBetaFunction.html">Regularized Beta Function</a> from MathWorld</td></tr>
</p> </table>
</subsection> </p>
</section> </subsection>
</body> </section>
</document> </body>
</document>

View File

@ -1,91 +1,92 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!-- $Revision: 1.4 $ $Date: 2003/11/14 21:50:39 $ --> <?xml-stylesheet type="text/xsl" href="./xdoc.xsl"?>
<document url="stat.html"> <!-- $Revision: 1.5 $ $Date: 2003/11/15 18:38:16 $ -->
<properties> <document url="stat.html">
<title>The Commons Math User Guide - Statistics</title> <properties>
<author email="phil@steitz.com">Phil Steitz</author> <title>The Commons Math User Guide - Statistics</title>
</properties> <author email="phil@steitz.com">Phil Steitz</author>
<body> </properties>
<section name="1 Statistics"> <body>
<subsection name="1.1 Overview" href="overview"> <section name="1 Statistics">
<p>This is yet to be written. Any contributions will be greatfully <subsection name="1.1 Overview" href="overview">
accepted!</p> <p>This is yet to be written. Any contributions will be greatfully
</subsection> accepted!</p>
<subsection name="1.2 Univariate statistics" href="univariate"> </subsection>
<p>This is yet to be written. Any contributions will be gratefully <subsection name="1.2 Univariate statistics" href="univariate">
accepted!</p> <p>This is yet to be written. Any contributions will be gratefully
</subsection> accepted!</p>
<subsection name="1.3 Frequency distributions" href="frequency"> </subsection>
<p>This is yet to be written. Any contributions will be gratefully <subsection name="1.3 Frequency distributions" href="frequency">
accepted!</p> <p>This is yet to be written. Any contributions will be gratefully
</subsection> accepted!</p>
<subsection name="1.4 Bivariate regression" href="regression"> </subsection>
<p>This is yet to be written. Any contributions will be gratefully <subsection name="1.4 Bivariate regression" href="regression">
accepted!</p> <p>This is yet to be written. Any contributions will be gratefully
</subsection> accepted!</p>
<subsection name="1.5 Statistical tests" href="tests"> </subsection>
<p>This is yet to be written. Any contributions will be gratefully <subsection name="1.5 Statistical tests" href="tests">
accepted!</p> <p>This is yet to be written. Any contributions will be gratefully
</subsection> accepted!</p>
<subsection name="1.6 Distribution framework" href="distributions"> </subsection>
<p> <subsection name="1.6 Distribution framework" href="distributions">
The distribution framework provides the means to compute probability density <p>
function (PDF) probabilities and cumulative distribution function (CDF) The distribution framework provides the means to compute probability density
probabilities for common probability distributions. Along with the direct function (PDF) probabilities and cumulative distribution function (CDF)
computation of PDF and CDF probabilities, the framework also allows for the probabilities for common probability distributions. Along with the direct
computation of inverse PDF and inverse CDF values. computation of PDF and CDF probabilities, the framework also allows for the
</p> computation of inverse PDF and inverse CDF values.
<p> </p>
In order to use the distribution framework, first a distribution object must <p>
be created. It is encouraged that all distribution object creation occurs via In order to use the distribution framework, first a distribution object must
the <code>org.apache.commons.math.stat.distribution.DistributionFactory</code> be created. It is encouraged that all distribution object creation occurs via
class. <code>DistributionFactory</code> is a simple factory used to create all the <code>org.apache.commons.math.stat.distribution.DistributionFactory</code>
of the distribution objects supported by Commons-Math. The typical usage of class. <code>DistributionFactory</code> is a simple factory used to create all
<code>DistributionFactory</code> to create a distribution object would be: of the distribution objects supported by Commons-Math. The typical usage of
</p> <code>DistributionFactory</code> to create a distribution object would be:
<source>DistributionFactory factory = DistributionFactory.newInstance(); </p>
BinomialDistribution binomial = factory.createBinomialDistribution(10, .75);</source> <source>DistributionFactory factory = DistributionFactory.newInstance();
<p> BinomialDistribution binomial = factory.createBinomialDistribution(10, .75);</source>
The distributions that can be instantiated via the <code>DistributionFactory</code> <p>
are detailed below: The distributions that can be instantiated via the <code>DistributionFactory</code>
<table> are detailed below:
<tr><th>Distribution</th><th>Factory Method</th><th>Parameters</th></tr> <table>
<tr><td>Binomial</td><td>createBinomialDistribution</td><td><div>Number of trials</div><div>Probability of success</div></td></tr> <tr><th>Distribution</th><th>Factory Method</th><th>Parameters</th></tr>
<tr><td>Chi-Squared</td><td>createChiSquaredDistribution</td><td><div>Degrees of freedom</div></td></tr> <tr><td>Binomial</td><td>createBinomialDistribution</td><td><div>Number of trials</div><div>Probability of success</div></td></tr>
<tr><td>Exponential</td><td>createExponentialDistribution</td><td><div>Mean</div></td></tr> <tr><td>Chi-Squared</td><td>createChiSquaredDistribution</td><td><div>Degrees of freedom</div></td></tr>
<tr><td>F</td><td>createFDistribution</td><td><div>Numerator degrees of freedom</div><div>Denominator degrees of freedom</div></td></tr> <tr><td>Exponential</td><td>createExponentialDistribution</td><td><div>Mean</div></td></tr>
<tr><td>Gamma</td><td>createGammaDistribution</td><td><div>Alpha</div><div>Beta</div></td></tr> <tr><td>F</td><td>createFDistribution</td><td><div>Numerator degrees of freedom</div><div>Denominator degrees of freedom</div></td></tr>
<tr><td>Hypergeometric</td><td>createHypogeometricDistribution</td><td><div>Population size</div><div>Number of successes in population</div><div>Sample size</div></td></tr> <tr><td>Gamma</td><td>createGammaDistribution</td><td><div>Alpha</div><div>Beta</div></td></tr>
<tr><td>t</td><td>createTDistribution</td><td><div>Degrees of freedom</div></td></tr> <tr><td>Hypergeometric</td><td>createHypogeometricDistribution</td><td><div>Population size</div><div>Number of successes in population</div><div>Sample size</div></td></tr>
</table> <tr><td>t</td><td>createTDistribution</td><td><div>Degrees of freedom</div></td></tr>
</p> </table>
<p> </p>
Using a distribution object, PDF and CDF probabilities are easily computed <p>
using the <code>cummulativeProbability</code> methods. For a distribution <code>X</code>, Using a distribution object, PDF and CDF probabilities are easily computed
and a domain value, <code>x</code>, <code>cummulativeProbability</code> computes using the <code>cummulativeProbability</code> methods. For a distribution <code>X</code>,
<code>P(X &lt;= x)</code> (i.e. the lower tail probability of <code>X</code>). and a domain value, <code>x</code>, <code>cummulativeProbability</code> computes
</p> <code>P(X &lt;= x)</code> (i.e. the lower tail probability of <code>X</code>).
<source>DistributionFactory factory = DistributionFactory.newInstance(); </p>
TDistribution t = factory.createBinomialDistribution(29); <source>DistributionFactory factory = DistributionFactory.newInstance();
double lowerTail = t.cummulativeProbability(-2.656); // P(T &lt;= -2.656) TDistribution t = factory.createBinomialDistribution(29);
double upperTail = 1.0 - t.cummulativeProbability(2.75); // P(T &gt;= 2.75)</source> double lowerTail = t.cummulativeProbability(-2.656); // P(T &lt;= -2.656)
<p> double upperTail = 1.0 - t.cummulativeProbability(2.75); // P(T &gt;= 2.75)</source>
The inverse PDF and CDF values are just as easily computed using the <p>
<code>inverseCummulativeProbability</code>methods. For a distribution <code>X</code>, The inverse PDF and CDF values are just as easily computed using the
and a probability, <code>p</code>, <code>inverseCummulativeProbability</code> <code>inverseCummulativeProbability</code>methods. For a distribution <code>X</code>,
computes the domain value <code>x</code>, such that: and a probability, <code>p</code>, <code>inverseCummulativeProbability</code>
<ul> computes the domain value <code>x</code>, such that:
<li><code>P(X &lt;= x) = p</code>, for continuous distributions</li> <ul>
<li><code>P(X &lt;= x) &lt;= p</code>, for discrete distributions</li> <li><code>P(X &lt;= x) = p</code>, for continuous distributions</li>
</ul> <li><code>P(X &lt;= x) &lt;= p</code>, for discrete distributions</li>
Notice the different cases for continuous and discrete distributions. This is the result </ul>
of PDFs not being invertible functions. As such, for discrete distributions, an exact Notice the different cases for continuous and discrete distributions. This is the result
domain value can not be returned. Only the "best" domain value. For Commons-Math, the "best" of PDFs not being invertible functions. As such, for discrete distributions, an exact
domain value is determined by the largest domain value whose cummulative probability is domain value can not be returned. Only the "best" domain value. For Commons-Math, the "best"
less-than or equal to the given probability. domain value is determined by the largest domain value whose cummulative probability is
</p> less-than or equal to the given probability.
</subsection> </p>
</subsection>
</section>
</body> </section>
</document> </body>
</document>

View File

@ -1,4 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="./xdoc.xsl"?>
<!-- $Revision: 1.4 $ $Date: 2003/11/15 18:38:16 $ -->
<document url="utilities.html"> <document url="utilities.html">
<properties> <properties>

42
xdocs/xdoc.xsl Normal file
View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<xsl:apply-templates select="/document/properties/title"/>
<xsl:apply-templates select="/document/meta"/>
<style type="text/css">
@import url("./stylesheets/tigris.css");
@import url("./stylesheets/maven.css");
</style>
<link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link>
</head>
<xsl:apply-templates select="/document/body"/>
</html>
</xsl:template>
<xsl:template match="body">
<body>
<div class="app">
<xsl:apply-templates/>
</div>
</body>
</xsl:template>
<xsl:template match="section">
<div>
<h3><xsl:value-of select="@name"/></h3>
<xsl:apply-templates/>
</div>
</xsl:template>
<xsl:template match="subsection">
<div>
<h4><xsl:value-of select="@name"/></h4>
<xsl:apply-templates/>
</div>
</xsl:template>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>