mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-09 23:45:36 +00:00
Fixing endian on linux I hope
This commit is contained in:
parent
b32c14b433
commit
47292de769
@ -17,6 +17,7 @@ AC_PROG_RANLIB
|
|||||||
AC_CHECK_HEADERS(stdint.h)
|
AC_CHECK_HEADERS(stdint.h)
|
||||||
AC_CHECK_HEADERS(malloc/malloc.h)
|
AC_CHECK_HEADERS(malloc/malloc.h)
|
||||||
AC_CHECK_HEADERS(malloc.h)
|
AC_CHECK_HEADERS(malloc.h)
|
||||||
|
AC_CHECK_HEADERS(endian.h)
|
||||||
|
|
||||||
# Checks for typedefs, structures, and compiler characteristics.
|
# Checks for typedefs, structures, and compiler characteristics.
|
||||||
AC_TYPE_SIZE_T
|
AC_TYPE_SIZE_T
|
||||||
@ -25,8 +26,6 @@ AC_TYPE_UINT64_T
|
|||||||
|
|
||||||
# Checks for library functions.
|
# Checks for library functions.
|
||||||
AC_CHECK_FUNCS([gettimeofday])
|
AC_CHECK_FUNCS([gettimeofday])
|
||||||
AC_CHECK_FUNCS([ntohll])
|
|
||||||
AC_CHECK_FUNCS([be64toh])
|
|
||||||
|
|
||||||
AC_ARG_ENABLE([simd],[AC_HELP_STRING([--enable-simd=SSE|AVX|AVX2|AVX512],[Select instructions])],[ac_SIMD=${enable_simd}],[ac_SIMD=AVX2])
|
AC_ARG_ENABLE([simd],[AC_HELP_STRING([--enable-simd=SSE|AVX|AVX2|AVX512],[Select instructions])],[ac_SIMD=${enable_simd}],[ac_SIMD=AVX2])
|
||||||
|
|
||||||
|
@ -6,7 +6,13 @@
|
|||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
|
#ifdef HAVE_ENDIAN_H
|
||||||
|
#include <endian.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
#define ntohll be64toh
|
||||||
|
#else
|
||||||
|
#include <arpa/inet.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace Grid {
|
namespace Grid {
|
||||||
|
|
||||||
@ -177,14 +183,14 @@ inline void reconstruct3(LorentzColourMatrix & cm)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void inline be32toh(void *file_object,uint32_t bytes)
|
void inline be32toh_v(void *file_object,uint32_t bytes)
|
||||||
{
|
{
|
||||||
uint32_t * f = (uint32_t *)file_object;
|
uint32_t * f = (uint32_t *)file_object;
|
||||||
for(int i=0;i*sizeof(uint32_t)<bytes;i++){
|
for(int i=0;i*sizeof(uint32_t)<bytes;i++){
|
||||||
f[i] = ntohl(f[i]);
|
f[i] = ntohl(f[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void inline le32toh(void *file_object,uint32_t bytes)
|
void inline le32toh_v(void *file_object,uint32_t bytes)
|
||||||
{
|
{
|
||||||
uint32_t *fp = (uint32_t *)file_object;
|
uint32_t *fp = (uint32_t *)file_object;
|
||||||
|
|
||||||
@ -197,14 +203,14 @@ inline void reconstruct3(LorentzColourMatrix & cm)
|
|||||||
fp[i] = ntohl(f);
|
fp[i] = ntohl(f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void inline be64toh(void *file_object,uint32_t bytes)
|
void inline be64toh_v(void *file_object,uint32_t bytes)
|
||||||
{
|
{
|
||||||
uint64_t * f = (uint64_t *)file_object;
|
uint64_t * f = (uint64_t *)file_object;
|
||||||
for(int i=0;i*sizeof(uint64_t)<bytes;i++){
|
for(int i=0;i*sizeof(uint64_t)<bytes;i++){
|
||||||
f[i] = ntohll(f[i]);
|
f[i] = ntohll(f[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void inline le64toh(void *file_object,uint32_t bytes)
|
void inline le64toh_v(void *file_object,uint32_t bytes)
|
||||||
{
|
{
|
||||||
uint64_t *fp = (uint64_t *)file_object;
|
uint64_t *fp = (uint64_t *)file_object;
|
||||||
uint64_t f,g;
|
uint64_t f,g;
|
||||||
@ -387,10 +393,10 @@ inline void readNerscObject(Lattice<vobj> &Umu,std::string file,munger munge,int
|
|||||||
if ( grid->IsBoss() ) {
|
if ( grid->IsBoss() ) {
|
||||||
fin.read((char *)&file_object,sizeof(file_object));
|
fin.read((char *)&file_object,sizeof(file_object));
|
||||||
|
|
||||||
if(ieee32big) be32toh((void *)&file_object,sizeof(file_object));
|
if(ieee32big) be32toh_v((void *)&file_object,sizeof(file_object));
|
||||||
if(ieee32) le32toh((void *)&file_object,sizeof(file_object));
|
if(ieee32) le32toh_v((void *)&file_object,sizeof(file_object));
|
||||||
if(ieee64big) be64toh((void *)&file_object,sizeof(file_object));
|
if(ieee64big) be64toh_v((void *)&file_object,sizeof(file_object));
|
||||||
if(ieee64) le64toh((void *)&file_object,sizeof(file_object));
|
if(ieee64) le64toh_v((void *)&file_object,sizeof(file_object));
|
||||||
|
|
||||||
munge(file_object,munged,csum);
|
munge(file_object,munged,csum);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user