File: ruletreealgo.h

package info (click to toggle)
golly 3.3-1.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 20,176 kB
  • sloc: cpp: 72,638; ansic: 25,919; python: 7,921; sh: 4,245; objc: 3,721; java: 2,781; xml: 1,362; makefile: 530; javascript: 279; perl: 69
file content (32 lines) | stat: -rw-r--r-- 972 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// This file is part of Golly.
// See docs/License.html for the copyright notice.

#ifndef RULETREEALGO_H
#define RULETREEALGO_H
#include "ghashbase.h"
/**
 *   An algorithm that uses an n-dary decision diagram.
 */
class ruletreealgo : public ghashbase {
public:
   ruletreealgo() ;
   virtual ~ruletreealgo() ;
   virtual state slowcalc(state nw, state n, state ne, state w, state c,
                          state e, state sw, state s, state se) ;
   virtual const char* setrule(const char* s) ;
   virtual const char* getrule() ;
   virtual const char* DefaultRule() ;
   virtual int NumCellStates() ;
   static void doInitializeAlgoInfo(staticAlgoInfo &) ;

   // these two methods are needed for RuleLoader algo
   bool IsDefaultRule(const char* rulename);
   const char* LoadTree(FILE* rulefile, int lineno, char endchar, const char* s);

private:
   int *a, base ;
   state *b ;
   int num_neighbors, num_states, num_nodes ;
   char rule[MAXRULESIZE] ;
};
#endif