aa
com.cliffc.aa.TestLattice.N Class Reference
Collaboration diagram for com.cliffc.aa.TestLattice.N:
[legend]

Public Member Functions

String toString ()
 

Package Functions

 N (String t, N... subs)
 
void set_dual (N d)
 
boolean walk_dual (BitSet bs)
 
boolean walk_min_edge (int[] vs, N sup)
 
void walk_print (BitSet bs, int indent)
 
void walk_set_sup (BitSet bs)
 

Static Package Functions

static void reset ()
 

Package Attributes

int _cnt
 
N _dual
 
final int _id
 
final BitSet _reaches
 
final Ary< N_subs
 
final Ary< N_sups
 
final String _t
 

Static Package Attributes

static Ary< NNS =new Ary<>(new N[1],0)
 

Static Private Attributes

static int ID =0
 

Detailed Description

Definition at line 80 of file TestLattice.java.

Constructor & Destructor Documentation

◆ N()

com.cliffc.aa.TestLattice.N.N ( String  t,
N...  subs 
)
package

Definition at line 91 of file TestLattice.java.

91  {
92  _id = ID++;
93  _t=t;
94  _subs = new Ary<>(subs);
95  _sups = new Ary<>(new N[1],0); // Fill in later
96  _reaches = new BitSet();
97  _dual = this;
98  NS.add(this);
99  }

References com.cliffc.aa.TestLattice.N._dual, com.cliffc.aa.TestLattice.N._id, com.cliffc.aa.TestLattice.N._reaches, com.cliffc.aa.TestLattice.N._subs, com.cliffc.aa.TestLattice.N._sups, com.cliffc.aa.TestLattice.N._t, com.cliffc.aa.TestLattice.N.ID, and com.cliffc.aa.TestLattice.N.NS.

Member Function Documentation

◆ reset()

◆ set_dual()

◆ toString()

String com.cliffc.aa.TestLattice.N.toString ( )

Definition at line 118 of file TestLattice.java.

118  {
119  SB sb = new SB().p(_t).p(" -> ");
120  for( N sub : _subs ) sb.p(sub._t).p(" ");
121  return sb.toString();
122  }

References com.cliffc.aa.TestLattice.N._subs, com.cliffc.aa.TestLattice.N._t, com.cliffc.aa.util.SB.p(), and com.cliffc.aa.util.SB.toString().

Referenced by com.cliffc.aa.TestLattice.N.walk_print().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ walk_dual()

boolean com.cliffc.aa.TestLattice.N.walk_dual ( BitSet  bs)
package

Definition at line 140 of file TestLattice.java.

140  {
141  if( bs.get(_id) ) return true;
142  bs.set(_id);
143  boolean x=true;
144  for( N sub : _subs ) {
145  if( sub._dual._subs.find(_dual) == -1 ) {
146  System.out.println(""+_t+" -> "+sub._t+"; expect "+sub._dual._t+" -> "+_dual._t);
147  x = false;
148  }
149  }
150  for( N sub : _subs ) if( !sub.walk_dual(bs) ) x=false;
151  return x;
152  }

References com.cliffc.aa.TestLattice.N._dual, com.cliffc.aa.TestLattice.N._id, com.cliffc.aa.TestLattice.N._subs, and com.cliffc.aa.TestLattice.N._t.

Referenced by com.cliffc.aa.TestLattice.test().

Here is the caller graph for this function:

◆ walk_min_edge()

boolean com.cliffc.aa.TestLattice.N.walk_min_edge ( int[]  vs,
N  sup 
)
package

Definition at line 124 of file TestLattice.java.

124  {
125  vs[_id]++;
126  if( sup != null ) {
127  for( N sup0 : _sups )
128  if( sup._reaches.get(sup0._id) ) {
129  System.out.println("Edge "+sup0._t+" -> "+_t+" and also path "+sup0._t+" ... -> "+sup._t+" -> "+_t);
130  return false;
131  }
132  _reaches.or(sup._reaches);
133  }
134  if( vs[_id]<_sups._len ) return true; // Pre-order still; return
135  for( N sup0 : _sups ) _reaches.set(sup0._id); // Post-order: add all supers in
136  for( N sub : _subs ) if( !sub.walk_min_edge(vs,this) ) return false;
137  return true;
138  }

References com.cliffc.aa.TestLattice.N._id, com.cliffc.aa.TestLattice.N._reaches, com.cliffc.aa.TestLattice.N._subs, com.cliffc.aa.TestLattice.N._sups, and com.cliffc.aa.TestLattice.N._t.

Referenced by com.cliffc.aa.TestLattice.test().

Here is the caller graph for this function:

◆ walk_print()

void com.cliffc.aa.TestLattice.N.walk_print ( BitSet  bs,
int  indent 
)
package

Definition at line 112 of file TestLattice.java.

112  {
113  if( bs.get(_id) ) return;
114  bs.set(_id);
115  System.out.println(new SB().i(indent).toString()+toString());
116  for( N sub : _subs ) sub.walk_print(bs,indent+1);
117  }

References com.cliffc.aa.TestLattice.N._id, com.cliffc.aa.TestLattice.N._subs, and com.cliffc.aa.TestLattice.N.toString().

Referenced by com.cliffc.aa.TestLattice.test().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ walk_set_sup()

void com.cliffc.aa.TestLattice.N.walk_set_sup ( BitSet  bs)
package

Definition at line 105 of file TestLattice.java.

105  {
106  if( bs.get(_id) ) return;
107  bs.set(_id);
108  for( N sub : _subs ) sub._sups.add(this);
109  for( N sub : _subs ) sub.walk_set_sup(bs);
110  }

References com.cliffc.aa.TestLattice.N._id, and com.cliffc.aa.TestLattice.N._subs.

Referenced by com.cliffc.aa.TestLattice.test().

Here is the caller graph for this function:

Member Data Documentation

◆ _cnt

int com.cliffc.aa.TestLattice.N._cnt
package

Definition at line 89 of file TestLattice.java.

Referenced by com.cliffc.aa.TestLattice.test().

◆ _dual

N com.cliffc.aa.TestLattice.N._dual
package

◆ _id

◆ _reaches

final BitSet com.cliffc.aa.TestLattice.N._reaches
package

◆ _subs

◆ _sups

final Ary<N> com.cliffc.aa.TestLattice.N._sups
package

◆ _t

◆ ID

int com.cliffc.aa.TestLattice.N.ID =0
staticprivate

◆ NS

Ary<N> com.cliffc.aa.TestLattice.N.NS =new Ary<>(new N[1],0)
staticpackage

The documentation for this class was generated from the following file:
com.cliffc.aa.TestLattice.N.N
N(String t, N... subs)
Definition: TestLattice.java:91
com.cliffc.aa.TestLattice.N._t
final String _t
Definition: TestLattice.java:85
com.cliffc.aa.TestLattice.N._id
final int _id
Definition: TestLattice.java:84
com.cliffc.aa.TestLattice.N._dual
N _dual
Definition: TestLattice.java:90
com.cliffc.aa.TestLattice.N.NS
static Ary< N > NS
Definition: TestLattice.java:82
com.cliffc.aa.TestLattice.N.ID
static int ID
Definition: TestLattice.java:81
com.cliffc.aa.TestLattice.N._sups
final Ary< N > _sups
Definition: TestLattice.java:87
com.cliffc.aa.TestLattice.N._subs
final Ary< N > _subs
Definition: TestLattice.java:86
com.cliffc.aa.TestLattice.N._reaches
final BitSet _reaches
Definition: TestLattice.java:88
com.cliffc.aa.TestLattice.N.toString
String toString()
Definition: TestLattice.java:118