Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man3 / bigrat.3
CommitLineData
86530b38
AT
1.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "bigrat 3"
132.TH bigrat 3 "2002-06-01" "perl v5.8.0" "Perl Programmers Reference Guide"
133.SH "NAME"
134bigrat \- Transparent BigNumber/BigRational support for Perl
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137.Vb 1
138\& use bigrat;
139.Ve
140.PP
141.Vb 2
142\& $x = 2 + 4.5,"\en"; # BigFloat 6.5
143\& print 1/3 + 1/4,"\en"; # produces 7/12
144.Ve
145.SH "DESCRIPTION"
146.IX Header "DESCRIPTION"
147All operators (inlcuding basic math operations) are overloaded. Integer and
148floating-point constants are created as proper BigInts or BigFloats,
149respectively.
150.PP
151Other than bignum, this module upgrades to Math::BigRat, meaning that
152instead of 2.5 you will get 2+1/2 as output.
153.Sh "\s-1MODULES\s0 \s-1USED\s0"
154.IX Subsection "MODULES USED"
155\&\f(CW\*(C`bigrat\*(C'\fR is just a thin wrapper around various modules of the Math::BigInt
156family. Think of it as the head of the family, who runs the shop, and orders
157the others to do the work.
158.PP
159The following modules are currently used by bignum:
160.PP
161.Vb 4
162\& Math::BigInt::Lite (for speed, and only if it is loadable)
163\& Math::BigInt
164\& Math::BigFloat
165\& Math::BigRat
166.Ve
167.Sh "\s-1MATH\s0 \s-1LIBRARY\s0"
168.IX Subsection "MATH LIBRARY"
169Math with the numbers is done (by default) by a module called
170Math::BigInt::Calc. This is equivalent to saying:
171.PP
172.Vb 1
173\& use bigrat lib => 'Calc';
174.Ve
175.PP
176You can change this by using:
177.PP
178.Vb 1
179\& use bigrat lib => 'BitVect';
180.Ve
181.PP
182The following would first try to find Math::BigInt::Foo, then
183Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc:
184.PP
185.Vb 1
186\& use bigrat lib => 'Foo,Math::BigInt::Bar';
187.Ve
188.PP
189Please see respective module documentation for further details.
190.Sh "\s-1SIGN\s0"
191.IX Subsection "SIGN"
192The sign is either '+', '\-', 'NaN', '+inf' or '\-inf' and stored seperately.
193.PP
194A sign of 'NaN' is used to represent the result when input arguments are not
195numbers or as a result of 0/0. '+inf' and '\-inf' represent plus respectively
196minus infinity. You will get '+inf' when dividing a positive number by 0, and
197\&'\-inf' when dividing any negative number by 0.
198.Sh "\s-1METHODS\s0"
199.IX Subsection "METHODS"
200Since all numbers are not objects, you can use all functions that are part of
201the BigInt or BigFloat \s-1API\s0. It is wise to use only the \fIbxxx()\fR notation, and not
202the \fIfxxx()\fR notation, though. This makes you independed on the fact that the
203underlying object might morph into a different class than BigFloat.
204.SH "EXAMPLES"
205.IX Header "EXAMPLES"
206.Vb 5
207\& perl -Mbigrat -le 'print sqrt(33)'
208\& perl -Mbigrat -le 'print 2*255'
209\& perl -Mbigrat -le 'print 4.5+2*255'
210\& perl -Mbigrat -le 'print 3/7 + 5/7 + 8/3'
211\& perl -Mbigrat -le 'print 12->is_odd()';
212.Ve
213.SH "LICENSE"
214.IX Header "LICENSE"
215This program is free software; you may redistribute it and/or modify it under
216the same terms as Perl itself.
217.SH "SEE ALSO"
218.IX Header "SEE ALSO"
219Especially bignum.
220.PP
221Math::BigFloat, Math::BigInt, Math::BigRat and Math::Big as well
222as Math::BigInt::BitVect, Math::BigInt::Pari and Math::BigInt::GMP.
223.SH "AUTHORS"
224.IX Header "AUTHORS"
225(C) by Tels <http://bloodgate.com/> in early 2002.