WSTester updated to work plus hopefully all the other changes that need to go into...
[jabaws.git] / binaries / src / ViennaRNA / RNAforester / src / matrix.h
diff --git a/binaries/src/ViennaRNA/RNAforester/src/matrix.h b/binaries/src/ViennaRNA/RNAforester/src/matrix.h
new file mode 100644 (file)
index 0000000..6b39d90
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+  Copyright by Matthias Hoechsmann (C) 2002-2003
+  =====================================                                   
+  You may use, copy and distribute this file freely as long as you
+  - do not change the file,
+  - leave this copyright notice in the file,
+  - do not make any profit with the distribution of this file
+  - give credit where credit is due
+  You are not allowed to copy or distribute this file otherwise
+  The commercial usage and distribution of this file is prohibited
+  Please report bugs and suggestions to <mhoechsm@TechFak.Uni-Bielefeld.DE>
+*/
+
+#ifndef _MATRIX_H_
+#define _MATRIX_H_
+
+#include <assert.h>
+
+template <class T>
+class Matrix
+{
+ private:
+  long m_m;
+  long m_n;
+  T *m_mtrx;
+  
+ public:
+  Matrix(long m, long n) : m_m(m), m_n(n)
+    {
+      m_mtrx=new T[m*n];
+    }
+  
+  ~Matrix()
+    {
+      delete m_mtrx;
+    }
+
+  inline const long xDim() const
+    {
+      return m_m;
+    }
+
+  inline const long yDim() const
+    {
+      return m_n;
+    }
+
+  inline const T& getAt(long x,long y) const
+    {
+      assert(x<m_m && y<m_n);
+      return m_mtrx[y*m_m+x];
+    }
+
+  inline void setAt(long x,long y, const T &val)
+    {
+      assert(x<m_m && y<m_n);
+      m_mtrx[y*m_m+x]=val;
+    }
+};
+#endif