Mercurial > repos > deepakjadmin > mayatool3_test2
diff lib/Constants.pm @ 0:4816e4a8ae95 draft default tip
Uploaded
author | deepakjadmin |
---|---|
date | Wed, 20 Jan 2016 09:23:18 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/Constants.pm Wed Jan 20 09:23:18 2016 -0500 @@ -0,0 +1,111 @@ +package Constants; +# +# $RCSfile: Constants.pm,v $ +# $Date: 2015/02/28 20:47:02 $ +# $Revision: 1.21 $ +# +# Author: Manish Sud <msud@san.rr.com> +# +# Copyright (C) 2015 Manish Sud. All rights reserved. +# +# This file is part of MayaChemTools. +# +# MayaChemTools is free software; you can redistribute it and/or modify it under +# the terms of the GNU Lesser General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your option) any +# later version. +# +# MayaChemTools is distributed in the hope that it will be useful, but without +# any warranty; without even the implied warranty of merchantability of fitness +# for a particular purpose. See the GNU Lesser General Public License for more +# details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with MayaChemTools; if not, see <http://www.gnu.org/licenses/> or +# write to the Free Software Foundation Inc., 59 Temple Place, Suite 330, +# Boston, MA, 02111-1307, USA. +# + +use strict; +use Exporter; + +use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); + +@ISA = qw(Exporter); + +# Groups of constants... +my(@MathConstants) = qw(Pi TwoPi PiByTwo PiByFour InversePi OneByPi SqrtTwoPi OneBySqrtTwoPi InverseSqrtTwoPi Phi E BigNumber); + +# Export all constants... +@EXPORT = (@MathConstants); +@EXPORT_OK = qw(); + +# Tags to export individual groups of constants... +%EXPORT_TAGS = ( + math => [@MathConstants], + all => [@EXPORT, @EXPORT_OK] + ); + +# Math constants.. +use constant { + Pi => CORE::atan2(0, -1), + TwoPi => 2 * CORE::atan2(0, -1), + PiByTwo => CORE::atan2(1, 0), + PiByFour => CORE::atan2(1, 1), + OneByPi => 1.0 / CORE::atan2(0, -1), + InversePi => 1.0 / CORE::atan2(0, -1), + SqrtTwoPi => CORE::sqrt(2 * CORE::atan2(0, -1)), + OneBySqrtTwoPi => 1 / CORE::sqrt(2 * CORE::atan2(0, -1)), + InverseSqrtTwoPi => 1 / CORE::sqrt(2 * CORE::atan2(0, -1)), + + Phi => (1 + CORE::sqrt(5))/2, # Golden ratio... + + E => CORE::exp(1), + + BigNumber => 2**31 - 1, # Unsigned 31 bit number + +}; + +1; + +__END__ + +=head1 NAME + +Constants + +=head1 SYNOPSIS + +use Constants; + +use Constants qw(:all); + +use Constants qw(:math); + +=head1 DESCRIPTION + +B<Constants> module provided the following constants: + +Pi, TwoPi, PiByTwo, PiByFour, InversePi, OneByPi, SqrtTwoPi, OneBySqrtTwoPi, InverseSqrtTwoPi, +Phi, E + +=head1 AUTHOR + +Manish Sud <msud@san.rr.com> + +=head1 SEE ALSO + +MathUtil.pm + +=head1 COPYRIGHT + +Copyright (C) 2015 Manish Sud. All rights reserved. + +This file is part of MayaChemTools. + +MayaChemTools is free software; you can redistribute it and/or modify it under +the terms of the GNU Lesser General Public License as published by the Free +Software Foundation; either version 3 of the License, or (at your option) +any later version. + +=cut