annotate mayachemtools/docs/modules/html/MathUtil.html @ 9:ab29fa5c8c1f draft default tip

Uploaded
author deepakjadmin
date Thu, 15 Dec 2016 14:18:03 -0500
parents 73ae111cf86f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1 <html>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
2 <head>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
3 <title>MayaChemTools:Documentation:MathUtil.pm</title>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
4 <meta http-equiv="content-type" content="text/html;charset=utf-8">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
5 <link rel="stylesheet" type="text/css" href="../../css/MayaChemTools.css">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
6 </head>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
7 <body leftmargin="20" rightmargin="20" topmargin="10" bottommargin="10">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
8 <br/>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
9 <center>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
10 <a href="http://www.mayachemtools.org" title="MayaChemTools Home"><img src="../../images/MayaChemToolsLogo.gif" border="0" alt="MayaChemTools"></a>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
11 </center>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
12 <br/>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
13 <div class="DocNav">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
14 <table width="100%" border=0 cellpadding=0 cellspacing=2>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
15 <tr align="left" valign="top"><td width="33%" align="left"><a href="./HTMLUtil.html" title="HTMLUtil.html">Previous</a>&nbsp;&nbsp;<a href="./index.html" title="Table of Contents">TOC</a>&nbsp;&nbsp;<a href="./Matrix.html" title="Matrix.html">Next</a></td><td width="34%" align="middle"><strong>MathUtil.pm</strong></td><td width="33%" align="right"><a href="././code/MathUtil.html" title="View source code">Code</a>&nbsp;|&nbsp;<a href="./../pdf/MathUtil.pdf" title="PDF US Letter Size">PDF</a>&nbsp;|&nbsp;<a href="./../pdfgreen/MathUtil.pdf" title="PDF US Letter Size with narrow margins: www.changethemargins.com">PDFGreen</a>&nbsp;|&nbsp;<a href="./../pdfa4/MathUtil.pdf" title="PDF A4 Size">PDFA4</a>&nbsp;|&nbsp;<a href="./../pdfa4green/MathUtil.pdf" title="PDF A4 Size with narrow margins: www.changethemargins.com">PDFA4Green</a></td></tr>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
16 </table>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
17 </div>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
18 <p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
19 </p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
20 <h2>NAME</h2>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
21 <p>MathUtil</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
22 <p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
23 </p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
24 <h2>SYNOPSIS</h2>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
25 <p>use MathUtil;</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
26 <p>use MathUtil qw(:all);</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
27 <p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
28 </p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
29 <h2>DESCRIPTION</h2>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
30 <p><strong>MathUtil</strong> module provides a variety of common math functions not available in core
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
31 Perl package or some other useful math utilities. In order to be consistent with other
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
32 Perl functions, name of all the functions in this package are in lowercase which differs
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
33 from MayaChemTools naming convention for function names.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
34 <p><strong>MathUtil</strong> module provides the following functions:</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
35 <p> <a href="#generateprimenumbersuptocount">GeneratePrimeNumbersUpToCount</a>, <a href="#generateprimenumbersuptolimit">GeneratePrimeNumbersUpToLimit</a>, <a href="#acos">acos</a>, <a href="#asin">asin</a>, <a href="#ceil">ceil</a>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
36 , <a href="#floor">floor</a>, <a href="#log10">log10</a>, <a href="#max">max</a>, <a href="#min">min</a>, <a href="#random">random</a>, <a href="#round">round</a>, <a href="#srandom">srandom</a>, <a href="#tan">tan</a>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
37 </p><p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
38 </p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
39 <h2>FUNCTIONS</h2>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
40 <dl>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
41 <dt><strong><a name="generateprimenumbersuptocount" class="item"><strong>GeneratePrimeNumbersUpToCount</strong></a></strong></dt>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
42 <dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
43 <div class="OptionsBox">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
44 $PrimesRef = GeneratePrimeNumbersUpToCount();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
45 <br/> $PrimesRef = GeneratePrimeNumbersUpToCount($Count);</div>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
46 <p>Generate prime numbers up to specified <em>Count</em> of prime numbers and return a
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
47 reference to an array containing the prime numbers.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
48 <p>By default, the first 1000 prime numbers are generated. The 1000th prime
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
49 number is 7919.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
50 <p>The algorithm to generate prime numbers is a modification of Sieve of Erastothenes
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
51 prime number generator.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
52 </dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
53 <dt><strong><a name="generateprimenumbersuptolimit" class="item"><strong>GeneratePrimeNumbersUpToLimit</strong></a></strong></dt>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
54 <dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
55 <div class="OptionsBox">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
56 $PrimesRef = GeneratePrimeNumbersUpToLimit();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
57 <br/> $PrimesRef = GeneratePrimeNumbersUpToLimit($Limit);</div>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
58 <p>Generate prime numbers up to a specified <em>Limit</em> and return a reference to an
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
59 array containing the prime numbers.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
60 <p>By default, the first 1000 prime numbers are generated. The 1000th prime
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
61 number is 7919 and that's why default limit is set to 7920.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
62 <p>The algorithm to generate prime numbers is a modification of Sieve of Erastothenes
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
63 prime number generator.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
64 </dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
65 <dt><strong><a name="acos" class="item"><strong>acos</strong></a></strong></dt>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
66 <dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
67 <div class="OptionsBox">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
68 $Value = acos($AngleInRadians);</div>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
69 <p>Returns the nverse cosine of an angle expressed in <em>Radians</em> using Math::Trig::acos
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
70 function.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
71 </dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
72 <dt><strong><a name="asin" class="item"><strong>asin</strong></a></strong></dt>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
73 <dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
74 <div class="OptionsBox">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
75 $Value = asin($AngleInRadians);</div>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
76 <p>Returns the inverse sine of an angle expressed in <em>Radians</em> using Math::Trig::asin
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
77 function.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
78 </dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
79 <dt><strong><a name="ceil" class="item"><strong>ceil</strong></a></strong></dt>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
80 <dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
81 <div class="OptionsBox">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
82 $IntegerValue = ceil($Value);</div>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
83 <p>Returns the next largest integer for <em>Value</em> using POSIX::ceil function.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
84 </dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
85 <dt><strong><a name="floor" class="item"><strong>floor</strong></a></strong></dt>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
86 <dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
87 <div class="OptionsBox">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
88 $IntegerValue = floor($Value);</div>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
89 <p>Returns the previous smallest integer for <em>Value</em> using POSIX::floor function.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
90 </dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
91 <dt><strong><a name="log10" class="item"><strong>log10</strong></a></strong></dt>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
92 <dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
93 <div class="OptionsBox">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
94 $Log10Value = log10($Value);</div>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
95 <p>Returns the log of <em>Value</em> using base 10.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
96 </dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
97 <dt><strong><a name="max" class="item"><strong>max</strong></a></strong></dt>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
98 <dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
99 <div class="OptionsBox">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
100 $Number = max($Number1, $Number2);</div>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
101 <p>Returns a <strong>Number</strong> corresponding to the maximum of <em>Number1</em> and <em>Number2</em>.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
102 </dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
103 <dt><strong><a name="min" class="item"><strong>min</strong></a></strong></dt>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
104 <dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
105 <div class="OptionsBox">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
106 $Number = min($Number1, $Number2);</div>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
107 <p>Returns a <strong>Number</strong> corresponding to the minimum of <em>Number1</em> and <em>Number2</em>.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
108 </dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
109 <dt><strong><a name="round" class="item"><strong>round</strong></a></strong></dt>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
110 <dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
111 <div class="OptionsBox">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
112 $RoundedValue = round($Number);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
113 <br/> $RoundedValue = round($Number, $DecimalPlaces);</div>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
114 <p>Returns a value corresponding to a nearst ingeter for <em>Number</em> or formatted to <em>DecimalPlaces</em>.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
115 </dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
116 <dt><strong><a name="random" class="item"><strong>random</strong></a></strong></dt>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
117 <dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
118 <div class="OptionsBox">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
119 $RandomNumber = random();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
120 <br/> $RandomNumber = random($Size);</div>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
121 <p>Returns a random number between 0 and less than 1 or specified size.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
122 <p>The random number generator implemented in MayaChemTools is a variant of linear
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
123 congruential generator (LCG) as described by Miller et al. [ Ref 120 ]. It is
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
124 also referred to as Lehmer random number generator or Park-Miller random number
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
125 generator.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
126 <p>Unlike Perl's core random number generator function rand, the random number
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
127 generator implemented in MayaChemTools generates consistent random values
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
128 across different platforms - Windows, CygWin, Linux, Unix - for a specific random
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
129 seed.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
130 </dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
131 <dt><strong><a name="srandom" class="item"><strong>srandom</strong></a></strong></dt>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
132 <dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
133 <div class="OptionsBox">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
134 $Seed = srandom($Seed);</div>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
135 <p>Sets random number seed to be used by &lt;random&gt; function and returns seed value.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
136 <p>The random number seed is recommeded to be an integer between 1 and 2**31 - 2
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
137 [Ref 120] which translates to be 1 and 2147483646.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
138 <p>The default seed is set to 123456789.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
139 </dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
140 <dt><strong><a name="tan" class="item"><strong>tan</strong></a></strong></dt>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
141 <dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
142 <div class="OptionsBox">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
143 $Value = tan($AngleInRadians);</div>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
144 <p>Returns the tangent of an angle expressed in <em>Radians</em>.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
145 </dd>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
146 </dl>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
147 <p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
148 </p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
149 <h2>AUTHOR</h2>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
150 <p><a href="mailto:msud@san.rr.com">Manish Sud</a></p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
151 <p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
152 </p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
153 <h2>SEE ALSO</h2>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
154 <p><a href="./Constants.html">Constants.pm</a>,&nbsp<a href="./ConversionsUtil.html">ConversionsUtil.pm</a>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
155 </p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
156 <p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
157 </p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
158 <h2>COPYRIGHT</h2>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
159 <p>Copyright (C) 2015 Manish Sud. All rights reserved.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
160 <p>This file is part of MayaChemTools.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
161 <p>MayaChemTools is free software; you can redistribute it and/or modify it under
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
162 the terms of the GNU Lesser General Public License as published by the Free
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
163 Software Foundation; either version 3 of the License, or (at your option)
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
164 any later version.</p>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
165 <p>&nbsp</p><p>&nbsp</p><div class="DocNav">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
166 <table width="100%" border=0 cellpadding=0 cellspacing=2>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
167 <tr align="left" valign="top"><td width="33%" align="left"><a href="./HTMLUtil.html" title="HTMLUtil.html">Previous</a>&nbsp;&nbsp;<a href="./index.html" title="Table of Contents">TOC</a>&nbsp;&nbsp;<a href="./Matrix.html" title="Matrix.html">Next</a></td><td width="34%" align="middle"><strong>March 29, 2015</strong></td><td width="33%" align="right"><strong>MathUtil.pm</strong></td></tr>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
168 </table>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
169 </div>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
170 <br />
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
171 <center>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
172 <img src="../../images/h2o2.png">
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
173 </center>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
174 </body>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
175 </html>