mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-16 00:48:54 +00:00
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:
parent
7b6b172a2b
commit
fc50dd8126
2 changed files with 977 additions and 0 deletions
|
@ -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
976
functions/gmp.xml
Normal 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">
|
||||
<?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">
|
||||
<?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">
|
||||
<?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 < 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>&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>&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:
|
||||
-->
|
||||
|
Loading…
Reference in a new issue