--- /dev/null
+#ifndef types_h\r
+#define types_h\r
+\r
+typedef unsigned char byte;\r
+typedef unsigned short ushort;\r
+\r
+typedef float SCOREMATRIX[32][32];\r
+typedef SCOREMATRIX *PTR_SCOREMATRIX;\r
+\r
+class MSA;\r
+class Seq;\r
+class ClusterTree;\r
+class DistFunc;\r
+class TextFile;\r
+class PWPath;\r
+class Tree;\r
+class SeqVect;\r
+class DistCalc;\r
+\r
+struct ProgNode;\r
+struct ProfPos;\r
+\r
+#if SINGLE_AFFINE\r
+// Compress M, D and I trace-back matrices into 4 bits\r
+enum\r
+ {\r
+ BIT_MM = 0x00,\r
+ BIT_DM = 0x01,\r
+ BIT_IM = 0x02,\r
+ BIT_xM = 0x03,\r
+\r
+ BIT_DD = 0x00,\r
+ BIT_MD = 0x04,\r
+ // ID not allowed\r
+ BIT_xD = 0x04,\r
+\r
+ BIT_II = 0x00,\r
+ BIT_MI = 0x08,\r
+ // DI not allowed\r
+ BIT_xI = 0x08,\r
+ };\r
+\r
+#endif\r
+\r
+#if DOUBLE_AFFINE\r
+// Compress M, D, E, I and J trace-back matrices into 7 bits\r
+enum\r
+ {\r
+ BIT_MM = 0x00,\r
+ BIT_DM = 0x01,\r
+ BIT_EM = 0x02,\r
+ BIT_IM = 0x03,\r
+ BIT_JM = 0x04,\r
+ BIT_xM = 0x07,\r
+\r
+ BIT_DD = 0x00,\r
+ BIT_MD = 0x08,\r
+ // [EIJ]D not sallowed\r
+ BIT_xD = 0x08,\r
+\r
+ BIT_EE = 0x00,\r
+ BIT_ME = 0x10,\r
+ // [DDJ]E not allowed\r
+ BIT_xE = 0x10,\r
+\r
+ BIT_II = 0x00,\r
+ BIT_MI = 0x20,\r
+ // [EDJ]I not allowed\r
+ BIT_xI = 0x20,\r
+\r
+ BIT_JJ = 0x00,\r
+ BIT_MJ = 0x40,\r
+ // [EDI]J not allowed\r
+ BIT_xJ = 0x40,\r
+ };\r
+#endif\r
+\r
+enum EXIT\r
+ {\r
+ EXIT_Success = 0,\r
+ EXIT_NotStarted = 1,\r
+ EXIT_FatalError = 2,\r
+ EXIT_Except = 3,\r
+ };\r
+\r
+enum NODECMP\r
+ {\r
+ NODECMP_Undefined = 0,\r
+ NODECMP_Same = 0, // equivalent to node in old tree\r
+ NODECMP_Diff = 1, // equivalent & parent is changed\r
+ NODECMP_Changed = 2 // no equivalent node in old tree\r
+ };\r
+\r
+// Declare enums using macro hacks (see enums.h).\r
+#define s(t) enum t { t##_Undefined = 0,\r
+#define c(t, x) t##_##x,\r
+#define e(t) };\r
+#include "enums.h"\r
+\r
+// Declare conversion function XXXToStr(XXX x)\r
+// for each enum type XXX.\r
+#define s(t) const char *t##ToStr(t x);\r
+#define c(t, x) /* empty */\r
+#define e(t) /* empty */\r
+#include "enums.h"\r
+\r
+// Declare conversion function StrToXXX(const char *Str)\r
+// for each enum type XXX.\r
+#define s(t) t StrTo##t(const char *Str);\r
+#define c(t, x) /* empty */\r
+#define e(t) /* empty */\r
+#include "enums.h"\r
+\r
+const char *BoolToStr(bool b);\r
+const char *SecsToStr(unsigned long Secs);\r
+\r
+#endif // types_h\r