HashTable/HashTablePacked.cpp File Reference

#include "HashTablePacked.h"
#include "SequenceReader.h"
#include "GlobalDefinitions.h"
#include <fstream>
#include <algorithm>
#include <map>
#include <cmath>

Include dependency graph for HashTablePacked.cpp:

Go to the source code of this file.

Functions

void generateSubstitutesDNA (Word w, vector< Word > &subs, int wordLength)
void generateSubstitutesProtein (Word w, vector< Word > &subs, int wordLength)


Function Documentation

void generateSubstitutesDNA ( Word  w,
vector< Word > &  subs,
int  wordLength 
)

Definition at line 98 of file HashTablePacked.cpp.

References gBaseBits.

Referenced by main().

00099 {
00100   Word mask(2);
00101   for (int i(0) ; i < wordLength ; i++, mask<<=gBaseBits)
00102   {
00103     subs.push_back(w^mask);
00104   } // ~for
00105 } // ~generateSubstitutesDNA

Here is the caller graph for this function:

void generateSubstitutesProtein ( Word  w,
vector< Word > &  subs,
int  wordLength 
)

Definition at line 110 of file HashTablePacked.cpp.

References gResidueBits, subStarts, and subVals.

Referenced by HashTableComponent::HashTableComponent(), HashTablePackedProtein::HashTablePackedProtein(), and main().

00111 {
00112   Word mask((1<<gResidueBits)-1), thisCodon, thisWord;
00113   for (int i(0) ; i < wordLength ; i++, mask<<=gResidueBits)
00114   {
00115     thisCodon=((w&mask)>>(i*gResidueBits));
00116     thisWord= (w&(~mask));
00117     //    cout << ~mask << " " << printResidue( thisWord, wordLength )
00118     // << " " << printResidue( thisCodon, wordLength) << endl;
00119     for (int j(subStarts[thisCodon]); j != subStarts[thisCodon+1]; j++ )
00120     {
00121       subs.push_back( thisWord | (subVals[j]<<(i*gResidueBits)) );
00122       //  cout << "generating sub: " << printResidue(subs.back(),wordLength)
00123       //  << endl;
00124     } // ~for j
00125   } // ~for i
00126 } // ~generateSubstitutesProtein

Here is the caller graph for this function:


Generated on Fri Dec 21 13:13:58 2007 for ssaha by  doxygen 1.5.2