std::fma
Материал из cppreference.com
![]() | Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
Определено в заголовочном файле <cmath> | ||
float fma(float x, float y, float z ); | (1) | (начиная с C++11) |
double fma(double x, double y, double z ); | (2) | (начиная с C++11) |
longdouble fma(longdouble x, longdouble y, longdouble 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.
4) Оригинал:
rounding mode characterized by the value of FLT_ROUNDS.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Если какой-либо из аргументов имеет целый тип, он приведен к double. Если любой другой аргумент longdouble, то возвращаемый тип longdouble, иначе это double.
5-7) Оригинал:
If any argument has integral type, it is cast to double. If any other argument is longdouble, then the return type is longdouble, otherwise it is double.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Если макрос константы
FP_FAST_FMAF
, FP_FAST_FMA
, или FP_FAST_FMAL
определены, функция std::fma
оценивает быстрее, чем выражение x*y+z для float, double, и longdouble аргументы, соответственно. Если определено, этих макросов 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 longdouble 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) | остаток со знаком, а также три последних бита операции деления (функция) |