Imported Upstream version 3.2.2
[debian/gnuradio] / gr-trellis / src / lib / fsm.h
index cecc5e14b788a7ac056f0c10b1b874d718dc4b16..0a90b2cd332587d3552a14f385ddea0d2387aab0 100644 (file)
@@ -24,6 +24,7 @@
 #define INCLUDED_TRELLIS_FSM_H
 
 #include <vector>
+#include <iosfwd>
 
 /*!
  * \brief  FSM class
@@ -35,8 +36,8 @@ private:
   int d_O;
   std::vector<int> d_NS;
   std::vector<int> d_OS;
-  std::vector<int> d_PS;
-  std::vector<int> d_PI;
+  std::vector< std::vector<int> > d_PS;
+  std::vector< std::vector<int> > d_PI;
   std::vector<int> d_TMi;
   std::vector<int> d_TMl;
   void generate_PS_PI ();
@@ -49,15 +50,20 @@ public:
   fsm(const char *name);
   fsm(int k, int n, const std::vector<int> &G);
   fsm(int mod_size, int ch_length);
+  fsm(int P, int M, int L);
+  fsm(const fsm &FSM1, const fsm &FSM2);
+  fsm(const fsm &FSM, int n);
   int I () const { return d_I; }
   int S () const { return d_S; }
   int O () const { return d_O; }
   const std::vector<int> & NS () const { return d_NS; }
   const std::vector<int> & OS () const { return d_OS; }
-  const std::vector<int> & PS () const { return d_PS; }
-  const std::vector<int> & PI () const { return d_PI; }
+  const std::vector< std::vector<int> > & PS () const { return d_PS; }
+  const std::vector< std::vector<int> > & PI () const { return d_PI; }
   const std::vector<int> & TMi () const { return d_TMi; }
   const std::vector<int> & TMl () const { return d_TMl; }
+  void write_trellis_svg(std::string filename ,int number_stages);
+  void write_fsm_txt(std::string filename);
 };
 
 #endif