fenv
Плавающая точка среды. Обработка округления и исключений с плавающей запятой (переполнение, деление на ноль и т. д.).
Типы
Tfenv {...}{.importc: "fenv_t", header: "<fenv.h>", final, pure.} = object- Представляет всю среду с плавающей запятой. Среда с плавающей запятой обобщённо относится к любым флагам состояния с плавающей запятой и режимам управления, поддерживаемым реализацией. Исходный код Изменить
Tfexcept {...}{.importc: "fexcept_t", header: "<fenv.h>", final, pure.} = object- Представляет флаги состояния с плавающей запятой коллективно, включая любые состояния, которые реализация связывает с флагами. Флаг состояния с плавающей запятой — это системная переменная, значение которой устанавливается (но никогда не очищается), когда возникает исключение с плавающей запятой, которое происходит как побочный эффект исключительной арифметики с плавающей запятой для предоставления дополнительной информации. Режим управления с плавающей запятой — это системная переменная, значение которой может быть установлено пользователем для влияния на последующее поведение арифметики с плавающей запятой. Исходный код Изменить
Переменные
FE_DIVBYZERO: cint
- деление на ноль Исходный код Изменить
FE_INEXACT: cint
- неточная операция Исходный код Изменить
FE_INVALID: cint
- недопустимая операция Исходный код Изменить
FE_OVERFLOW: cint
- результат не представим из-за переполнения Исходный код Изменить
FE_UNDERFLOW: cint
- результат не представим из-за подпорогового значения Исходный код Изменить
FE_ALL_EXCEPT: cint
- побитовое ИЛИ всех поддерживаемых исключений Исходный код Изменить
FE_DOWNWARD: cint
- округление к -бесконечности Исходный код Изменить
FE_TONEAREST: cint
- округление к ближайшему значению Исходный код Изменить
FE_TOWARDZERO: cint
- округление к 0 Исходный код Изменить
FE_UPWARD: cint
- округление к +бесконечности Исходный код Изменить
FE_DFL_ENV: cint
- макрос типа указатель на fenv_t для использования в качестве аргумента функциям, принимающим аргумент типа fenv_t; в этом случае будет использоваться стандартная среда Исходный код Изменить
Процедуры
proc feclearexcept(excepts: cint): cint {...}{.importc, header: "<fenv.h>".}- Очистить поддерживаемые исключения, представленные
excepts. Исходный код Изменить proc fegetexceptflag(flagp: ptr Tfexcept; excepts: cint): cint {...}{.importc, header: "<fenv.h>".}- Сохранить определённую реализацией запись флагов исключения, указанных
excepts, в объект, на который указываетflagp. Исходный код Изменить proc feraiseexcept(excepts: cint): cint {...}{.importc, header: "<fenv.h>".}- Вызвать поддерживаемые исключения, представленные
excepts. Исходный код Изменить proc fesetexceptflag(flagp: ptr Tfexcept; excepts: cint): cint {...}{.importc, header: "<fenv.h>".}- Установить полное состояние для исключений, указанных
excepts, в соответствии с представлением в объекте, на который указываетflagp. Исходный код Изменить proc fetestexcept(excepts: cint): cint {...}{.importc, header: "<fenv.h>".}- Определить, какие из подмножества исключений, указанных
excepts, в данный момент установлены. Исходный код Изменить proc fegetround(): cint {...}{.importc, header: "<fenv.h>".}- Получить текущее направление округления. Исходный код Изменить
proc fesetround(roundingDirection: cint): cint {...}{.importc, header: "<fenv.h>".}- Установить направление округления, представленное
roundingDirection. Исходный код Изменить proc fegetenv(envp: ptr Tfenv): cint {...}{.importc, header: "<fenv.h>".}- Сохранить текущую среду с плавающей запятой в объект, на который указывает
envp. Исходный код Изменить proc feholdexcept(envp: ptr Tfenv): cint {...}{.importc, header: "<fenv.h>".}- Сохранить текущую среду в объект, на который указывает
envp, очистить флаги исключений и установить режим непрерывной работы (если доступен) для всех исключений. Исходный код Изменить proc fesetenv(a1: ptr Tfenv): cint {...}{.importc, header: "<fenv.h>".}- Установить среду с плавающей запятой, представленную объектом, на который указывает
envp. Исходный код Изменить proc feupdateenv(envp: ptr Tfenv): cint {...}{.importc, header: "<fenv.h>".}- Сохранить текущие исключения в временном хранилище, установить среду, представленную объектом, на который указывает
envp, и вызвать исключения в соответствии с сохранёнными исключениями. Исходный код Изменить
Шаблоны
template fpRadix(): int
- Значение (целое) основания, используемого для представления любого типа с плавающей точкой на архитектуре, используемой для построения программы. Исходный код Изменить
template mantissaDigits(T: typedesc[float32]): int
- Количество цифр (в системе счисления
floatingPointRadix) в мантиссе 32-битных чисел с плавающей точкой. Исходный код Изменить template digits(T: typedesc[float32]): int
- Количество десятичных цифр, которые могут быть представлены в 32-битном типе с плавающей точкой без потери точности. Исходный код Изменить
template minExponent(T: typedesc[float32]): int
- Минимальный (отрицательный) показатель степени для 32-битных чисел с плавающей точкой. Исходный код Изменить
template maxExponent(T: typedesc[float32]): int
- Максимальный (положительный) показатель степени для 32-битных чисел с плавающей точкой. Исходный код Изменить
template min10Exponent(T: typedesc[float32]): int
- Минимальный (отрицательный) показатель степени в десятичной системе счисления для 32-битных чисел с плавающей точкой. Исходный код Изменить
template max10Exponent(T: typedesc[float32]): int
- Максимальный (положительный) показатель степени в десятичной системе счисления для 32-битных чисел с плавающей точкой. Исходный код Изменить
template minimumPositiveValue(T: typedesc[float32]): float32
- Наименьшее положительное (ненулевое) число, которое может быть представлено в 32-битном типе с плавающей точкой. Исходный код Изменить
template maximumPositiveValue(T: typedesc[float32]): float32
- Наибольшее положительное число, которое может быть представлено в 32-битном типе с плавающей точкой. Исходный код Изменить
template epsilon(T: typedesc[float32]): float32
- Разница между 1.0 и наименьшим числом, большим 1.0, которое может быть представлено в 32-битном типе с плавающей точкой. Исходный код Изменить
template mantissaDigits(T: typedesc[float64]): int
- Количество цифр (в системе счисления
floatingPointRadix) в мантиссе 64-битных чисел с плавающей точкой. Исходный код Изменить template digits(T: typedesc[float64]): int
- Количество десятичных цифр, которые могут быть представлены в 64-битном типе с плавающей точкой без потери точности. Исходный код Изменить
template minExponent(T: typedesc[float64]): int
- Минимальный (отрицательный) показатель степени для 64-битных чисел с плавающей точкой. Исходный код Изменить
template maxExponent(T: typedesc[float64]): int
- Максимальный (положительный) показатель степени для 64-битных чисел с плавающей точкой. Исходный код Изменить
template min10Exponent(T: typedesc[float64]): int
- Минимальный (отрицательный) показатель степени в десятичной системе счисления для 64-битных чисел с плавающей точкой. Исходный код Изменить
template max10Exponent(T: typedesc[float64]): int
- Максимальный (положительный) показатель степени в десятичной системе счисления для 64-битных чисел с плавающей точкой. Исходный код Изменить
template minimumPositiveValue(T: typedesc[float64]): float64
- Наименьшее положительное (ненулевое) число, которое может быть представлено в 64-битном типе с плавающей точкой. Исходный код Изменить
template maximumPositiveValue(T: typedesc[float64]): float64
- Наибольшее положительное число, которое может быть представлено в 64-битном типе с плавающей точкой. Исходный код Изменить
template epsilon(T: typedesc[float64]): float64
- Разница между 1.0 и наименьшим числом, большим 1.0, которое может быть представлено в 64-битном типе с плавающей точкой. Исходный код Изменить
© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/fenv.html