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