C math h список функций: Математическая библиотека math.h

Все математические функции Arduino | AlexGyver

Приспичило в проекте использовать логарифм, полез читать – наткнулся на полный список математических функций, которые встроены в Arduino (файл math.h). Привожу его здесь с переводом на русский, пользуйтесь!
Примечание: double это тип данных для чисел с плавающей точкой, занимает 8 байт. float – то же самое, но 4 байта. Arduino поддерживает только 4 байтные числа, т.е. для неё double == float. Соответственно некоторые функции из таблицы ниже получаются “дублирующие” при использовании на Arduino.

Константы

КонстантаРезультатОписание
M_E2. 718281828Число e
M_LOG2E1.442695041log_2 e
M_LOG10E0.434294482log_10 e
M_LN20.693147181log_e 2
M_LN102.302585093log_e 10
M_PI3.141592654pi
M_PI_21.570796327pi/2
M_PI_40.785398163pi/4
M_1_PI0.3183098861/pi
M_2_PI0.6366197722/pi
M_2_SQRTPI1. 1283791672/корень(pi)
M_SQRT21.414213562корень(2)
M_SQRT1_20.7071067811/корень(2)
NAN__builtin_nan(“”)nan
INFINITY__builtin_inf()infinity

Функции

ФункцияОписание
cos (double x)Косинус (радианы)
sin (double x)Синус (радианы)
tan (double x)Тангенс (радианы)
fabs (double x)Модуль для float чисел
fmod (double x, double y)Остаток деления x на у для float
modf (double x, double *iptr)Возвращает дробную часть, целую хранит по адресу iptr http://cppstudio. com/post/1137/
modff (float x, float *iptr)То же самое, но для float
sqrt (double x)Корень квадратный
sqrtf (float)Корень квадратный для float чисел
cbrt (double x)Кубический корень
hypot (double x, double y)Гипотенуза ( корень(x*x + y*y) )
square (double x)Квадрат ( x*x )
floor (double x)Округление до целого вниз
ceil (double x)Округление до целого вверх
frexp (double x, int *pexp)http://cppstudio. x)
cosh (double x)Косинус гиперболический (радианы)
sinh (double x)Синус гиперболический (радианы)
tanh (double x)Тангенс гиперболический (радианы)
acos (double x)Арккосинус (радианы)
asin (double x)Арксинус (радианы)
atan (double x)Арктангенс (радианы)
atan2 (double y, double x)Арктангенс (y / x) (позволяет найти квадрант, в котором находится точка)
log (double x)Натуральный логарифм х ( ln(x) )
log10 (double x)Десятичный логарифм x ( log_10 x)
pow (double x, double y)Степень ( x^y )
isnan (double x)Проверка на nan (1 да, 0 нет)
isinf (double x)Возвр. 1 если x +бесконечность, 0 если нет
isfinite (double x)Возвращает ненулевое значение только в том случае, если аргумент имеет конечное значение
copysign (double x, double y)Возвращает x со знаком y (знак имеется в виду + -)
signbit (double x)Возвращает ненулевое значение только в том случае, если _X имеет отрицательное значение
fdim (double x, double y)Возвращает разницу между x и y, если x больше y, в противном случае 0
fma (double x, double y, double z)Возвращает x*y + z
fmax (double x, double y)Возвращает большее из чисел
fmin (double x, double y)Возвращает меньшее из чисел
trunc (double x)Возвращает целую часть числа с дробной точкой
round (double x)Математическое округление
lround (double x)Математическое округление (для больших чисел)
lrint (double x)Округляет указанное значение с плавающей запятой до ближайшего целого значения, используя текущий режим округления и направление

3333″ data-lineheight=»35.2px»>Что есть ещё

Далее уже от самих разработчиков Arduino есть ещё маленький пакетик удобных макро-функций!

МакроЗначение
min(a,b)Возвращает меньшее из чисел
max(a,b)Возвращает большее из чисел
abs(x)Модуль числа
constrain(value,min,max)Ограничить диапазон числа value до min и max
map(val, fromMin, fromMax, toMin, toMax)Перевести диапазон числа value от (fromMin, fromMax) в (toMin, toMax)
round(x)Математическое округление
radians(deg)Перевод градусов в радианы
degrees(rad)Перевод радиан в градусы
sq(x)Квадрат числа
PIПи
HALF_PIпол Пи
TWO_PIдваПи
DEG_TO_RADКонстанта перевода град в рад 0. 01745329
RAD_TO_DEGКонстанта перевода рад в град 57.2957786

math.h — frwiki.wiki

math.h — это группа функций из стандартной библиотеки C, которая позволяет использовать набор основных математических функций с использованием чисел с  плавающей запятой . Различные стандарты C реализуют их по-разному, но всегда остаются обратно совместимыми. Большинство этих функций также доступны в  стандартной библиотеке C ++ , хотя и в отдельном заголовке (заголовки C включены, но только для совместимости).

Резюме

  • 1 Обзор функций
    • 1.1 Среда с плавающей точкой
    • 1.2 Комплексные числа
    • 1.3 Генерация случайных чисел
  • 2 библиотеки в минуту
  • 3 Примечания и ссылки
  • 4 Внешние ссылки

Обзор функций

Большинство функций содержится в заголовке math.h (или в заголовке cmath в C ++). Функции, которые работают с целыми числами, такие как abs , labs , div или ldiv , указаны в stdlib.

h ( cstdlib в C ++).

Все функции, которые включают углы, используют радиан как единицу измерения.

Не все функции присутствуют в версии C89 стандарта C. Для тех, которые есть, функции принимают только тип double для операций с числами с плавающей запятой. В стандарте C99 это ограничение было снято путем введения новой серии функций, работающих с параметрами типа  float или long double . Эти функции могут быть обозначены суффиксом f или l соответственно .

ФункцияОписание
abs
labs
llabs
вычисляет абсолютное значение целого числа
fabsвычислить абсолютное значение числа типа float
div
ldiv
lldiv
вычислить частное и остаток от евклидова деления
fmod
остаток от деления чисел с плавающей запятой
remainderподписанный остаток от операции деления
remquoостается подписанным, а также последние три бита операции деления
fmaУмножить, затем сложить (Умножить-накопить)
fmaxмаксимум два значения с плавающей запятой
fminминимум два значения с плавающей запятой
fdimположительная разница двух значений с плавающей запятой
nan
nanf
nanl
Возвращает не-число (NaN)
Экспоненциальные функции expвозвращает e в запрошенной степени
exp2возвращает 2 в запрошенной степени
expm1возвращает e high до запрошенной мощности минус 1
logвычислить натуральный логарифм (по основанию е)
log2вычислить двоичный логарифм (по основанию 2)
log10вычислить десятичный логарифм (по основанию 10)
log1pвычислить натуральный логарифм (с основанием е) 1 плюс заданное число
ilogbизвлекает экспоненту числа
logbизвлекает экспоненту числа
Силовые функции sqrtвычислить квадратный корень
cbrtвычислить кубический корень
hypotвычислить квадратный корень из суммы квадратов двух заданных чисел
pow
возвести число в указанную степень
Тригонометрические функции sinвычислить синус
cosвычислить косинус
tanвычислить касательную
asinвычислить арксинус
acosвычислить арккосинус
atanвычислить арктангенс
atan2вычислить арктангенс, используя знак для определения квадранта
Гиперболические функции sinhвычислить гиперболический синус
coshвычислить гиперболический косинус
tanhвычислить гиперболический тангенс
asinhвычислить дугу гиперболического синуса
acoshвычислить гиперболический арккосинус
atanhвычислить гиперболический арктангенс
Функция ошибки и гамма-функция erfвычислить функцию ошибок
erfcвычислить дополнительную функцию ошибок
lgammaвычислить натуральный логарифм модуля гамма-функции
tgammaвычислить гамма-функцию
Операции округления ceilвозвращает ближайшее большее целое число
floorвозвращает ближайшее меньшее целое число
truncвозвращает ближайшее целое число, абсолютное значение которого меньше
round
lround
llround
возвращает ближайшее целое число, следуя правилам округления
nearbyintвозвращает ближайшее целое число, используя текущий метод округления
rint
lrint
llrint
возвращает ближайшее целое число, используя текущий метод округления, за исключением случаев, когда результат отличается
Функции для управления числами с плавающей запятой frexpразложите параметр на число и степень двойки
ldexpумножить число на число в степени 2
modfразлагает число на целое и дробную часть.
scalbn
scalbln
умножить число на FLT_RADIX в заданной степени
nextafter
nexttoward
возвращает следующее значение, которое может быть представлено как плавающая точка
copysignкопирует знак числа с плавающей запятой
Классификация fpclassifyклассифицирует значение с плавающей запятой
isfiniteпроверяет, имеет ли данное число конечное значение
isinfпроверяет, имеет ли данное число бесконечное значение
isnanпроверьте, является ли данное число NaN
isnormalпроверьте, является ли данный номер нормальным
signbitпроверяет, является ли данное число отрицательным

Среда с плавающей запятой

C99 добавляет несколько функций и типов для более точного управления средой с плавающей запятой.

Эти функции могут использоваться для управления рядом параметров, которые влияют на вычисления с числами с плавающей запятой, например, режим округления, когда числа должны быть сброшены, и т. Д. Эти функции определены в fenv.h заголовке ( cfenv в C ++ ).

ФункцияОписание
feclearexceptудалить исключения (C99)
fegetenvсохраняет текущую среду (C99)
fegetexceptflagсохранить флаги состояния (C99)
fegetroundполучить текущее направление округления (C99)
feholdexceptсохранить текущую среду и очистить исключения (C99)
feraiseexceptвызвать исключение (C99)
fesetenv
настраивает среду (C99)
fesetexceptflagустанавливает флаг состояния (C99)
fesetroundвыберите направление округления (C99)
fetestexceptпроверить, не возникли ли какие-либо исключения (C99)
feupdateenvвосстановить среду, сохраняя поднятые исключения (C99)

Комплексные числа

C99 добавляет новое ключевое слово _Complex (и сложный макрос для удобства), который используется для обработки комплексных чисел. Они представлены в виде двух чисел с плавающей запятой.

C ++ не обеспечивает обратной совместимости для комплексных чисел, но предоставляет класс std :: complex .

Все операции с комплексными числами определены в заголовке complex.h . Что касается функций с целыми числами, суффиксы f и l представляют собой варианты функции, использующие комплексный тип float и длинный двойной комплексный типы соответственно .

ФункцияОписание
Основные операции cabsрассчитать абсолютное значение (C99)
cargвычислить аргумент (C99)
cimagвозвращает мнимую часть комплексного числа (C99)
crealвозвращает действительную часть комплексного числа (C99)
conjвозвращает  сопряжение комплексного числа (C99)
cprojвычислить проекцию комплексного числа на сферу Римана (C99)
Экспоненциальные операции cexpвычислить экспоненту комплексного числа (C99)
clog
вычислить логарифм комплексного числа (C99)
csqrtвычислить квадратный корень комплексного числа (C99)
cpowвычислить мощность комплексного числа (С99)
Тригонометрические операции csinвычислить синус комплексного числа (C99)
ccosвычислить косинус комплексного числа (C99)
ctanвычислить тангенс комплексного числа (C99)
casinвычислить арксинус комплексного числа (C99)
cacosвычислить арккосинус комплексного числа (C99)
catanвычислить арктангенс комплексного числа (C99)
Гиперболические операции csinhвычислить гиперболический синус комплексного числа (C99)
ccoshвычислить гиперболический косинус комплексного числа (C99)
ctanhвычислить гиперболический тангенс комплексного числа (C99)
casinhвычислить гиперболический арксинус комплексного числа (C99)
cacoshвычислить гиперболический арккосинус комплексного числа (C99)
catanhвычислить гиперболический арктангенс комплексного числа (C99)

Генерация случайных чисел

Заголовок stdlib. h ( cstdlib в C ++) определяет несколько функций, которые можно использовать для генерации статических случайных чисел.

ФункцияОписание
randгенерирует псевдослучайное число
srandинициализирует генератор псевдослучайных чисел

libm

В Linux и FreeBSD математические функции (объявленные в math.h ) сгруппированы отдельно в математической библиотеке libm . Так что, если какие — либо из этих функций используется, -lm директива должна быть добавлена к линкеру.

Примечания и ссылки

  1. (in) Спецификация ISO / IEC 9899: 1999 ( читать онлайн ) , стр. 212, § 7.12.
  2. (in) Стивен Прата , приоритет C над: включает индекс , Sams Publishing,, 959  с. ( ISBN  0-672-32696-5 ) , Приложение B, Раздел V: Стандартная библиотека ANSI C с дополнениями C99.
  3. (in) Спецификация ISO / IEC 9899: 1999 ( читать онлайн ) , стр. 212, § 7.12.
  4. ↑ Стивен Прата , C primer plus: Includes Index , Sams Publishing,, 959  с. ( ISBN  0-672-32696-5 ) , Приложение B, Раздел VIII: Расширения числовых вычислений C99.
  5. (in) Стивен Прата , приоритет C над: включает индекс , Sams Publishing,, 959  с. ( ISBN  0-672-32696-5 ) , Приложение B, Раздел VIII: Расширения числовых вычислений C99.
  6. ↑ «  Библиотека GNU C — ISO Random  » (по состоянию на 18 июля 2018 г. ) .
  • (fr) Эта статья частично или полностью взята из статьи в Википедии на английском языке, озаглавленной «  Математические функции C  » ( см. список авторов ) .

Внешние ссылки

  • math.h  : математические объявления — Справочник по базовым определениям , Единая спецификация UNIX® , выпуск 7 от The Open Group
  • Справочник C по математическим функциям
<img src=»//fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1×1″ alt=»» title=»»>

функций Math.h в библиотеке C | Темы Scaler

Учебник по C

Функции Math.h в библиотеке C

Функции Math. h в библиотеке C

share-outline Курс C++: Learn the Essentials

By Prateek Narang

Бесплатно

Зачислено:

1000

Курс C++: Learn the Essentials

Prateek Narang

Бесплатно

Начать обучение

9 0030 Обзор

Язык программирования C был разработан для поддержки структурного программирования, поскольку он предназначен для работы с большими программными системами. Стандартная библиотека C включала группу функций, определенных в заголовочном файле, которые поддерживают основные потребности разработчиков в создании решений и эффективном решении проблемы с нужным уровнем абстракции. Один из наиболее часто используемых заголовков в стандартной библиотеке C — это предопределенные функции в модуле math.h, который определяет общие математические функции.

Важные функции библиотеки C math.h

Выполнение математических операций является частой задачей при формулировании исполняемого решения в форме программы C. Вычисления лежат в основе всех программных систем, поэтому язык программирования должен предоставлять набор необходимых символов для выражения режима вычислений. В попытке минимизировать размер языка в ядре определены операции высшего уровня — операторы отношения, арифметические операторы и логические операторы — в то время как различные расширения могут выполняться с помощью стандартной библиотеки C.

В таблице обобщается набор важных математических функций, определенных в заголовочном файле math.h.

9005 3 double log10(double x)
Математические обозначения Подпись функции Описание
⌈x⌉\lceil x \rceil⌈x⌉ double ceil(double x) функция, возвращающая наименьшее целое значение, большее или равное xxx, типа double
⌊x⌋\lfloor x \rfloor⌊x⌋ double floor(double x) функция, возвращающая наибольшее целочисленное значение, меньшее или равное xxx, типа double
IxxxI double fabs(double) функция, вычисляющая абсолютное значение xxx типа double
ln ⁡(x)\ln(x)ln(x) double log(double x) функция, вычисляющая натуральный логарифм xxx
log⁡10(x)\log_{10}(x)log10​(x) функция, вычисляющая логарифм xxx по основанию 10 9{-1}(x)cos−1(x) double acos(double x) функция, вычисляющая арккосинус xxx
tanh⁡(x)\tanh(x)tanh(x) double tanh( double x) функция, которая оценивает гиперболический тангенс в точке xxx

Заголовок math. h также предоставляет набор предопределенных констант/макросов, обобщенных в таблице ниже.

Символ Выражение
M_E eee
M_LOG2E log⁡2(e)\log_2(e)log2​(e)
M_LOG10E 9 0054 log⁡10(e)\log_{10}(e)log10​(e)
M_LN2 ln⁡(2)\ln(2)ln(2)
M_L N10 ln⁡(10)\ln(10)ln(10)
M_PI π\piπ
M_PI_2 π2\frac{\pi}{2}2π​
M_PI_4 π4\frac{\pi}{4}4π​
M_1_PI 1π\frac{1}{\pi}π1​
M_2_PI 2π\frac{2}{\pi}π2​
M_2_SQRTPI 2π\sqrt{\frac{2}{\pi}}π2​​
M_SQRT2 2\sqrt{2}2​
M_SQRT1_2 12\frac{1}{\sqrt{2}}2​1​

Давайте рассмотрим несколько простых примеров и ознакомимся с тем, как мы можем использовать предопределенные математические функции в math. h.

Пример кода: ceil, floor и fabs

Приведенный выше код дает следующий результат:

Пример кода: log и log10

Результат приведенного выше кода выглядит следующим образом:

Пример кода: sqrt, exp и pow

90 004 Вычисление кода даст нам:

Пример кода: cos, acos и tanh

Вычисление некоторых тригонометрических выражений даст:

Пример кода: modf и fmod

Вычисление кода даст:

Резюме

  • Дизайн C был экономичным, потому что он дает вам необходимые инструменты для решения вашей проблемы, не создавая слишком большого «раздувания» вашей системы.
  • Стандартная библиотека C предоставляет набор инструментов, расширяющих язык C для достаточного решения имеющейся проблемы.
  • Заголовочный файл math.h содержит набор математических функций, позволяющих решать задачи на достаточном уровне абстракции. Другими словами, если вы хотите выразить функцию double pow(double x, double y), вам не нужно думать о реализации функции, которая выполняет вычисления для pow(), вместо этого вы можете добавить библиотеку и использовать функцию.
Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *