NAMD
Public Member Functions | Public Attributes | List of all members
ExclSigInfo Struct Reference

Public Member Functions

 ExclSigInfo ()
 
 ExclSigInfo (const ExclSigInfo &sig)
 
 ~ExclSigInfo ()
 
void sortExclOffset ()
 
int hash () const
 

Public Attributes

vector< int > fullExclOffset
 
vector< int > modExclOffset
 

Detailed Description

Definition at line 198 of file CompressPsf.C.

Constructor & Destructor Documentation

ExclSigInfo::ExclSigInfo ( )
inline

Definition at line 203 of file CompressPsf.C.

204  {}
ExclSigInfo::ExclSigInfo ( const ExclSigInfo sig)
inline

Definition at line 205 of file CompressPsf.C.

References fullExclOffset, and modExclOffset.

206  {
207  fullExclOffset.clear();
208  for(int i=0; i<sig.fullExclOffset.size(); i++)
209  fullExclOffset.push_back(sig.fullExclOffset[i]);
210 
211  modExclOffset.clear();
212  for(int i=0; i<sig.modExclOffset.size(); i++)
213  modExclOffset.push_back(sig.modExclOffset[i]);
214  }
vector< int > fullExclOffset
Definition: CompressPsf.C:200
vector< int > modExclOffset
Definition: CompressPsf.C:201
ExclSigInfo::~ExclSigInfo ( )
inline

Definition at line 216 of file CompressPsf.C.

217  {
218  fullExclOffset.clear();
219  modExclOffset.clear();
220  }
vector< int > fullExclOffset
Definition: CompressPsf.C:200
vector< int > modExclOffset
Definition: CompressPsf.C:201

Member Function Documentation

int ExclSigInfo::hash ( ) const
inline

Definition at line 228 of file CompressPsf.C.

References circShift().

228  {
229  unsigned int code = 0x1234;
230  unsigned int codesz = 8 * sizeof(int);
231  const unsigned int numFoffset = fullExclOffset.size();
232  const unsigned int numMoffset = modExclOffset.size();
233  const unsigned int numOffsets = numFoffset + numMoffset;
234 
235  // No excluded atoms? Just hash to 0
236  if (numOffsets == 0)
237  return 0;
238 
239  unsigned int shift = codesz / numOffsets;
240  if (shift == 0) shift=1;
241  unsigned int i;
242  for(i=0; i < numFoffset; i++) {
243  code = circShift(code,shift);
244  code ^= fullExclOffset[i];
245  }
246  for(i=0; i < numMoffset; i++) {
247  code = circShift(code,shift);
248  code ^= modExclOffset[i];
249  }
250  return code;
251  }
vector< int > fullExclOffset
Definition: CompressPsf.C:200
unsigned int circShift(unsigned int h, unsigned int by)
Definition: structures.h:186
vector< int > modExclOffset
Definition: CompressPsf.C:201
void ExclSigInfo::sortExclOffset ( )
inline

Definition at line 222 of file CompressPsf.C.

References sort.

Referenced by buildExclusions().

223  {
224  sort(fullExclOffset.begin(), fullExclOffset.end());
225  sort(modExclOffset.begin(), modExclOffset.end());
226  }
vector< int > fullExclOffset
Definition: CompressPsf.C:200
BlockRadixSort::TempStorage sort
vector< int > modExclOffset
Definition: CompressPsf.C:201

Member Data Documentation

vector<int> ExclSigInfo::fullExclOffset

Definition at line 200 of file CompressPsf.C.

Referenced by buildExclusions(), ExclSigInfo(), operator==(), and outputCompressedFile().

vector<int> ExclSigInfo::modExclOffset

Definition at line 201 of file CompressPsf.C.

Referenced by buildExclusions(), ExclSigInfo(), operator==(), and outputCompressedFile().


The documentation for this struct was generated from the following file: