#include "GlobalDefinitions.h"Include dependency graph for SequenceEncoder.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Classes | |
| class | SequenceEncoder |
| class | SequenceEncoderDNA |
| class | SequenceEncoderProtein |
| class | SequenceEncoderCodon |
Typedefs | |
| typedef Word | TranslationTable [numPossibleChars] |
| typedef Word | ExpandedTranslationTable [numPossibleChars *numPossibleChars] |
| typedef vector< char > | CodonList |
Functions | |
| static const int | numPossibleChars (1<< 8) |
| static const Word | nv (0xFF) |
| static const Word | firstCharInvalid (1<< 31) |
| static const Word | secondCharInvalid (1<< 30) |
| static const Word | someCharInvalid (firstCharInvalid|secondCharInvalid) |
| static const Word | maskBase (0x3) |
| static const Word | mask2Bases ((maskBase<< gBaseBits)|maskBase) |
| static const Word | maskCodon ((mask2Bases<< gBaseBits)|maskBase) |
| static const char | flaggedChar ('^') |
| ostream & | operator<< (ostream &os, CodonList &c) |
| void | codonize (const WordSequence &in, CodonList &codons, int readingFrame) |
| template<int CODON_SHIFT, int BASE_SHIFT> | |
| Word | getCodonFromWord (const Word &w) |
| void | codonizeAndFlag (const WordSequence &in, CodonList &codons, int readingFrame) |
| void | codonizeAndFlagReverse (const WordSequence &in, CodonList &codons, int readingFrame) |
| void | print (const TranslationTable &tt) |
Variables | |
| static const TranslationTable | ttDNA |
| static const TranslationTable | ttProtein |
| static const TranslationTable | ttCodon |
| static const TranslationTable | ttCodonReverse |
| typedef vector<char> CodonList |
Definition at line 326 of file SequenceEncoder.h.
| typedef Word ExpandedTranslationTable[numPossibleChars *numPossibleChars] |
Definition at line 49 of file SequenceEncoder.h.
| typedef Word TranslationTable[numPossibleChars] |
Definition at line 48 of file SequenceEncoder.h.
| void codonize | ( | const WordSequence & | in, | |
| CodonList & | codons, | |||
| int | readingFrame | |||
| ) |
Definition at line 340 of file SequenceEncoder.cpp.
References gBaseBits, gBasesPerCodon, gBitsPerWord, gCodonBits, WordSequence::getNumBasesInLast(), and gMaxBasesPerWord.
Referenced by MatchAlignerTranslated::createAlignment(), main(), HashTablePackedProtein::matchSequenceTranslatedDNA(), and HashTableTranslated::matchSequenceTranslatedDNA().
00341 { 00342 // cout << "Codonizing for reading frame " << readingFrame << endl; 00343 static const Word mask((1<<gCodonBits)-1); 00344 00345 int shift( gBitsPerWord-gCodonBits-gBaseBits*readingFrame ); 00346 00347 00348 WordSequence::const_iterator i(in.begin()); 00349 // vector<char> codons; 00350 int codonsSoFar(0); 00351 int totalCodons 00352 ( (gMaxBasesPerWord*(in.size()-1) 00353 + in.getNumBasesInLast() - readingFrame)/gBasesPerCodon ); 00354 00355 Word thisCodon; 00356 00357 while( 1 ) 00358 { 00359 00360 if (shift>=0) 00361 { 00362 thisCodon = 0; 00363 } 00364 else 00365 { 00366 thisCodon = (*i<<-shift); 00367 i++; 00368 shift += gBitsPerWord; 00369 } 00370 thisCodon |= (*i>>shift); 00371 thisCodon &= mask; 00372 00373 codons.push_back(thisCodon); 00374 if (++codonsSoFar==totalCodons) break; 00375 if (shift == 0) { shift = gBitsPerWord; i++; } 00376 shift -= gCodonBits; 00377 00378 } // ~while 00379 00380 // pEncoder_->encode( codons ); 00381 00382 00383 } // ~SequenceReaderCodon::codonize
Here is the call graph for this function:

Here is the caller graph for this function:

| void codonizeAndFlag | ( | const WordSequence & | in, | |
| CodonList & | codons, | |||
| int | readingFrame | |||
| ) |
Definition at line 402 of file SequenceEncoder.cpp.
References flaggedChar(), gBaseBits, gCodonBits, gCursedWord, WordSequence::getNumBasesInLast(), gMaxBasesPerWord, gNumReadingFrames, mask2Bases(), and maskBase().
Referenced by HashTableTranslated::countWordsAndGetNames(), HashTableTranslated::hashAllWords(), and main().
00403 { 00404 00405 static const int DNAWordSizeForHashing(gMaxBasesPerWord-1); 00406 00407 int codonsInLast((in.getNumBasesInLast()-readingFrame)/gNumReadingFrames); 00408 00409 // cout << "blx: " << in.size() << " " << in.getNumBasesInLast() << " " << codonsInLast << endl; 00410 int numCodons 00411 ( ( (in.size() == 0) 00412 ? 0 00413 : ((in.size()-1)*DNAWordSizeForHashing)+in.getNumBasesInLast() 00414 -readingFrame ) 00415 / gNumReadingFrames ); 00416 00417 codons.resize(numCodons); 00418 char* pCodon(static_cast<char*>(&(*codons.begin()))); 00419 char* pEnd(static_cast<char*>(&(*codons.end()))); 00420 WordSequence::const_iterator i(in.begin()); 00421 WordSequence::const_iterator lastWord(in.end()-1); 00422 Word toCarry(~0); 00423 Word lastWordFlag(0); 00424 00425 // const Word maskBase(0x3); 00426 // const Word maskCodon((0x3>>4)|(0x3>>2)|(0x3>>4)); 00427 00428 00429 if (readingFrame==0) 00430 { 00431 for( ; i!=lastWord ; ++i ) 00432 { 00433 00434 *(pCodon++) = getCodonFromWord<4,0>(*i); 00435 *(pCodon++) = getCodonFromWord<3,0>(*i); 00436 *(pCodon++) = getCodonFromWord<2,0>(*i); 00437 *(pCodon++) = getCodonFromWord<1,0>(*i); 00438 *(pCodon++) = getCodonFromWord<0,0>(*i); 00439 00440 } // ~for 00441 00442 if (codonsInLast>=1) 00443 *(pCodon++) = getCodonFromWord<4,0>(*i); 00444 if (codonsInLast>=2) 00445 *(pCodon++) = getCodonFromWord<3,0>(*i); 00446 if (codonsInLast>=3) 00447 *(pCodon++) = getCodonFromWord<2,0>(*i); 00448 if (codonsInLast==4) 00449 *(pCodon++) = getCodonFromWord<1,0>(*i); 00450 } // ~if 00451 else if (readingFrame==1) 00452 { 00453 00454 for( ; i!=lastWord ; ++i ) 00455 { 00456 if (toCarry!=~0) 00457 (*pCodon++) = ( ((*i)&gCursedWord)|lastWordFlag ) 00458 ? flaggedChar 00459 : ( toCarry | (((*i) >> (4*gCodonBits + 2*gBaseBits))&maskBase )); 00460 00461 *(pCodon++) = getCodonFromWord<3,2>(*i); 00462 *(pCodon++) = getCodonFromWord<2,2>(*i); 00463 *(pCodon++) = getCodonFromWord<1,2>(*i); 00464 *(pCodon++) = getCodonFromWord<0,2>(*i); 00465 00466 lastWordFlag = (*i)&gCursedWord; 00467 toCarry = ((*i)& mask2Bases) << gBaseBits; 00468 00469 } // ~for 00470 if (in.getNumBasesInLast() >= readingFrame ) 00471 { 00472 *(pCodon++) = ( ((*i)&gCursedWord)|lastWordFlag ) 00473 ? flaggedChar 00474 : ( toCarry | (((*i) >> (4*gCodonBits + 2*gBaseBits))&maskBase )); 00475 } 00476 if (codonsInLast>=1) 00477 *(pCodon++) = getCodonFromWord<3,2>(*i); 00478 if (codonsInLast>=2) 00479 *(pCodon++) = getCodonFromWord<2,2>(*i); 00480 if (codonsInLast>=3) 00481 *(pCodon++) = getCodonFromWord<1,2>(*i); 00482 if (codonsInLast>=4) 00483 *(pCodon++) = getCodonFromWord<0,2>(*i); 00484 00485 } // ~else if 00486 else // if (readingFrame==2) 00487 { 00488 00489 for( ; i!=lastWord ; ++i ) 00490 { 00491 if (toCarry!=~0) 00492 (*pCodon++) = ( ((*i)&gCursedWord)|lastWordFlag ) 00493 ? flaggedChar 00494 : ( toCarry | (((*i) >> (4*gCodonBits + gBaseBits))&mask2Bases )); 00495 00496 *(pCodon++) = getCodonFromWord<3,1>(*i); 00497 *(pCodon++) = getCodonFromWord<2,1>(*i); 00498 *(pCodon++) = getCodonFromWord<1,1>(*i); 00499 *(pCodon++) = getCodonFromWord<0,1>(*i); 00500 00501 lastWordFlag = (*i)&gCursedWord; 00502 toCarry = ((*i)& maskBase) << (2*gBaseBits); 00503 00504 } // ~for 00505 if (in.getNumBasesInLast() >= readingFrame ) 00506 { 00507 00508 *(pCodon++) = ( ((*i)&gCursedWord)|lastWordFlag ) 00509 ? flaggedChar 00510 : ( toCarry | (((*i) >> (4*gCodonBits + gBaseBits))&mask2Bases )); 00511 } 00512 if (codonsInLast>=1) 00513 *(pCodon++) = getCodonFromWord<3,1>(*i); 00514 if (codonsInLast>=2) 00515 *(pCodon++) = getCodonFromWord<2,1>(*i); 00516 if (codonsInLast>=3) 00517 *(pCodon++) = getCodonFromWord<1,1>(*i); 00518 if (codonsInLast>=4) 00519 *(pCodon++) = getCodonFromWord<0,1>(*i); 00520 00521 } // ~else if 00522 00523 // cout << "codons fwd: " << codons << endl; 00524 assert(pCodon==pEnd); 00525 00526 } // ~void codonizeAndFlag
Here is the call graph for this function:

Here is the caller graph for this function:

| void codonizeAndFlagReverse | ( | const WordSequence & | in, | |
| CodonList & | codons, | |||
| int | readingFrame | |||
| ) |
Definition at line 536 of file SequenceEncoder.cpp.
References flaggedChar(), gBaseBits, gCodonBits, gCursedWord, WordSequence::getNumBasesInLast(), gMaxBasesPerWord, gNumReadingFrames, mask2Bases(), maskBase(), and maskCodon().
Referenced by HashTableTranslated::countWordsAndGetNames(), HashTableTranslated::hashAllWords(), and main().
00537 { 00538 00539 static const int DNAWordSizeForHashing(gMaxBasesPerWord-1); 00540 00541 int codonsInLast((in.getNumBasesInLast()-readingFrame)/gNumReadingFrames); 00542 00543 00544 int numCodons 00545 ( ( (in.size() == 0) 00546 ? 0 00547 : ((in.size()-1)*DNAWordSizeForHashing)+in.getNumBasesInLast() 00548 -readingFrame ) 00549 / gNumReadingFrames ); 00550 00551 readingFrame = (in.getNumBasesInLast()-readingFrame+gNumReadingFrames)%gNumReadingFrames; 00552 00553 00554 00555 // cout << "blx: " << in.size() << " " << in.getNumBasesInLast() << " " << readingFrame << " " << codonsInLast << " " << numCodons << endl; 00556 codons.resize(numCodons); 00557 char* pCodon(static_cast<char*>(&(*codons.begin()))); 00558 char* pEnd(static_cast<char*>(&(*codons.end()))); 00559 WordSequence::const_iterator i(in.end()-1); 00560 WordSequence::const_iterator lastWord(in.begin()); 00561 Word toCarry(~0); 00562 Word lastWordFlag(0); 00563 00564 // const Word maskBase(0x3); 00565 // const Word maskCodon((0x3>>4)|(0x3>>2)|(0x3>>4)); 00566 00567 00568 if (readingFrame==0) 00569 { 00570 if (codonsInLast==4) 00571 *(pCodon++) = getCodonFromWord<1,0>(*i); 00572 if (codonsInLast>=3) 00573 *(pCodon++) = getCodonFromWord<2,0>(*i); 00574 if (codonsInLast>=2) 00575 *(pCodon++) = getCodonFromWord<3,0>(*i); 00576 if (codonsInLast>=1) 00577 *(pCodon++) = getCodonFromWord<4,0>(*i); 00578 00579 do 00580 { 00581 i--; 00582 *(pCodon++) = getCodonFromWord<0,0>(*i); 00583 *(pCodon++) = getCodonFromWord<1,0>(*i); 00584 *(pCodon++) = getCodonFromWord<2,0>(*i); 00585 *(pCodon++) = getCodonFromWord<3,0>(*i); 00586 *(pCodon++) = getCodonFromWord<4,0>(*i); 00587 00588 } 00589 while (i!=lastWord); 00590 00591 } // ~if 00592 else if (readingFrame==1) 00593 { 00594 // cout << "rf1" << endl; 00595 if (codonsInLast==4) 00596 *(pCodon++) = getCodonFromWord<0,2>(*i); 00597 if (codonsInLast>=3) 00598 *(pCodon++) = getCodonFromWord<1,2>(*i); 00599 if (codonsInLast>=2) 00600 *(pCodon++) = getCodonFromWord<2,2>(*i); 00601 if (codonsInLast>=1) 00602 *(pCodon++) = getCodonFromWord<3,2>(*i); 00603 00604 if (in.getNumBasesInLast()>=readingFrame) 00605 { 00606 lastWordFlag = (*i)&gCursedWord; 00607 toCarry = ((*i) >> (4*gCodonBits + 2*gBaseBits))&maskBase ; 00608 } // ~if 00609 00610 do 00611 { 00612 i--; 00613 if (toCarry!=~0) 00614 (*pCodon++) = ( ((*i)&gCursedWord)|lastWordFlag ) 00615 ? flaggedChar 00616 : ( toCarry | ( ((*i) & mask2Bases ) << gBaseBits ) ); 00617 00618 *(pCodon++) = getCodonFromWord<0,2>(*i); 00619 *(pCodon++) = getCodonFromWord<1,2>(*i); 00620 *(pCodon++) = getCodonFromWord<2,2>(*i); 00621 *(pCodon++) = getCodonFromWord<3,2>(*i); 00622 lastWordFlag = (*i)&gCursedWord; 00623 toCarry = ((*i) >> (4*gCodonBits + 2*gBaseBits))&maskBase ; 00624 00625 00626 } 00627 while (i!=lastWord); 00628 00629 00630 } // ~else if 00631 else // if (readingFrame==2) 00632 { 00633 // cout << "rf2" << endl; 00634 00635 if (codonsInLast==4) 00636 *(pCodon++) = getCodonFromWord<0,1>(*i); 00637 if (codonsInLast>=3) 00638 *(pCodon++) = getCodonFromWord<1,1>(*i); 00639 if (codonsInLast>=2) 00640 *(pCodon++) = getCodonFromWord<2,1>(*i); 00641 if (codonsInLast>=1) 00642 *(pCodon++) = getCodonFromWord<3,1>(*i); 00643 00644 if (in.getNumBasesInLast()>=readingFrame) 00645 { 00646 lastWordFlag = (*i)&gCursedWord; 00647 toCarry = ((*i) >> (4*gCodonBits + gBaseBits))&mask2Bases ; 00648 } // ~if 00649 00650 do 00651 { 00652 i--; 00653 if (toCarry!=~0) 00654 (*pCodon++) = ( ((*i)&gCursedWord)|lastWordFlag ) 00655 ? flaggedChar 00656 : ( toCarry | ( ((*i) & maskBase ) << (2*gBaseBits) ) ); 00657 00658 *(pCodon++) = getCodonFromWord<0,1>(*i); 00659 *(pCodon++) = getCodonFromWord<1,1>(*i); 00660 *(pCodon++) = getCodonFromWord<2,1>(*i); 00661 *(pCodon++) = getCodonFromWord<3,1>(*i); 00662 lastWordFlag = (*i)&gCursedWord; 00663 toCarry = ((*i) >> (4*gCodonBits + gBaseBits))&mask2Bases ; 00664 00665 } 00666 while (i!=lastWord); 00667 00668 00669 } // ~else if 00670 00671 00672 assert(pCodon==pEnd); 00673 // cout << "codons unrev: " << codons << endl; 00674 00675 for (CodonList::iterator j(codons.begin()); j!=codons.end(); ++j) 00676 { 00677 00678 *j = 00679 ( ((*j)==flaggedChar) 00680 ? flaggedChar 00681 : 00682 ( ((*j)&maskBase^maskBase) << (2*gBaseBits) ) 00683 | ((*j)&(maskBase<<gBaseBits)^(maskBase<<gBaseBits)) 00684 | ( ((*j)&(maskCodon^mask2Bases)^(maskCodon^mask2Bases)) 00685 >> (2*gBaseBits) ) ); 00686 } // ~for 00687 // cout << "codons rev: " << codons << endl; 00688 00689 } // ~void codonizeAndFlagReverse
Here is the call graph for this function:

Here is the caller graph for this function:

| static const Word firstCharInvalid | ( | 1<< | 31 | ) | [static] |
Referenced by SequenceEncoder::expandTranslationTable().
Here is the caller graph for this function:

| static const char flaggedChar | ( | '^' | ) | [static] |
Referenced by codonizeAndFlag(), codonizeAndFlagReverse(), getCodonFromWord(), and operator<<().
Here is the caller graph for this function:

Definition at line 526 of file SequenceEncoder.h.
References flaggedChar(), gBaseBits, gCodonBits, gCursedWord, and maskCodon().
00527 { 00528 return 00529 ( 00530 (w&gCursedWord) 00531 ? flaggedChar 00532 : ( ( w & ( maskCodon << ((CODON_SHIFT*gCodonBits) 00533 + (BASE_SHIFT*gBaseBits) ) ) ) 00534 >> ((CODON_SHIFT*gCodonBits) + (BASE_SHIFT*gBaseBits) ) ) 00535 ); 00536 00537 00538 } //~template <int CODON_SHIFT, int BASE_SHIFT > Word getCodonFromWord
Here is the call graph for this function:

| static const Word mask2Bases | ( | (maskBase<< gBaseBits)| | maskBase | ) | [static] |
Referenced by codonizeAndFlag(), and codonizeAndFlagReverse().
Here is the caller graph for this function:

| static const Word maskBase | ( | 0x3 | ) | [static] |
Referenced by codonizeAndFlag(), and codonizeAndFlagReverse().
Here is the caller graph for this function:

| static const Word maskCodon | ( | (mask2Bases<< gBaseBits)| | maskBase | ) | [static] |
Referenced by codonizeAndFlagReverse(), and getCodonFromWord().
Here is the caller graph for this function:

| static const int numPossibleChars | ( | 1<< | 8 | ) | [static] |
| static const Word nv | ( | 0xFF | ) | [static] |
Referenced by MatchAlignerTranslated::codonize(), HashTableTranslated::countWordsAndGetNames(), SequenceEncoder::encodeChar(), SequenceEncoder::expandTranslationTable(), MatchAlignerTranslated::getCodon(), and processQuery().
Here is the caller graph for this function:

| ostream& operator<< | ( | ostream & | os, | |
| CodonList & | c | |||
| ) |
Definition at line 693 of file SequenceEncoder.cpp.
References flaggedChar(), and gCodonNames.
00694 { 00695 for (vector<char>::iterator i(c.begin()); i!=c.end(); i++ ) 00696 os << (unsigned int)*i << "-" << 00697 ((*i==flaggedChar) ? '!' : gCodonNames[(unsigned int)*i]) << " "; 00698 return os; 00699 } // ~ostream& operator<<( ostream& os, CodonList& c )
Here is the call graph for this function:

| void print | ( | const TranslationTable & | tt | ) |
Definition at line 37 of file SequenceEncoder.cpp.
References numPossibleChars().
00038 { 00039 for ( int i(0) ; i < numPossibleChars ; ++ i ) 00040 { 00041 cout << i << ":"; 00042 if (isgraph((uchar)i)) cout << " (" << (uchar)i << ") "; 00043 cout << "\t " << (int)tt[i]; 00044 if (isgraph(tt[i])) cout << " (" << tt[i] << ") "; 00045 cout << endl; 00046 } 00047 }
Here is the call graph for this function:

| static const Word secondCharInvalid | ( | 1<< | 30 | ) | [static] |
Referenced by SequenceEncoder::expandTranslationTable().
Here is the caller graph for this function:

| static const Word someCharInvalid | ( | firstCharInvalid| | secondCharInvalid | ) | [static] |
const TranslationTable ttCodon [static] |
Definition at line 164 of file SequenceEncoder.h.
Referenced by MatchAlignerTranslated::codonize(), HashTableTranslated::countWordsAndGetNames(), and MatchAlignerTranslated::getCodon().
const TranslationTable ttCodonReverse [static] |
Definition at line 246 of file SequenceEncoder.h.
const TranslationTable ttDNA [static] |
Initial value:
{
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,
00,nv,01,nv,nv,nv,02,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,03,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,
00,nv,01,nv,nv,nv,02,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,03,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv
}
Definition at line 64 of file SequenceEncoder.h.
Referenced by MatchAlignerTranslated::codonize(), MatchAlignerTranslated::getCodon(), and processQuery().
const TranslationTable ttProtein [static] |
Initial value:
{
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv, 0,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,
1, 3, 2, 3, 4, 5, 6, 7, 8,nv, 9,10,11,12,nv,
13,14,15,16,17,20,18,19,20,21, 4,nv,nv,nv,nv,nv,
nv,
1, 3, 2, 3, 4, 5, 6, 7, 8,nv, 9,10,11,12,nv,
13,14,15,16,17,20,18,19,20,21, 4,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,
nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv,nv
}
Definition at line 141 of file SequenceEncoder.h.
Referenced by HashTableTranslated::countWordsAndGetNames(), and processQuery().
1.5.2