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