Поддержка C++ _Float16

Я хочу выполнять вычисления с плавающей точкой половинной точности на Jetson AGX Xavier(с архитектурой armv8.2), который изначально поддерживает плавающую точку половинной точности. Поскольку тип данных _Float16 является арифметическим типом данных для чисел с плавающей запятой половинной точности, я написал следующий пример:

#include <stdio.h>
#include <math.h>


int main()
{

  _Float16 x = 38808.5;
  _Float16 y = 33096;
  _Float16 res;

  res=333.75*y*y*y*y*y*y+4*x*x*(11*4*x*x*y*y-y*y*y*y*y*y-121*y*y*y*y-2.0)   
    +5.5*y*y*y*y*y*y*y*y+2*x/(2*y);

  printf("%e\n", (double)res);
   return 0;
}

Используя gcc-7, я могу успешно скомпилировать и запустить его, но с g++-7 я получил ошибку:

‘_Float16’ was not declared in this scope

Согласно этой ссылке, похоже, что _Float16 не поддерживается C++. Мне было интересно, есть ли альтернатива использованию типа данных _Float16 в C++?

0 ответов

Другие вопросы по тегам