From 5641974f5b59ab218f6892e7ada08f4df5a87f45 Mon Sep 17 00:00:00 2001 From: Uwe Schulzweida <uwe.schulzweida@mpimet.mpg.de> Date: Mon, 10 Jun 2024 09:41:23 +0200 Subject: [PATCH] Removed float16.h --- src/CMakeLists.txt | 1 - src/Makefile.am | 1 - src/binary.c | 5 +++-- src/binary.h | 7 +++++-- src/extra.h | 7 +++++-- src/extralib.c | 19 +++++++++---------- src/float16.h | 21 --------------------- 7 files changed, 22 insertions(+), 39 deletions(-) delete mode 100644 src/float16.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 375e9df15..462d9aa75 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -50,7 +50,6 @@ list( APPEND cdi_src_files exse.h extra.h extralib.c - float16.h file.c file.h gaussian_latitudes.c diff --git a/src/Makefile.am b/src/Makefile.am index db8e2314f..c124470cd 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -127,7 +127,6 @@ libcdi_la_SOURCES = \ exse.h \ extra.h \ extralib.c \ - float16.h \ file.c \ file.h \ gaussian_latitudes.c \ diff --git a/src/binary.c b/src/binary.c index 50d151e0f..d76aff647 100644 --- a/src/binary.c +++ b/src/binary.c @@ -1,4 +1,5 @@ -#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) { diff --git a/src/binary.h b/src/binary.h index cc4992cdb..2cbd83402 100644 --- a/src/binary.h +++ b/src/binary.h @@ -1,9 +1,12 @@ #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 diff --git a/src/extra.h b/src/extra.h index 2104dd4f0..1c586432d 100644 --- a/src/extra.h +++ b/src/extra.h @@ -1,6 +1,10 @@ #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 diff --git a/src/extralib.c b/src/extralib.c index 4f45eccb0..6417483d9 100644 --- a/src/extralib.c +++ b/src/extralib.c @@ -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); diff --git a/src/float16.h b/src/float16.h deleted file mode 100644 index 2e05ad628..000000000 --- a/src/float16.h +++ /dev/null @@ -1,21 +0,0 @@ -#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 -- GitLab