mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-16 17:08:54 +00:00

removing the others git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@78562 c90b9560-bf6c-de11-be94-00142212c4b1
978 lines
31 KiB
XML
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 <
|
|
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>&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>&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
|
|
-->
|
|
|