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>