⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bigfloat.html

📁 perl教程
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../displayToc.js"></script>
<script language="JavaScript" src="../../tocParas.js"></script>
<script language="JavaScript" src="../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../scineplex.css">
<title>Math::BigFloat - Arbitrary size floating point math package</title>
<link rel="stylesheet" href="../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>

<body>

<script>writelinks('__top__',2);</script>
<h1><a>Math::BigFloat - Arbitrary size floating point math package</a></h1>
<p><a name="__index__"></a></p>

<!-- INDEX BEGIN -->

<ul>

	<li><a href="#name">NAME</a></li>
	<li><a href="#synopsis">SYNOPSIS</a></li>
	<li><a href="#description">DESCRIPTION</a></li>
	<ul>

		<li><a href="#canonical_notation">Canonical notation</a></li>
		<li><a href="#output">Output</a></li>
		<li><a href="#mantissa____exponent___and_parts__"><code>mantissa()</code>, <code>exponent()</code> and <code>parts()</code></a></li>
		<li><a href="#accuracy_vs__precision">Accuracy vs. Precision</a></li>
		<li><a href="#rounding">Rounding</a></li>
	</ul>

	<li><a href="#methods">METHODS</a></li>
	<ul>

		<li><a href="#accuracy">accuracy</a></li>
		<li><a href="#precision__"><code>precision()</code></a></li>
	</ul>

	<li><a href="#autocreating_constants">Autocreating constants</a></li>
	<ul>

		<li><a href="#math_library">Math library</a></li>
		<li><a href="#using_math__bigint__lite">Using Math::BigInt::Lite</a></li>
	</ul>

	<li><a href="#bugs">BUGS</a></li>
	<li><a href="#caveats">CAVEATS</a></li>
	<li><a href="#see_also">SEE ALSO</a></li>
	<li><a href="#license">LICENSE</a></li>
	<li><a href="#authors">AUTHORS</a></li>
</ul>
<!-- INDEX END -->

<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>Math::BigFloat - Arbitrary size floating point math package</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
  <span class="keyword">use</span> <span class="variable">Math::BigFloat</span><span class="operator">;</span>
</pre>
<pre>
  <span class="comment"># Number creation</span>
  <span class="variable">$x</span> <span class="operator">=</span> <span class="variable">Math::BigFloat</span><span class="operator">-&gt;</span><span class="variable">new</span><span class="operator">(</span><span class="variable">$str</span><span class="operator">);</span>       <span class="comment"># defaults to 0</span>
  <span class="variable">$nan</span>  <span class="operator">=</span> <span class="variable">Math::BigFloat</span><span class="operator">-&gt;</span><span class="variable">bnan</span><span class="operator">();</span>       <span class="comment"># create a NotANumber</span>
  <span class="variable">$zero</span> <span class="operator">=</span> <span class="variable">Math::BigFloat</span><span class="operator">-&gt;</span><span class="variable">bzero</span><span class="operator">();</span>      <span class="comment"># create a +0</span>
  <span class="variable">$inf</span> <span class="operator">=</span> <span class="variable">Math::BigFloat</span><span class="operator">-&gt;</span><span class="variable">binf</span><span class="operator">();</span>        <span class="comment"># create a +inf</span>
  <span class="variable">$inf</span> <span class="operator">=</span> <span class="variable">Math::BigFloat</span><span class="operator">-&gt;</span><span class="variable">binf</span><span class="operator">(</span><span class="string">'-'</span><span class="operator">);</span>     <span class="comment"># create a -inf</span>
  <span class="variable">$one</span> <span class="operator">=</span> <span class="variable">Math::BigFloat</span><span class="operator">-&gt;</span><span class="variable">bone</span><span class="operator">();</span>        <span class="comment"># create a +1</span>
  <span class="variable">$one</span> <span class="operator">=</span> <span class="variable">Math::BigFloat</span><span class="operator">-&gt;</span><span class="variable">bone</span><span class="operator">(</span><span class="string">'-'</span><span class="operator">);</span>     <span class="comment"># create a -1</span>
</pre>
<pre>
  <span class="comment"># Testing</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_zero</span><span class="operator">();</span>                <span class="comment"># true if arg is +0</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_nan</span><span class="operator">();</span>                 <span class="comment"># true if arg is NaN</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_one</span><span class="operator">();</span>                 <span class="comment"># true if arg is +1</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_one</span><span class="operator">(</span><span class="string">'-'</span><span class="operator">);</span>              <span class="comment"># true if arg is -1</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_odd</span><span class="operator">();</span>                 <span class="comment"># true if odd, false for even</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_even</span><span class="operator">();</span>                <span class="comment"># true if even, false for odd</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_pos</span><span class="operator">();</span>                 <span class="comment"># true if &gt;= 0</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_neg</span><span class="operator">();</span>                 <span class="comment"># true if &lt;  0</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">is_inf</span><span class="operator">(</span><span class="variable">sign</span><span class="operator">);</span>             <span class="comment"># true if +inf, or -inf (default is '+')</span>
</pre>
<pre>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bcmp</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>                 <span class="comment"># compare numbers (undef,&lt;0,=0,&gt;0)</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bacmp</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>                <span class="comment"># compare absolutely (undef,&lt;0,=0,&gt;0)</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">sign</span><span class="operator">();</span>                   <span class="comment"># return the sign, either +,- or NaN</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">digit</span><span class="operator">(</span><span class="variable">$n</span><span class="operator">);</span>                <span class="comment"># return the nth digit, counting from right</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">digit</span><span class="operator">(-</span><span class="variable">$n</span><span class="operator">);</span>               <span class="comment"># return the nth digit, counting from left</span>
</pre>
<pre>
  <span class="comment"># The following all modify their first argument. If you want to preserve</span>
  <span class="comment"># $x, use $z = $x-&gt;copy()-&gt;bXXX($y); See under L&lt;CAVEATS&gt; for why this is</span>
  <span class="comment"># neccessary when mixing $a = $b assigments with non-overloaded math.</span>
   
  <span class="comment"># set </span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bzero</span><span class="operator">();</span>                  <span class="comment"># set $i to 0</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bnan</span><span class="operator">();</span>                   <span class="comment"># set $i to NaN</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bone</span><span class="operator">();</span>                   <span class="comment"># set $x to +1</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bone</span><span class="operator">(</span><span class="string">'-'</span><span class="operator">);</span>                <span class="comment"># set $x to -1</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">binf</span><span class="operator">();</span>                   <span class="comment"># set $x to inf</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">binf</span><span class="operator">(</span><span class="string">'-'</span><span class="operator">);</span>                <span class="comment"># set $x to -inf</span>
</pre>
<pre>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bneg</span><span class="operator">();</span>                   <span class="comment"># negation</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">babs</span><span class="operator">();</span>                   <span class="comment"># absolute value</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bnorm</span><span class="operator">();</span>                  <span class="comment"># normalize (no-op)</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bnot</span><span class="operator">();</span>                   <span class="comment"># two's complement (bit wise not)</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">binc</span><span class="operator">();</span>                   <span class="comment"># increment x by 1</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bdec</span><span class="operator">();</span>                   <span class="comment"># decrement x by 1</span>
  
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">badd</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>                 <span class="comment"># addition (add $y to $x)</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bsub</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>                 <span class="comment"># subtraction (subtract $y from $x)</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bmul</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>                 <span class="comment"># multiplication (multiply $x by $y)</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bdiv</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>                 <span class="comment"># divide, set $x to quotient</span>
                                <span class="comment"># return (quo,rem) or quo if scalar</span>
</pre>
<pre>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bmod</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>                 <span class="comment"># modulus ($x % $y)</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bpow</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>                 <span class="comment"># power of arguments ($x ** $y)</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">blsft</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>                <span class="comment"># left shift</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">brsft</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>                <span class="comment"># right shift </span>
                                <span class="comment"># return (quo,rem) or quo if scalar</span>
  
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">blog</span><span class="operator">();</span>                   <span class="comment"># logarithm of $x to base e (Euler's number)</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">blog</span><span class="operator">(</span><span class="variable">$base</span><span class="operator">);</span>              <span class="comment"># logarithm of $x to base $base (f.i. 2)</span>
  
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">band</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>                 <span class="comment"># bit-wise and</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bior</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>                 <span class="comment"># bit-wise inclusive or</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bxor</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>                 <span class="comment"># bit-wise exclusive or</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bnot</span><span class="operator">();</span>                   <span class="comment"># bit-wise not (two's complement)</span>
   
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">bsqrt</span><span class="operator">();</span>                  <span class="comment"># calculate square-root</span>
  <span class="variable">$x</span><span class="operator">-&gt;</span><span class="variable">broot</span><span class="operator">(</span><span class="variable">$y</span><span class="operator">);</span>                <span class="comment"># $y'th root of $x (e.g. $y == 3 =&gt; cubic root)</span>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -