Домашняя страница библиотеки_c AVR

Синтаксис языка C

Библиотека языка C GNU glibc

 Страницы развития библиотеки_с AVR

Главная страница

Инструкция пользователя

Содержание библиотеки_c

Часто задаваемые вопросы

Содержание по алфавиту

Демонстрационные проекты


<math.h>: Математика


Детальное Описание

 #include <math.h> 

Этот заголовочный файл объявляет основные математические константы и функции.

Примечания:

·        Чтобы обращаться к функциям, объявленным здесь, обычно также обязано дополнительно ссылку против библиотеки libm.a. См. также связанный FAQ вход.

·        Математические функции не поднимают исключения и не изменяют переменную errno. Поэтому большинство их объявлено с атрибутом константы, для лучшей оптимизации GCC.

 

 

Макроопределения

#define 

M_PI   3.141592653589793238462643

#define 

M_SQRT2   1.4142135623730950488016887

#define 

NAN   __builtin_nan("")

#define 

INFINITY   __builtin_inf()

 

Функции

double 

cos (double __x)

double 

fabs (double __x)

double 

fmod (double __x, double __y)

double 

modf (double __x, double *__iptr)

double 

sin (double __x)

double 

sqrt (double __x)

double 

tan (double __x)

double 

floor (double __x)

double 

ceil (double __x)

double 

frexp (double __x, int *__pexp)

double 

ldexp (double __x, int __exp)

double 

exp (double __x)

double 

cosh (double __x)

double 

sinh (double __x)

double 

tanh (double __x)

double 

acos (double __x)

double 

asin (double __x)

double 

atan (double __x)

double 

atan2 (double __y, double __x)

double 

log (double __x)

double 

log10 (double __x)

double 

pow (double __x, double __y)

int 

isnan (double __x)

int 

isinf (double __x)

double 

square (double __x)

double 

copysign (double __x, double __y)

double 

fdim (double __x, double __y)

double 

fma (double __x, double __y, double __z)

double 

fmax (double __x, double __y)

double 

fmin (double __x, double __y)

int 

signbit (double __x)

double 

trunc (double __x)

int 

isfinite (double __x)

double 

hypot (double __x, double __y)

double 

round (double __x)

long 

lround (double __x)

long 

lrint (double __x)


Документация Макроопределений

#define INFINITY   __builtin_inf()

Константа БЕСКОНЕЧНОСТИ.

#define M_PI   3.141592653589793238462643

Константа pi.

#define M_SQRT2   1.4142135623730950488016887

Квадратный корень.

#define NAN   __builtin_nan("")

Константа НЭН.


Документация Функций

double acos

(

double 

__x

 ) 

 

Функция acos() вычисляет основное значение арккосинуса __x. Возвращаемое значение находится в диапазоне [0, pi] радиан. Ошибка происходит для передаваемых параметров, лежащих вне диапазона [-1, +1].                Пример использования:   double  val; val   =  acos(0.762);

double asin

(

double 

__x

 ) 

 

Функция asin() вычисляет основное значение арксинуса __x. Возвращаемое значение находится в диапазоне [-pi/2, pi/2] радиан. Ошибка происходит для передаваемых параметров, лежащих вне диапазона [-1, +1].               Пример использования:    double   val1, val2; val1   =   asin(-1); va12   =   asin(1);

double atan

(

double 

__x

 ) 

 

Функция atan() вычисляет основное значение арктангенса __x. значение находится в диапазоне [-pi/2, pi/2] радиан. Пример использования:    double  val; val   =   atan(1);

double atan2

(

double 

__y,

 

 

 

double 

__x

 

 

)

 

 

 

Функция atan2 () вычисляет основное значение арктангенса __y / __x, используя признаки обоих параметров, чтобы определить квадрант возвращаемого значения. Возвращаемое значение находится в диапазоне [-pi, +pi] радиан.               Пример использования:   double  val; val   =   atan2 (3.3,    4.5);

double ceil

(

double 

__x

 ) 

 

Функция ceil() возвращает значение __x, округлённое до ближайшего целого, выраженное как число с плавающей точкой.             Пример использования:   double  val; val   =   ceil(3.57);      //Результат:    4.00

double copysign

(

double 

__x,

 

 

 

double 

__y

 

 

)

 

 

 

Функция copysign() возвращает __ x но со знаком__y. Она работает даже если __x или __y  NaN или нуль.

double cos

(

double 

__x

 ) 

 

Функция cos() возвращает косинус __x, измеренный в радианах.

double cosh

(

double 

__x

 ) 

 

Функция cosh() возвращает гиперболический косинус __x.       Пример использования: double  val; val   =   cosh(5.231);

double exp

(

double 

__x

 ) 

 

Функция exp() возвращает значение е__х.                       Пример использования:    double  val; val   =   exp (2.3);

double fabs

(

double 

__x

 ) 

 

Функция fabs() вычисляет абсолютное значение числа с плавающей запятой __x. (Модуль вещественного числа __x).            Пример использования:    double  val1,   val2,   res; res   =   fabs(vall-val2);

double fdim

(

double 

__x,

 

 

 

double 

__y

 

 

)

 

 

 

Функция fdim () возвращает максимум (__x - __y, 0). If __x и(или) __y NaN, возвращается NaN.

double floor

(

double 

__x

 ) 

 

Функция floor() возвращает наибольшее интегральное значение, меньше или равное __x (целую часть вещественного числа __x), выраженное как число с плавающей точкой. Пример использования:    double  val; val = floor(4.567); //Результат = 4.000

double fma

(

double 

__x,

 

 

 

double 

__y,

 

 

 

double 

__z

 

 

)

 

 

 

Функция fma() исполняет floating-point multiply-add - операция (__x * __y) + __z, но промежуточный результат не округлен к типу адресата. Это может иногда повышать точность вычисления.

double fmax

(

double 

__x,

 

 

 

double 

__y

 

 

)

 

 

 

Функция fmax() возвращается больше из двух передаваемых значений __x и __y. Если одно значение NaN, то будет возвращен другое. Если оба значения NaN, возвртится NaN.

double fmin

(

double 

__x,

 

 

 

double 

__y

 

 

)

 

 

 

Функция fmin() возвращается меньшее из двух передаваемых значений __x и __y. Если одно значение NaN, то будет возвращено другое значение. Если оба параметра NaN, возвртится NaN.

double fmod

(

double 

__x,

 

 

 

double 

__y

 

 

)

 

 

 

Функция fmod() возвращает остаток с плавающей точкой от __x / __y.

double frexp

(

double 

__x,

 

 

 

int * 

__pexp

 

 

)

 

 

 

Функция frexp() возвращает мантиссу вещественного числа __x в диапазоне от 0.5…1.0 или 0, если __x = 0. В переменной переданной по ссылке в качестве параметра pexp, сохраняется степень 2 экспоненты__x. Если __x = 0, в pexp также будет сохранён 0. Другими словами __x = y * 2 ^ e.

Если __x является нормальным номером пункта с плавающей точкой,  функция frexp () возвращает значение v, такой это v имеет величину в интервале [1/2, 1) или нуле, и __ x равняется v времена 2 повысили в силе __ pexp. Если __ x является нулевым, обе части результата являются нулевыми. Если __ x - не конечный номер, frexp () возвращения __ x как является и сохраняет 0 __ pexp.

Примечание:

Это выполнение разрешает нулевой указатель как директиву пропускать сохранение экспоненты.

Пример использования:    float   у; int   e; у = frexp(3.14159, &у);  //Результат: у=0.785397, е=2

double hypot

(

double 

__x,

 

 

 

double 

__y

 

 

)

 

 

 

Функция hypot() возвращает sqrt(__x*__x + __y*__y). Это длина гипотенузы прямоугольного треугольника с катетами __ x и __ y, или расстояние точек (__ x, __ y) от начала координат. Использование этой функции вместо прямой формулы мудро, так как ошибка является намного меньшей. Никакое антипереполнение с маленьким __ x и __ y. Никакое переполнение, если результат находится в диапазоне.

int isfinite

(

double 

__x

 ) 

 

Функция isfinite() возвращает значение отличное от нуля если __x является конечным: не плюс или минус бесконечность, и не NaN.

int isinf

(

double 

__x

 ) 

 

Функция isinf() возвращает1, если параметр __ x является положительной бесконечностью, -1 если __x является отрицательной бесконечностью, иначе 0.

int isnan

(

double 

__x

 ) 

 

Функция isnan() возвращает 1, если параметр __ x представляет объект "не-номер" (NaN), иначе 0.

double ldexp

(

double 

__x,

 

 

 

int 

__exp

 

 

)

 

 

 

Функция ldexp() умножает число с плавающей точкой __x, умноженное на 2 в степени __exp, то есть x * 2 ^ exp.

Пример использования:    float  val; val = ldexp(2, 3); //Результат = 16.00

double log

(

double 

__x

 ) 

 

Функция log() возвращает натуральный логарифм параметра __x.

double log10

(

double 

__x

 ) 

 

Функция log10() возвращает десятичный логарифм параметра __ x. Пример использования:    float  val; val   =  logl0(5);   //Результат   =   0.69897

long lrint

(

double 

__x

 ) 

 

Функция lrint() округление __ x до самого близкого целого числа, округление промежуточных случаев по четному целочисленному направлению. (оба значения 1.5 и 2.5 округлятся до 2). Эта функция подобна функции rint(), но отличается по типу возвращаемого значения, по которому переполнение является возможным.

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

Округленное длинное целочисленное значение. Если __ x - не конечный номер, или переполнение было, эта реализация возвращает LONG_MIN значение (0x80000000).

long lround

(

double 

__x

 ) 

 

Функция lround() округление __ x до самого близкого целого числа, но округление промежуточных случаев от нуля (вместо четного целочисленного направления). Эта функция подобна функции round(), но отличается по типу возвращаемого значения, по которому переполнение является возможным.

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

Округленное длинное целочисленное значение. Если __ x - не конечный номер, или переполнение было, эта реализация возвращает LONG_MIN значение (0x80000000).

double modf

(

double 

__x,

 

 

 

double * 

__iptr

 

 

)

 

 

 

Функция modf() разбивает число на целую и дробную части, дробная часть возвращается как число со знаком, а целая сохраняется в параметре-переменной iptr.

Пример использования:      float   int_part,   fract_part; fract_part   = modf (-45. 7,    &int_part);   //fract_part   =   - 0.7;   int_part   =   - 45.00.

double pow

(

double 

__x,

 

 

 

double 

__y

 

 

)

 

 

 

Функция pow() возвращает число x в степени y.

Пример использования:    float  val;

          val   =  pow(2, 3);   //Результат   =   8.000

double round

(

double 

__x

 ) 

 

Функция round() округляет __ x до самомого близкого целого числа, но промежуточные значения далёкие от ноля (вместо к самому близкому даже целое число). Выход за пределы невозможен.

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

Округленное значение. Если __ x является интегралом или бесконечностью, то возвращается непосредственно __ x. Если __ x NaN, тогда возвращается NaN.

int signbit

(

double 

__x

 ) 

 

Функция signbit() возвращает значение отличное от нуля, если в значение __ x установлен его знаковый разряд. Это - не то же самое, что `__x < 0.0', потому что IEEE 754 с плавающей запятой позволяет нулю быть подписанным. Сравнение `-0.0 < 0.0' является ложным, но `знаковый бит (-0.0)' возвратит значение отличное от нуля.

Примечание:

Это выполнение возвращает 1, если установлен знаковый разряд.

double sin

(

double 

__x

 ) 

 

Функция sin() возвращает синус __x, представленный в радианах.

Пример использования:      float  val; val   =   sin(5,121);    //Результат   =   -0.917673

double sinh

(

double 

__x

 ) 

 

Функция sinh() возвращает гиперболический синус __x, представленный в радианах.

Пример использования:    float  val; val   =   sin(5,12);   //Результат   =   83.664702

double sqrt

(

double 

__x

 ) 

 

Функция sqrt() возвращает квадратный корень положительного числа __x. Для отрицательного __x – результат не определён.

Пример использования:    float  val; val = sqrt(6.4); //Результат = 2.529822

double square

(

double 

__x

 ) 

 

Функция square() возвращает __x * __x.

Примечание:

Эта функция не принадлежит стандартному определению C.

double tan

(

double 

__x

 ) 

 

Функция tan() возвращает тангенс __ x, измеренный в радианах.

double tanh

(

double 

__x

 ) 

 

Функция tanh() возвращает гиперболический тангенс __ x.

double trunc

(

double 

__x

 ) 

 

Функция trunc() округляет __ x до самого близкого целого числа, не большему в абсолютном значении.


Automatically generated by Doxygen 1.5.2 on 21 Dec 2007.

Hosted by uCoz