1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149

Revision history for Perl extension Math::NumberCruncher.
5.00 05Mar2002 12:29:30 PM
 Added the following:
sin()
cos()
sqrt()
log()
exp()
PICONST()
Inverse()
km2miles()
miles2km()
CONSTANT()
Bernoulli()
 Made the following functions available for export: log(), exp(),
sqrt(), sin(), cos(), asin(), acos(), atan(), sec(), asec(),
csc(), acsc(), exsec(), cot(), acot(), vers(), covers(), hav().
 sqrt(), sin(), cos(), log(), and exp() were created and/or modified
to serve as dropin replacements for their respective builtin
functions. Usage is the same, with the option of specifying the number
of desired decimal places.
 Completely overhauled the bulk of the included functions to allow
for the user to specify the number of desired decimal places. In
some cases, it was not possible to maintain backwards compatability.
Please be certain to test your scripts with this version of
Math::NumberCruncher thoroughly.
4.05 Mon Jan 07 10:13:40 2002
 Added acsc()
 Added SIS(), which calculates a superincreasing sequence
 SIGNIFICANT optimization to Ln(), Exp(), Root2(), ECONST() and
related functions, thanks to Douglas Wilson. With his assistance,
managed to get a an improvement in ECONST() of 12,592% for less
than or equal to 500 decimal places. Seriously. Ln(), et al., showed
an improvement in excess of 100%.
4.04 Wed Jan 02 12:09:44 2002
 Added Ln(), which calculates the natural log of a number
to a given number of decimal places.
 Added Exp(), which performs the inverse of Ln().
 Added Root2(), which calculates the Nth root of a given number
using logarithms, rather than Newton's Method, which is what is
used in Root(). Root2() allows you to specify the number of decimal
places wanted. For particularly large number and/or roots, Root2()
is sometimes faster and/or more accurate.
 Made significant optimization to Root(). It is now more accurate and
substantially faster than v4.03. Thanks to the folks at perlmonks.org
for their input on the optimization.
 Modified SqrRoot() to use Root(), rather than separate code.
 Added PythagTriples() and PythagTriplesSeq().
 Special thanks to Douglas Wilson for allowing me to borrow his code
for Ln(), Exp(), Root2(), and the various other "behindthescenes"
functions for same. Douglas's code is based on an algorithm described
at http://www.geocities.com/zabrodskyvlada/aat/.
4.03 Wed Dec 19 15:44:11 2001
 Fixed the Variance() test to allow for slight error tolerance.
 Added Root(), which calculates the Nth root of a given number.
4.02 Mon Dec 17 11:49:18 2001
 Modified all routines that use square roots to use
the internal SqrRoot() function whenever possible,
and included abs() to account for bad data.
 Added complete test suite for all functions.
4.0 Wed Nov 21 16:21:43 2001
 Added OO interface. Will continue to support
funcitonal interface for backward compatibility.
 Added the following:
Eccentricity()
LatusRectum()
EllipseArea()
OrbitalVelocity()
SqrRoot()
asin()
acos()
atan()
acot()
asec()
sec()
csc()
exsec()
tan()
cot()
vers()
covers()
hav()
3.0 Mon Jul 02 10:41:09 2001
 Fixed typo in Range()
 Added data verification prior to processing to all routines that
got grumpy when insufficient/improper data was passed. (Thanks
again to Ronald Blaschke, M.S.)
 Added DimensionlessSpeed_2()
 Added copyright info
2.2 Wed Jun 27 14:54:05 2001
 Made minor change to Mean() and Range() to return undef on error.
(Thanks to Ronald Blaschke, M.S.)
 Added the following:
RuleOf72()
CylinderVolume()
ConeVolume()
Deg2Rad()
Rad2Deg()
C2F()
F2C()
in2cm()
cm2in()
ft2m()
m2ft()
kg2lb()
lb2kg()
RelativeStride()
RelativeStride_2()
DimensionlessSpeed()
ActualSpeed()
 Added value of e out to 200 places.
2.0 Mon Feb 12 11:50:58 2001
 Added many new features:
TriangleHeron()
PolygonPerimeter()
Clockwise()
InPolygon()
InTriangle()
BoundingBox_Points()
PolygonArea()
CircleArea()
Circumference()
SphereVolume()
SphereSurface()
1.3 Sat Nov 25 17:18:44 2000
 Corrected error in Difference()
(Thanks to Rusty Thomas, Ph.D., for finding the error.)
1.21 Tue Sep 19 08:57:51 2000
 Corrected typo in AllOf()
(Thanks to Wim Verhaegen for finding the error.)
1.2 Mon Sep 18 13:24:43 2000
 Fixed minor error in Range()
 Added Predict(), for predicting value of Y, given slope, yintercept,
and proposed x value.
1.1 Wed Aug 30 14:41:52 2000
 First public version
