/** * Author: Mark Larkin * * Copyright (c) 2007 Des Higgins, Julie Thompson and Toby Gibson. */ #ifndef FASTPAIRWISEALIGN_H #define FASTPAIRWISEALIGN_H #include "PairwiseAlignBase.h" namespace clustalw { class FastPairwiseAlign : public PairwiseAlignBase { public: /* Functions */ FastPairwiseAlign(); virtual ~FastPairwiseAlign(){}; virtual void pairwiseAlign(Alignment *alignPtr, DistMatrix *distMat, int iStart, int iEnd, int jStart, int jEnd); /* Attributes */ private: /* Functions */ void pairAlign(const vector* seq, int l1, int l2); void makePPtrs(vector& tptr, vector& pl, const vector* seq, int length); void makeNPtrs(vector& tptr, vector& pl, const vector* seq, int length); void putFrag(int fs, int v1, int v2, int flen); int fragRelPos(int a1, int b1, int a2, int b2); void desQuickSort(vector& array1, vector& array2, int arraySize); /* Attributes */ vector displ; vector zza; vector zzb; vector zzc; vector zzd; int next; int currFrag; int maxSoFar; int vatend; Array2D accum; vector diagIndex; vector slopes; int _maxAlnLength; }; } #endif