php-doc-en/functions/gmp.xml
Hartmut Holzgraefe 7839d91186 added DO NOT EDIT noctice to old english functions files,
removing the others


git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@78562 c90b9560-bf6c-de11-be94-00142212c4b1
2002-04-17 19:58:46 +00:00

978 lines
31 KiB
XML

<!-- D O N O T E D I T T H I S F I L E ! ! !
it is still here for historical reasons only
(as translators may need to check old revision diffs)
if you want to change things documented in this file
you should now edit the files found under en/reference
instead -->
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.26 $ -->
<reference id="ref.gmp">
<title>GMP functions</title>
<titleabbrev>GMP</titleabbrev>
<partintro>
<simpara>
These functions allow you to work with arbitrary-length integers
using the 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 also accept numeric and string arguments, given
that it is possible to convert the latter to a number. Also,
if there is a faster function that can operate on integer arguments,
it would be used instead of the slower function when the supplied arguments are
integers. This is done transparently, so the bottom line is that
you can use integers in every function that expects GMP
number. See also the <function>gmp_init</function> function.
</para>
</note>
<warning>
<simpara>
If you want to explicitly specify a large integer,
specify it as a string. If you don't do that, PHP will
interpret the integer-literal first, possibly resulting
in loss of precision, even before <literal>GMP</literal>
comes into play.
</simpara>
</warning>
<para>
<example>
<title>Factorial function using GMP</title>
<programlisting role="php">
<![CDATA[
<?php
function fact ($x) {
if ($x <= 1)
return 1;
else
return gmp_mul ($x, fact ($x-1));
}
print gmp_strval (fact (1000)) . "\n";
?>
]]>
</programlisting>
</example>
</para>
<para>
This will calculate factorial of 1000 (pretty big number)
very fast.
</para>
</partintro>
<refentry id="function.gmp-init">
<refnamediv>
<refname>gmp_init</refname>
<refpurpose>Create GMP number</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<methodsynopsis>
<type>resource</type><methodname>gmp_init</methodname>
<methodparam><type>mixed</type><parameter>number</parameter></methodparam>
</methodsynopsis>
<para>
Creates a GMP number from an 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">
<![CDATA[
<?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>
<methodsynopsis>
<type>int</type><methodname>gmp_intval</methodname>
<methodparam><type>resource</type><parameter>gmpnumber</parameter></methodparam>
</methodsynopsis>
<para>
This function allows to convert GMP number to integer.
<warning>
<simpara>
This function returns a 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>
<methodsynopsis>
<type>string</type><methodname>gmp_strval</methodname>
<methodparam><type>resource</type><parameter>gmpnumber</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>base</parameter></methodparam>
</methodsynopsis>
<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 a GMP number to a string</title>
<programlisting role="php">
<![CDATA[
<?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>
<methodsynopsis>
<type>resource</type><methodname>gmp_add</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>resource</type><parameter>b</parameter></methodparam>
</methodsynopsis>
<para>
Add two GMP numbers. The result will be a 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>
<methodsynopsis>
<type>resource</type><methodname>gmp_sub</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>resource</type><parameter>b</parameter></methodparam>
</methodsynopsis>
<para>
Subtracts <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>
<methodsynopsis>
<type>resource</type><methodname>gmp_mul</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>resource</type><parameter>b</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>resource</type><methodname>gmp_div_q</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>resource</type><parameter>b</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>round</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>resource</type><methodname>gmp_div_r</methodname>
<methodparam><type>resource</type><parameter>n</parameter></methodparam>
<methodparam><type>resource</type><parameter>d</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>round</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>array</type><methodname>gmp_div_qr</methodname>
<methodparam><type>resource</type><parameter>n</parameter></methodparam>
<methodparam><type>resource</type><parameter>d</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>round</parameter></methodparam>
</methodsynopsis>
<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">
<![CDATA[
<?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>
<methodsynopsis>
<type>resource</type><methodname>gmp_div</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>resource</type><parameter>b</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>resource</type><methodname>gmp_mod</methodname>
<methodparam><type>resource</type><parameter>n</parameter></methodparam>
<methodparam><type>resource</type><parameter>d</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>resource</type><methodname>gmp_divexact</methodname>
<methodparam><type>resource</type><parameter>n</parameter></methodparam>
<methodparam><type>resource</type><parameter>d</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>int</type><methodname>gmp_cmp</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>resource</type><parameter>b</parameter></methodparam>
</methodsynopsis>
<para>
Returns a 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>
<methodsynopsis>
<type>resource</type><methodname>gmp_neg</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
</methodsynopsis>
<para>
Returns -<parameter>a</parameter>.
</para>
</refsect1>
</refentry>
<refentry id='function.gmp-com'>
<refnamediv>
<refname>gmp_com</refname>
<refpurpose>Calculates one's complement of a</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<methodsynopsis>
<type>resource</type><methodname>gmp_com</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
</methodsynopsis>
<para>
&warn.undocumented.func;
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-abs">
<refnamediv>
<refname>gmp_abs</refname>
<refpurpose>Absolute value</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<methodsynopsis>
<type>resource</type><methodname>gmp_abs</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>int</type><methodname>gmp_sign</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>resource</type><methodname>gmp_fact</methodname>
<methodparam><type>int</type><parameter>a</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>resource</type><methodname>gmp_sqrt</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
</methodsynopsis>
<para>
Calculates square root of <parameter>a</parameter>.
</para>
</refsect1>
</refentry>
<refentry id="function.gmp-sqrtrem">
<refnamediv>
<refname>gmp_sqrtrm</refname>
<refpurpose>Square root with remainder</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<methodsynopsis>
<type>array</type><methodname>gmp_sqrtrm</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>bool</type><methodname>gmp_perfect_square</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
</methodsynopsis>
<para>
Returns &true; if <parameter>a</parameter> is a perfect 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>
<methodsynopsis>
<type>resource</type><methodname>gmp_pow</methodname>
<methodparam><type>resource</type><parameter>base</parameter></methodparam>
<methodparam><type>int</type><parameter>exp</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>resource</type><methodname>gmp_powm</methodname>
<methodparam><type>resource</type><parameter>base</parameter></methodparam>
<methodparam><type>resource</type><parameter>exp</parameter></methodparam>
<methodparam><type>resource</type><parameter>mod</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>int</type><methodname>gmp_prob_prime</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>reps</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>resource</type><methodname>gmp_gcd</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>resource</type><parameter>b</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>array</type><methodname>gmp_gcdext</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>resource</type><parameter>b</parameter></methodparam>
</methodsynopsis>
<para>
Calculates g, s, and t, such that <literal>a*s + b*t = g =
gcd(a,b)</literal>, where gcd is the greatest common divisor. Returns
an 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>
<methodsynopsis>
<type>resource</type><methodname>gmp_invert</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>resource</type><parameter>b</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>int</type><methodname>gmp_legendre</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>resource</type><parameter>p</parameter></methodparam>
</methodsynopsis>
<para>
Compute the
<ulink url="&url.symbole-legendre;">
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>
<methodsynopsis>
<type>int</type><methodname>gmp_jacobi</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>resource</type><parameter>p</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>resource</type><methodname>gmp_random</methodname>
<methodparam><type>int</type><parameter>limiter</parameter></methodparam>
</methodsynopsis>
<para>
Generate a random number. The number will be between
<parameter>limiter</parameter> and zero in value. 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>
<methodsynopsis>
<type>resource</type><methodname>gmp_and</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>resource</type><parameter>b</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>resource</type><methodname>gmp_or</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>resource</type><parameter>b</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>resource</type><methodname>gmp_xor</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>resource</type><parameter>b</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>resource</type><methodname>gmp_setbit</methodname>
<methodparam><type>resource</type><parameter>&amp;a</parameter></methodparam>
<methodparam><type>int</type><parameter>index</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>set_clear</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>resource</type><methodname>gmp_clrbit</methodname>
<methodparam><type>resource</type><parameter>&amp;a</parameter></methodparam>
<methodparam><type>int</type><parameter>index</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>int</type><methodname>gmp_scan0</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>int</type><parameter>start</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>int</type><methodname>gmp_scan1</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>int</type><parameter>start</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>int</type><methodname>gmp_popcount</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
</methodsynopsis>
<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>
<methodsynopsis>
<type>int</type><methodname>gmp_hamdist</methodname>
<methodparam><type>resource</type><parameter>a</parameter></methodparam>
<methodparam><type>resource</type><parameter>b</parameter></methodparam>
</methodsynopsis>
<para>
Returns the hamming distance between <parameter>a</parameter> and
<parameter>b</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
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->