Поддержка 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++?