Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man3 / Math::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 "Math::BigRat 3"
132.TH Math::BigRat 3 "2002-06-01" "perl v5.8.0" "Perl Programmers Reference Guide"
133.SH "NAME"
134Math::BigRat \- arbitrarily big rationals
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137.Vb 1
138\& use Math::BigRat;
139.Ve
140.PP
141.Vb 1
142\& $x = Math::BigRat->new('3/7');
143.Ve
144.PP
145.Vb 1
146\& print $x->bstr(),"\en";
147.Ve
148.SH "DESCRIPTION"
149.IX Header "DESCRIPTION"
150This is just a placeholder until the real thing is up and running. Watch this
151space...
152.Sh "\s-1MATH\s0 \s-1LIBRARY\s0"
153.IX Subsection "MATH LIBRARY"
154Math with the numbers is done (by default) by a module called
155Math::BigInt::Calc. This is equivalent to saying:
156.PP
157.Vb 1
158\& use Math::BigRat lib => 'Calc';
159.Ve
160.PP
161You can change this by using:
162.PP
163.Vb 1
164\& use Math::BigRat lib => 'BitVect';
165.Ve
166.PP
167The following would first try to find Math::BigInt::Foo, then
168Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc:
169.PP
170.Vb 1
171\& use Math::BigRat lib => 'Foo,Math::BigInt::Bar';
172.Ve
173.PP
174Calc.pm uses as internal format an array of elements of some decimal base
175(usually 1e7, but this might be differen for some systems) with the least
176significant digit first, while BitVect.pm uses a bit vector of base 2, most
177significant bit first. Other modules might use even different means of
178representing the numbers. See the respective module documentation for further
179details.
180.SH "METHODS"
181.IX Header "METHODS"
182Any method not listed here is dervied from Math::BigFloat (or
183Math::BigInt), so make sure you check these two modules for further
184information.
185.Sh "\fInew()\fP"
186.IX Subsection "new()"
187.Vb 1
188\& $x = Math::BigRat->new('1/3');
189.Ve
190.PP
191Create a new Math::BigRat object. Input can come in various forms:
192.PP
193.Vb 6
194\& $x = Math::BigRat->new('1/3'); # simple string
195\& $x = Math::BigRat->new('1 / 3'); # spaced
196\& $x = Math::BigRat->new('1 / 0.1'); # w/ floats
197\& $x = Math::BigRat->new(Math::BigInt->new(3)); # BigInt
198\& $x = Math::BigRat->new(Math::BigFloat->new('3.1')); # BigFloat
199\& $x = Math::BigRat->new(Math::BigInt::Lite->new('2')); # BigLite
200.Ve
201.Sh "\fInumerator()\fP"
202.IX Subsection "numerator()"
203.Vb 1
204\& $n = $x->numerator();
205.Ve
206.PP
207Returns a copy of the numerator (the part above the line) as signed BigInt.
208.Sh "\fIdenominator()\fP"
209.IX Subsection "denominator()"
210.Vb 1
211\& $d = $x->denominator();
212.Ve
213.PP
214Returns a copy of the denominator (the part under the line) as positive BigInt.
215.Sh "\fIparts()\fP"
216.IX Subsection "parts()"
217.Vb 1
218\& ($n,$d) = $x->parts();
219.Ve
220.PP
221Return a list consisting of (signed) numerator and (unsigned) denominator as
222BigInts.
223.Sh "\fIas_number()\fP"
224.IX Subsection "as_number()"
225Returns a copy of the object as BigInt by truncating it to integer.
226.Sh "\fIbfac()\fP"
227.IX Subsection "bfac()"
228.Vb 1
229\& $x->bfac();
230.Ve
231.PP
232Calculates the factorial of \f(CW$x\fR. For instance:
233.PP
234.Vb 2
235\& print Math::BigRat->new('3/1')->bfac(),"\en"; # 1*2*3
236\& print Math::BigRat->new('5/1')->bfac(),"\en"; # 1*2*3*4*5
237.Ve
238.PP
239Only works for integers for now.
240.Sh "\fIblog()\fP"
241.IX Subsection "blog()"
242Is not yet implemented.
243.Sh "\fIbround()\fP/\fIround()\fP/\fIbfround()\fP"
244.IX Subsection "bround()/round()/bfround()"
245Are not yet implemented.
246.SH "BUGS"
247.IX Header "BUGS"
248Some things are not yet implemented, or only implemented half\-way.
249.SH "LICENSE"
250.IX Header "LICENSE"
251This program is free software; you may redistribute it and/or modify it under
252the same terms as Perl itself.
253.SH "SEE ALSO"
254.IX Header "SEE ALSO"
255Math::BigFloat and Math::Big as well as Math::BigInt::BitVect,
256Math::BigInt::Pari and Math::BigInt::GMP.
257.PP
258The package at
259<http://search.cpan.org/search?mode=module&query=Math%3A%3ABigRat> may
260contain more documentation and examples as well as testcases.
261.SH "AUTHORS"
262.IX Header "AUTHORS"
263(C) by Tels <http://bloodgate.com/> 2001\-2002.