fixed.
On Jan 28, 2009, at 3:30 PM, Keren Lasker wrote:
> Javi please update the SConsript files as well > > > On Jan 28, 2009, at 3:26 PM, Notification of IMP commits wrote: > >> Author: javi@SALILAB.ORG >> Date: 2009-01-28 15:26:55 -0800 (Wed, 28 Jan 2009) >> New Revision: 1333 >> >> Added: >> trunk/modules/em/include/endian.h >> trunk/modules/em/src/endian.cpp >> Log: >> Some small change to complete ImageHeader class >> >> Added: trunk/modules/em/include/endian.h >> =================================================================== >> --- trunk/modules/em/include/endian.h (rev 0) >> +++ trunk/modules/em/include/endian.h 2009-01-28 23:26:55 UTC (rev >> 1333) >> @@ -0,0 +1,61 @@ >> +/** >> + * \file endian.h >> + * \brief functions to deal with endian of EM images >> + * \author Javier Velazquez-Muriel >> + * Copyright 2007-8 Sali Lab. All rights reserved. >> +*/ >> + >> +#ifndef IMPEM_ENDIAN_H >> +#define IMPEM_ENDIAN_H >> + >> +#include "em_exports.h" >> +#include <iostream> >> +#include <fstream> >> +#include <cstring> >> +#include <cstdio> >> + >> +IMPEM_BEGIN_NAMESPACE >> + >> +//! Reads from file in normal or reverse order >> +/** \ingroup LittleBigEndian >> + * \param[in] reverse If true, the data will be read in reverse >> order. >> + */ >> +void reversed_read(void *dest, size_t size, size_t nitems, >> std::ifstream& f, >> + bool reverse); >> + >> +//! Writes to a file in normal or reversed order >> +/** >> + * \ingroup LittleBigEndian >> + * >> + * This function is the same as fread from C, but at the end there >> is a flag >> + * saying if data should be read in reverse order or not. >> + * >> + * \param[in] reverse If true, the data will be read in reverse >> order. >> + */ >> +void reversed_write(const void* src,size_t size,size_t nitems, >> + std::ofstream& f,bool reverse = false); >> + >> + >> +//! Conversion between little and big endian. Goes both ways >> +/** >> + * \ingroup LittleBigEndian >> + */ >> +#define little22bigendian(x) byte_swap((unsigned char*)& >> x,sizeof(x)) >> +void byte_swap(unsigned char* b, int n); >> + >> +//! Returns 1 if machine is big endian else 0 >> +/** >> + * \ingroup LittleBigEndian >> + */ >> +bool is_big_endian(void); >> + >> +//! Returns 1 if machine is little endian else 0 >> +/** >> + * \ingroup LittleBigEndian >> + */ >> +bool is_little_endian(void); >> + >> + >> +IMPEM_END_NAMESPACE >> + >> +#endif /* IMPEM_ENDIAN_H */ >> >> Added: trunk/modules/em/src/endian.cpp >> =================================================================== >> --- trunk/modules/em/src/endian.cpp (rev 0) >> +++ trunk/modules/em/src/endian.cpp 2009-01-28 23:26:55 UTC (rev >> 1333) >> @@ -0,0 +1,85 @@ >> +/** >> + * \file endian.cpp >> + * \brief Calculate score based on fit to EM map. >> + * Copyright 2007-8 Sali Lab. All rights reserved. >> +*/ >> + >> +#include <IMP/em/endian.h> >> + >> +IMPEM_BEGIN_NAMESPACE >> + >> +void reversed_read(void *dest, size_t size, size_t nitems, >> std::ifstream& f, >> + bool reverse) >> +{ >> + if (!reverse) { >> + char *ptr = (char *)dest; >> + f.read(ptr,size*nitems); >> + } else { >> + char *ptr = (char *)dest; >> + bool end = false; >> + for (size_t n = 0; n < nitems; n++) { >> + for (int i = size - 1; i >= 0; i--) { >> + f.get(ptr + i,1); >> + if (f.eof() || f.bad()) { >> + end = true; >> + break; >> + } >> + } >> + if (end) { >> + break; >> + } >> + ptr += size; >> + } >> + } >> +} >> + >> +void reversed_write(const void *src, size_t size, size_t nitems, >> + std::ofstream& f,bool reverse) >> +{ >> + if (!reverse) { >> + char *ptr = (char *)src; >> + f.write(ptr,size*nitems); >> + } >> + else { >> + char *ptr = (char *)src; >> + bool end = false; >> + for (size_t n = 0; n < nitems; n++) { >> + for (int i = size - 1; i >= 0; i--) { >> + f.put(*(ptr + i)); >> + if(f.bad()) { >> + end = true; >> + break; >> + } >> + } >> + if (end) { >> + break; >> + } >> + ptr += size; >> + } >> + } >> +} >> + >> +void byte_swap(unsigned char * b, int n) >> +{ >> + register int i = 0; >> + register int j = n - 1; >> + while (i < j) { >> + std::swap(b[i], b[j]); >> + i++, j--; >> + } >> +} >> + >> +bool is_little_endian(void) >> +{ >> + static const unsigned long ul = 0x00000001; >> + return ((int)(*((unsigned char *) &ul))) != 0; >> +} >> + >> + >> +bool is_big_endian(void) >> +{ >> + static const unsigned long ul = 0x01000000; >> + return ((int)(*((unsigned char *) &ul))) != 0; >> +} >> + >> +IMPEM_END_NAMESPACE >> >> _______________________________________________ >> IMP-commits mailing list >> IMP-commits@salilab.org >> https://salilab.org/mailman/listinfo/imp-commits > > _______________________________________________ > IMP-dev mailing list > IMP-dev@salilab.org > https://salilab.org/mailman/listinfo/imp-dev