[BACK]Return to Mpq.pm CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gmp / demos / perl / GMP

Annotation of OpenXM_contrib/gmp/demos/perl/GMP/Mpq.pm, Revision 1.1

1.1     ! ohara       1: # GMP mpq module.
        !             2:
        !             3: # Copyright 2001 Free Software Foundation, Inc.
        !             4: #
        !             5: # This file is part of the GNU MP Library.
        !             6: #
        !             7: # The GNU MP Library is free software; you can redistribute it and/or modify
        !             8: # it under the terms of the GNU Lesser General Public License as published
        !             9: # by the Free Software Foundation; either version 2.1 of the License, or (at
        !            10: # your option) any later version.
        !            11: #
        !            12: # The GNU MP Library is distributed in the hope that it will be useful, but
        !            13: # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
        !            14: # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
        !            15: # License for more details.
        !            16: #
        !            17: # You should have received a copy of the GNU Lesser General Public License
        !            18: # along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
        !            19: # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
        !            20: # MA 02111-1307, USA.
        !            21:
        !            22:
        !            23: package GMP::Mpq;
        !            24:
        !            25: require GMP;
        !            26: require Exporter;
        !            27: @ISA = qw(GMP Exporter);
        !            28: @EXPORT = qw();
        !            29: @EXPORT_OK = qw();
        !            30: %EXPORT_TAGS = ('all' => [qw(canonicalize den inv mpq num)],
        !            31:                'constants'   => [@EXPORT],
        !            32:                'noconstants' => [@EXPORT] );
        !            33: Exporter::export_ok_tags('all');
        !            34:
        !            35: use overload
        !            36:     '+'   => \&overload_add,     '+='  => \&overload_addeq,
        !            37:     '-'   => \&overload_sub,     '-='  => \&overload_subeq,
        !            38:     '*'   => \&overload_mul,     '*='  => \&overload_muleq,
        !            39:     '/'   => \&overload_div,     '/='  => \&overload_diveq,
        !            40:     '**'  => \&overload_pow,     '**=' => \&overload_poweq,
        !            41:     '<<'  => \&overload_lshift,  '<<=' => \&overload_lshifteq,
        !            42:     '>>'  => \&overload_rshift,  '>>=' => \&overload_rshifteq,
        !            43:
        !            44:     'bool' => \&overload_bool,
        !            45:     'not'  => \&overload_not,
        !            46:     '!'    => \&overload_not,
        !            47:     '=='   => \&overload_eq,
        !            48:     '!='   => \&overload_ne,
        !            49:     '<=>'  => \&overload_spaceship,
        !            50:     '++'   => \&overload_inc,
        !            51:     '--'   => \&overload_dec,
        !            52:     'abs'  => \&overload_abs,
        !            53:     'neg'  => \&overload_neg,
        !            54:     '='    => \&overload_copy,
        !            55:     '""'   => \&overload_string;
        !            56:
        !            57: my $constants = { };
        !            58:
        !            59: sub import {
        !            60:   foreach (@_) {
        !            61:     if ($_ eq ':constants') {
        !            62:       overload::constant ('integer' => \&overload_constant,
        !            63:                          'binary'  => \&overload_constant,
        !            64:                          'float'   => \&overload_constant);
        !            65:     } elsif ($_ eq ':noconstants') {
        !            66:       overload::remove_constant ('integer' => \&overload_constant,
        !            67:                                 'binary'  => \&overload_constant,
        !            68:                                 'float'   => \&overload_constant);
        !            69:     }
        !            70:   }
        !            71:   goto &Exporter::import;
        !            72: }
        !            73:
        !            74: 1;
        !            75: __END__
        !            76:
        !            77:
        !            78: # Local variables:
        !            79: # perl-indent-level: 2
        !            80: # End:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>