Перевести страницу

Создание приложений для науки и производства ещё не было таким простым

Математические операции

Сюда входит набор операций для математических вычислений. Преимущественно вычисления производятся над числами типа float (вещественными).


sin

Формат вызова:

    (sin <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: вычисляет и возвращает синус угла, передаваемого параметром, угол в радианах, например:

    a = (sin b);


cos

Формат вызова:

    (cos <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: вычисляет и возвращает косинус угла, передаваемого параметром, угол в радианах, например:

    a = (cos b);


arcsin

Формат вызова:

    (arcsin <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: вычисляет и возвращает арксинус величины, передаваемой параметром, в виде угла в радианах, если параметром передается значение меньше -1.0 или больше 1.0, выполнение программы прерывается с сообщением об ошибке, пример использования:

    a = (arcsin b);


arccos

Формат вызова:

    (arccos <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: вычисляет и возвращает арккосинус величины, передаваемой параметром, в виде угла в радианах, если параметром передается значение меньше -1.0 или больше 1.0, выполнение программы прерывается с сообщением об ошибке, пример использования:

    a = (arccos 0.112);


tan

Формат вызова:

    (tan <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: вычисляет и возвращает тангенс (sin/cos) угла, передаваемого параметром, угол в радианах, например:

    a = (tan b);


cotan

Формат вызова:

     (cotan <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: вычисляет и возвращает котангенс (1/тангенс) угла, передаваемого параметром, угол в радианах, если при вычислении значение тангенса получилось равным 0.0, выполнение прерывается с сообщением об ошибке, пример использования:

    a = (cotan b);


arctan

Формат вызова:

    (arctan <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: вычисляет и возвращает арктангенс угла, передаваемого параметром, угол в радианах, например:

    a = (arctan b);


arctan2

Формат вызова:

    (arctan2 <parameter0> <parameter1>)

возвращает вещественное число, принимает два параметра;

тип первого параметра вещественное число, любой вид операнда, массив не допустим;

тип второго параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: вычисляет и возвращает арктангенс угла, определяемого отношением параметров, угол в радианах, например:

    a = (arctan2 b c); `эквивалентно a = (arctan (b / c))`


^^

Формат вызова:

    (^^ <parameter0> <parameter1>)

возвращает вещественное число, принимает два параметра;

тип первого параметра вещественное число, любой вид операнда, массив не допустим;

тип второго параметра целое число, любой вид операнда, массив не допустим;

назначение операции: вычисляет и возвращает значение первого параметра, возведенное в степень, задаваемую вторым параметром, если значение первого параметра отрицательное, а второй параметр имеет дробную часть не равную 0.0, то программа прерывается с сообщением об ошибке, поскольку должен получиться комплексным, допустима инфиксная запись, пример использования:

    a = (b ^^ c);


sqrt

Формат вызова:

    (sqrt <parameter0>)

возвращает вещественное число, принимает один параметр;

тип первого параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: вычисляет и возвращает квадратный корень из значения параметра, если параметр меньше 0.0, то выполнение программы прерывается с ошибкой, пример использования:

    a = (sqrt b);


sqrt2

Формат вызова:

    (sqrt2 <parameter0> <parameter1>)

возвращает вещественное число, принимает два параметра;

тип первого параметра вещественное число, любой вид операнда, массив не допустим;

тип второго параметра целое число, любой вид операнда, массив не допустим;

назначение операции: вычисляет и возвращает значение корня из суммы квадратов параметров, пример использования:

    a = (sqrt2 b c); `эквивалентно a = (sqrt ((b ^^ 2) + (c ^^ 2)))`


_1/sqrt

Формат вызова:

    (_1/sqrt <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: вычисляет и возвращает значение, равное 1.0 деленное на квадратный корень из значения параметра, если значение параметра меньше или равно 0.0, выполнение программы будет прервано с ошибкой, пример использования:

    a = (_1/sqrt b); `эквивалентно a = (1 / (sqrt b))`


e^

Формат вызова:

    (e^ <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: вычисляет и возвращает значение e, возведенное в степень, задаваемую параметром, пример использования:

    a = (e^ b);


log

Формат вызова:

    (log <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: вычисляет и возвращает значение натурального логарифма величины, задаваемой параметром, если параметр меньше или равен 0.0, программа будет прервана с сообщением об ошибке, пример использования:

    a = (log b);


log10

Формат вызова:

    (log10 <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: вычисляет и возвращает значение десятичного логарифма величины, задаваемой параметром, если параметр меньше или равен 0.0, программа будет прервана с сообщением об ошибке, пример использования:

    a = (log10 b);


floor

Формат вызова:

    (floor <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: возвращает значение параметра, округленное до ближайшего максимального целого (округление вверх), пример использования:

    a = (floor b);


ceil

Формат вызова:

    (ceil <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: возвращает значение параметра, округленное до ближайшего минимального целого (округление вниз), пример использования:

    a = (ceil b);


frexp

Формат вызова:

     (frexp <parameter0> <parameter1>)

возвращает вещественное число, принимает два параметра;

тип первого параметра вещественное число, любой вид операнда, массив не допустим;

тип второго параметра целое число, допустима только переменная, массив не допустим;

назначение операции: возвращает нормализованную дробную часть значения первого параметра, если первый параметр не равен 0.0, то возвращаемое значение равно X / 2^N, где X значение первого параметра, во второй параметр записывается целочисленная величина N, возвращаемое значение всегда находится между 0.5 включительно и 1 исключительно, если первый параметр равен 0.0, то возвращается 0.0 и во второй параметр записывается 0, пример использования:

    a = (frexp b c);

Для получения ненормализованного значения дробной и/или целой части вещественного числа предназначена операция fraction.


*2^

Формат вызова:

    (*2^ <parameter0> <parameter1>)

возвращает вещественное число, принимает два параметра;

тип первого параметра вещественное число, любой вид операнда, массив не допустим;

тип второго параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: возвращает значение первого параметра, умноженное на 2, возведенное в степень, равную значению второго параметра, допустима инфиксная запись, пример использования:

    a = (b *2^ c); `эквивалентно a = (b * (2 ^ c ))`


fraction

Формат вызова:

    (fraction <parameter0> [<parameter1>])

возвращает вещественное число, принимает один или два параметра;

тип первого параметра вещественное число, любой вид операнда, массив не допустим;

тип второго параметра вещественное число, допустима только переменная, массив не допустим;

назначение операции: возвращает значение дробной части первого параметра, если второй параметр присутствует, то в него записывается интегральная (целая) часть первого параметра, пример использования:

    float a b c;

    b = 123.456;

    a = (fraction b c);

    puts a c;

напечатает 4.560000E-1 1.230000E2

    a = (fraction b);


sign

Формат вызова:

    (sign <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: возвращает знак первого параметра, если значение первого параметра больше 0.0, возвращается 1.0, если меньше 0.0, возвращается -1.0, если равно 0.0, возвращается 0.0 (возможное в машинном представлении отрицательное значение -0.0 не учитывается), пример использования:

    a = (sign b);


min

Формат вызова:

    (min <parameter0> <parameter1>)

возвращает вещественное число, принимает два параметра;

тип первого параметра вещественное число, любой вид операнда, массив не допустим;

тип второго параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: возвращает значение минимального из двух полученных параметров, пример использования:

    a = (min b c);


max

Формат вызова:

    (max <parameter0> <parameter1>)

возвращает вещественное число, принимает два параметра;

тип первого параметра вещественное число, любой вид операнда, массив не допустим;

тип второго параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: возвращает значение максимального из двух полученных параметров, пример использования:

    a = (max b c);


limiter

Формат вызова:

    (limiter <parameter0> <parameter1>)

возвращает вещественное число, принимает два параметра;

тип первого параметра вещественное число, любой вид операнда, массив не допустим;

тип второго параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: возвращает значение сигмоида от первого параметра, умноженного на значение второго параметра, сигмоид вычисляется по формуле 1 / (1 + e^X), где X значение первого параметра, используется для экспоненциального ограничения амплитуды сигнала, независимо от знака у текущего отсчета, пример использования:

    a = (limiter b c); `эквивалентно a = (c * (1 / (1 + (e^ b))))`


^2

Формат вызова:

    (^2 <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: возвращает значение параметра, возведенного в квадрат, допустима инфиксная запись, пример использования:

    a = (b ^2); `эквивалентно a = (b ^^ 2);


_1/

Формат вызова:

    (_1/ <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: возвращает значение, равное 1.0 деленное на значение параметра, если параметром передается значение, равное 0.0, программа будет прервана с сообщением об ошибке, пример использования:

    a = (_1/ b); `эквивалентно a = (1 / b);


rad

Формат вызова:

    (rad <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: возвращает значение в радианах, равное значению угла в градусах, полученному параметром, пример использования:

    a = (rad b); `эквивалентно a = (b * (PI / 180));


grad

Формат вызова:

    (grad <parameter0>)

возвращает вещественное число, принимает один параметр;

тип параметра вещественное число, любой вид операнда, массив не допустим;

назначение операции: возвращает значение в градусах, равное значению угла в радианах, полученному параметром, пример использования:

    a = (grad b); `эквивалентно a = (b * (180 / PI));`


norm

Формат вызова:

    norm <parameter0> <parameter1> <parameter2>;

ничего не возвращает, принимает три параметра;

первый параметр типа целое, беззнаковое целое, вещественное число, допустим только массив;

второй параметр такого же типа, как первый, любой операнд, массив не допустим;

третий параметр такого же типа, как первый, любой операнд, массив не допустим;

назначение операции: производит нормализацию значений массива, принимаемого первым параметром, нормализация производится по формуле: X[i] = N * X[i] / M, где X[i] – каждый элемент нормализуемого массива, N - значение первого параметра (масштаб), M - значение второго параметра (делитель), если значение второго параметра равно 0.0, программа будет прервана с ошибкой, пример использования:

    uint a[128];

    getsignal a;

    norm a 1000 10;


random

Формат вызова:

    (random [<parameter0> [<parameter1>]])

возвращает беззнаковое целое число, число параметров переменное от 0 до 2;

первый параметр, если указывается, имеет тип беззнаковое целое, допустим любой операнд, массив не допустим;

второй параметр, если указывается, имеет тип беззнаковое целое, допустим любой операнд, массив не допустим;

назначение операции: возвращает псевдослучайное число, если параметров нет, то число находится в диапазоне от 0 до максимального возможного, задаваемого библиотеками языка C, если указан один параметр, то он задает верхнюю границу случайного числа, если указаны два параметра, то первый задает верхнюю, а второй нижнюю границы:

    a = (rand); `случайное число от 0 до максимального знакового целого`

    a = (rand 100); `случайное число от 0 до 100`

    a = (rand 10 100); `случайное число от 10 до 100`


seed

Формат вызова:

    seed;

ничего не возвращает, параметров не имеет;

назначение операции: производит сброс генератора случайных чисел, если не вызвать эту операцию перед использованием rand, то rand будет всегда возвращать одну и ту же последовательность псевдослучайных чисел, пример использования:

    seed;


sinusoid

Формат вызова:

    (sinusoid <parameter0> <parameter1> <parameter2> <parameter3>)

возвращает вещественное число, принимает четыре параметра;

все параметры вещественные числа, допустимы любые операнды, массивы не допустимы;

назначение операции: вычисляет и возвращает значение по формуле A*sin(B*C+D), где A, B, C D – параметры, соответственно от первого до четвертого, операция применяется для генерации синусоидальных колебаний, пример использования:

    a = (sinusoid amp freq time phase);


cosinusoid

Формат вызова:

    (cosinusoid <parameter0> <parameter1> <parameter2> <parameter3>)

возвращает вещественное число, принимает четыре параметра;

все параметры вещественные числа, допустимы любые операнды, массивы не допустимы;

назначение операции: вычисляет и возвращает значение по формуле: A*cos(B*C+D), где A, B, C D – параметры, соответственно от первого до четвертого, операция применяется для генерации косинусоидальных колебаний, пример использования:

    a = (cosinusoid amp freq time phase);