Spec-Zone.ru › GCC 6

6.11 Дополнительные типы с плавающей точкой

В качестве расширения, GNU C поддерживает дополнительные типы с плавающей точкой, __float80 и __float128 для поддержки 80-битных (XFmode) и 128-битных (TFmode) типов с плавающей точкой. Поддержка дополнительных типов включает арифметические операторы: сложение, вычитание, умножение, деление; унарные арифметические операторы; реляционные операторы; операторы равенства; и преобразования в целые и другие типы с плавающей точкой. Используйте суффикс ‘w’ или ‘W’ в литеральной константе типа __float80 или типа __ibm128. Используйте суффикс ‘q’ или ‘Q’ для _float128.

На целевых платформах i386, x86_64, IA-64 и HP-UX вы можете объявлять комплексные типы, используя соответствующие внутренние комплексные типы, XCmode для типа __float80 и TCmode для типа __float128:

typedef _Complex float __attribute__((mode(TC))) _Complex128;
typedef _Complex float __attribute__((mode(XC))) _Complex80;

Для использования __float128 и __ibm128 на системах PowerPC Linux необходимо использовать -mfloat128. В будущих версиях GCC ожидается, что __float128 будет включено автоматически. Кроме того, в настоящее время существуют проблемы с использованием комплексного типа __float128. После решения этих проблем, вы можете использовать следующий синтаксис для объявления _Complex128 как комплексного типа __float128:

На целевых платформах PowerPC Linux VSX вы можете объявлять комплексные типы, используя соответствующие внутренние комплексные типы, KCmode для типа __float128 и ICmode для типа __ibm128:

typedef _Complex float __attribute__((mode(KC))) _Complex_float128;
typedef _Complex float __attribute__((mode(IC))) _Complex_ibm128;

Не все целевые платформы поддерживают дополнительные типы с плавающей точкой. Типы __float80 и __float128 поддерживаются на целевых платформах x86 и IA-64. Тип __float128 поддерживается на hppa HP-UX. Тип __float128 поддерживается на системах PowerPC 64-битного Linux по умолчанию, если включен набор инструкций вектор-скаляр (VSX).

На платформе PowerPC, __ibm128 предоставляет доступ к расширенному двойному формату IBM, и он предназначен для использования библиотечными функциями, которые обрабатывают преобразования, если/когда long double будет изменен на 128-битный тип с плавающей точкой IEEE.

Далее: Полуточная точность, Предыдущее: Комплексные числа, Вверх: Расширения C [Оглавление][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.5.0/gcc/Floating-Types.html

Spec-Zone.ru

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