Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

FPGETROUND(3C)

НАЗВАНИЕ
fpgetround, fpsetround, fpgetmask, fpsetmask, fpgetsticky, fpsetsticky - управление окружением выполнения операций с плавающей точкой (стандарт IEEE)

СИНТАКСИС


	#include <ieeefp.h>

	

	typedef enum fp_rnd {

	   FP_RN = 0,           /* округление до ближайшего */

	   FP_RP = 1,           /* округление до большего   */

	   FP_RM = 2,           /* округление до меньшего   */

	   FP_RZ = 3            /* округление до целого     */

	   } fp_rnd;

	

	   fp_rnd fpsetround ( );

	

	   fp_rnd fpsetround (rnd_dir)

	   fp_rnd rnd_dir;

	

	   #define fp_exept   int

	   #define FP_X_INV   0x10  /* некорректная операция */

	   #define FP_X_OFL   0x08  /* переполнение          */

	   #define FP_X_UFL   0x04  /* потеря значимости     */

	   #define FP_X_DZ    0x02  /* деление на нуль       */

	   #define FP_X_IMP   0x01  /* потеря точности       */

	

	   fp_exept fpgetmask ( );

	

	   fp_exept fpsetmask (mask);

	   fp_exept mask;

	

	   fp_exept fpgetsticky ( );

	

	   fp_exept fpsetsticky (sticky);

	   fp_exept sticky;

ОПИСАНИЕ
Существуют пять исключительных ситуаций, возникающих при выполнении операций с плавающей точкой: деление на нуль, переполнение, потеря значимости, потеря точности и некорректная операция. Когда встречается одна из перечисленных исключительных ситуаций, взводится соответствующий бит навязчивости, и, если взведен соответствующий бит в маске, происходит прерывание. Описываемые функции позволяют изменять реакцию на исключительные ситуации, а также изменять режим округления при выполнении операций с плавающей точкой.

Функция fpgetround( ) возвращает текущий режим округления.

Функция fpsetround( ) устанавливает новый режим округления и возвращает предыдущий режим.

Функция fpgetmask( ) возвращает текущую маску для обработки исключительных ситуаций.

Функция fpsetmask( ) устанавливает новую маску и возвращает предыдущее значение маски.

Функция fpgetsticky( ) возвращает текущие значения бит навязчивости.

Функция fpsetsticky( ) устанавливает (или сбрасывает) биты навязчивости и возвращает предыдущие значения.

СМ. ТАКЖЕ
isnan(3C).

ПРЕДОСТЕРЕЖЕНИЯ
Функции fpsetsticky( ) и fpsetmask( ) изменяют все биты навязчивости или все биты маски соответственно.

Для преобразования числа с плавающей точкой в целое в таких языках программирования как C и Фортран-77 необходимо установить режим округления до целого.

ОГРАНИЧЕНИЯ
Чтобы продолжить выполнение после прерывания, необходимо сбросить взведенный бит навязчивости. Если не сделать этого до следующего прерывания, то будет неправильно определен его тип.

Аналогично, перед вызовом fpsetmask( ) необходимо сбросить взведенные биты маски.

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...