Spec-Zone.ru › Nim

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API