Пространства имён
Варианты
Действия

std::fma

Материал из cppreference.com

<metanoindex/>

 
 
 
Общие математические функции
Функции
Основные операции
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Экспоненциальные функции
(C++11)
(C++11)
(C++11)
(C++11)
Степенные функции
(C++11)
(C++11)
Тригонометрические и гиперболические функции
(C++11)
(C++11)
(C++11)
Ошибка и гамма функции
(C++11)
(C++11)
(C++11)
(C++11)
Операции целочисленного округления с плавающей запятой
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Функции манипуляции с плавающей запятой
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
Классификация/Сравнение
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Макро-константы
(C++11)(C++11)(C++11)(C++11)(C++11)
 
<tbody> </tbody>
Определено в заголовочном файле <cmath>
float fma( float x, float y, float z );
(1) (начиная с C++11)
double fma( double x, double y, double z );
(2) (начиная с C++11)
long double fma( long double x, long double y, long double z );
(3) (начиная с C++11)
Promoted fma( Arithmetic x, Arithmetic y, Arithmetic z );
(4) (начиная с C++11)
#define FP_FAST_FMA /* implementation-defined */
(5) (начиная с C++11)
#define FP_FAST_FMAF /* implementation-defined */
(6) (начиная с C++11)
#define FP_FAST_FMAL /* implementation-defined */
(7) (начиная с C++11)
FMA функции вычисления (x*y) + z, округлые как один тройной операции, в соответствии с
Оригинал:
The fma functions compute (x*y) + z, rounded as one ternary operation, according to the
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Режим округления характеризуется значением FLT_ROUNDS.
Оригинал:
rounding mode characterized by the value of FLT_ROUNDS.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

4)

Если какой-либо из аргументов имеет целый тип, он приведен к double. Если любой другой аргумент long double, то возвращаемый тип long double, иначе это double.
Оригинал:
If any argument has integral type, it is cast to double. If any other argument is long double, then the return type is long double, otherwise it is double.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

5-7)

Если макрос константы FP_FAST_FMAF, FP_FAST_FMA, или FP_FAST_FMAL определены, функция std::fma оценивает быстрее, чем выражение x*y+z для float, double, и long double аргументы, соответственно. Если определено, этих макросов 1 целое.
Оригинал:
If the macro constants FP_FAST_FMAF, FP_FAST_FMA, or FP_FAST_FMAL are defined, the function std::fma evaluates faster than the expression x*y+z for float, double, and long double arguments, respectively. If defined, these macros evaluate to integer 1.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Параметры

x, y, z
с плавающей точкой
Оригинал:
floating point values
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Возвращаемое значение

(x*y) + z, округлые как один тройной операции
Оригинал:
(x*y) + z, rounded as one ternary operation
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

См. также

(C++11)(C++11)(C++11)
остаток со знаком от операции деления
(функция) [править]
(C++11)(C++11)(C++11)
остаток со знаком, а также три последних бита операции деления
(функция) [править]