Описание тега fenv
1
ответ
fegetenv() очищает маску исключений в x86_64-linux
Давайте возьмем следующую программу: #include <stdio.h> #include <fenv.h> int main (void) { fenv_t e; printf ("%d\n", fegetexcept () & FE_INVALID ? 1 : 0); feenableexcept (FE_INVALID); printf ("%d\n", fegetexcept () & FE_INVALID …
20 ноя '13 в 22:37
1
ответ
Существует ли прагма FENV_ACCESS в C++11 и выше?
Читая отчет об ошибке для clang, не поддерживающей прагму FENV_ACCESS, я наткнулся на комментарий: Настройка режима округления без использования #pragma STDC FENV_ACCESS ON вызывает неопределенное поведение. См. C11 7.6.1/2. (Эта прагма не существуе…
25 мар '16 в 10:40
1
ответ
Какая польза от feholdexcept и т. Д.?
Документация (в стандартах) для всех fenv.h довольно запутанно, но меня особенно смущает feholdexcept и концепция "безостановочного режима" для исключения с плавающей запятой. Насколько я могу судить, в любой реализации IEEE с плавающей запятой искл…
12 июн '11 в 13:36
0
ответов
Использование fenv.h в MinGW
Я хочу изменить режим округления с плавающей запятой, используя стандартную библиотеку, как предложено в этом разделе и cppreference. Я использую MingGW как среду. CMake используется для сборки проекта. Мой код: main.cpp: #include <stdio.h> #i…
20 ноя '16 в 14:53
1
ответ
Может ли feenable, кроме как повлиять на производительность программы?
Я хотел бы включить исключения с плавающей запятой в некотором критическом коде, используя fpeenableexcept или _MM_SET_EXCEPTION_MASK (в Mac OS X). Есть ли в x86/x86-64 случаи, когда изменение включенных исключений ухудшит производительность програм…
11 июн '15 в 07:34
1
ответ
Добавление двух чисел с плавающей точкой
Я хотел бы вычислить сумму округленных в большую сторону двух двоичных чисел IEEE 754. С этой целью я написал программу C99 ниже: #include <stdio.h> #include <fenv.h> #pragma STDC FENV_ACCESS ON int main(int c, char *v[]){ fesetround(FE_…
02 июл '14 в 21:48
5
ответов
Исключения с плавающей точкой - ошибка gcc?
Рассмотрим следующий код: #include <fenv.h> #include <stdio.h> int main() { #pragma STDC FENV_ACCESS ON 1.0/0.0; printf("%x\n", fetestexcept(FE_ALL_EXCEPT)); } Я ожидаю, что он напечатает ненулевое значение, соответствующее FE_DIVBYZERO,…
13 июн '11 в 21:47
0
ответов
Почему я генерирую неопределенную ссылку на _fe_dfl_env в 64-битном Cygwin
$ cat test.c #include <stdio.h> #include <fenv.h> int main(int argc, char** argv) { fesetenv(FE_DFL_ENV); } $ gcc -o a.exe test.c /tmp/ccxbZr33.o:test.c:(.rdata$.refptr._fe_dfl_env[.refptr._fe_dfl_env]+0x0): undefined reference to `_fe_d…
25 сен '13 в 16:28
1
ответ
C99 fenv.h для компиляторов MS
Кто-нибудь знает достойную реализацию C99 fenv.h для компиляторов MS? Я предполагаю, что это не будет трудно сделать; Я просто хочу сэкономить время.
10 авг '10 в 08:14
0
ответов
Как поднять различные исключения с плавающей запятой в C?
Я заинтересован в повышении исключений с плавающей запятой, таких как Division by zero, Overflow, Underflow, и т.д. Я думаю, что то, что я пытаюсь сделать, возможно, если мы можем изменить поведение ловушки по умолчанию при возникновении исключения …
27 июн '19 в 06:33
2
ответа
Как создаются ловушки для исключений с плавающей запятой?
Я хочу знать, какой код и файлы в библиотеке glibc отвечают за создание ловушек для исключений с плавающей запятой, когда ловушки включены. В настоящее время GCC для RISC-V не перехватывает исключения с плавающей запятой. Я заинтересован в добавлени…
25 июн '19 в 07:43
2
ответа
C++ установка среды исключения с плавающей запятой
Я изо всех сил пытаюсь установить std::fenv переносимым способом. На основе этой страницы cppreference кажется, чтоfesetexceptflag(const std::fexcept_t*,int)должен помочь мне сделать трюк. С другой стороны, я обнаружил, что GNU также предлагаетfeena…
18 мар '20 в 01:58
0
ответов
feraiseexcept: различное поведение между компиляторами и отсутствие документации для поведения, определяемого реализацией
Пример кода (t91.c): #include <stdio.h> #include <fenv.h> #if _MSC_VER #pragma fenv_access (on) #else #pragma STDC FENV_ACCESS ON #endif void show_fe_exceptions(void) { printf("exceptions raised:"); if(fetestexcept(FE_DIVBYZERO)) printf(…
15 мар '21 в 22:19
0
ответов
Требуется ли предоставление fenv.h соответствующей реализацией (__STDC__ равно 1)?
Простой вопрос: соответствует ли реализация ( __STDC__ 1) требуется для предоставления? Другими словами: если реализация не предоставляет fenv.h, тогда это сделает такую реализацию несоответствующей?
13 май '21 в 13:01
1
ответ
Гарантирует ли режим округления FE_TONEAREST стандарта C, что промежуточные связи округляются до четного?
Я пишу код, который зависит от половинной связи в округлении C до четного. При использовании rint с режимом округления как FE_TONEAREST я не нашел гарантии в стандарте C, в которой говорится, как связи обрабатываются с помощью FE_NEAREST. На страниц…
28 сен '21 в 19:37
1
ответ
Почему fetestexcept в C++ скомпилирован в вызов функции, а не встроен
Я оцениваю использование (очистка и запросы) исключений с плавающей запятой в критически важном для производительности/"горячем" коде. Глядя на полученный двоичный файл, я заметил, что ни GCC, ни Clang не расширяют вызов встроенной последовательност…
25 янв '21 в 20:19
0
ответов
Параллелизм в среде с плавающей запятой в многопоточной среде
У меня есть программа, которая скомпилирована в библиотеке и интегрирована в многопоточную среду. Поскольку вызывающая программа перехватывает исключения, а мне нужна среда с плавающей запятой, совместимая с IEEE754 (без перехвата), я восстанавливаю…
26 авг '22 в 12:39