home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _c393c356a49e46a08d94f36d8f71fb2f < prev    next >
Text File  |  2000-03-23  |  5KB  |  129 lines

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Math::BigInt - Arbitrary size integer math package</TITLE>
  5. <LINK REL="stylesheet" HREF="../../Active.css" TYPE="text/css">
  6. <LINK REV="made" HREF="mailto:">
  7. </HEAD>
  8.  
  9. <BODY>
  10. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  11. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  12. <STRONG><P CLASS=block> Math::BigInt - Arbitrary size integer math package</P></STRONG>
  13. </TD></TR>
  14. </TABLE>
  15.  
  16. <A NAME="__index__"></A>
  17. <!-- INDEX BEGIN -->
  18.  
  19. <UL>
  20.  
  21.     <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
  22.  
  23.     <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
  24.     <LI><A HREF="#description">DESCRIPTION</A></LI>
  25.     <LI><A HREF="#examples">EXAMPLES</A></LI>
  26.     <LI><A HREF="#autocreating constants">Autocreating constants</A></LI>
  27.     <LI><A HREF="#bugs">BUGS</A></LI>
  28.     <LI><A HREF="#author">AUTHOR</A></LI>
  29. </UL>
  30. <!-- INDEX END -->
  31.  
  32. <HR>
  33. <P>
  34. <H1><A NAME="name">NAME</A></H1>
  35. <P>Math::BigInt - Arbitrary size integer math package</P>
  36. <P>
  37. <HR>
  38. <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
  39. <UL>
  40. <LI>Linux</LI>
  41. <LI>Solaris</LI>
  42. <LI>Windows</LI>
  43. </UL>
  44. <HR>
  45. <H1><A NAME="synopsis">SYNOPSIS</A></H1>
  46. <PRE>
  47.   use Math::BigInt;
  48.   $i = Math::BigInt->new($string);</PRE>
  49. <PRE>
  50.   $i->bneg return BINT               negation
  51.   $i->babs return BINT               absolute value
  52.   $i->bcmp(BINT) return CODE         compare numbers (undef,<0,=0,>0)
  53.   $i->badd(BINT) return BINT         addition
  54.   $i->bsub(BINT) return BINT         subtraction
  55.   $i->bmul(BINT) return BINT         multiplication
  56.   $i->bdiv(BINT) return (BINT,BINT)  division (quo,rem) just quo if scalar
  57.   $i->bmod(BINT) return BINT         modulus
  58.   $i->bgcd(BINT) return BINT         greatest common divisor
  59.   $i->bnorm return BINT              normalization
  60.   $i->blsft(BINT) return BINT        left shift
  61.   $i->brsft(BINT) return (BINT,BINT) right shift (quo,rem) just quo if scalar
  62.   $i->band(BINT) return BINT         bit-wise and
  63.   $i->bior(BINT) return BINT         bit-wise inclusive or
  64.   $i->bxor(BINT) return BINT         bit-wise exclusive or
  65.   $i->bnot return BINT               bit-wise not</PRE>
  66. <P>
  67. <HR>
  68. <H1><A NAME="description">DESCRIPTION</A></H1>
  69. <P>All basic math operations are overloaded if you declare your big
  70. integers as</P>
  71. <PRE>
  72.   $i = new Math::BigInt '123 456 789 123 456 789';</PRE>
  73. <DL>
  74. <DT><STRONG><A NAME="item_Canonical_notation">Canonical notation</A></STRONG><BR>
  75. <DD>
  76. Big integer value are strings of the form <CODE>/^[+-]\d+$/</CODE> with leading
  77. zeros suppressed.
  78. <P></P>
  79. <DT><STRONG><A NAME="item_Input">Input</A></STRONG><BR>
  80. <DD>
  81. Input values to these routines may be strings of the form
  82. <CODE>/^\s*[+-]?[\d\s]+$/</CODE>.
  83. <P></P>
  84. <DT><STRONG><A NAME="item_Output">Output</A></STRONG><BR>
  85. <DD>
  86. Output values always always in canonical form
  87. <P></P></DL>
  88. <P>Actual math is done in an internal format consisting of an array
  89. whose first element is the sign (/^[+-]$/) and whose remaining 
  90. elements are base 100000 digits with the least significant digit first.
  91. The string 'NaN' is used to represent the result when input arguments 
  92. are not numbers, as well as the result of dividing by zero.</P>
  93. <P>
  94. <HR>
  95. <H1><A NAME="examples">EXAMPLES</A></H1>
  96. <PRE>
  97.    '+0'                            canonical zero value
  98.    '   -123 123 123'               canonical value '-123123123'
  99.    '1 23 456 7890'                 canonical value '+1234567890'</PRE>
  100. <P>
  101. <HR>
  102. <H1><A NAME="autocreating constants">Autocreating constants</A></H1>
  103. <P>After <CODE>use Math::BigInt ':constant'</CODE> all the integer decimal constants
  104. in the given scope are converted to <CODE>Math::BigInt</CODE>.  This conversion
  105. happens at compile time.</P>
  106. <P>In particular</P>
  107. <PRE>
  108.   perl -MMath::BigInt=:constant -e 'print 2**100'</PRE>
  109. <P>print the integer value of <CODE>2**100</CODE>.  Note that without conversion of 
  110. constants the expression 2**100 will be calculated as floating point number.</P>
  111. <P>
  112. <HR>
  113. <H1><A NAME="bugs">BUGS</A></H1>
  114. <P>The current version of this module is a preliminary version of the
  115. real thing that is currently (as of perl5.002) under development.</P>
  116. <P>
  117. <HR>
  118. <H1><A NAME="author">AUTHOR</A></H1>
  119. <P>Mark Biggar, overloaded interface by Ilya Zakharevich.</P>
  120. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  121. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  122. <STRONG><P CLASS=block> Math::BigInt - Arbitrary size integer math package</P></STRONG>
  123. </TD></TR>
  124. </TABLE>
  125.  
  126. </BODY>
  127.  
  128. </HTML>
  129.