Skip to content
Snippets Groups Projects
Commit 5641974f authored by Uwe Schulzweida's avatar Uwe Schulzweida
Browse files

Removed float16.h

parent 77ebbbe3
No related branches found
No related tags found
1 merge request!85M214003/develop
Pipeline #70185 passed
......@@ -50,7 +50,6 @@ list( APPEND cdi_src_files
exse.h
extra.h
extralib.c
float16.h
file.c
file.h
gaussian_latitudes.c
......
......@@ -127,7 +127,6 @@ libcdi_la_SOURCES = \
exse.h \
extra.h \
extralib.c \
float16.h \
file.c \
file.h \
gaussian_latitudes.c \
......
#include "cdi.h"
#define CDI_BIGENDIAN 0 // Byte order BIGENDIAN
#define CDI_LITTLEENDIAN 1 // Byte order LITTLEENDIAN
#include "error.h"
#include "file.h"
#include "swap.h"
......@@ -173,7 +174,7 @@ binWriteFlt64(int fileID, int byteswap, size_t size, double *ptr)
return 0;
}
#ifdef HAVE_FLOAT16
#ifdef HAVE__FLOAT16
int
binWriteFlt16(int fileID, int byteswap, size_t size, _Float16 *ptr)
{
......
#ifndef BINARY_H
#define BINARY_H
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <stdio.h>
#include <inttypes.h>
#include "float16.h"
#ifndef HOST_ENDIANNESS
#ifdef __cplusplus
......@@ -31,7 +34,7 @@ int binWriteInt64(int fileID, int byteswap, size_t size, int64_t *ptr);
int binWriteFlt32(int fileID, int byteswap, size_t size, float *ptr);
int binWriteFlt64(int fileID, int byteswap, size_t size, double *ptr);
#ifdef HAVE_FLOAT16
#ifdef HAVE__FLOAT16
int binWriteFlt16(int fileID, int byteswap, size_t size, _Float16 *ptr);
#endif
......
#ifndef _EXTRA_H
#define _EXTRA_H
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
enum
{
EXT_REAL = 1,
......@@ -39,8 +43,7 @@ int extDefHeader(void *ext, const int *header);
int extDefDataFP32(void *ext, const float *data);
int extDefDataFP64(void *ext, const double *data);
#include "float16.h"
#ifdef HAVE_FLOAT16
#ifdef HAVE__FLOAT16
int extInqDataFP16(void *ext, _Float16 *data);
int extDefDataFP16(void *ext, const _Float16 *data);
#endif
......
......@@ -10,7 +10,6 @@
#include "binary.h"
#include "exse.h"
#include "swap.h"
#include "float16.h"
enum
{
......@@ -237,7 +236,7 @@ extInqData(extrec_t *extp, int prec, void *data)
memcpy(data, buffer, datasize * prec);
else if (EXSE_PREC_FP64 == prec)
for (size_t i = 0; i < datasize; ++i) ((double *) data)[i] = (double) ((float *) buffer)[i];
#ifdef HAVE_FLOAT16
#ifdef HAVE__FLOAT16
else if (EXSE_PREC_FP16 == prec)
for (size_t i = 0; i < datasize; ++i) ((_Float16 *) data)[i] = (_Float16) ((float *) buffer)[i];
#endif
......@@ -250,13 +249,13 @@ extInqData(extrec_t *extp, int prec, void *data)
memcpy(data, buffer, datasize * prec);
else if (EXSE_PREC_FP32 == prec)
for (size_t i = 0; i < datasize; ++i) ((float *) data)[i] = (float) ((double *) buffer)[i];
#ifdef HAVE_FLOAT16
#ifdef HAVE__FLOAT16
else if (EXSE_PREC_FP16 == prec)
for (size_t i = 0; i < datasize; ++i) ((_Float16 *) data)[i] = (_Float16) ((double *) buffer)[i];
#endif
break;
#ifdef HAVE_FLOAT16
#ifdef HAVE__FLOAT16
case EXSE_PREC_FP16:
if (EXSE_PREC_FP16 == prec)
memcpy(data, buffer, datasize * prec);
......@@ -288,7 +287,7 @@ extInqDataFP64(void *ext, double *data)
{
return extInqData((extrec_t *) ext, EXSE_PREC_FP64, (void *) data);
}
#ifdef HAVE_FLOAT16
#ifdef HAVE__FLOAT16
int
extInqDataFP16(void *ext, _Float16 *data)
{
......@@ -326,7 +325,7 @@ extDefData(void *ext, int prec, const void *data)
memcpy(extp->buffer, data, datasize * prec);
else if (EXSE_PREC_FP64 == prec)
for (size_t i = 0; i < datasize; i++) ((float *) extp->buffer)[i] = (float) ((double *) data)[i];
#ifdef HAVE_FLOAT16
#ifdef HAVE__FLOAT16
else if (EXSE_PREC_FP16 == prec)
for (size_t i = 0; i < datasize; i++) ((float *) extp->buffer)[i] = (float) ((_Float16 *) data)[i];
#endif
......@@ -338,13 +337,13 @@ extDefData(void *ext, int prec, const void *data)
memcpy(extp->buffer, data, datasize * prec);
else if (EXSE_PREC_FP32 == prec)
for (size_t i = 0; i < datasize; i++) ((double *) extp->buffer)[i] = (double) ((float *) data)[i];
#ifdef HAVE_FLOAT16
#ifdef HAVE__FLOAT16
else if (EXSE_PREC_FP16 == prec)
for (size_t i = 0; i < datasize; i++) ((double *) extp->buffer)[i] = (double) ((_Float16 *) data)[i];
#endif
break;
}
#ifdef HAVE_FLOAT16
#ifdef HAVE__FLOAT16
case EXSE_PREC_FP16:
{
if (EXSE_PREC_FP16 == prec)
......@@ -378,7 +377,7 @@ extDefDataFP64(void *ext, const double *data)
{
return extDefData(ext, EXSE_PREC_FP64, (void *) data);
}
#ifdef HAVE_FLOAT16
#ifdef HAVE__FLOAT16
int
extDefDataFP16(void *ext, const _Float16 *data)
{
......@@ -533,7 +532,7 @@ extWrite(int fileID, void *ext)
switch (rprec)
{
#ifdef HAVE_FLOAT16
#ifdef HAVE__FLOAT16
case EXSE_PREC_FP16:
{
binWriteFlt16(fileID, byteswap, extp->datasize, (_Float16 *) extp->buffer);
......
#ifndef FLOAT16_H
#define FLOAT16_H
// CAUTION: __is_identifier behaves opposite how you would expect!
// '__is_identifier' returns '0' if '__x' is a reserved identifier provided by
// the compiler and '1' otherwise.
// borrowed from LLVM __config header under Apache license 2.
// (https://www.mend.io/blog/top-10-apache-license-questions-answered/)
#ifndef __is_identifier // Optional of course.
#define __is_identifier(x) 1 // Compatibility with non-clang compilers.
#endif
// More sensible macro for keyword detection
#define __has_keyword(__x) !(__is_identifier(__x))
// map a half float type, if available, to _OptionalHalfFloatType
#if __has_keyword(_Float16)
#define HAVE_FLOAT16
#endif
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment