Сюда входит набор операций для математических вычислений. Преимущественно вычисления производятся над числами типа 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);