/*------------------------------------------------------------ Copyright (C) 1999 by Rolf Backofen, Sebastian Will. All Rights Reserved. Permission to use, copy, modify, and distribute this software and its documentation for NON-COMMERCIAL purposes and without fee is hereby granted provided that this copyright notice appears in all copies. THE AUTHORS AND PUBLISHER MAKE NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. THE AUTHORS AND PUBLISHER SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. ------------------------------------------------------------*/ #ifndef MATRICES_HH #define MATRICES_HH #include #include #include #include #include #include "basicdef.hh" #include "printarray.hh" #include "matrix.hh" #include "sequence.hh" // ======================================================================= // // CLASS: DistanceMatrix // // AUTHOR: Rolf Backofen // // DESCRIPTION: Creates and stores a distance or similarity matrix // for an alignment algorithm. Basically, it is a matrix of // entries of type cost_t. Basic // operations for DistanceMatrix are // M(a,b) construction (a, b strings). // draw(pr) draw array into PrintArray // << M print array only // // ======================================================================= class DistanceMatrix : public matrix { private: const Sequence &a_; const Sequence &b_; public: DistanceMatrix(const Sequence &a, const Sequence &b); void draw(PrintArray &pr); friend ostream& operator << (ostream &,DistanceMatrix &); }; #endif