comparison mayachemtools/docs/modules/man3/MathUtil.3 @ 0:73ae111cf86f draft

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 11:55:01 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:73ae111cf86f
1 .\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings. \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote. \*(C+ will
21 .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 . ds -- \(*W-
28 . ds PI pi
29 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
31 . ds L" ""
32 . ds R" ""
33 . ds C` ""
34 . ds C' ""
35 'br\}
36 .el\{\
37 . ds -- \|\(em\|
38 . ds PI \(*p
39 . ds L" ``
40 . ds R" ''
41 'br\}
42 .\"
43 .\" Escape single quotes in literal strings from groff's Unicode transform.
44 .ie \n(.g .ds Aq \(aq
45 .el .ds Aq '
46 .\"
47 .\" If the F register is turned on, we'll generate index entries on stderr for
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49 .\" entries marked with X<> in POD. Of course, you'll have to process the
50 .\" output yourself in some meaningful fashion.
51 .ie \nF \{\
52 . de IX
53 . tm Index:\\$1\t\\n%\t"\\$2"
54 ..
55 . nr % 0
56 . rr F
57 .\}
58 .el \{\
59 . de IX
60 ..
61 .\}
62 .\"
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64 .\" Fear. Run. Save yourself. No user-serviceable parts.
65 . \" fudge factors for nroff and troff
66 .if n \{\
67 . ds #H 0
68 . ds #V .8m
69 . ds #F .3m
70 . ds #[ \f1
71 . ds #] \fP
72 .\}
73 .if t \{\
74 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75 . ds #V .6m
76 . ds #F 0
77 . ds #[ \&
78 . ds #] \&
79 .\}
80 . \" simple accents for nroff and troff
81 .if n \{\
82 . ds ' \&
83 . ds ` \&
84 . ds ^ \&
85 . ds , \&
86 . ds ~ ~
87 . ds /
88 .\}
89 .if t \{\
90 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96 .\}
97 . \" troff and (daisy-wheel) nroff accents
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105 .ds ae a\h'-(\w'a'u*4/10)'e
106 .ds Ae A\h'-(\w'A'u*4/10)'E
107 . \" corrections for vroff
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110 . \" for low resolution devices (crt and lpr)
111 .if \n(.H>23 .if \n(.V>19 \
112 \{\
113 . ds : e
114 . ds 8 ss
115 . ds o a
116 . ds d- d\h'-1'\(ga
117 . ds D- D\h'-1'\(hy
118 . ds th \o'bp'
119 . ds Th \o'LP'
120 . ds ae ae
121 . ds Ae AE
122 .\}
123 .rm #[ #] #H #V #F C
124 .\" ========================================================================
125 .\"
126 .IX Title "MATHUTIL 1"
127 .TH MATHUTIL 1 "2015-03-29" "perl v5.14.2" "MayaChemTools"
128 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
129 .\" way too many mistakes in technical documents.
130 .if n .ad l
131 .nh
132 .SH "NAME"
133 MathUtil
134 .SH "SYNOPSIS"
135 .IX Header "SYNOPSIS"
136 use MathUtil;
137 .PP
138 use MathUtil qw(:all);
139 .SH "DESCRIPTION"
140 .IX Header "DESCRIPTION"
141 \&\fBMathUtil\fR module provides a variety of common math functions not available in core
142 Perl package or some other useful math utilities. In order to be consistent with other
143 Perl functions, name of all the functions in this package are in lowercase which differs
144 from MayaChemTools naming convention for function names.
145 .PP
146 \&\fBMathUtil\fR module provides the following functions:
147 .PP
148 GeneratePrimeNumbersUpToCount, GeneratePrimeNumbersUpToLimit, acos, asin, ceil,
149 floor, log10, max, min, random, round, srandom, tan
150 .SS "\s-1FUNCTIONS\s0"
151 .IX Subsection "FUNCTIONS"
152 .IP "\fBGeneratePrimeNumbersUpToCount\fR" 4
153 .IX Item "GeneratePrimeNumbersUpToCount"
154 .Vb 2
155 \& $PrimesRef = GeneratePrimeNumbersUpToCount();
156 \& $PrimesRef = GeneratePrimeNumbersUpToCount($Count);
157 .Ve
158 .Sp
159 Generate prime numbers up to specified \fICount\fR of prime numbers and return a
160 reference to an array containing the prime numbers.
161 .Sp
162 By default, the first 1000 prime numbers are generated. The 1000th prime
163 number is 7919.
164 .Sp
165 The algorithm to generate prime numbers is a modification of Sieve of Erastothenes
166 prime number generator.
167 .IP "\fBGeneratePrimeNumbersUpToLimit\fR" 4
168 .IX Item "GeneratePrimeNumbersUpToLimit"
169 .Vb 2
170 \& $PrimesRef = GeneratePrimeNumbersUpToLimit();
171 \& $PrimesRef = GeneratePrimeNumbersUpToLimit($Limit);
172 .Ve
173 .Sp
174 Generate prime numbers up to a specified \fILimit\fR and return a reference to an
175 array containing the prime numbers.
176 .Sp
177 By default, the first 1000 prime numbers are generated. The 1000th prime
178 number is 7919 and that's why default limit is set to 7920.
179 .Sp
180 The algorithm to generate prime numbers is a modification of Sieve of Erastothenes
181 prime number generator.
182 .IP "\fBacos\fR" 4
183 .IX Item "acos"
184 .Vb 1
185 \& $Value = acos($AngleInRadians);
186 .Ve
187 .Sp
188 Returns the nverse cosine of an angle expressed in \fIRadians\fR using Math::Trig::acos
189 function.
190 .IP "\fBasin\fR" 4
191 .IX Item "asin"
192 .Vb 1
193 \& $Value = asin($AngleInRadians);
194 .Ve
195 .Sp
196 Returns the inverse sine of an angle expressed in \fIRadians\fR using Math::Trig::asin
197 function.
198 .IP "\fBceil\fR" 4
199 .IX Item "ceil"
200 .Vb 1
201 \& $IntegerValue = ceil($Value);
202 .Ve
203 .Sp
204 Returns the next largest integer for \fIValue\fR using POSIX::ceil function.
205 .IP "\fBfloor\fR" 4
206 .IX Item "floor"
207 .Vb 1
208 \& $IntegerValue = floor($Value);
209 .Ve
210 .Sp
211 Returns the previous smallest integer for \fIValue\fR using POSIX::floor function.
212 .IP "\fBlog10\fR" 4
213 .IX Item "log10"
214 .Vb 1
215 \& $Log10Value = log10($Value);
216 .Ve
217 .Sp
218 Returns the log of \fIValue\fR using base 10.
219 .IP "\fBmax\fR" 4
220 .IX Item "max"
221 .Vb 1
222 \& $Number = max($Number1, $Number2);
223 .Ve
224 .Sp
225 Returns a \fBNumber\fR corresponding to the maximum of \fINumber1\fR and \fINumber2\fR.
226 .IP "\fBmin\fR" 4
227 .IX Item "min"
228 .Vb 1
229 \& $Number = min($Number1, $Number2);
230 .Ve
231 .Sp
232 Returns a \fBNumber\fR corresponding to the minimum of \fINumber1\fR and \fINumber2\fR.
233 .IP "\fBround\fR" 4
234 .IX Item "round"
235 .Vb 2
236 \& $RoundedValue = round($Number);
237 \& $RoundedValue = round($Number, $DecimalPlaces);
238 .Ve
239 .Sp
240 Returns a value corresponding to a nearst ingeter for \fINumber\fR or formatted to \fIDecimalPlaces\fR.
241 .IP "\fBrandom\fR" 4
242 .IX Item "random"
243 .Vb 2
244 \& $RandomNumber = random();
245 \& $RandomNumber = random($Size);
246 .Ve
247 .Sp
248 Returns a random number between 0 and less than 1 or specified size.
249 .Sp
250 The random number generator implemented in MayaChemTools is a variant of linear
251 congruential generator (\s-1LCG\s0) as described by Miller et al. [ Ref 120 ]. It is
252 also referred to as Lehmer random number generator or Park-Miller random number
253 generator.
254 .Sp
255 Unlike Perl's core random number generator function rand, the random number
256 generator implemented in MayaChemTools generates consistent random values
257 across different platforms \- Windows, CygWin, Linux, Unix \- for a specific random
258 seed.
259 .IP "\fBsrandom\fR" 4
260 .IX Item "srandom"
261 .Vb 1
262 \& $Seed = srandom($Seed);
263 .Ve
264 .Sp
265 Sets random number seed to be used by <random> function and returns seed value.
266 .Sp
267 The random number seed is recommeded to be an integer between 1 and 2**31 \- 2
268 [Ref 120] which translates to be 1 and 2147483646.
269 .Sp
270 The default seed is set to 123456789.
271 .IP "\fBtan\fR" 4
272 .IX Item "tan"
273 .Vb 1
274 \& $Value = tan($AngleInRadians);
275 .Ve
276 .Sp
277 Returns the tangent of an angle expressed in \fIRadians\fR.
278 .SH "AUTHOR"
279 .IX Header "AUTHOR"
280 Manish Sud <msud@san.rr.com>
281 .SH "SEE ALSO"
282 .IX Header "SEE ALSO"
283 Constants.pm, ConversionsUtil.pm
284 .SH "COPYRIGHT"
285 .IX Header "COPYRIGHT"
286 Copyright (C) 2015 Manish Sud. All rights reserved.
287 .PP
288 This file is part of MayaChemTools.
289 .PP
290 MayaChemTools is free software; you can redistribute it and/or modify it under
291 the terms of the \s-1GNU\s0 Lesser General Public License as published by the Free
292 Software Foundation; either version 3 of the License, or (at your option)
293 any later version.