22 STable3D::STable3D (
int nr)
28 for (i = 0; i < nr; i++)
35 inline void Sort3 (
int &r,
int &c,
int &f)
46 t = r; r = c; c = f; f = t;
56 t = f; f = c; c = r; r = t;
65 int STable3D::Push (
int r,
int c,
int f)
69 MFEM_ASSERT(r != c && c != f && f != r,
70 "STable3D::Push : r = " << r <<
", c = " << c <<
", f = " << f);
74 for (node = Rows[r]; node != NULL; node = node->
Prev)
83 #ifdef MFEM_USE_MEMALLOC
84 node = NodesMem.Alloc ();
98 int STable3D::operator() (
int r,
int c,
int f)
const
104 for (node = Rows[r]; node != NULL; node = node->
Prev)
107 if (node->
Floor == f)
113 MFEM_ABORT(
"(r,c,f) = (" << r <<
"," << c <<
"," << f <<
")");
118 int STable3D::Index (
int r,
int c,
int f)
const
124 for (node = Rows[r]; node != NULL; node = node->
Prev)
127 if (node->
Floor == f)
136 int STable3D::Push4 (
int r,
int c,
int f,
int t)
138 MFEM_ASSERT(r != c && r != f && r != t && c != f && c != t && f != t,
139 " r = " << r <<
", c = " << c <<
", f = " << f <<
", t = " << t);
144 if (max < c) { max = c, i = 1; }
145 if (max < f) { max = f, i = 2; }
146 if (max < t) { max = t, i = 3; }
163 int STable3D::operator() (
int r,
int c,
int f,
int t)
const
168 if (max < c) { max = c, i = 1; }
169 if (max < f) { max = f, i = 2; }
170 if (max < t) { max = t, i = 3; }
175 return (*
this)(c,f,t);
177 return (*
this)(r,f,t);
179 return (*
this)(r,c,t);
181 return (*
this)(r,c,f);
187 STable3D::~STable3D ()
189 #ifdef MFEM_USE_MEMALLOC
192 for (
int i = 0; i < Size; i++)
195 while (node_p != NULL)
198 node_p = node_p->
Prev;
void Sort3(int &r, int &c, int &f)