.. Author: kms, mailto: lionsgr@zmail.ru

.. include:: commonchm.txt

#########################################################################
Math
#########################################################################
..  <chminfo>
	<insert nodes="//common/maininfo/*"/>
        <klinks>
            Математика
            Math
        </klinks>
    </chminfo>

.. contents:: Содержание
	:backlinks: none

**Класс Математика / Math**

Класс элементарной математики.
Включает битовые операции и методы конверсии строк в числа.

Методы
=================================
..  <chminfo split="0" splitchild="1">
        <insert nodes="//common/propsmethods/*"/>
    </chminfo>

.. Число

Число / Long
-------------------------------------------------------------------------
    :Синтаксис:
        Long(Параметр, чБаза =0)

    :Параметры:

        - *Параметр*: Число или Строка
            Число или Строка, которые нужно перевести в тип Long
        - *чБаза*:
            База числа

    :Возвращает:
        Число

    :Описание:
        | Переводит переданный параметр в тип Long.
        | При этом строка должна иметь следующий формат:
        |
        | [whitespace] [{+ | -}] [0 [{ x | X }]] [digits]

        A whitespace may consist of space and tab characters,
        which are ignored; digits are one or more decimal digits.
        The first character that does not fit this form stops the scan.
        If base is between 2 and 36, then it is used as the base of the number.
        If base is 0, the initial characters of the string are used to determine the base.
        If the first character is 0 and the second character is not 'x' or 'X',
        the string is interpreted as an octal integer; otherwise, it is interpreted
        as a decimal number. If the first character is '0' and the second character
        is 'x' or 'X', the string is interpreted as a hexadecimal integer.
        If the first character is '1' through '9', the string is interpreted as a decimal integer.
        The letters 'a' through 'z' (or 'A' through 'Z') are assigned the values 10 through 35;
        only letters whose assigned values are less than base are permitted.

        | Т.е. стандарным образом можно задавать десятичные, шестнадцатеричные и восьмеричные числа.
        | Если второй параметр равен нулю, база определяется автоматически,
        | иначе используется переданная база. База не может быть больше 36.

    :Примеры:
    	| Long("0x100") == 256
    	| Long("100", 2) == 4

.. Double

Double
-------------------------------------------------------------------------
    :Синтаксис:
        Double(Параметр)

    :Параметры:

        - *Параметр*: Число или Строка
            Число или Строка, которые нужно перевести в тип Double

    :Возвращает:
        Число

    :Описание:
        | Переводит переданную строку в тип Double.
        | При этом строка должна иметь следующий формат:
        |
        | [whitespace] [sign] [digits] [.digits] [ {d | D | e | E}[sign]digits]

        A whitespace may consist of space and tab characters,
        which are ignored; sign is either plus (+) or minus (-);
        and digits are one or more decimal digits. If no digits appear before
        the radix character, at least one must appear after the radix character.
        The decimal digits can be followed by an exponent,
        which consists of an introductory letter (d, D, e, or E)
        and an optionally signed integer. If neither an exponent part
        nor a radix character appears, a radix character is assumed to follow
        the last digit in the string. The first character that does not fit this form
        stops the scan.

        Таким образом можно легко задавать числа с плавающей точкой.

    :Примеры:
    	| Double("-1.5e+3") == -1500

.. ABS

ABS
-------------------------------------------------------------------------
    :Синтаксис:
        ABS(Параметр)

    :Параметры:

        - *Параметр*: Число или Строка

    :Возвращает:
        | Число
        | Абсолютное значение x

    :Описание:
        Возвращает abs(x)

.. ACOS

ACOS
-------------------------------------------------------------------------
    :Синтаксис:
        ACOS(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число
        | Арккосинус x

    :Описание:
        Возвращает acos(x)
        
.. ASIN

ASIN
-------------------------------------------------------------------------
    :Синтаксис:
        ASIN(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число
        | Арксинус x

    :Описание:
        Возвращает asin(x)
    
.. ATAN

ATAN
-------------------------------------------------------------------------
    :Синтаксис:
        ATAN(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число
        | Арктангенс x

    :Описание:
        Возвращает atan(x)

.. ATAN2

ATAN2
-------------------------------------------------------------------------
    :Синтаксис:
        ATAN2(y, x)

    :Параметры:

        - *y*: Число или Строка
        - *x*: Число или Строка

    :Возвращает:
        | Число
        | Арктангенс y/x

    :Описание:
        Возвращает atan(y/x)

.. CEIL

CEIL
-------------------------------------------------------------------------
    :Синтаксис:
        CEIL(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число

    :Описание:
        Возвращает наименьшее целое, большее x

.. COPYSIGN

COPYSIGN
-------------------------------------------------------------------------
    :Синтаксис:
        COPYSIGN(x, y)

    :Параметры:

        - *x*: Число или Строка
        - *y*: Число или Строка

    :Возвращает:
        | Число

    :Описание:
        Возвращает число x со знаком числа y

.. COS

COS
-------------------------------------------------------------------------
    :Синтаксис:
        COS(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число
        | Косинус x

    :Описание:
        Возвращает cos(x)

.. COSH

COSH
-------------------------------------------------------------------------
    :Синтаксис:
        COSH(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число
        | Косинус гиперболический x

    :Описание:
        Возвращает cosh(x)

.. EXP

EXP
-------------------------------------------------------------------------
    :Синтаксис:
        EXP(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число
        | Экспонента x

    :Описание:
        Возвращает e^x

.. FLOOR

FLOOR
-------------------------------------------------------------------------
    :Синтаксис:
        FLOOR(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число

    :Описание:
        Возвращает наибольшее целое, меньшее x

.. FMOD

FMOD
-------------------------------------------------------------------------
    :Синтаксис:
        FMOD(x, y)

    :Параметры:

        - *x*: Число или Строка
        - *y*: Число или Строка

    :Возвращает:
        | Число
        | остаток от деления x/y

    :Описание:
        The function calculates the floating-point remainder f of x / y
        such that x = i * y + f, where i is an integer, f has the same sign as x,
        and the absolute value of f is less than the absolute value of y.

        Функция возвращает такое значение остатка f, что x = i * y + f, где i - целое,
        f - одного знака с x, и абсолютное значение f меньше абсолютного значения y.
	
.. FREXP

FREXP
-------------------------------------------------------------------------
    :Синтаксис:
        FREXP(x, y)

    :Параметры:

        - *x*: Число или Строка
        - *y*: Число или Строка

    :Возвращает:
        | Число
        | Мантисса x

    :Описание:
        The function breaks down the floating-point value (x) into a mantissa (m)
        and an exponent (n), such that the absolute value of m is greater than or equal
        to 0.5 and less than 1.0, and x = m * 2^n.
        
        Функция разбирает число x на мантиссу (m) и степень (n) таким образом, что
        0.5 <= abs(m) < 1.0, и x = m * 2^n.
	
.. HYPOT

HYPOT
-------------------------------------------------------------------------
    :Синтаксис:
        HYPOT(x, y)

    :Параметры:

        - *x*: Число или Строка
        - *y*: Число или Строка

    :Возвращает:
        | Число
        | значение гипотенузы

    :Описание:
        Функция возвращает SQRT(X^2 + y^2)

.. LDEXP

LDEXP
-------------------------------------------------------------------------
    :Синтаксис:
        LDEXP(x, y)

    :Параметры:

        - *x*: Число или Строка
        - *y*: Число или Строка

    :Возвращает:
        | Число

    :Описание:
        Возвращает x * 2^y
	
.. LDIV

LDIV
-------------------------------------------------------------------------
    :Синтаксис:
        LDIV(x, y, rem)

    :Параметры:

        - *x*: Число или Строка
        - *y*: Число или Строка
        - *rem*: Число (возврат)

    :Возвращает:
        | Число
        | Частное от целочисленного деления x/y

    :Описание:
        | Функция вычисляет частное и остаток от целочисленного деления x на y,
        | остаток возвращается в параметре rem

.. LOG

LOG
-------------------------------------------------------------------------
    :Синтаксис:
        LOG(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число
        | Логарифм x

    :Описание:
        | Функция вычисляет натуральный логарифм log(x)

.. LOG10

LOG10
-------------------------------------------------------------------------
    :Синтаксис:
        LOG10(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число
        | Десятичный логарифм x 

    :Описание:
        | Функция вычисляет десятичный логарифм log10(x)

.. MODF

MODF
-------------------------------------------------------------------------
    :Синтаксис:
        MODF(x, fract)

    :Параметры:

        - *x*: Число или Строка
        - *fract*: Число (возврат)

    :Возвращает:
        | Число
        | Целая часть x

    :Описание:
        | Функция разбирает x на целую и дробную часть того же знака, что и x,
        | дробная часть возвращается в переменной fract

.. PI

PI
-------------------------------------------------------------------------
    :Синтаксис:
        PI()

    :Параметры:
        нет

    :Возвращает:
        | Число

    :Описание:
        Возвращает число PI

    
.. POW

POW
-------------------------------------------------------------------------
    :Синтаксис:
        POW(x, y)

    :Параметры:

        - *x*: Число или Строка
        - *y*: Число или Строка

    :Возвращает:
        | Число
        | x ^ y

.. RAND

RAND
-------------------------------------------------------------------------
    :Синтаксис:
        RAND()

    :Параметры:
        нет

    :Возвращает:
        | Число
        | Случайное число

    :Описание:
        | Возвращает случайное число в диапазоне от 0 до RAND_MAX (определен как 0x7fff)
        | Для возврата случайного числа в диапазоне от 0 до 1 предназначена функция RAND1_
        | Для инициализации генератора предназначена функция SRAND_

.. RAND1

RAND1
-------------------------------------------------------------------------
    :Синтаксис:
        RAND1()

    :Параметры:
        нет

    :Возвращает:
        | Число
        | Случайное число

    :Описание:
        | Возвращает случайное число в диапазоне от 0 до 1
        | Для инициализации генератора предназначена функция SRAND_

.. ROTL

ROTL
-------------------------------------------------------------------------
    :Синтаксис:
        ROTL(x, y)

    :Параметры:

        - *x*: Число или Строка
        - *y*: Число или Строка

    :Возвращает:
        | Число

    :Описание:
        | Функция выполняет кольцевой сдвиг числа x на y разрядов влево

.. ROTR

ROTR
-------------------------------------------------------------------------
    :Синтаксис:
        ROTR(x, y)

    :Параметры:

        - *x*: Число или Строка
        - *y*: Число или Строка

    :Возвращает:
        | Число

    :Описание:
        | Функция выполняет кольцевой сдвиг числа x на y разрядов вправо

.. SHL

SHL
-------------------------------------------------------------------------
    :Синтаксис:
        SHL(x, y)

    :Параметры:

        - *x*: Число или Строка
        - *y*: Число или Строка

    :Возвращает:
        | Число

    :Описание:
        | Функция выполняет сдвиг числа x на y разрядов влево

.. SHR

SHR
-------------------------------------------------------------------------
    :Синтаксис:
        SHR(x, y)

    :Параметры:

        - *x*: Число или Строка
        - *y*: Число или Строка

    :Возвращает:
        | Число

    :Описание:
        | Функция выполняет сдвиг числа x на y разрядов вправо

.. SIN

SIN
-------------------------------------------------------------------------
    :Синтаксис:
        SIN(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число
        | Синус x

    :Описание:
        | Возвращает sin(x)

.. SINH

SINH
-------------------------------------------------------------------------
    :Синтаксис:
        SINH(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число
        | Синус гиперболический x

    :Описание:
        | Возвращает sinh(x)

.. SQRT

SQRT
-------------------------------------------------------------------------
    :Синтаксис:
        SQRT(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число
        | Корень квадратный х

    :Описание:
        | Возвращает x ^ 0.5

.. SRAND

SRAND
-------------------------------------------------------------------------
    :Синтаксис:
        SRAND(x)

    :Параметры:

        - *x*: Число или Строка
            seed генератора

    :Возвращает:
        нет

    :Описание:
        Инициализирует генератор псевдослучайных чисел

.. TAN

TAN
-------------------------------------------------------------------------
    :Синтаксис:
        TAN(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число
        | Тангенс x

    :Описание:
        Возвращает tan(x)

.. TANH

TANH
-------------------------------------------------------------------------
    :Синтаксис:
        TANH(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число
        | Тангенс гиперболический x

    :Описание:
        Возвращает tanh(x)

.. BITAND

BITAND
-------------------------------------------------------------------------
    :Синтаксис:
        BITAND(x, y)

    :Параметры:

        - *x*: Число или Строка
        - *y*: Число или Строка

    :Возвращает:
        | Число

    :Описание:
        Возвращает x & y

.. BITOR

BITOR
-------------------------------------------------------------------------
    :Синтаксис:
        BITOR(x, y)

    :Параметры:

        - *x*: Число или Строка
        - *y*: Число или Строка

    :Возвращает:
        | Число

    :Описание:
        Возвращает x | y

.. COMPL

COMPL
-------------------------------------------------------------------------
    :Синтаксис:
        COMPL(x)

    :Параметры:

        - *x*: Число или Строка

    :Возвращает:
        | Число
        | Инверсия x

    :Описание:
        Возвращает ~x

.. XOR

XOR
-------------------------------------------------------------------------
    :Синтаксис:
        XOR(x, y)

    :Параметры:

        - *x*: Число или Строка
        - *y*: Число или Строка

    :Возвращает:
        | Число

    :Описание:
        Возвращает x ^ y
