comparison lib/Constants.pm @ 0:4816e4a8ae95 draft default tip

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 09:23:18 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4816e4a8ae95
1 package Constants;
2 #
3 # $RCSfile: Constants.pm,v $
4 # $Date: 2015/02/28 20:47:02 $
5 # $Revision: 1.21 $
6 #
7 # Author: Manish Sud <msud@san.rr.com>
8 #
9 # Copyright (C) 2015 Manish Sud. All rights reserved.
10 #
11 # This file is part of MayaChemTools.
12 #
13 # MayaChemTools is free software; you can redistribute it and/or modify it under
14 # the terms of the GNU Lesser General Public License as published by the Free
15 # Software Foundation; either version 3 of the License, or (at your option) any
16 # later version.
17 #
18 # MayaChemTools is distributed in the hope that it will be useful, but without
19 # any warranty; without even the implied warranty of merchantability of fitness
20 # for a particular purpose. See the GNU Lesser General Public License for more
21 # details.
22 #
23 # You should have received a copy of the GNU Lesser General Public License
24 # along with MayaChemTools; if not, see <http://www.gnu.org/licenses/> or
25 # write to the Free Software Foundation Inc., 59 Temple Place, Suite 330,
26 # Boston, MA, 02111-1307, USA.
27 #
28
29 use strict;
30 use Exporter;
31
32 use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
33
34 @ISA = qw(Exporter);
35
36 # Groups of constants...
37 my(@MathConstants) = qw(Pi TwoPi PiByTwo PiByFour InversePi OneByPi SqrtTwoPi OneBySqrtTwoPi InverseSqrtTwoPi Phi E BigNumber);
38
39 # Export all constants...
40 @EXPORT = (@MathConstants);
41 @EXPORT_OK = qw();
42
43 # Tags to export individual groups of constants...
44 %EXPORT_TAGS = (
45 math => [@MathConstants],
46 all => [@EXPORT, @EXPORT_OK]
47 );
48
49 # Math constants..
50 use constant {
51 Pi => CORE::atan2(0, -1),
52 TwoPi => 2 * CORE::atan2(0, -1),
53 PiByTwo => CORE::atan2(1, 0),
54 PiByFour => CORE::atan2(1, 1),
55 OneByPi => 1.0 / CORE::atan2(0, -1),
56 InversePi => 1.0 / CORE::atan2(0, -1),
57 SqrtTwoPi => CORE::sqrt(2 * CORE::atan2(0, -1)),
58 OneBySqrtTwoPi => 1 / CORE::sqrt(2 * CORE::atan2(0, -1)),
59 InverseSqrtTwoPi => 1 / CORE::sqrt(2 * CORE::atan2(0, -1)),
60
61 Phi => (1 + CORE::sqrt(5))/2, # Golden ratio...
62
63 E => CORE::exp(1),
64
65 BigNumber => 2**31 - 1, # Unsigned 31 bit number
66
67 };
68
69 1;
70
71 __END__
72
73 =head1 NAME
74
75 Constants
76
77 =head1 SYNOPSIS
78
79 use Constants;
80
81 use Constants qw(:all);
82
83 use Constants qw(:math);
84
85 =head1 DESCRIPTION
86
87 B<Constants> module provided the following constants:
88
89 Pi, TwoPi, PiByTwo, PiByFour, InversePi, OneByPi, SqrtTwoPi, OneBySqrtTwoPi, InverseSqrtTwoPi,
90 Phi, E
91
92 =head1 AUTHOR
93
94 Manish Sud <msud@san.rr.com>
95
96 =head1 SEE ALSO
97
98 MathUtil.pm
99
100 =head1 COPYRIGHT
101
102 Copyright (C) 2015 Manish Sud. All rights reserved.
103
104 This file is part of MayaChemTools.
105
106 MayaChemTools is free software; you can redistribute it and/or modify it under
107 the terms of the GNU Lesser General Public License as published by the Free
108 Software Foundation; either version 3 of the License, or (at your option)
109 any later version.
110
111 =cut