Add GMP module documentation

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@37162 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Stanislav Malyshev 2000-12-06 14:17:36 +00:00
parent 7b6b172a2b
commit fc50dd8126
2 changed files with 977 additions and 0 deletions

View file

@ -53,6 +53,7 @@
<!ENTITY reference.ftp SYSTEM "functions/ftp.xml">
<!ENTITY reference.funchand SYSTEM "functions/funchand.xml">
<!ENTITY reference.gettext SYSTEM "functions/gettext.xml">
<!ENTITY reference.gmp SYSTEM "functions/gmp.xml">
<!ENTITY reference.http SYSTEM "functions/http.xml">
<!ENTITY reference.hw SYSTEM "functions/hw.xml">
<!ENTITY reference.ibase SYSTEM "functions/ibase.xml">

976
functions/gmp.xml Normal file
View file

@ -0,0 +1,976 @@
<reference id="ref.gmp">
<title>GMP functions</title>
<titleabbrev>GMP</titleabbrev>
<partintro>
<simpara>
These functions allow you to work with arbitrary-length integers
using GNU <acronym>MP</acronym> library. In order to have these
functions available, you must compile PHP with
<acronym>GMP</acronym>
support by using the <option role="configure">--with-gmp</option>
option.
</simpara>
<simpara>
You can download the <acronym>GMP</acronym> library from <ulink
url="&url.gmp;">&url.gmp;</ulink>.
This site also has the <acronym>GMP</acronym> manual available.
</simpara>
<simpara>
You will need GMP version 2 or better to use these functions. Some
functions may require more recent version of the GMP library.
</simpara>
<simpara>
These functions have been added in PHP 4.0.4.
</simpara>
<note><para>
Most GMP functions accept GMP number arguments, defined as
<literal>resource</literal> below. However, most of these functions
will accept also numeric and string arguments, given it's possible
to convert the latter to number. Also, if there's faster function that
can operate on integer arguments, it would be used instead of
slower function when supplied arguments are integers. This is done
transparently, so the bootom line is that you can use integers in
every function that expects GMP number. See also
<function>gmp_init</function> function.
</para></note>
</partintro>
<refentry id="function.gmp-init">
<refnamediv>
<refname>gmp_init</refname>
<refpurpose>Create GMP number</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_init</function></funcdef>
<paramdef>mixed <parameter>number</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Creates a GMP number from integer or string. String representation
can be decimal or hexadecimal. In the latter case, the string should
start with <literal>0x</literal>.
</para>
<para>
<example>
<title>Creating GMP number</title>
<programlisting role="php">
&lt;?php
$a = gmp_init(123456);
$b = gmp_init("0xFFFFDEBACDFEDF7200");
?>
</programlisting>
</example>
</para>
<note>
<para>
It is not necessary to call this function if you want to use
integer or string in place of GMP number in GMP functions, like
<function>gmp_add</function>. Function arguments are automatically
converted to GMP numbers, if such conversion is possible and needed,
using the same rules as <function>gmp_init</function>.
</para>
</note>
</refsect1>
</refentry>
<refentry id="function.gmp-intval">
<refnamediv>
<refname>gmp_intval</refname>
<refpurpose>Convert GMP number to integer</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>gmp_intval</function></funcdef>
<paramdef>resource <parameter>gmpnumber</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
This function allows to convert GMP number to integer.
<warning><simpara>
This function returns useful result only if the number actually
fits the PHP integer (i.e., signed long type). If you want just to
print the GMP number, use <function>gmp_strval</function>.
</simpara>
</warning>
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-strval">
<refnamediv>
<refname>gmp_strval</refname>
<refpurpose>Convert GMP number to string</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>string <function>gmp_strval</function></funcdef>
<paramdef>resource <parameter>gmpnumber</parameter></paramdef>
<paramdef>int
<parameter><optional>base</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
<para>
Convert GMP number to string representation in base
<parameter>base</parameter>. The default base is 10.
Allowed values for the base are from 2 to 36.
</para>
<para>
<example>
<title>Converting GMP number to string</title>
<programlisting role="php">
&lt;?php
$a = gmp_init("0x41682179fbf5");
printf("Decimal: %s, 36-based: %s", gmp_strval($a), gmp_strval($a,36));
?>
</programlisting>
</example>
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-add">
<refnamediv>
<refname>gmp_add</refname>
<refpurpose>Add numbers</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_add</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>resource <parameter>b</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Add two GMP numbers. The result will be GMP number representing
the sum of the arguments.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-sub">
<refnamediv>
<refname>gmp_sub</refname>
<refpurpose>Subtract numbers</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_sub</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>resource <parameter>b</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Subtract <parameter>b</parameter> from <parameter>a</parameter>
and returns the result.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-mul">
<refnamediv>
<refname>gmp_mul</refname>
<refpurpose>Multiply numbers</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_mul</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>resource <parameter>b</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Multiplies <parameter>a</parameter> by <parameter>b</parameter>
and returns the result.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-div-q">
<refnamediv>
<refname>gmp_div_q</refname>
<refpurpose>Divide numbers</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_div_q</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>resource <parameter>b</parameter></paramdef>
<paramdef>int
<parameter><optional>round</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
<para>
Divides <parameter>a</parameter> by <parameter>b</parameter>
and returns the integer result. The result rounding is defined by
the <parameter>round</parameter>, which can have the following
values:
<itemizedlist>
<listitem>
<simpara>
<parameter>GMP_ROUND_ZERO</parameter>: The result is truncated
towards 0.
</simpara>
</listitem>
<listitem>
<simpara>
<parameter>GMP_ROUND_PLUSINF</parameter>: The result is
rounded towards <literal>+infinity</literal>.
</simpara>
</listitem>
<listitem>
<simpara>
<parameter>GMP_ROUND_MINUSINF</parameter>: The result is
rounded towards <literal>-infinity</literal>.
</simpara>
</listitem>
</itemizedlist>
</para>
<simpara>
This function can also be called as <function>gmp_div</function>.
</simpara>
<para>
See also <function>gmp_div_r</function>, <function>gmp_div_qr</function>
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-div-r">
<refnamediv>
<refname>gmp_div_r</refname>
<refpurpose>Remainder of the division of numbers</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_div_r</function></funcdef>
<paramdef>resource <parameter>n</parameter></paramdef>
<paramdef>resource <parameter>d</parameter></paramdef>
<paramdef>int
<parameter><optional>round</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
<para>
Calculates remainder of the integer division of
<parameter>n</parameter> by <parameter>d</parameter>. The remainder
has the sign of the <parameter>n</parameter> argument, if not zero.
</para>
<para>
See the <function>gmp_div_q</function> function for description
of the <parameter>round</parameter> argument.
</para>
<para>
See also <function>gmp_div_q</function>, <function>gmp_div_qr</function>
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-div-qr">
<refnamediv>
<refname>gmp_div_qr</refname>
<refpurpose>Divide numbers and get quotient and remainder</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>array <function>gmp_div_qr</function></funcdef>
<paramdef>resource <parameter>n</parameter></paramdef>
<paramdef>resource <parameter>d</parameter></paramdef>
<paramdef>int
<parameter><optional>round</optional></parameter>
</paramdef>
</funcprototype>
</funcsynopsis>
<para>
The function divides <parameter>n</parameter> by
<parameter>d</parameter> and returns array, with the first element being
<literal>[n/d]</literal> (the integer result of the
division) and the second being <literal>(n - [n/d] * d)</literal>
(the remainder of the division).
</para>
<para>
See the <function>gmp_div_q</function> function for description
of the <parameter>round</parameter> argument.
</para>
<para>
<example>
<title>Division of GMP numbers</title>
<programlisting role="php">
&lt;?php
$a = gmp_init("0x41682179fbf5");
$res = gmp_div_qr($a, "0xDEFE75");
printf("Result is: q - %s, r - %s", gmp_strval($res[0]), gmp_strval($res[1]));
?>
</programlisting>
</example>
</para>
<para>
See also <function>gmp_div_q</function>, <function>gmp_div_r</function>.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-div">
<refnamediv>
<refname>gmp_div</refname>
<refpurpose>Divide numbers</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_divexact</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>resource <parameter>b</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
This function is an alias to <function>gmp_div_q</function>.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-mod">
<refnamediv>
<refname>gmp_mod</refname>
<refpurpose>Modulo operation</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_mod</function></funcdef>
<paramdef>resource <parameter>n</parameter></paramdef>
<paramdef>resource <parameter>d</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Calculates <parameter>n</parameter> modulo
<parameter>d</parameter>. The result is always non-negative, the
sign of <parameter>d</parameter> is ignored.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-divexact">
<refnamediv>
<refname>gmp_divexact</refname>
<refpurpose>Exact division of numbers</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_divexact</function></funcdef>
<paramdef>resource <parameter>n</parameter></paramdef>
<paramdef>resource <parameter>d</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Divides <parameter>n</parameter> by <parameter>d</parameter>,
using fast "exact division" algorithm. This function produces
correct results only when it is known in advance that
<parameter>d</parameter> divides <parameter>n</parameter>.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-cmp">
<refnamediv>
<refname>gmp_cmp</refname>
<refpurpose>Compare numbers</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>gmp_cmp</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>resource <parameter>b</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Returns positive value if <literal>a > b</literal>, zero if
<literal>a = b</literal> and negative value if <literal>a &lt; b</literal>.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-neg">
<refnamediv>
<refname>gmp_neg</refname>
<refpurpose>Negate number</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_neg</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Returns -<parameter>a</parameter>.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-abs">
<refnamediv>
<refname>gmp_abs</refname>
<refpurpose>Absolute value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_abs</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Returns absolute value of <parameter>a</parameter>.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-sign">
<refnamediv>
<refname>gmp_sign</refname>
<refpurpose>Sign of number</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>gmp_sign</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Return sign of <parameter>a</parameter> - 1 if
<parameter>a</parameter> is positive and -1 if it's negative.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-fact">
<refnamediv>
<refname>gmp_fact</refname>
<refpurpose>Factorial</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_fact</function></funcdef>
<paramdef>int <parameter>a</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Calculates factorial (<literal>a!</literal>) of <parameter>a</parameter>.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-sqrt">
<refnamediv>
<refname>gmp_sqrt</refname>
<refpurpose>Square root</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_sqrt</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Calculates square root of <parameter>a</parameter>.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-sqrtrm">
<refnamediv>
<refname>gmp_sqrtrm</refname>
<refpurpose>Square root with remainder</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>array <function>gmp_sqrtrm</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Returns array where first element is the integer square root of
<parameter>a</parameter> (see also <function>gmp_sqrt</function>), and
the second is the remainder (i.e., the difference between
<parameter>a</parameter> and the first element squared).
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-perfect-square">
<refnamediv>
<refname>gmp_perfect_square</refname>
<refpurpose>Perfect square check</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>bool <function>gmp_perfect_square</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Returns true if <parameter>a</parameter> is a prefect square,
false otherwise.
</para>
<para>
See also: <function>gmp_sqrt</function>,
<function>gmp_sqrtrm</function>.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-pow">
<refnamediv>
<refname>gmp_pow</refname>
<refpurpose>Raise number into power</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_pow</function></funcdef>
<paramdef>resource <parameter>base</parameter></paramdef>
<paramdef>int <parameter>exp</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Raise <parameter>base</parameter> into power
<parameter>exp</parameter>. The case of 0^0 yields
1. <parameter>exp</parameter> cannot be negative.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-powm">
<refnamediv>
<refname>gmp_powm</refname>
<refpurpose>Raise number into power with modulo</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_powm</function></funcdef>
<paramdef>resource <parameter>base</parameter></paramdef>
<paramdef>resource <parameter>exp</parameter></paramdef>
<paramdef>resource <parameter>mod</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Calculate (<parameter>base</parameter> raised into power
<parameter>exp</parameter>) modulo <parameter>mod</parameter>. If
<parameter>exp</parameter> is negative, result is undefined.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-prob-prime">
<refnamediv>
<refname>gmp_prob_prime</refname>
<refpurpose>Check if number is "probably prime"</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>gmp_prob_prime</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>int <parameter><optional>reps</optional></parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
If this function returns 0, <parameter>a</parameter> is definitely
not prime. If it returns 1, then <parameter>a</parameter> is
"probably" prime. If it returns 2, then <parameter>a</parameter> is
surely prime. Reasonable values of <parameter>reps</parameter>
vary from 5 to 10 (default being 10); a higher value lowers the
probability for a non-prime to pass as a "probable" prime.
</para>
<para>
The function uses Miller-Rabin's probabilistic test.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-gcd">
<refnamediv>
<refname>gmp_gcd</refname>
<refpurpose>Calculate GCD</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_gcd</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>resource <parameter>b</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Calculate greatest common divisor of <parameter>a</parameter> and
<parameter>b</parameter>. The result is always positive even if
either of or both input operands are negative.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-gcdext">
<refnamediv>
<refname>gmp_gcdext</refname>
<refpurpose>Calculate GCD and multipliers</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>array <function>gmp_gcdext</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>resource <parameter>b</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Calculates g, s, and t, such that
<literal>a*s + b*t = g = gcd(a,b)</literal>, where gcd is gretest
common divisor. Returns array with respective elements g, s and t.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-invert">
<refnamediv>
<refname>gmp_invert</refname>
<refpurpose>Inverse by modulo</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_invert</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>resource <parameter>b</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Computes the inverse of <parameter>a</parameter> modulo
<parameter>b</parameter>. Returns false if an inverse does not exist.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-legendre">
<refnamediv>
<refname>gmp_legendre</refname>
<refpurpose>Legendre symbol</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>gmp_legendre</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>resource <parameter>p</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Compute the
<ulink url="http://www.utm.edu/research/primes/glossary/LegendreSymbol.html">
Legendre symbol</ulink> of <parameter>a</parameter> and
<parameter>p</parameter>. <parameter>p</parameter> should be odd
and must be positive.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-jacobi">
<refnamediv>
<refname>gmp_jacobi</refname>
<refpurpose>Jacobi symbol</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>gmp_jacobi</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>resource <parameter>p</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Computes
<ulink
url="http://www.utm.edu/research/primes/glossary/JacobiSymbol.html">
Jacobi symbol</ulink> of <parameter>a</parameter> and
<parameter>p</parameter>. <parameter>p</parameter> should be odd
and must be positive.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-random">
<refnamediv>
<refname>gmp_random</refname>
<refpurpose>Random number</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_random</function></funcdef>
<paramdef>int <parameter>limiter</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Generate a random number. The number will be up to
<parameter>limiter</parameter> words long. If
<parameter>limiter</parameter> is negative, negative numbers are generated.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-and">
<refnamediv>
<refname>gmp_and</refname>
<refpurpose>Logical AND</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_and</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>resource <parameter>b</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Calculates logical AND of two GMP numbers.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-or">
<refnamediv>
<refname>gmp_or</refname>
<refpurpose>Logical OR</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_or</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>resource <parameter>b</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Calculates logical inclusive OR of two GMP numbers.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-xor">
<refnamediv>
<refname>gmp_xor</refname>
<refpurpose>Logical XOR</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_xor</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>resource <parameter>b</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Calculates logical exclusive OR (XOR) of two GMP numbers.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-setbit">
<refnamediv>
<refname>gmp_setbit</refname>
<refpurpose>Set bit</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_setbit</function></funcdef>
<paramdef>resource <parameter>&amp;a</parameter></paramdef>
<paramdef>int <parameter>index</parameter></paramdef>
<paramdef>bool <parameter><optional>set_clear</optional></parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Sets bit <parameter>index</parameter> in
<parameter>a</parameter>. <parameter>set_clear</parameter> defines
if the bit is set to 0 or 1. By default the bit is set to 1.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-clrbit">
<refnamediv>
<refname>gmp_clrbit</refname>
<refpurpose>Clear bit</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>resource <function>gmp_clrbit</function></funcdef>
<paramdef>resource <parameter>&amp;a</parameter></paramdef>
<paramdef>int <parameter>index</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Clears (sets to 0) bit <parameter>index</parameter> in
<parameter>a</parameter>.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-scan0">
<refnamediv>
<refname>gmp_scan0</refname>
<refpurpose>Scan for 0</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>gmp_scan0</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>int <parameter>start</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Scans <parameter>a</parameter>, starting with bit
<parameter>start</parameter>, towards more significant
bits, until the first clear bit is found. Returns the index of the
found bit.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-scan1">
<refnamediv>
<refname>gmp_scan1</refname>
<refpurpose>Scan for 1</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>gmp_scan1</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>int <parameter>start</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Scans <parameter>a</parameter>, starting with bit
<parameter>start</parameter>, towards more significant
bits, until the first set bit is found. Returns the index of the
found bit.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-popcount">
<refnamediv>
<refname>gmp_popcount</refname>
<refpurpose>Population count</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>gmp_popcount</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Return the population count of <parameter>a</parameter>.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-hamdist">
<refnamediv>
<refname>gmp_hamdist</refname>
<refpurpose>Hamming distance</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<funcsynopsis>
<funcprototype>
<funcdef>int <function>gmp_hamdist</function></funcdef>
<paramdef>resource <parameter>a</parameter></paramdef>
<paramdef>resource <parameter>b</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Returns the hamming distance between <parameter>a</parameter> and
<parameter>a</parameter>. Both operands should be non-negative.
</para>
</refsect1>
</refentry>
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->