========================================== diff -Bbs -r old/libenergy/CmpAreaEnergy.c cur/libenergy/CmpAreaEnergy.c --- 11c11 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements */ --- 21,22c21,22 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) < { erg->K = 1.0/((double)top->NF); > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) > { erg->K = 1.0/((double)top->wall.nel); --- 24,25c24,25 ----------------------- < erg->vVar = bool_vec_new(top->NV); < erg->wallRelevant = bool_vec_new(top->NF); > erg->vVar = bool_vec_new(top->node.nel); > erg->wallRelevant = bool_vec_new(top->wall.nel); --- 28,29c28,29 ----------------------- < erg->af = double_vec_new(top->NF); < erg->eDaf = double_vec_new(top->NF); > erg->af = double_vec_new(top->wall.nel); > erg->eDaf = double_vec_new(top->wall.nel); --- 32,33c32,33 ----------------------- < for (i = 0; i < top->NV; i++){ erg->vVar.el[i] = FALSE; } < for (i = 0; i < top->NF; i++){ erg->wallRelevant.el[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->vVar.el[i] = FALSE; } > for (i = 0; i < top->wall.nel; i++){ erg->wallRelevant.el[i] = FALSE; } --- 39,40c39,40 ----------------------- < int NV = erg->top->NV; < int NF = erg->top->NF; > int NV = erg->top->node.nel; > int NF = erg->top->wall.nel; --- 81,82c81,82 ----------------------- < { int NV = erg->top->NV; < int NF = erg->top->NF; > { int NV = erg->top->node.nel; > int NF = erg->top->wall.nel; ========================================== Files old/libenergy/CmpAreaEnergy.h and cur/libenergy/CmpAreaEnergy.h are identical ========================================== diff -Bbs -r old/libenergy/CmpVolEnergy.c cur/libenergy/CmpVolEnergy.c --- 21c21 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 39,40c39,40 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) < { erg->K = 1.0/((double)top->NP); > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) > { erg->K = 1.0/((double)top->cell.nel); --- 42,43c42,43 ----------------------- < erg->vVar = bool_vec_new(top->NV); < erg->polyRelevant = bool_vec_new(top->NP); > erg->vVar = bool_vec_new(top->node.nel); > erg->polyRelevant = bool_vec_new(top->cell.nel); --- 46,47c46,47 ----------------------- < erg->vp = double_vec_new(top->NP); < erg->eDvp = double_vec_new(top->NP); > erg->vp = double_vec_new(top->cell.nel); > erg->eDvp = double_vec_new(top->cell.nel); --- 50,51c50,51 ----------------------- < for (i = 0; i < top->NV; i++){ erg->vVar.el[i] = FALSE; } < for (i = 0; i < top->NP; i++){ erg->polyRelevant[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->vVar.el[i] = FALSE; } > for (i = 0; i < top->cell.nel; i++){ erg->polyRelevant[i] = FALSE; } --- 61,62c61,62 ----------------------- < int NV = erg->top->NV; < ??? NP = erg->top->NP; > int NV = erg->top->node.nel; > ??? NP = erg->top->cell.nel; --- 65d64 ----------------------- < ??? region = erg->top->region^; --- 76c75 ----------------------- < ??? r = region[i]; > ??? r = Srot(cell[i]); --- 109,111c108,109 ----------------------- < { int NV = erg->top->NV; < ??? NP = erg->top->NP; < ??? region = erg->top->region^; > { int NV = erg->top->node.nel; > ??? NP = erg->top->cell.nel; --- 113a112,113 ----------------------- > ??? cell = erg->top->cell; > --- 379c379 ----------------------- < ??? t = region[j]; > ??? t = Srot(cell[j]); --- 417c417 ----------------------- < ??? t = region[j]; > ??? t = Srot(cell[j]); ========================================== Files old/libenergy/CmpVolEnergy.h and cur/libenergy/CmpVolEnergy.h are identical ========================================== diff -Bbs -r old/libenergy/CoherentEnergy.c cur/libenergy/CoherentEnergy.c --- 25c25 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 48,49c48,49 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) < { erg->K = 1.0/((double)top->NF); > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) > { erg->K = 1.0/((double)top->wall.nel); --- 51,52c51,52 ----------------------- < erg->vVar = bool_vec_new(top->NV); < erg->wallRelevant = bool_vec_new(top->NF); > erg->vVar = bool_vec_new(top->node.nel); > erg->wallRelevant = bool_vec_new(top->wall.nel); --- 55,56c55,56 ----------------------- < erg->prodet = double_vec_new(top->NF); < erg->eDprodet = double_vec_new(top->NF); > erg->prodet = double_vec_new(top->wall.nel); > erg->eDprodet = double_vec_new(top->wall.nel); --- 59,60c59,60 ----------------------- < for (i = 0; i < top->NV; i++){ erg->vVar.el[i] = FALSE; } < for (i = 0; i < top->NF; i++){ erg->wallRelevant.el[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->vVar.el[i] = FALSE; } > for (i = 0; i < top->wall.nel; i++){ erg->wallRelevant.el[i] = FALSE; } --- 75,76c75,76 ----------------------- < int NV = erg->top->NV; < int NF = erg->top->NF; > int NV = erg->top->node.nel; > int NF = erg->top->wall.nel; --- 89c89 ----------------------- < ??? r = region[i]; > ??? r = Srot(cell[i]); --- 181,183c181,183 ----------------------- < { int NV = erg->top->NV; < ??? NP = erg->top->NP; < ??? region = erg->top->region^; > { int NV = erg->top->node.nel; > ??? NP = erg->top->cell.nel; > ??? cell = erg->top->cell^; --- 440c440 ----------------------- < ??? t = region[j]; > ??? t = Srot(cell[j]); --- 479c479 ----------------------- < ??? t = region[j]; > ??? t = Srot(cell[j]); ========================================== Files old/libenergy/CoherentEnergy.h and cur/libenergy/CoherentEnergy.h are identical ========================================== diff -Bbs -r old/libenergy/Curvature1D.c cur/libenergy/Curvature1D.c --- 32c32 ----------------------- < top : Topology; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 54c54 ----------------------- < Number Statistics(Topology *top) > Number Statistics(ElemTableRec_t *top) --- 70c70 ----------------------- < *top: Triangulation.Topology; > ElemTableRec_t *top; --- 104c104 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 107c107 ----------------------- < erg->vVar = bool_vec_new(top->NV); > erg->vVar = bool_vec_new(top->node.nel); --- 112c112 ----------------------- < for (i = 0; i < top->NV; i++){ erg->vVar.el[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->vVar.el[i] = FALSE; } --- 116c116 ----------------------- < { int NV = erg->top->NV; > { int NV = erg->top->node.nel; --- 131c131 ----------------------- < { ??? NV = erg->top->NV; > { ??? NV = erg->top->node.nel; ========================================== Files old/libenergy/Curvature1D.h and cur/libenergy/Curvature1D.h are identical ========================================== diff -Bbs -r old/libenergy/Curvature2D.c cur/libenergy/Curvature2D.c --- 19c19 ----------------------- < top : Topology; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 34c34 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 37c37 ----------------------- < erg->vVar = bool_vec_new(top->NV); > erg->vVar = bool_vec_new(top->node.nel); --- 39c39 ----------------------- < for (i = 0; i < top->NV; i++){ erg->vVar.el[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->vVar.el[i] = FALSE; } --- 43c43 ----------------------- < { int NV = erg->top->NV; > { int NV = erg->top->node.nel; --- 51c51 ----------------------- < PROCEDURE @{Edge->?}BelongsToOriginalWall(Place_t @p, *top:Topology): bool_t == > PROCEDURE @{Edge->?}BelongsToOriginalWall(Place_t @p, ElemTableRec_t *top): bool_t == --- 67c67 ----------------------- < PROCEDURE PiecesOfOriginalWall(Place_t @p, *top:Topology): ARRAY [0..1] OF Place_t == > PROCEDURE PiecesOfOriginalWall(Place_t @p, ElemTableRec_t *top): ARRAY [0..1] OF Place_t == --- 91c91 ----------------------- < { ??? NV = erg->top->NV; > { ??? NV = erg->top->node.nel; ========================================== Files old/libenergy/Curvature2D.h and cur/libenergy/Curvature2D.h are identical ========================================== diff -Bbs -r old/libenergy/Curvature3D.c cur/libenergy/Curvature3D.c --- 21c21 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 37c37 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 40,41c40,41 ----------------------- < erg->vVar = bool_vec_new(top->NV); < erg->wallRelevant = bool_vec_new(top->NF); > erg->vVar = bool_vec_new(top->node.nel); > erg->wallRelevant = bool_vec_new(top->wall.nel); --- 43,44c43,44 ----------------------- < for (i = 0; i < top->NV; i++){ erg->vVar.el[i] = FALSE; } < for (i = 0; i < top->NF; i++){ erg->wallRelevant.el[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->vVar.el[i] = FALSE; } > for (i = 0; i < top->wall.nel; i++){ erg->wallRelevant.el[i] = FALSE; } --- 52,53c52,53 ----------------------- < int NV = erg->top->NV; < int NF = erg->top->NF; > int NV = erg->top->node.nel; > int NF = erg->top->wall.nel; --- 86,87c86,87 ----------------------- < { int NV = erg->top->NV; < int NF = erg->top->NF; > { int NV = erg->top->node.nel; > int NF = erg->top->wall.nel; ========================================== Files old/libenergy/Curvature3D.h and cur/libenergy/Curvature3D.h are identical ========================================== Files old/libenergy/Deps.make and cur/libenergy/Deps.make are identical ========================================== diff -Bbs -r old/libenergy/ElasticityEnergy.c cur/libenergy/ElasticityEnergy.c --- 42c42 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 61c61 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 64,68c64,68 ----------------------- < erg->volume = (4.0/3.0)* FLOAT(Pi,double)/FLOAT(top->NP,double); < erg->vVar = bool_vec_new(top->NV); < erg->polyRelevant = bool_vec_new(top->NP); < erg->ep = double_vec_new(top->NP); < erg->eDep = double_vec_new(top->NP); > erg->volume = (4.0/3.0)* FLOAT(Pi,double)/FLOAT(top->cell.nel,double); > erg->vVar = bool_vec_new(top->node.nel); > erg->polyRelevant = bool_vec_new(top->cell.nel); > erg->ep = double_vec_new(top->cell.nel); > erg->eDep = double_vec_new(top->cell.nel); --- 72,73c72,73 ----------------------- < for (i = 0; i < top->NV; i++){ erg->vVar.el[i] = FALSE; } < for (i = 0; i < top->NP; i++){ erg->polyRelevant[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->vVar.el[i] = FALSE; } > for (i = 0; i < top->cell.nel; i++){ erg->polyRelevant[i] = FALSE; } --- 161,162c161,162 ----------------------- < int NV = erg->top->NV; < ??? NP = erg->top->NP; > int NV = erg->top->node.nel; > ??? NP = erg->top->cell.nel; --- 164c164 ----------------------- < ??? region = erg->top->region^; > ??? dell = erg->top->cell^; --- 174c174 ----------------------- < ??? r = region[i]; > ??? r = Srot(cell[i]); --- 205,206c205,206 ----------------------- < { int NV = erg->top->NV; < ??? NP = erg->top->NP; > { int NV = erg->top->node.nel; > ??? NP = erg->top->cell.nel; --- 208c208 ----------------------- < ??? region = erg->top->region^; > ??? cell = erg->top->cell^; --- 230c230 ----------------------- < ??? r = top->region[i]; > ??? r = Srot(top.cell[i]); --- 326c326 ----------------------- < ??? t = region[i]; > ??? t = Srot(cell[i]); ========================================== diff -Bbs -r old/libenergy/ElasticityEnergy.h cur/libenergy/ElasticityEnergy.h --- 13c13 ----------------------- < /* The {Elasticity} energy considers that every tetrahedral quad is done > /* The {Elasticity} energy considers that every tetrahedral chip is done ========================================== diff -Bbs -r old/libenergy/Energy.h cur/libenergy/Energy.h --- 12a13,14 ----------------------- > typedef struct EnergyRec_t *Energy_t; > --- 14c16 ----------------------- < { void (*defTop)(struct Energy_t *self, Topology_t *top); > { void (*defTop)(Energy_t self, ElemTableRec_t *top); --- 18c20 ----------------------- < void (*defVar}(struct Energy_t *self, bool_vec_t *variable); > void (*defVar}(Energy_t self, bool_vec_t *variable); --- 27c29 ----------------------- < void (*eval)(struct Energy_t *self, Coords_t *c, double *e, bool_t grad, Gradient *eDc); > void (*eval)(Energy_t self, Coords_t *c, double *e, bool_t grad, Gradient *eDc); --- 49c51 ----------------------- < char * (*name)(struct Energy_t *self); > char * (*name)(Energy_t self); --- 53c55 ----------------------- < typedef struct Energy_t > typedef struct EnergyRec_t --- 56c58 ----------------------- < } Energy_t; > } EnergyRec_t; ========================================== diff -Bbs -r old/libenergy/EquaAngleEnergy.c cur/libenergy/EquaAngleEnergy.c --- 23c23 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 44c44 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 46c46 ----------------------- < erg->vVar = bool_vec_new(top->NV); > erg->vVar = bool_vec_new(top->node.nel); --- 65c65 ----------------------- < for (i = 0; i < top->NV; i++){ erg->vVar.el[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->vVar.el[i] = FALSE; } --- 71c71 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 76c76 ----------------------- < int NF = top->NF; > int NF = top->wall.nel; --- 107,108c107 ----------------------- < DRF ComputeWallRingDegree(*walls: REF Wall_vec_ts; < *top: Topology) > DRF ComputeWallRingDegree(*walls: REF Wall_vec_ts, ElemTableRec_t *top) --- 124c123 ----------------------- < Wall_vec_ts *CollectWallsRing(Topology *top)== > Wall_vec_ts *CollectWallsRing(ElemTableRec_t *top)== --- 147c146 ----------------------- < int NV = erg->top->NV; > int NV = erg->top->node.nel; --- 229c228 ----------------------- < { int NV = erg->top->NV; > { int NV = erg->top->node.nel; ========================================== Files old/libenergy/EquaAngleEnergy.h and cur/libenergy/EquaAngleEnergy.h are identical ========================================== diff -Bbs -r old/libenergy/ExcenEnergy.c cur/libenergy/ExcenEnergy.c --- 11c11 ----------------------- < Topology_t *top; > ElemTableRec_t *top; --- 35c35 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 37,40c37,40 ----------------------- < erg->K = ((double)top->NV); < erg->vVar = NEW(REF ARRAY OF bool_t, top->NV); < erg->termVar = NEW(REF ARRAY OF bool_t, top->NV); < erg->deg = NEW(REF uint_vec_t , top->NV); > erg->K = ((double)top->node.nel); > erg->vVar = NEW(REF ARRAY OF bool_t, top->node.nel); > erg->termVar = NEW(REF ARRAY OF bool_t, top->node.nel); > erg->deg = NEW(REF uint_vec_t , top->node.nel); --- 43,44c43,44 ----------------------- < erg->sum = r4_vec_new(top->NV); < erg->eDsum = r4_vec_new(top->NV); > erg->sum = r4_vec_new(top->node.nel); > erg->eDsum = r4_vec_new(top->node.nel); --- 47c47 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 63c63 ----------------------- < int NV = erg->top->NV; > int NV = erg->top->node.nel; --- 131c131 ----------------------- < int NV = erg->top->NV; > int NV = erg->top->node.nel; ========================================== Files old/libenergy/ExcenEnergy.h and cur/libenergy/ExcenEnergy.h are identical ========================================== diff -Bbs -r old/libenergy/Heuristic.c cur/libenergy/Heuristic.c --- 7c7 ----------------------- < void DisplaceNode(Place_t @p, Coords_t *c, bool_vec_t *variable, Topology_t *top, > void DisplaceNode(Place_t @p, Coords_t *c, bool_vec_t *variable, ElemTableRec_t *top, ========================================== diff -Bbs -r old/libenergy/Heuristic.h cur/libenergy/Heuristic.h --- 11c11 ----------------------- < void DisplaceKnot(Octf_Place_t p, Coords_t *c, bool_vec_t *variable, Topology *top, rand_t *coins); > void DisplaceKnot(Octf_Place_t p, Coords_t *c, bool_vec_t *variable, ElemTableRec_t *top, rand_t *coins); ========================================== diff -Bbs -r old/libenergy/Heuristics.c cur/libenergy/Heuristics.c --- 50c50 ----------------------- < number of "Onext"s until the next fixed @{edge->?}. > number of "ONext"s until the next fixed @{edge->?}. --- 65c65 ----------------------- < a = Oprev(a) > a = OPrev(a) --- 73c73 ----------------------- < @{EDGE->?}S *Collect@{Edge->?}s(*u: Node; *top: Topology)== > @{EDGE->?}S *Collect@{Edge->?}s(*u: Node; ElemTableRec_t *top)== --- 100c100 ----------------------- < WALLS *CollectWalls(*e: @{Edge->?}; *top: Topology)== > WALLS *CollectWalls(*e: @{Edge->?}; ElemTableRec_t *top)== --- 103c103 ----------------------- < { int NF = top->NF; > { int NF = top->wall.nel; --- 135,136c135 ----------------------- < DRF ComputeWallRingDegree(*walls: REF Wall_vec_ts; < *top: Topology) > DRF ComputeWallRingDegree(*walls: REF Wall_vec_ts, ElemTableRec_t *top) --- 151c150 ----------------------- < Wall_vec_ts *CollectWallsRing(Topology *top)== > Wall_vec_ts *CollectWallsRing(ElemTableRec_t *top)== --- 179c178 ----------------------- < *top : Topology; > ElemDataRec_t *top; --- 288c287 ----------------------- < ??? b = Oprev(Sym(e)); > ??? b = OPrev(Sym(e)); --- 296c295 ----------------------- < ??? f = Onext(e); > ??? f = ONext(e); --- 299c298 ----------------------- < Node_t w = OrgV(Sym(Onext(Onext(Sym(f)))))->num; > Node_t w = OrgV(Sym(ONext(ONext(Sym(f)))))->num; --- 356c355 ----------------------- < an = Onext(an) > an = ONext(an) ========================================== diff -Bbs -r old/libenergy/Heuristics.h cur/libenergy/Heuristics.h --- 11c11 ----------------------- < void EquaAngle(Place_t p, Coords_t *c, bool_vec_t *variable, Topology *top); > void EquaAngle(Place_t p, Coords_t *c, bool_vec_t *variable, ElemTableRec_t *top); ========================================== diff -Bbs -r old/libenergy/HingeEnergy.c cur/libenergy/HingeEnergy.c --- 23c23 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 42,43c42,43 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) < { ??? NP = FLOAT(top->NP, double); > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) > { ??? NP = FLOAT(top->cell.nel, double); --- 46c46 ----------------------- < erg->vVar = bool_vec_new(top->NV); > erg->vVar = bool_vec_new(top->node.nel); --- 57c57 ----------------------- < for (i = 0; i < top->NV; i++){ erg->vVar.el[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->vVar.el[i] = FALSE; } --- 62c62 ----------------------- < Wall_vec_t *CollectWalls(*e: @{Edge->?}; *top: Topology)== > Wall_vec_t *CollectWalls(*e: @{Edge->?}; ElemTableRec_t *top)== --- 67c67 ----------------------- < int NF = top->NF; > int NF = top->wall.nel; --- 97,98c97 ----------------------- < DRF ComputeWallRingDegree(*walls: REF Wall_vec_ts; < *top: Topology) > DRF ComputeWallRingDegree(*walls: REF Wall_vec_ts, ElemTableRec_t *top) --- 113c112 ----------------------- < Wall_vec_ts *CollectWallsRing(Topology *top)== > Wall_vec_ts *CollectWallsRing(ElemTableRec_t *top)== --- 149c148 ----------------------- < int NV = erg->top->NV; > int NV = erg->top->node.nel; --- 209c208 ----------------------- < { int NV = erg->top->NV; > { int NV = erg->top->node.nel; ========================================== Files old/libenergy/HingeEnergy.h and cur/libenergy/HingeEnergy.h are identical ========================================== Files old/libenergy/JUNK/OldCurvature2D.c and cur/libenergy/JUNK/OldCurvature2D.c are identical ========================================== Files old/libenergy/JUNK/OldCurvature2D.h and cur/libenergy/JUNK/OldCurvature2D.h are identical ========================================== Files old/libenergy/Makefile and cur/libenergy/Makefile are identical ========================================== diff -Bbs -r old/libenergy/MixedEnergy.c cur/libenergy/MixedEnergy.c --- 36c36 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 41c41 ----------------------- < erg->ekDc = r4_vec_new(top->NV); > erg->ekDc = r4_vec_new(top->node.nel); ========================================== Files old/libenergy/MixedEnergy.h and cur/libenergy/MixedEnergy.h are identical ========================================== diff -Bbs -r old/libenergy/ModKamSpring.c cur/libenergy/ModKamSpring.c --- 23c23 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 41c41 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 43c43 ----------------------- < { ??? NV = top->NV; > { ??? NV = top->node.nel; --- 57c57 ----------------------- < for (i = 0; i < top->NV; i++){ erg->termVar^[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->termVar^[i] = FALSE; } --- 66c66 ----------------------- < int NV = erg->top->NV; > int NV = erg->top->node.nel; --- 78,79c78 ----------------------- < AdjacencyMatrix *MakeAdjacencyMatrix( < *top : Triangulation.Topology; > AdjacencyMatrix *MakeAdjacencyMatrix(ElemTableRec_t *top, --- 82,83c81,82 ----------------------- < { m = NEW(REF ARRAY OF uint_vec_t , top->NV, top->NV); < for (i = 0; i < top->NV; i++) > { m = NEW(REF ARRAY OF uint_vec_t , top->node.nel, top->node.nel); > for (i = 0; i < top->node.nel; i++) --- 85c84 ----------------------- < for (j = 0; j < top->NV; j++) > for (j = 0; j < top->node.nel; j++) --- 213c212 ----------------------- < { int NV = erg->top->NV; > { int NV = erg->top->node.nel; ========================================== Files old/libenergy/ModKamSpring.h and cur/libenergy/ModKamSpring.h are identical ========================================== diff -Bbs -r old/libenergy/MyCurvature2D.c cur/libenergy/MyCurvature2D.c --- 32c32 ----------------------- < top : Topology; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 44c44 ----------------------- < Number Statistics(Topology *top) > Number Statistics(ElemTableRec_t *top) --- 46c46 ----------------------- < { for (i = 0; i < top->NF; i++){ > { for (i = 0; i < top->wall.nel; i++){ --- 60c60 ----------------------- < *top: Triangulation.Topology; > ElemTableRec_t *top; --- 78c78 ----------------------- < for (j = 0; j < top->NF; j++) > for (j = 0; j < top->wall.nel; j++) --- 104c104 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 107c107 ----------------------- < erg->vVar = bool_vec_new(top->NV); > erg->vVar = bool_vec_new(top->node.nel); --- 112c112 ----------------------- < for (i = 0; i < top->NV; i++){ erg->vVar.el[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->vVar.el[i] = FALSE; } --- 116c116 ----------------------- < { int NV = erg->top->NV; > { int NV = erg->top->node.nel; --- 131c131 ----------------------- < { ??? NV = erg->top->NV; > { ??? NV = erg->top->node.nel; ========================================== diff -Bbs -r old/libenergy/OriKamSpring.c cur/libenergy/OriKamSpring.c --- 32c32 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 53c53 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 55c55 ----------------------- < { ??? NV = top->NV; > { ??? NV = top->node.nel; --- 78c78 ----------------------- < for (i = 0; i < top->NV; i++){ erg->termVar^[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->termVar^[i] = FALSE; } --- 86c86 ----------------------- < ??? NV = erg->top->NV; > ??? NV = erg->top->node.nel; --- 98,99c98 ----------------------- < AdjMatrix *MakeAdjMatrix( < *top : Triangulation.Topology; > AdjMatrix *MakeAdjMatrix(ElemTableRec_t *top, --- 103,104c102,103 ----------------------- < { m = NEW(REF ARRAY OF double_vec_t, top->NV, top->NV); < for (i = 0; i < top->NV; i++) > { m = NEW(REF ARRAY OF double_vec_t, top->node.nel, top->node.nel); > for (i = 0; i < top->node.nel; i++) --- 106c105 ----------------------- < for (j = 0; j < top->NV; j++) > for (j = 0; j < top->node.nel; j++) --- 112c111 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 114c113 ----------------------- < ??? a = top->out[i]; > ??? a = top->node[i]; --- 254c253 ----------------------- < { ??? NV = erg->top->NV; > { ??? NV = erg->top->node.nel; ========================================== Files old/libenergy/OriKamSpring.h and cur/libenergy/OriKamSpring.h are identical ========================================== diff -Bbs -r old/libenergy/OrientationEnergy.c cur/libenergy/OrientationEnergy.c --- 16c16 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 32,33c32,33 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) < { erg->K = 1.0/((double)top->NP); > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) > { erg->K = 1.0/((double)top->cell.nel); --- 35,36c35,36 ----------------------- < erg->vVar = bool_vec_new(top->NV); < erg->polyRelevant = bool_vec_new(top->NP); > erg->vVar = bool_vec_new(top->node.nel); > erg->polyRelevant = bool_vec_new(top->cell.nel); --- 40,41c40,41 ----------------------- < for (i = 0; i < top->NV; i++){ erg->vVar.el[i] = FALSE; } < for (i = 0; i < top->NP; i++){ erg->polyRelevant[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->vVar.el[i] = FALSE; } > for (i = 0; i < top->cell.nel; i++){ erg->polyRelevant[i] = FALSE; } --- 50,51c50,51 ----------------------- < int NV = erg->top->NV; < ??? NP = erg->top->NP; > int NV = erg->top->node.nel; > ??? NP = erg->top->cell.nel; --- 90,91c90,91 ----------------------- < int NV = erg->top->NV; < ??? NP = erg->top->NP; > int NV = erg->top->node.nel; > ??? NP = erg->top->cell.nel; ========================================== Files old/libenergy/OrientationEnergy.h and cur/libenergy/OrientationEnergy.h are identical ========================================== diff -Bbs -r old/libenergy/OriginalCurvature3D.c cur/libenergy/OriginalCurvature3D.c --- 21c21 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 37c37 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 40,41c40,41 ----------------------- < erg->vVar = bool_vec_new(top->NV); < erg->wallRelevant = bool_vec_new(top->NF); > erg->vVar = bool_vec_new(top->node.nel); > erg->wallRelevant = bool_vec_new(top->wall.nel); --- 43,44c43,44 ----------------------- < for (i = 0; i < top->NV; i++){ erg->vVar.el[i] = FALSE; } < for (i = 0; i < top->NF; i++){ erg->wallRelevant.el[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->vVar.el[i] = FALSE; } > for (i = 0; i < top->wall.nel; i++){ erg->wallRelevant.el[i] = FALSE; } --- 52,53c52,53 ----------------------- < int NV = erg->top->NV; < int NF = erg->top->NF; > int NV = erg->top->node.nel; > int NF = erg->top->wall.nel; --- 88,89c88,89 ----------------------- < { int NV = erg->top->NV; < int NF = erg->top->NF; > { int NV = erg->top->node.nel; > int NF = erg->top->wall.nel; ========================================== Files old/libenergy/ParseEnergyParams.c and cur/libenergy/ParseEnergyParams.c are identical ========================================== Files old/libenergy/ParseEnergyParams.h and cur/libenergy/ParseEnergyParams.h are identical ========================================== Files old/libenergy/ParseMinimizerParams.c and cur/libenergy/ParseMinimizerParams.c are identical ========================================== diff -Bbs -r old/libenergy/PartialSpring.c cur/libenergy/PartialSpring.c --- 26c26 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 45c45 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 47c47 ----------------------- < { ??? NV = top->NV; > { ??? NV = top->node.nel; --- 62c62 ----------------------- < for (i = 0; i < top->NV; i++){ erg->termVar^[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->termVar^[i] = FALSE; } --- 128c128 ----------------------- < int NV = erg->top->NV; > int NV = erg->top->node.nel; --- 140,141c140 ----------------------- < AdjacencyMatrix *MakeAdjacencyMatrix( < *top : Triangulation.Topology; > AdjacencyMatrix *MakeAdjacencyMatrix(ElemTableRec_t *top, --- 144,145c143,144 ----------------------- < { m = NEW(REF ARRAY OF uint_vec_t , top->NV, top->NV); < for (i = 0; i < top->NV; i++) > { m = NEW(REF ARRAY OF uint_vec_t , top->node.nel, top->node.nel); > for (i = 0; i < top->node.nel; i++) --- 147c146 ----------------------- < for (j = 0; j < top->NV; j++) > for (j = 0; j < top->node.nel; j++) --- 274c273 ----------------------- < { int NV = erg->top->NV; > { int NV = erg->top->node.nel; ========================================== Files old/libenergy/PartialSpring.h and cur/libenergy/PartialSpring.h are identical ========================================== diff -Bbs -r old/libenergy/ProxTetraEnergy.c cur/libenergy/ProxTetraEnergy.c --- 13c13 ----------------------- < /* A '@{quad->?}' is a group of four @places, consisting of two mutually dual > /* A '@{chip->?}' is a group of four @places, consisting of two mutually dual --- 17c17 ----------------------- < @{Quad->?} == RECORD u, v, w, x: uint; } > FourNodes_t == RECORD u, v, w, x: uint; } --- 23c23 ----------------------- < Topology_t *top; > ElemTableRec_t *top; --- 27,29c27,29 ----------------------- < @{quad->?}: REF ARRAY OF @{Quad->?}; /* The existing tetrahedrons */ < pVar: REF bool_vec_t; /* Which tetrahedrons in "@{quad->?}" are variable */ < bar: REF Coords_t; /* (Work) Barycenters of tetrahedrons in "@{quad->?}" */ > quad: REF ARRAY OF FourNodes_t; /* The existing tetrahedrons */ > pVar: REF bool_vec_t; /* Which tetrahedrons in "@{chip->?}" are variable */ > bar: REF Coords_t; /* (Work) Barycenters of tetrahedrons in "@{chip->?}" */ --- 45c45 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 48,49c48,49 ----------------------- < erg->@{quad->?} = CollectExistingTetrahedrons(top); < erg->NT = ((erg->@{quad->?}^).nel); > erg->quad = CollectExistingTetrahedrons(top); > erg->NT = ((erg->quad^).nel); --- 51c51 ----------------------- < erg->vVar = bool_vec_new(top->NV); > erg->vVar = bool_vec_new(top->node.nel); --- 61c61 ----------------------- < PROCEDURE CollectExistingTetrahedrons(Topology *top): REF ARRAY OF @{Quad->?} == > PROCEDURE CollectExistingTetrahedrons(ElemTableRec_t *top): REF ARRAY OF FourNodes_t == --- 63,64c63,64 ----------------------- < { ??? NP = top->NP; < ??? t = NEW(REF ARRAY OF @{Quad->?}, NP)^; > { ??? NP = top->cell.nel; > ??? t = NEW(REF ARRAY OF FourNodes_t, NP)^; --- 69c69 ----------------------- < ??? a = top->region[i]; > ??? a = Srot(top.cell[i]); --- 79c79 ----------------------- < t[NT] = @{Quad->?}{u->num, v->num, w->num, x->num} > t[NT] = FourNodes_t{u->num, v->num, w->num, x->num} --- 85c85 ----------------------- < ??? r = NEW(REF ARRAY OF @{Quad->?}, NT); > ??? r = NEW(REF ARRAY OF FourNodes_t, NT); --- 101c101 ----------------------- < int NV = erg->top->NV; > int NV = erg->top->node.nel; --- 103c103 ----------------------- < ??? @{quad->?} = erg->@{quad->?}^; > ??? quad = erg->quad^; --- 111c111 ----------------------- < ??? ti = @{quad->?}[i]; > ??? ti = quad[i]; --- 127c127 ----------------------- < int NV = erg->top->NV; > int NV = erg->top->node.nel; --- 129c129 ----------------------- < ??? @{quad->?} = erg->@{quad->?}^; > ??? quad = erg->quad^; --- 140c140 ----------------------- < double Compute_rsq(*t: @{Quad->?}) > double Compute_rsq(*t: FourNodes_t) --- 176c176 ----------------------- < void Distribute_eDrsq(*t: @{Quad->?}; *eDr2: double) > void Distribute_eDrsq(*t: FourNodes_t; *eDr2: double) --- 179c179 ----------------------- < "eDr2" of the radius squared of "@{quad->?}" on the energy. > "eDr2" of the radius squared of "quad" on the energy. --- 232c232 ----------------------- < r4_t Compute_bar(*t: @{Quad->?}) > r4_t Compute_bar(*t: FourNodes_t) --- 248c248 ----------------------- < void Distribute_eDbar(*t: @{Quad->?}; *eDb: r4_t) > void Distribute_eDbar(*t: FourNodes_t; *eDb: r4_t) --- 251c251 ----------------------- < "eDb" of "@{quad->?}"'s barycenter on the energy. > "eDb" of "quad"'s barycenter on the energy. --- 319c319 ----------------------- < tetrahedrons "@{quad->?}[i]" and "@{quad->?}[j]", from "bar[i], > tetrahedrons "quad[i]" and "quad[j]", from "bar[i], --- 362c362 ----------------------- < /* Compute baricenters and 'radius squared' of @{quad->?}[i], clear derivatives: */ > /* Compute baricenters and 'radius squared' of quad[i], clear derivatives: */ --- 365,366c365,366 ----------------------- < bar[i] = Compute_bar(@{quad->?}[i]); < rsq[i] = Compute_rsq(@{quad->?}[i]); > bar[i] = Compute_bar(quad[i]); > rsq[i] = Compute_rsq(quad[i]); --- 398,399c398,399 ----------------------- < Distribute_eDbar(@{quad->?}[i], eDbar[i]); < Distribute_eDrsq(@{quad->?}[i], eDrsq[i]); > Distribute_eDbar(quad[i], eDbar[i]); > Distribute_eDrsq(quad[i], eDrsq[i]); ========================================== Files old/libenergy/ProxTetraEnergy.h and cur/libenergy/ProxTetraEnergy.h are identical ========================================== diff -Bbs -r old/libenergy/SimpleSpring.c cur/libenergy/SimpleSpring.c --- 19c19 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 35c35 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 38c38 ----------------------- < erg->termVar = bool_vec_new(top->NV); > erg->termVar = bool_vec_new(top->node.nel); --- 43c43 ----------------------- < for (i = 0; i < top->NV; i++){ erg->termVar^[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->termVar^[i] = FALSE; } --- 52c52 ----------------------- < ??? NV = erg->top->NV; > ??? NV = erg->top->node.nel; --- 89c89 ----------------------- < { int NV = erg->top->NV; > { int NV = erg->top->node.nel; ========================================== Files old/libenergy/SimpleSpring.h and cur/libenergy/SimpleSpring.h are identical ========================================== diff -Bbs -r old/libenergy/SpreadEnergy.c cur/libenergy/SpreadEnergy.c --- 11c11 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 27c27 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 29,30c29,30 ----------------------- < erg->K = 1.0/((double)top->NV); < erg->termVar = NEW(REF ARRAY OF bool_t, top->NV); > erg->K = 1.0/((double)top->node.nel); > erg->termVar = NEW(REF ARRAY OF bool_t, top->node.nel); --- 45c45 ----------------------- < int NV = erg->top->NV; > int NV = erg->top->node.nel; --- 64c64 ----------------------- < { int NV = erg->top->NV; > { int NV = erg->top->node.nel; ========================================== Files old/libenergy/SpreadEnergy.h and cur/libenergy/SpreadEnergy.h are identical ========================================== diff -Bbs -r old/libenergy/UneqVolEnergy.c cur/libenergy/UneqVolEnergy.c --- 21c21 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 40,41c40,41 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) < { erg->K = 1.0/((double)top->NF); > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) > { erg->K = 1.0/((double)top->wall.nel); --- 43,44c43,44 ----------------------- < erg->vVar = bool_vec_new(top->NV); < erg->wallRelevant = bool_vec_new(top->NF); > erg->vVar = bool_vec_new(top->node.nel); > erg->wallRelevant = bool_vec_new(top->wall.nel); --- 47,48c47,48 ----------------------- < erg->vr = double_vec_new(top->NF); < erg->eDvr = double_vec_new(top->NF); > erg->vr = double_vec_new(top->wall.nel); > erg->eDvr = double_vec_new(top->wall.nel); --- 51,52c51,52 ----------------------- < for (i = 0; i < top->NV; i++){ erg->vVar^[i] = FALSE; } < for (i = 0; i < top->NF; i++){ erg->wallRelevant^[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->vVar^[i] = FALSE; } > for (i = 0; i < top->wall.nel; i++){ erg->wallRelevant^[i] = FALSE; } --- 64,65c64,65 ----------------------- < int NV = erg->top->NV; < int NF = erg->top->NF; > int NV = erg->top->node.nel; > int NF = erg->top->wall.nel; --- 110,111c110,111 ----------------------- < int NV = erg->top->NV; < int NF = erg->top->NF; > int NV = erg->top->node.nel; > int NF = erg->top->wall.nel; ========================================== Files old/libenergy/UneqVolEnergy.h and cur/libenergy/UneqVolEnergy.h are identical ========================================== diff -Bbs -r old/libenergy/VarKamSpring.c cur/libenergy/VarKamSpring.c --- 16,17c16 ----------------------- < #include < // Topology, OrgV, Pneg; > #include --- 19d17 ----------------------- < // Coords_t, Gradient; --- 22d19 ----------------------- < // Place_t, Clock, NextF; --- 34c31 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 52c49 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 54c51 ----------------------- < { ??? NV = top->NV; > { ??? NV = top->node.nel; --- 68c65 ----------------------- < for (i = 0; i < top->NV; i++){ erg->termVar^[i] = FALSE; } > for (i = 0; i < top->node.nel; i++){ erg->termVar^[i] = FALSE; } --- 77c74 ----------------------- < int NV = erg->top->NV; > int NV = erg->top->node.nel; --- 89,90c86 ----------------------- < DistanceMatrix *ComputeDistanceMatrix( < *top : Triangulation.Topology; > DistanceMatrix *ComputeDistanceMatrix(ElemTableRec_t *top, --- 93,94c89,90 ----------------------- < { m = NEW(REF ARRAY OF ARRAY OF REAL, top->NV, top->NV); < for (i = 0; i < top->NV; i++) > { m = NEW(REF ARRAY OF ARRAY OF REAL, top->node.nel, top->node.nel); > for (i = 0; i < top->node.nel; i++) --- 96c92 ----------------------- < for (j = 0; j < top->NV; j++) > for (j = 0; j < top->node.nel; j++) --- 123c119 ----------------------- < NATS *ComputeCorrectedDegrees(Topology *top)== > NATS *ComputeCorrectedDegrees(ElemTableRec_t *top)== --- 128,129c124,125 ----------------------- < { ??? rd = NEW(REF NATS, top->NV), d == rd^; < double border = bool_vec_new(top->NV)^; > { ??? rd = NEW(REF NATS, top->node.nel), d == rd^; > double border = bool_vec_new(top->node.nel)^; --- 281c277 ----------------------- < { int NV = erg->top->NV; > { int NV = erg->top->node.nel; ========================================== Files old/libenergy/VarKamSpring.h and cur/libenergy/VarKamSpring.h are identical ========================================== diff -Bbs -r old/libenergy/VarWindingEnergy.c cur/libenergy/VarWindingEnergy.c --- 13d12 ----------------------- < // NextE, PrevE, NextF, DegreeOfWall; --- 15d13 ----------------------- < // OrgV, Topology, Place_t, Pneg; --- 17d14 ----------------------- < // Coords_t, Gradient; --- 30c27 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 56c53 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 71c68 ----------------------- < Terms *CollectTerms(Topology *top)== > Terms *CollectTerms(ElemTableRec_t *top)== --- 119c116 ----------------------- < assert((variable.nel) == erg->top->NV); > assert((variable.nel) == erg->top->node.nel); --- 166c163 ----------------------- < { int NV = erg->top->NV; > { int NV = erg->top->node.nel; ========================================== Files old/libenergy/VarWindingEnergy.h and cur/libenergy/VarWindingEnergy.h are identical ========================================== diff -Bbs -r old/libenergy/WindingEnergy.c cur/libenergy/WindingEnergy.c --- 23c23 ----------------------- < Topology_t *top; /* The topology */ > ElemTableRec_t *top; /* The map elements. */ --- 49c49 ----------------------- < void SELF_DefTop(SELF_T *erg, Topology_t *top) > void SELF_DefTop(SELF_T *erg, ElemTableRec_t *top) --- 64c64 ----------------------- < Terms *CollectTerms(Topology *top)== > Terms *CollectTerms(ElemTableRec_t *top)== --- 111c111 ----------------------- < assert((variable.nel) == erg->top->NV); > assert((variable.nel) == erg->top->node.nel); --- 155c155 ----------------------- < { int NV = erg->top->NV; > { int NV = erg->top->node.nel; ========================================== Files old/libenergy/WindingEnergy.h and cur/libenergy/WindingEnergy.h are identical ========================================== Files old/libmore/Bary.c and cur/libmore/Bary.c are identical ========================================== Files old/libmore/Bary.h and cur/libmore/Bary.h are identical ========================================== Files old/libmore/Deps.make and cur/libmore/Deps.make are identical ========================================== Files old/libmore/Makefile and cur/libmore/Makefile are identical ========================================== diff -Bbs -r old/libmore/OctfExtensions.h cur/libmore/OctfExtensions.h --- 39c39,40 ----------------------- < imply different orientations for at least one element of that flag. > imply different orientations for at least one element of that > element sequence. --- 41c42 ----------------------- < In particular, each quad {s} defines > In particular, each chip {s} defines --- 43c44 ----------------------- < The orientation provided by {s} on its flag makes it possible to > The orientation provided by {s} on its elements makes it possible to ========================================== Only in old/libmore: OctfExtensions.h~ ========================================== diff -Bbs -r old/libmore/Refine.c cur/libmore/Refine.c --- 2898c2898 ----------------------- < an = Onext(an); > an = ONext(an); ========================================== Files old/libmore/Refine.h and cur/libmore/Refine.h are identical ========================================== diff -Bbs -r old/libmore/TriangulationRest.c cur/libmore/TriangulationRest.c --- 11a12,49 ----------------------- > Place_vec_t RenumberWedges(Place_vec_t *pv) > { Place_vec_t pstack = Place_vec_new(INIT_STACK_SIZE); > uint nstack = 0; > uint seen = 0; /* Number of wedges whose childeren were looked at */ > > /* A wedge {n} is "marked" if PWedge(pstack.el[n.num]) == n. i.e whether stacked */ > > auto void VisitAndMark(Place_t t); > /* If {t} is unmarked: visit, mark, and stack it. */ > > void VisitAndMark(Place_t t) > { Wedge_t w = PWedge(t); > if ((w->num < nstack) && (PWedge(pstack.el[w->num]) == w)) > { /* wedge is already marked, do nothing. */ } > else > { Place_vec_expand(&pstack,nstack); > w->num = nstack; > pstack.el[nstack] = t; > nstack++; > } > } > > /* Enumerate wedges: */ > int i; > for (i = 0; i < pv->nel; i++) { VisitAndMark(pv->el[i]); } > while (seen < nstack) > { Place_t s = pstack.el[seen]; > VisitAndMark(PrevF(s)); > VisitAndMark(PrevE(s)); > VisitAndMark(NextE(s)); > VisitAndMark(NextF(PrevE(s))); > seen++; > } > /* Trim and return the {pstack}: */ > Place_vec_trim(&pstack,nstack); > return pstack; > } > --- 47c85 ----------------------- < void EnumNodes(Place_t p, visit: VisitProc) > void EnumNodes(Place_t p, visit: VisitFunc_t) --- 87c125 ----------------------- < cn = Onext(cn); > cn = ONext(cn); --- 151c189 ----------------------- < cn = Onext(cn); > cn = ONext(cn); --- 228c266 ----------------------- < Place_vec_t *CollectTetrahedra(Topology *tp)== > Place_vec_t *CollectTetrahedra(ElemTableRec_t *top)== --- 230c268 ----------------------- < { ??? rt = Place_vec_new(tp.NP); > { ??? rt = Place_vec_new(top.cell.nel); --- 232c270 ----------------------- < ??? q = Place_vec_new(tp.NP); > ??? q = Place_vec_new(top.cell.nel); --- 242c280 ----------------------- < t[k] = Tors(tp.region[k]); > t[k] = Tors(Srot(top.cell[k])); --- 324c362 ----------------------- < assert(processed == tp.NP); > assert(processed == top.cell.nel); --- 337,339c375,377 ----------------------- < AdjacencyMatrix *MakeAdjacencyMatrix(Topology *top)== < m = NEW(REF ARRAY OF ARRAY OF bool_t, top->NV, top->NV); < { for (i = 0; i < top->NV; i++){ > AdjacencyMatrix *MakeAdjacencyMatrix(ElemTableRec_t *top)== > m = NEW(REF ARRAY OF ARRAY OF bool_t, top->node.nel, top->node.nel); > { for (i = 0; i < top->node.nel; i++){ --- 342c380 ----------------------- < for (j = 0; j < top->NV; j++) > for (j = 0; j < top->node.nel; j++) --- 348c386 ----------------------- < for (ei = 0; ei < top->NFE; ei++) > for (ei = 0; ei < top->wall.nelE; ei++) --- 362c400 ----------------------- < bool_t TriviallyIsomorphic(Topology_t *ta, Topology_t *tb) > bool_t TriviallyIsomorphic(ElemTableRec_t *ta, ElemTableRec_t *tb) --- 396,399c434,437 ----------------------- < void CheckOutAndRegion(Topology *top) < { for (i = 0; i < top->NV; i++){ < Node_t v = top->node.el[i]; < ??? e = top->out[i]; > void CheckOutAndRegion(ElemTableRec_t *top) > { for (i = 0; i < top->node.nel; i++){ > Node_t v = OrgV(top->node.el[i]); > ??? e = top->node[i]; --- 405c443 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 408c446 ----------------------- < ??? r = top->region[i]; > ??? r = Srot(top.cell[i]); --- 416c454 ----------------------- < PROCEDURE GetVariableNodes(Topology_t *top, > PROCEDURE GetVariableNodes(ElemTableRec_t *top, --- 418,419c456,457 ----------------------- < { for (i = 0; i < top->NV; i++){ < Node_t v = top->node.el[i]; > { for (i = 0; i < top->node.nel; i++){ > Node_t v = OrgV(top->node.el[i]); --- 447c485 ----------------------- < Coords_t *GenCoords(Topology_t *t) > Coords_t *GenCoords(ElemTableRec_t *top) --- 449c487 ----------------------- < ??? r = r4_vec_new(t.NV); > ??? r = r4_vec_new(top.node.nel); --- 466c504 ----------------------- < r4_t Barycenter(Topology_t *top, Coords_t *c, bool_t all) > r4_t Barycenter(ElemTableRec_t *top, Coords_t *c, bool_t all) --- 470c508 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 504c542 ----------------------- < double MeanNodeDistance(Topology_t *top, Coords_t *c, > double MeanNodeDistance(ElemTableRec_t *top, Coords_t *c, --- 511c549 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 533c571 ----------------------- < double MaxNodeDistance(Topology_t *top, > double MaxNodeDistance(ElemTableRec_t *top, --- 539,540c577,578 ----------------------- < { for (i = 0; i < top->NV; i++){ < Node_t v = top->node.el[i]; > { for (i = 0; i < top->node.nel; i++){ > Node_t v = OrgV(top->node.el[i]); --- 554c592 ----------------------- < double MeanThickness(Topology_t *top, Coords_t *c, r4_t *ctr, r4_t *norm, bool_t all) > double MeanThickness(ElemTableRec_t *top, Coords_t *c, r4_t *ctr, r4_t *norm, bool_t all) --- 557,558c595,596 ----------------------- < { for (i = 0; i < top->NV; i++){ < Node_t v = top->node.el[i]; > { for (i = 0; i < top->node.nel; i++){ > Node_t v = OrgV(top->node.el[i]); --- 580c618 ----------------------- < double MeanEdgeLength(Topology_t *top, Coords_t *c, bool_t all) > double MeanEdgeLength(ElemTableRec_t *top, Coords_t *c, bool_t all) --- 606c644 ----------------------- < r4_t MeanCellNormal(Topology_t *top, Coords_t *c, bool_t all) > r4_t MeanCellNormal(ElemTableRec_t *top, Coords_t *c, bool_t all) --- 608,609c646,647 ----------------------- < { for (i = 0; i < top->NP; i++){ < Place_t f = Tors(top->region[i]), p == PnegP(f); > { for (i = 0; i < top->cell.nel; i++){ > Place_t f = Tors(Srot(top.cell[i])), p == PnegP(f); --- 633c671 ----------------------- < void Displace(Topology_t *top, r4_t *d, Coords_t *c) > void Displace(ElemTableRec_t *top, r4_t *d, Coords_t *c) --- 635c673 ----------------------- < if (top->node.el[i]->exists) > if (OrgV(top->node.el[i])->exists) --- 643c681 ----------------------- < void Scale(Topology_t *top, double s, Coords_t *c) > void Scale(ElemTableRec_t *top, double s, Coords_t *c) --- 645c683 ----------------------- < if (top->node.el[i]->exists) > if (OrgV(top->node.el[i])->exists) --- 653c691 ----------------------- < void NormalizeNodeDistances(Topology_t *top, Coords_t *c; bool_t all) > void NormalizeNodeDistances(ElemTableRec_t *top, Coords_t *c; bool_t all) --- 664c702 ----------------------- < void NormalizeEdgeLengths(Topology_t *top, Coords_t *c; bool_t all) > void NormalizeEdgeLengths(ElemTableRec_t *top, Coords_t *c; bool_t all) --- 846c884 ----------------------- < *top : Topology) > ElemDataRec_t *top) --- 878c916 ----------------------- < r4_t NodeNormal(Place_t @p, Coords_t *c, Topology_t *top) > r4_t NodeNormal(Place_t @p, Coords_t *c, ElemTableRec_t *top) --- 895c933 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 928c966 ----------------------- < Quadv_vec_t *StarOfNode(Place_t @p, Topology_t *top)== > Quadv_vec_t *StarOfNode(Place_t @p, ElemTableRec_t *top)== --- 930c968 ----------------------- < PROCEDURE NodePoly(*top : Topology): REF ARRAY OF Quadp == > PROCEDURE NodePoly(ElemDataRec_t *top): REF ARRAY OF Quadp == --- 934c972 ----------------------- < REF ARRAY OF Quadp poly = NEW(REF ARRAY OF Quadp, top->NP); > REF ARRAY OF Quadp poly = NEW(REF ARRAY OF Quadp, top->cell.nel); --- 936c974 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 938c976 ----------------------- < ??? da = top->region[i]; > ??? da = Srot(top.cell[i]); --- 967c1005 ----------------------- < poly1 : REF Quadv_vec_t = Quadv_vec_new(top->NP); > poly1 : REF Quadv_vec_t = Quadv_vec_new(top->cell.nel); --- 1002c1040 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 1005c1043 ----------------------- < { ??? rvn = r4_vec_new(top->NV); > { ??? rvn = r4_vec_new(top->node.nel); --- 1008c1046 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 1010c1048 ----------------------- < vn[i] = NodeNormal(top->out[i], c, top) > vn[i] = NodeNormal(top->node[i], c, top) --- 1016c1054 ----------------------- < r4_vec_t *ComputeAllEdgeNormals(Topology_t *top, > r4_vec_t *ComputeAllEdgeNormals(ElemTableRec_t *top, --- 1030c1068 ----------------------- < r4_vec_t *ComputeAllWallNormals(Topology_t *top, > r4_vec_t *ComputeAllWallNormals(ElemTableRec_t *top, --- 1033c1071 ----------------------- < { ??? rvn = r4_vec_new(top->NF); > { ??? rvn = r4_vec_new(top->wall.nel); --- 1036c1074 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 1044c1082 ----------------------- < r4_vec_t *ComputeAllCellNormals(Topology_t *top, > r4_vec_t *ComputeAllCellNormals(ElemTableRec_t *top, --- 1047c1085 ----------------------- < { ??? rvn = r4_vec_new(top->NP); > { ??? rvn = r4_vec_new(top->cell.nel); --- 1050c1088 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 1052c1090 ----------------------- < vn[i] = PolyNormal(Tors(top->region[i]), c); > vn[i] = PolyNormal(Tors(Srot(top.cell[i])), c); --- 1067,1068c1105,1106 ----------------------- < ptop.NF = (star.nel); < ptop.fRef = Place_vec_new(ptop.NF); > ptop.wall.nel = (star.nel); > ptop.fRef = Place_vec_new(ptop.wall.nel); --- 1070c1108 ----------------------- < for (i = 0; i < ptop.NF; i++) > for (i = 0; i < ptop.wall.nel; i++) --- 1092,1093c1130,1131 ----------------------- < ptop.NE = ne DIV 2; < ptop.eRef = Place_vec_new(ptop.NE); > ptop.edge.nel = ne DIV 2; > ptop.eRef = Place_vec_new(ptop.edge.nel); --- 1095c1133 ----------------------- < for (i = 0; i < ptop.NF; i++) > for (i = 0; i < ptop.wall.nel; i++) --- 1123,1124c1161,1162 ----------------------- < ptop.NV = 2 + ptop.NE - ptop.NF; < ptop.vRef = Place_vec_new(ptop.NV); > ptop.node.nel = 2 + ptop.edge.nel - ptop.wall.nel; > ptop.vRef = Place_vec_new(ptop.node.nel); --- 1126c1164 ----------------------- < for (i = 0; i < ptop.NE; i++) > for (i = 0; i < ptop.edge.nel; i++) --- 1147c1185 ----------------------- < for (i = 0; i < ptop.NV; i++){ Node_t u = OrgV(ptop.vRef[i]); > for (i = 0; i < ptop.node.nel; i++){ Node_t u = OrgV(ptop.vRef[i]); --- 1161c1199 ----------------------- < Topology_t *top; > ElemTableRec_t *top; --- 1171c1209 ----------------------- < top->NV = fget_int(rd); > top->node.nel = fget_int(rd); --- 1175c1213 ----------------------- < top->NF = fget_int(rd); > top->wall.nel = fget_int(rd); --- 1177c1215 ----------------------- < top->NP = fget_int(rd); > top->cell.nel = fget_int(rd); --- 1179c1217 ----------------------- < top->NFE = fget_int(rd); > top->wall.nelE = fget_int(rd); --- 1187c1225 ----------------------- < ??? map = NEW(REF ARRAY OF Octf.wedge, top->NFE)^; > ??? map = NEW(REF ARRAY OF Octf.wedge, top->wall.nelE)^; --- 1191,1193c1229,1231 ----------------------- < top->node = Node_vec_new(top->NV); < top->out = Place_vec_new(top->NV); < for (i = 0; i < top->NV; i++){ top->node[i] = MakeNode(); } > top->node = Node_vec_new(top->node.nel); > top->node = Place_vec_new(top->node.nel); > for (i = 0; i < top->node.nel; i++){ top->node[i] = MakeNode(); } --- 1207,1208c1245,1246 ----------------------- < top->wall = Wall_vec_new(top->NF); < for (i = 0; i < top->NF; i++) > top->wall = Wall_vec_new(top->wall.nel); > for (i = 0; i < top->wall.nel; i++) --- 1221,1222c1259 ----------------------- < top->cell = NEW(REF ARRAY OF Cell, top->NP); < top->region = Place_vec_new(top->NP); > top->cell = Place_vec_new(???); --- 1224c1261 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 1276,1277c1313,1314 ----------------------- < top->wedge = NEW(REF ARRAY OF Octf_Place_t, top->NFE); < for (i = 0; i < top->NFE; i++) > top->wedge = NEW(REF ARRAY OF Octf_Place_t, top->wall.nelE); > for (i = 0; i < top->wall.nelE; i++) --- 1301c1338 ----------------------- < for (j = 0; j < top->NF; j++) > for (j = 0; j < top->wall.nel; j++) --- 1316c1353 ----------------------- < for (j = 0; j < top->NFE; j++) > for (j = 0; j < top->wall.nelE; j++) --- 1339c1376 ----------------------- < top->out[m] = PlaceInWedge(fe, 2*k); > top->node[m] = PlaceInWedge(fe, 2*k); --- 1344c1381 ----------------------- < top->region[m] = PlaceInWedge(fe, 2*k); > top->cell[m] = Tors(PlaceInWedge(fe, 2*k)); --- 1364c1401 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 1372c1409 ----------------------- < for (j = 0; j < top->NV; j++) > for (j = 0; j < top->node.nel; j++) --- 1464c1501 ----------------------- < for (j = 0; j < top->NF; j++) > for (j = 0; j < top->wall.nel; j++) --- 1512c1549 ----------------------- < if (top->NP!=0) > if (top->cell.nel!=0) --- 1516c1553 ----------------------- < for (j = 0; j < top->NP; j++) > for (j = 0; j < top->cell.nel; j++) --- 1633c1670 ----------------------- < void WriteState(char *name, Topology_t *top, Coords_t *c, > void WriteState(char *name, ElemTableRec_t *top, Coords_t *c, --- 1638c1675 ----------------------- < ??? vWidth = digits(top->NV - 1); > ??? vWidth = digits(top->node.nel - 1); --- 1660c1697 ----------------------- < fprintf(st, Fmt.Int(top->NV) & "\n"); > fprintf(st, Fmt.Int(top->node.nel) & "\n"); --- 1668c1705 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 1670c1707 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 1685c1722 ----------------------- < void WriteMaterials(char *name, Topology_t *top, > void WriteMaterials(char *name, ElemTableRec_t *top, --- 1691c1728 ----------------------- < { if (top->NP == 0){ pWidth = 2 }else{ pWidth = digits(top->NP-1); } > { if (top->cell.nel == 0){ pWidth = 2 }else{ pWidth = digits(top->cell.nel-1); } --- 1693,1694c1730,1731 ----------------------- < ??? vWidth = digits(top->NV-1); < ??? fWidth = digits(top->NF-1); > ??? vWidth = digits(top->node.nel-1); > ??? fWidth = digits(top->wall.nel-1); --- 1734c1771 ----------------------- < ??? m = digits(top->NP); > ??? m = digits(top->cell.nel); --- 1736c1773 ----------------------- < filefmt_write_comments(ma,"nodes " & Fmt.Pad(Fmt.Int(top->NV),m), '|'); > filefmt_write_comments(ma,"nodes " & Fmt.Pad(Fmt.Int(top->node.nel),m), '|'); --- 1738,1739c1775,1776 ----------------------- < filefmt_write_comments(ma,"walls " & Fmt.Pad(Fmt.Int(top->NF),m), '|'); < filefmt_write_comments(ma,"cells " & Fmt.Int(top->NP), '|'); > filefmt_write_comments(ma,"walls " & Fmt.Pad(Fmt.Int(top->wall.nel),m), '|'); > filefmt_write_comments(ma,"cells " & Fmt.Int(top->cell.nel), '|'); --- 1743c1780 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 1745c1782 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 1797c1834 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 1823c1860 ----------------------- < if (top->NP!=0) > if (top->cell.nel!=0) --- 1828c1865 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 2022c2059 ----------------------- < void WriteTopology(char *name, Topology_t *top, char *cmt /* DF " " */) > void WriteTopology(char *name, ElemTableRec_t *top, char *cmt /* DF " " */) --- 2025,2027c2062,2064 ----------------------- < { if (top->NP == 0){ pWidth= 2 }else{ pWidth = digits(top->NP-1); } < ??? tp = FileWr.Open(name & ".tp"); < ??? vWidth = digits(top->NV - 1); > { if (top->cell.nel == 0){ pWidth= 2 }else{ pWidth = digits(top->cell.nel-1); } > ??? top = FileWr.Open(name & ".tp"); > ??? vWidth = digits(top->node.nel - 1); --- 2029,2030c2066,2067 ----------------------- < ??? fWidth = digits(top->NF - 1); < ??? feWidth = digits(top->NFE -1); > ??? fWidth = digits(top->wall.nel - 1); > ??? feWidth = digits(top->wall.nelE -1); --- 2032c2069 ----------------------- < WriteHeader(tp,"topology","99-08-25"); > WriteHeader(top,"topology","99-08-25"); --- 2035c2072 ----------------------- < filefmt_write_comments(tp, cmt & "\n", '|') > filefmt_write_comments(top, cmt & "\n", '|') --- 2038c2075 ----------------------- < ??? m = digits(top->NFE); > ??? m = digits(top->wall.nelE); --- 2040,2050c2077,2087 ----------------------- < fprintf(tp, "nodes "); < fprintf(tp, Fmt.Pad(Fmt.Int(top->NV),m) & "\n"); < fprintf(tp, "@{edge->?}s "); < fprintf(tp, Fmt.Pad(Fmt.Int(top->NE),m) & "\n"); < fprintf(tp, "walls "); < fprintf(tp, Fmt.Pad(Fmt.Int(top->NF),m) & "\n"); < fprintf(tp, "cells "); < fprintf(tp, Fmt.Pad(Fmt.Int(top->NP),m) & "\n"); < fprintf(tp, "wedges "); < fprintf(tp, Fmt.Int(top->NFE) & "\n"); < fprintf(tp, "der "); > fprintf(top, "nodes "); > fprintf(top, Fmt.Pad(Fmt.Int(top->node.nel),m) & "\n"); > fprintf(top, "@{edge->?}s "); > fprintf(top, Fmt.Pad(Fmt.Int(top->NE),m) & "\n"); > fprintf(top, "walls "); > fprintf(top, Fmt.Pad(Fmt.Int(top->wall.nel),m) & "\n"); > fprintf(top, "cells "); > fprintf(top, Fmt.Pad(Fmt.Int(top->cell.nel),m) & "\n"); > fprintf(top, "wedges "); > fprintf(top, Fmt.Int(top->wall.nelE) & "\n"); > fprintf(top, "der "); --- 2052,2053c2089,2090 ----------------------- < { fprintf(tp, Fmt.Pad(Fmt.Int(der),m) & "\n"); } < fprintf(tp, "bdr "); > { fprintf(top, Fmt.Pad(Fmt.Int(der),m) & "\n"); } > fprintf(top, "bdr "); --- 2055c2092 ----------------------- < { fprintf(tp, Fmt.Pad(Fmt.Int(bdr),m) & "\n"); } > { fprintf(top, Fmt.Pad(Fmt.Int(bdr),m) & "\n"); } --- 2058c2095 ----------------------- < filefmt_write_comments(tp, "\n@{Edge->?} data:\n", '|'); > filefmt_write_comments(top, "\n@{Edge->?} data:\n", '|'); --- 2063,2065c2100,2102 ----------------------- < fprintf(tp, Fmt.Pad(Fmt.Int(e->num), eWidth)); < fprintf(tp, " "); < Octf.PrintPlace(tp, e.pa, eWidth+1, TRUE); > fprintf(top, Fmt.Pad(Fmt.Int(e->num), eWidth)); > fprintf(top, " "); > Octf.PrintPlace(top, e.pa, eWidth+1, TRUE); --- 2069,2070c2106,2107 ----------------------- < filefmt_write_comments(tp, "\nWall data:\n", '|'); < for (i = 0; i < top->NF; i++) > filefmt_write_comments(top, "\nWall data:\n", '|'); > for (i = 0; i < top->wall.nel; i++) --- 2074,2076c2111,2113 ----------------------- < fprintf(tp, Fmt.Pad(Fmt.Int(f->num), fWidth)); < fprintf(tp, " "); < Octf.PrintPlace(tp, f.pa, fWidth+1, TRUE); > fprintf(top, Fmt.Pad(Fmt.Int(f->num), fWidth)); > fprintf(top, " "); > Octf.PrintPlace(top, f.pa, fWidth+1, TRUE); --- 2080,2081c2117,2118 ----------------------- < filefmt_write_comments(tp, "\nwedge data:\n", '|'); < for (i = 0; i < top->NFE; i++) > filefmt_write_comments(top, "\nwedge data:\n", '|'); > for (i = 0; i < top->wall.nelE; i++) --- 2085,2088c2122,2125 ----------------------- < fprintf(tp, Fmt.Pad(Fmt.Int(fe->num), feWidth)); < fprintf(tp, " "); < Octf.PrintWedge(tp, fe, feWidth); < fprintf(tp, " "); > fprintf(top, Fmt.Pad(Fmt.Int(fe->num), feWidth)); > fprintf(top, " "); > Octf.PrintWedge(top, fe, feWidth); > fprintf(top, " "); --- 2095,2097c2132,2134 ----------------------- < case NULL: for (i = 0; i < (pWidth-1); i++){ fprintf(tp," "); } < fprintf(tp, " - "); < | Node(v) ==> fprintf(tp, Fmt.Pad(Fmt.Int(v->num), vWidth) > case NULL: for (i = 0; i < (pWidth-1); i++){ fprintf(top," "); } > fprintf(top, " - "); > | Node(v) ==> fprintf(top, Fmt.Pad(Fmt.Int(v->num), vWidth) --- 2099c2136 ----------------------- < | Cell(p) ==> fprintf(tp, Fmt.Pad(Fmt.Int(p->num), > | Cell(p) ==> fprintf(top, Fmt.Pad(Fmt.Int(p->num), --- 2107c2144 ----------------------- < fprintf(tp, " "); > fprintf(top, " "); --- 2110c2147 ----------------------- < fprintf(tp, Fmt.Pad(Fmt.Int(f->num), fWidth)); > fprintf(top, Fmt.Pad(Fmt.Int(f->num), fWidth)); --- 2112c2149 ----------------------- < fprintf(tp, "f "); > fprintf(top, "f "); --- 2115c2152 ----------------------- < fprintf(tp, Fmt.Pad(Fmt.Int(e->num), eWidth)); > fprintf(top, Fmt.Pad(Fmt.Int(e->num), eWidth)); --- 2117c2154 ----------------------- < fprintf(tp, "e\n"); > fprintf(top, "e\n"); --- 2120,2121c2157,2158 ----------------------- < filefmt_write_footer(tp, "topology"); < fclose(tp); > filefmt_write_footer(top, "topology"); > fclose(top); --- 2125c2162 ----------------------- < void WriteDualTopology(char *name, Topology_t *top, char *cmt /* DF " " */) > void WriteDualTopology(char *name, ElemTableRec_t *top, char *cmt /* DF " " */) --- 2146c2183 ----------------------- < ??? vWidth = digits(MAX(1, top->NV - 1)); > ??? vWidth = digits(MAX(1, top->node.nel - 1)); --- 2148,2150c2185,2187 ----------------------- < ??? fWidth = digits(MAX(1,top->NF - 1)); < ??? pWidth = digits(MAX(1,top->NP - 1)); < ??? feWidth = digits(MAX(1,top->NFE -1)); > ??? fWidth = digits(MAX(1,top->wall.nel - 1)); > ??? pWidth = digits(MAX(1,top->cell.nel - 1)); > ??? feWidth = digits(MAX(1,top->wall.nelE -1)); --- 2158c2195 ----------------------- < ??? m = digits(top->NFE); > ??? m = digits(top->wall.nelE); --- 2161c2198 ----------------------- < fprintf(tp, Fmt.Pad(Fmt.Int(top->NP),m) & "\n"); > fprintf(tp, Fmt.Pad(Fmt.Int(top->cell.nel),m) & "\n"); --- 2163c2200 ----------------------- < fprintf(tp, Fmt.Pad(Fmt.Int(top->NF),m) & "\n"); > fprintf(tp, Fmt.Pad(Fmt.Int(top->wall.nel),m) & "\n"); --- 2167c2204 ----------------------- < fprintf(tp, Fmt.Pad(Fmt.Int(top->NV),m) & "\n"); > fprintf(tp, Fmt.Pad(Fmt.Int(top->node.nel),m) & "\n"); --- 2169c2206 ----------------------- < fprintf(tp, Fmt.Int(top->NFE) & "\n"); > fprintf(tp, Fmt.Int(top->wall.nelE) & "\n"); --- 2177c2214 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 2201c2238 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) ========================================== diff -Bbs -r old/liboct/BigCube.c cur/liboct/BigCube.c --- 200c200,203 ----------------------- < void SetCubeProperties(TwoPlaces_vec_t *a, uint n, Topology_t *tp) > bool_t WallOnBoundary(Place_t p); > /* [!!! Define it somewhere !!!] */ > > void SetCubeProperties(TwoPlaces_vec_t *a, uint n, ElemTableRec_t *top) --- 252,253c255,256 ----------------------- < for (i = 0; i < tp->NF; i++) < { Place_t f = tp->wall.el[i]->pa; > for (i = 0; i < top->wall.nel; i++) > { Place_t f = top->wall.el[i]; ========================================== Only in old/liboct: BigCube.c~ ========================================== diff -Bbs -r old/liboct/BigCube.h cur/liboct/BigCube.h --- 28c28 ----------------------- < void SetCubeProperties(TwoPlaces_vec_t *a, uint n, Topology_t *tp); > void SetCubeProperties(TwoPlaces_vec_t *a, uint n, ElemTableRec_t *top); ========================================== diff -Bbs -r old/liboct/Cube.c cur/liboct/Cube.c --- 184c184 ----------------------- < void FixCoordsCube(SixPlaces_t *ca, Topology_t *top, Coords_t *c) > void FixCoordsCube(SixPlaces_t *ca, ElemTableRec_t *top, Coords_t *c) ========================================== Only in old/liboct: Cube.c~ ========================================== diff -Bbs -r old/liboct/Cube.h cur/liboct/Cube.h --- 49c49 ----------------------- < void FixCoordsCube(SixPlaces_t *ca, Topology_t *top, Coords_t *c); > void FixCoordsCube(SixPlaces_t *ca, ElemTableRec_t *top, Coords_t *c); ========================================== Files old/liboct/Deps.make and cur/liboct/Deps.make are identical ========================================== diff -Bbs -r old/liboct/Dodecahedron.c cur/liboct/Dodecahedron.c --- 23c23 ----------------------- < for (i = 0; i < 6; i++) { a.p[i] = MakeGon(5); } > for (i = 0; i < 6; i++) { a.p[i] = MakePolygon(5); } ========================================== Only in old/liboct: Dodecahedron.c~ ========================================== Files old/liboct/Dodecahedron.h and cur/liboct/Dodecahedron.h are identical ========================================== diff -Bbs -r old/liboct/FunnyBall.c cur/liboct/FunnyBall.c --- 34c34 ----------------------- < for (i = 0; i < 4; i++) { co.p[i] = MakeGon(2); } > for (i = 0; i < 4; i++) { co.p[i] = MakePolygon(2); } ========================================== Only in old/liboct: FunnyBall.c~ ========================================== Files old/liboct/FunnyBall.h and cur/liboct/FunnyBall.h are identical ========================================== Files old/liboct/Icosahedron.c and cur/liboct/Icosahedron.c are identical ========================================== Only in old/liboct: Icosahedron.c~ ========================================== Files old/liboct/Icosahedron.h and cur/liboct/Icosahedron.h are identical ========================================== Files old/liboct/JUNK/JSTri.c and cur/liboct/JUNK/JSTri.c are identical ========================================== Files old/liboct/JUNK/JSTri.h and cur/liboct/JUNK/JSTri.h are identical ========================================== Files old/liboct/JUNK/JSTriRest.c and cur/liboct/JUNK/JSTriRest.c are identical ========================================== Files old/liboct/JUNK/Mapi.c and cur/liboct/JUNK/Mapi.c are identical ========================================== Files old/liboct/JUNK/Mapi.h and cur/liboct/JUNK/Mapi.h are identical ========================================== Files old/liboct/JUNK/QuadEdge.c and cur/liboct/JUNK/QuadEdge.c are identical ========================================== Files old/liboct/JUNK/QuadEdge.h and cur/liboct/JUNK/QuadEdge.h are identical ========================================== Files old/liboct/JUNK/Trunc.c and cur/liboct/JUNK/Trunc.c are identical ========================================== Files old/liboct/JUNK/VStar.c and cur/liboct/JUNK/VStar.c are identical ========================================== Files old/liboct/JUNK/VStar.h and cur/liboct/JUNK/VStar.h are identical ========================================== Files old/liboct/Makefile and cur/liboct/Makefile are identical ========================================== diff -Bbs -r old/liboct/Map.c cur/liboct/Map.c --- 7c7 ----------------------- < #define Triangulation_C_COPYRIGHT \ > #define Map_C_COPYRIGHT \ --- 13c13 ----------------------- < Topology_t MakeTopology(Place_vec_t pv) > ElemTableRec_t MakeElemTable(Place_vec_t root) --- 15c15 ----------------------- < Topology_t top; > ElemTableRec_t top; --- 17,18c17 ----------------------- < top.wedge = EnumWedges(pv, NULL); < top.NFE = top.wedge.nel; > top.wedge = EnumWedges(root, NULL); --- 20c19,20 ----------------------- < /* Collect the map elements as place orbits; */ > top.node = Place_vec_new(0); > (void)EnumElems(root, 0, NULL, &top.node); --- 22,56c22,26 ----------------------- < top.edge = EnumEdges(pv, NULL); < top.NE = (top.edge.nel); < < top.wall = EnumWalls(pv, NULL); < top.NF = (top.wall.nel); < < top.node = EnumNodes(pv, NULL); < top.NV = (top.node.nel); < < top.cell = EnumCells(pv, NULL); < top.NP = (top.node.nel); < < /* < top.der = DegreeOfEdge(&(top.wall)); < top.bdr = bdr; < */ < < uint i, k; < for (i = 0; i < top.NFE; i++) < { Place_t c = top.wedge.el[i]; < for (k = 0; k < 2; k++) < { Node_t v = OrgV(c); < uint vi = v->num; < top.node.el[vi] = v; < top.out.el[vi] = c; < Cell_t q = PnegP(c); < if (q != NULL) < { uint qi = q->num; < top.cell.el[qi] = q; < top.region.el[qi] = Srot(c); < assert(Pneg(c) == Org(top.region.el[qi])); < } < c = Clock(c); < } < } > top.edge = Place_vec_new(0); > (void)EnumElems(root, 1, NULL, &top.edge); > > top.wall = Place_vec_new(0); > (void)EnumElems(root, 2, NULL, &top.wall); --- 58c28,36 ----------------------- < uint m = digits(top.NFE) + 1; > top.cell = Place_vec_new(0); > (void)EnumElems(root, 3, NULL, &top.cell); > > uint m = digits(top.wedge.nel) + 1; > fprintf(stderr, "\n"); > fprintf(stderr, "nodes = %*d\n", m, top.node.nel); > fprintf(stderr, "edges = %*d\n", m, top.edge.nel); > fprintf(stderr, "walls = %*d\n", m, top.wall.nel); > fprintf(stderr, "cells = %*d\n", m, top.cell.nel); --- 60,64c38 ----------------------- < fprintf(stderr, "nv = %*d\n", m, top.NV); < fprintf(stderr, "ne = %*d\n", m, top.NE); < fprintf(stderr, "nf = %*d\n", m, top.NF); < fprintf(stderr, "np = %*d\n", m, top.NP); < fprintf(stderr, "nfe = %*d\n", m, top.NFE); > fprintf(stderr, "wedges = %*d\n", m, top.wedge.nel); --- 68c42 ----------------------- < int euler = top.NV - top.NE + top.NF - top.NP; > int euler = top.node.nel - top.edge.nel + top.wall.nel - top.cell.nel; --- 69a44 ----------------------- > --- 73c48 ----------------------- < #define Triangulation_C_author \ > #define Map_C_author \ --- 79,80c54 ----------------------- < " procedure {MakeTopology} and related ones." < > " procedure {MakeElemTable} and related ones." ========================================== Only in old/liboct: Map.c~ ========================================== diff -Bbs -r old/liboct/Map.h cur/liboct/Map.h --- 22c22 ----------------------- < typedef struct Topology_t /* [!!! Should be {TopologyRec_t} !!!] */ > typedef struct ElemTableRec_t --- 29,32d28 ----------------------- < /* [!!! RENAMED: top.out -> top.node; top.node[i] -> PNode(top->node[i]); !!!] */ < /* [!!! RENAMED: top.region -> top.cell; top.cell[i] -> PCell(top->cell[i]); !!!] */ < /* Place_vec_t out; */ /* one place for each node where: Org(out[v]) == node[v] */ < /* Place_vec_t region; */ /* one place for each cell where: Org(region[r]) == cell[r] */ --- 38c34 ----------------------- < } Topology_t; > } ElemTableRec_t; --- 41c37 ----------------------- < A {Topology_t} structure {t} describes a 3D map {N}, consisting zero > A {ElemTableRec_t} structure {top} describes a 3D map {N}, consisting zero --- 44c40 ----------------------- < {t.elem[d]}, for {d} in {0..3} that provide direct access to > {top.elem[d]}, for {d} in {0..3} that provide direct access to --- 47c43 ----------------------- < For data structure {t} to be valid, each data field {p.data[d]} of > For data structure {top} to be valid, each data field {p.data[d]} of --- 56c52 ----------------------- < entry {p = t.elem[d].el[i]} must be a place on the {d}-element > entry {p = top.elem[d].el[i]} must be a place on the {d}-element --- 63,67c59 ----------------------- < Topology_t MakeTopology(Place_vec_t pv); < /* This procedure computes the explicit topology of that part of the < primal map that can be reached from places {pv.el[0..pv.nel]}. All < starting places must be on the primal map. The map may have a < non-empty border. */ > typedef ElemTableRec_t *ElemTable_t; --- 69c61,66 ----------------------- < void FreeMapData(Topology_t *t); > ElemTableRec_t MakeElemTable(Place_vec_t root); > /* This procedure renumbers the element records in the > submap {N} that are reachable from the places {root.el[0..root.nel-1]}, > and returns an {ElemTableRec_t} with one place on each element. */ > > void FreeMapData(ElemTableRec_t *top); --- 71,72c68,69 ----------------------- < topology {t}, including the element data records and the tables < {t->elem[0..3].el}. */ > map element table {top}, including the element data records and the tables > {top->elem[0..3].el}. */ --- 83c80 ----------------------- < typedef struct CellTopology_t > typedef struct CellElementTable_t --- 87c84 ----------------------- < } CellTopology_t; > } CellElementTable_t; --- 90c87 ----------------------- < just a {Topology_t} for the submap that comprises > just a {ElemTableRec_t} for the submap that comprises --- 93c90 ----------------------- < CellTopology_t *MakeCellTopology(Place_t p); > CellElementTable_t *MakeCellTopology(Place_t p); --- 97c94 ----------------------- < bool_t TriviallyIsomorphic(Topology_t *ta, Topology_t *tb); > bool_t TriviallyIsomorphic(ElemTableRec_t *ta, ElemTableRec_t *tb); ========================================== Only in old/liboct: Map.h~ ========================================== Files old/liboct/Minimizer.h and cur/liboct/Minimizer.h are identical ========================================== Files old/liboct/Mis.c and cur/liboct/Mis.c are identical ========================================== Only in old/liboct: Mis.c~ ========================================== Files old/liboct/Mis.h and cur/liboct/Mis.h are identical ========================================== Only in old/liboct: Mis.h~ ========================================== Files old/liboct/Octahedron.c and cur/liboct/Octahedron.c are identical ========================================== Only in old/liboct: Octahedron.c~ ========================================== Files old/liboct/Octahedron.h and cur/liboct/Octahedron.h are identical ========================================== diff -Bbs -r old/liboct/Octf.c cur/liboct/Octf.c --- 18,71d17 ----------------------- < #define INIT_STACK_SIZE 1024 < < void EnumWedges(Place_t p, VisitProc visit, bool_t wedges) < { Place_vec_t stack = Place_vec_new(INIT_STACK_SIZE); < uint top = 0; < uint seen = 0; /*!=of @{quad->?}s whose childeren were looked at */ < < auto void VisitAndMark(Place_t c); < /* If wedge(c) is unmarked: visit, mark, and stack it. */ < < void VisitAndMark(Place_t c) < { Wedge_t w = PWedge(c); < if (! w->marks2[DualBit(c)]) < { visit(c); /* [!!! Should we allow for early termination? !!!] */ < if (! wedges) { visit(Clock(c));}; < Place_vec_expand(&stack,top); < w->marks2[DualBit(c)] = TRUE; < stack.el[top] = c; top++; < } < } < < assert(! PWedge(p)->marks2[DualBit(p)]); < /* Enumerate all wedges: */ < VisitAndMark(p); < while (seen < top) < { Place_t b = stack.el[seen]; < VisitAndMark(PrevF(b)); < VisitAndMark(PrevE(b)); < VisitAndMark(NextE(b)); < VisitAndMark(NextF(PrevE(b))); < seen++; < } < /* Erase all marks */ < while (top > 0) < { top--; < Place_t b = stack.el[top]; < PWedge(b)->marks2[DualBit(b)] = FALSE; < } < } < < uint DegreeOfWall(Place_t p) < { uint n = 0; < Place_t s = p; < do { n++; s = NextF(s); } while (s != p); < return n; < } < < uint DegreeOfEdge(Place_t p) < { uint n = 0; < Place_t s = p; < do { n++; s = NextE(s); } while (s != p); < return n; < } < --- 136c82 ----------------------- < Place_t NextEk(Place_t p, int k) > Place_t NextEK(Place_t p, int k) --- 144c90 ----------------------- < Place_t NextFk(Place_t p, int k) > Place_t NextFK(Place_t p, int k) --- 198c144 ----------------------- < Place_t Onext(Place_t s) > Place_t ONext(Place_t s) --- 201c147 ----------------------- < Place_t Oprev(Place_t s) > Place_t OPrev(Place_t s) --- 204c150 ----------------------- < /* [!!! Comment in Octh.c was : equivalent to Onext but change NextF by PrevF */ > /* [!!! Comment in Octh.c was : equivalent to ONext but change NextF by PrevF */ --- 241,278d186 ----------------------- < Place_vec_t RenumberWedges(Place_vec_t *pv) < { Place_vec_t pstack = Place_vec_new(INIT_STACK_SIZE); < uint nstack = 0; < uint seen = 0; /* Number of wedges whose childeren were looked at */ < < /* A wedge {n} is "marked" if PWedge(pstack.el[n.num]) == n. i.e whether stacked */ < < auto void VisitAndMark(Place_t t); < /* If {t} is unmarked: visit, mark, and stack it. */ < < void VisitAndMark(Place_t t) < { Wedge_t w = PWedge(t); < if ((w->num < nstack) && (PWedge(pstack.el[w->num]) == w)) < { /* wedge is already marked, do nothing. */ } < else < { Place_vec_expand(&pstack,nstack); < w->num = nstack; < pstack.el[nstack] = t; < nstack++; < } < } < < /* Enumerate wedges: */ < int i; < for (i = 0; i < pv->nel; i++) { VisitAndMark(pv->el[i]); } < while (seen < nstack) < { Place_t s = pstack.el[seen]; < VisitAndMark(PrevF(s)); < VisitAndMark(PrevE(s)); < VisitAndMark(NextE(s)); < VisitAndMark(NextF(PrevE(s))); < seen++; < } < /* Trim and return the {pstack}: */ < Place_vec_trim(&pstack,nstack); < return pstack; < } < --- 310a219,278 ----------------------- > #define INIT_QUEUE_SIZE 1024 > > /* ENUMERATING WEDGES */ > > Wedge_vec_t EnumWedges(Place_vec_t root, VisitFunc_t visit) > { > int nW = 0; > Wedge_vec_t W = Wedge_vec_new(INIT_QUEUE_SIZE); > /* The wedges visited so far are {W[0..nW-1]}. */ > > auto void VisitMarkAndStack(Wedge_t w); > /* If {w} is unvisited, visits it, marks it as visited, > appends it to the queue {W[0..nW-1]}. */ > > bool_t stop = FALSE; > > auto void EnumWedgesOfOne(Wedge_t w); > /* Enumerates all unvisited wedges that can be reached from > {w} by zero or more {next} links, and > appends those wedges to {W[0..nW-1]}. */ > > /* Enumerate all roots: */ > int i; > for (i = 0; (i < root.nel) && (! stop); i++) > { EnumWedgesOfOne(PWedge(root.el[i])); } > > /* We are done: */ > return W; > > void EnumWedgesOfOne(Wedge_t w) > { /* Save the queue's state: */ > int nS = nW; /* Links of wedges {W[nS..nW-1]} still need following. */ > VisitMarkAndStack(w); > while ((nS < nW) && (! stop)) > { /* Get a visited wedge {u}, follow its links: */ > Wedge_t u = W.el[nS]; nS++; > int r; > for (r = 0; r < 4; r++) > { w = PWedge(u->next[r]); > VisitMarkAndStack(w); > } > } > } > > void VisitMarkAndStack(Wedge_t w) > { uint wn = w->num; > if ((wn >= nW) || (W.el[wn] != w)) > { /* First visit to wedge {w}: */ > stop = visit(WedgeBase(w)); > /* Add it to the visited wedge set: */ > wn = nW; nW++; > Wedge_vec_expand(&W, wn); > W.el[wn] = w; > /* Set the wedge's {num} field to its index in {pw}: */ > w->num = wn; > } > } > > } > --- 316,317c284,286 ----------------------- < "It was converted to C and substantially revised in jan/2007 by J.Stolfi." < > "It was converted to C and substantially revised in\n" \ > "jan/2007 by J.Stolfi, who rewrote {EnumWedges}" \ > "and unified it with {RenumberWedges}." ========================================== diff -Bbs -r old/liboct/Octf.h cur/liboct/Octf.h --- 32c32 ----------------------- < /* side -> chip / flap / flag / tile / face / trig */ > /* flag -> chip / flap / side / tile / face / trig */ --- 34c34 ----------------------- < /* quad -> bloc */ > /* chip -> bloc / quad */ --- 35a36 ----------------------- > --- 36a38 ----------------------- > /* wedge -> */ --- 88,89c90,91 ----------------------- < dimensions 0,1,2,3 will be called /knots/, /links/, /sides/ and < /quads/, respectively. > dimensions 0,1,2,3 will be called /knots/, /links/, /flag/ and > /chips/, respectively. --- 103c105 ----------------------- < It follows that each quad {s} of {S} defines a fairly precise > It follows that each chip {s} of {S} defines a fairly precise --- 128c130 ----------------------- < greater. Therefore, a quad of {S} determines the element quadruple > greater. Therefore, a chip of {S} determines the element quadruple --- 157,159c159,161 ----------------------- < orientation for every quad {s} of {S}, and also for links of {S} < with {M}-types {{0,1}} and {{2,3}} (the /edge links/), and sides of < {S} with {M}-types {{0,1,2}} and {{1,2,3}} (the /wall sides/). > orientation for every chip {s} of {S}, and also for links of {S} > with {M}-types {{0,1}} and {{2,3}} (the /edge links/), and flag of > {S} with {M}-types {{0,1,2}} and {{1,2,3}} (the /wall flag/). --- 167,168c169,170 ----------------------- < The /intrinsic curl/ on a side with {M}-type {{0,1,2}} is, by < definition, the one that traverses the side's perimeter going > The /intrinsic curl/ on a flag with {M}-type {{0,1,2}} is, by > definition, the one that traverses the flag's perimeter going --- 170c172 ----------------------- < {{1,2,3}} side goes through its bounding knots in the order 3,2,1. > {{1,2,3}} flag goes through its bounding knots in the order 3,2,1. --- 172c174 ----------------------- < Also, the /intrinsic twist/ at any point inside any quad {s} is the > Also, the /intrinsic twist/ at any point inside any chip {s} is the --- 179c181 ----------------------- < on quads, edge links, and wall sides, no matter which of the two > on chips, edge links, and wall flag, no matter which of the two --- 181c183 ----------------------- < and sides are defined without reference to a specific quad. > and flag are defined without reference to a specific chip. --- 183c185 ----------------------- < Since the closure of any quad {s} is simply-immersed in {X} (i.e. is > Since the closure of any chip {s} is simply-immersed in {X} (i.e. is --- 186,187c188,189 ----------------------- < quads that share a side will define OPPOSITE twists at any point < on that side. > chips that share a flag will define OPPOSITE twists at any point > on that flag. --- 189,190c191,192 ----------------------- < A specific quad {s} also determines EXTERNAL orientations for the < its wall sides, its edge links, and its node knots (those with > A specific chip {s} also determines EXTERNAL orientations for the > its wall flag, its edge links, and its node knots (those with --- 195,196c197,198 ----------------------- < deermined by {s} across its {{0,1,2}} and {{1,2,3}} sides are, < by definition, those that leave the quad {s}. > deermined by {s} across its {{0,1,2}} and {{1,2,3}} flag are, > by definition, those that leave the chip {s}. --- 198c200 ----------------------- < Note that these EXTERNAL orientations for links and sides do NOT > Note that these EXTERNAL orientations for links and flag do NOT --- 200,201c202,203 ----------------------- < depend on the quad {s}. In particular, two quads that share a < {{0,1,2}} or {{1,2,3}} side {t} will determine opposite fluxes > depend on the chip {s}. In particular, two chips that share a > {{0,1,2}} or {{1,2,3}} flag {t} will determine opposite fluxes --- 212,213c214,215 ----------------------- < In the same way, the intrinsic curl of a {{0,1,2}} side can be < extended to a curl for the wall it belongs to. The sides > In the same way, the intrinsic curl of a {{0,1,2}} flag can be > extended to a curl for the wall it belongs to. The flag --- 215,216c217,218 ----------------------- < subsets {A,B} of equal size, such that any side in {A} determines a < specific curl within the wall, and any side in {B} determines the > subsets {A,B} of equal size, such that any flag in {A} determines a > specific curl within the wall, and any flag in {B} determines the --- 220,221c222,223 ----------------------- < quads contained in a cell {c} can be partitioned into two subsets < {A,B}, such that any two adjacent quads are always in distinct > chips contained in a cell {c} can be partitioned into two subsets > {A,B}, such that any two adjacent chips are always in distinct --- 223c225 ----------------------- < quad {s} in {A} of {B} determines a specific twist for the whole > chip {s} in {A} of {B} determines a specific twist for the whole --- 225,226c227,228 ----------------------- < Moreover, all quads in {A} determine the same twist for {c}, while < all quads in {B} determine the opposite twist. In that case, we say > Moreover, all chips in {A} determine the same twist for {c}, while > all chips in {B} determine the opposite twist. In that case, we say --- 232c234 ----------------------- < concept of `twist' at {c}; and all its quads are equivalent in that > concept of `twist' at {c}; and all its chips are equivalent in that --- 236c238 ----------------------- < quad {s) that incides on a node {v} of {M} defines a twist > chip {s) that incides on a node {v} of {M} defines a twist --- 238c240 ----------------------- < --- provided that the quads that incide on {v} can be partitioned > --- provided that the chips that incide on {v} can be partitioned --- 256c258 ----------------------- < a quad of {S} (denoted {p.s}) and {M} is one the two maps > a chip of {S} (denoted {p.s}) and {M} is one the two maps --- 259c261 ----------------------- < The concepts defined for quads of {S} are naturally extended to > The concepts defined for chips of {S} are naturally extended to --- 262c264 ----------------------- < {r} is an {S}-element that bounds the quad {p.s}, the /{p}-type of > {r} is an {S}-element that bounds the chip {p.s}, the /{p}-type of --- 275c277 ----------------------- < the same quad on the dual map. Obviously, {p** = p} for any place {p}. */ > the same chip on the dual map. Obviously, {p** = p} for any place {p}. */ --- 289,290c291,292 ----------------------- < The elements of {p} are implicitly oriented as determined by the quad < {p.s}. Note that two distinct quads {s,t} of {S} may define the same > The elements of {p} are implicitly oriented as determined by the chip > {p.s}. Note that two distinct chips {s,t} of {S} may define the same --- 292c294 ----------------------- < {e} of {M} is a loop, then there are two quads in {S} (and, therefore, > {e} of {M} is a loop, then there are two chips in {S} (and, therefore, --- 306c308 ----------------------- < {{2,3}} link {t}. These two links uniquely determine the quad {p.s}, > {{2,3}} link {t}. These two links uniquely determine the chip {p.s}, --- 311c313 ----------------------- < Note that {p*} and {p} define the same orientation on the quad > Note that {p*} and {p} define the same orientation on the chip --- 324,326c326,328 ----------------------- < For each quad {s} of the barycentric subdivision {S}, and each {i} < in {0..3}, there is a unique quad {t} that is distinct from {s} but < shares with it a side with {M}-type {0..3}\{i}. We call {t} the > For each chip {s} of the barycentric subdivision {S}, and each {i} > in {0..3}, there is a unique chip {t} that is distinct from {s} but > shares with it a flag with {M}-type {0..3}\{i}. We call {t} the --- 378c380 ----------------------- < other side of {p}'s wall, while preserving {p.node}, {p.edge}, and > other flag of {p}'s wall, while preserving {p.node}, {p.edge}, and --- 386c388 ----------------------- < A place {p} defines a unique quad {p.s} of {S}; therefore, as > A place {p} defines a unique chip {p.s} of {S}; therefore, as --- 398c400 ----------------------- < define opposite twists on any point of their shared side. We say > define opposite twists on any point of their shared flag. We say --- 436c438 ----------------------- < {p.hith}, while the cell on the other side of {p.wall}, namely > {p.hith}, while the cell on the other flag of {p.wall}, namely --- 452c454 ----------------------- < the sides traversed by those {flp}s. Thus, if the manifold {X} is > the flag traversed by those {flp}s. Thus, if the manifold {X} is --- 566c568 ----------------------- < Place_t Oprev(Place_t s); > Place_t OPrev(Place_t s); --- 601c603 ----------------------- < are conceptually associated to the four vertices of the quad > are conceptually associated to the four vertices of the chip --- 661c663 ----------------------- < The quads {s} and {t = s.flp[i]} specify the same sequence of > The chips {s} and {t = s.flp[i]} specify the same sequence of ========================================== Only in old/liboct: Octf.h~ ========================================== diff -Bbs -r old/liboct/OctfData.c cur/liboct/OctfData.c --- 214,215c214,215 ----------------------- < { VisitAndMark(Onext(s)); < VisitAndMark(Onext(NextF(s))); > { VisitAndMark(ONext(s)); > VisitAndMark(ONext(NextF(s))); --- 218,219c218,219 ----------------------- < { VisitAndMark(Clock(Onext(s))); < VisitAndMark(Clock(Onext(NextF(s)))); > { VisitAndMark(Clock(ONext(s))); > VisitAndMark(Clock(ONext(NextF(s)))); ========================================== diff -Bbs -r old/liboct/OctfData.h cur/liboct/OctfData.h --- 207c207 ----------------------- < by chains of {Onext}, {Oprev} and {Clock}, and assigns them > by chains of {ONext}, {OPrev} and {Clock}, and assigns them ========================================== diff -Bbs -r old/liboct/OctfEnum.c cur/liboct/OctfEnum.c --- 36c36,42 ----------------------- < bool_t EnumOrbits(Place_vec_t root, uint nS, StepFunc_t step[], VisitFunc_t visit[], Place_vec_t *vP) > bool_t EnumOrbits > ( Place_vec_t root, > uint nS, > StepFunc_t step[], > VisitFunc_t visit[], > Place_vec_t *vP > ) --- 196a203 ----------------------- > demand(FALSE, "fix this code to return evenly reachable places only!!!"); ========================================== Only in old/liboct: OctfEnum.c~ ========================================== diff -Bbs -r old/liboct/OctfEnum.h cur/liboct/OctfEnum.h --- 12d11 ----------------------- < #include --- 137c136 ----------------------- < /* GLOBAL ENUMERATION OF PLACES, ELEMENTS, AND INCIDENCES */ > /* GLOBAL ENUMERATION */ --- 144,146c143,145 ----------------------- < /* Finds all map elements of dimension {dimObj} which are reachable < from the {root} places, and visits exactly one place on every such < element. > /* Finds all places which are evenly reachable from the {root} > places, and visits exactly one place on every map element of > dimension {dimObj}. --- 149,153c148,150 ----------------------- < any {p} and {i}. This is true even if the manifold is not < orientable and/or there are incongruent root places. On the other < hand, the visited places may be oddly connected to the root < places, or to each other --- even if the manifold is < orientable. */ > any {p} and any {i} distinct from {dimObj}. This is > true even if the manifold is not orientable and/or there are > oddly-connected places among the roots. */ --- 155c152 ----------------------- < /* ENUMERATING PLACES OF AN ELEMENT > /* ENUMERATION OF ELEMENT STARS --- 188,191c185,193 ----------------------- < /* Enumerates every map element {f} with dimension {dimObj} that < bounds or incides on some pivot element {e}; and visits exactly < one place {q} on {f} and {e}. The visited place will always be < evenly reachable from the root place. */ > /* Enumerates all places on each pivot element {e} that are evenly > reachable from the root places. It then visits exactly one > place {q} on each element {f} with dimension {dimObj} > that occurs among those places. > > At most one of the places {p} and {p.flp[i]} will be visited, for > any {p} and any {i} distinct from {dimPiv} and {dimObj}. This is > true even if the manifold is not orientable and/or there are > oddly-connected places among the roots. */ ========================================== Only in old/liboct: OctfEnum.h~ ========================================== diff -Bbs -r old/liboct/OctfRep.c cur/liboct/OctfRep.c --- 20,120d19 ----------------------- < #define INIT_QUEUE_SIZE 1024 < < void SetNextF(Place_t a, Place_t b) < { if (NextF(a) != b) { SpliceWalls(a, PrevF(b)); } } < < void SetNextE(Place_t a, Place_t b) < { if (NextE(a) != b){ SpliceEdges(a, PrevE(b)); } } < < void PrintPlace(FILE *wr, Place_t p, uint feWidth, bool_t nl /* DF FALSE */) < { fprintf(wr, "%*u:%u:%u%s", feWidth, PWedge(p)->num, SpinBit(p), SrotBits(p), (nl ? "\n" : "")); } < < Place_t ReadPlace(FILE *rd, Wedge_vec_t *map) < { int m = fget_int(rd); assert((m >= 0) && (m < map->nel)); < fget_match(rd, ":"); < int s = fget_int(rd); assert((s >= 0) && (s < 2)); < fget_match(rd, ":"); < int r = fget_int(rd); assert((r >= 0) && (r < 4)); < return PlaceInWedge(map->el[m], 2*r + s); < } < < void PrintWedge(FILE *wr, Wedge_t w, uint feWidth /* DF 1 */) < { int i; < for (i = 0; i < 4; i++) < { if (i > 0){ fputc(' ', wr); } < PrintPlace(wr, w->next[i], feWidth, FALSE); < } < } < < void ReadWedge(FILE *rd, Wedge_t w, Wedge_vec_t *map) < { int i; < for (i = 0; i < 4; i++) < { SetNextF(PlaceInWedge(w, 2*i), ReadPlace(rd, map)); } < } < < /* ENUMERATING WEDGES */ < < Wedge_vec_t EnumWedges(Place_vec_t root, VisitFunc_t visit) < { < int nW = 0; < Wedge_vec_t W = Wedge_vec_new(INIT_QUEUE_SIZE); < /* The wedges visited so far are {W[0..nW-1]}. */ < < auto void VisitMarkAndStack(Wedge_t w); < /* If {w} is unvisited, visits it, marks it as visited, < appends it to the queue {W[0..nW-1]}. */ < < bool_t stop = FALSE; < < auto void EnumWedgesOfOne(Wedge_t w); < /* Enumerates all unvisited wedges that can be reached from < {w} by zero or more {next} links, and < appends those wedges to {W[0..nW-1]}. */ < < /* Enumerate all roots: */ < int i; < for (i = 0; (i < root.nel) && (! stop); i++) < { EnumWedgesOfOne(PWedge(root.el[i])); } < < /* We are done: */ < return W; < < void EnumWedgesOfOne(Wedge_t w) < { /* Save the queue's state: */ < int nS = nW; /* Links of wedges {W[nS..nW-1]} still need following. */ < VisitMarkAndStack(w); < while ((nS < nW) && (! stop)) < { /* Get a visited wedge {u}, follow its links: */ < Wedge_t u = W.el[nS]; nS++; < int r; < for (r = 0; r < 4; r++) < { w = PWedge(u->next[r]); < VisitMarkAndStack(w); < } < } < } < < void VisitMarkAndStack(Wedge_t w) < { uint wn = w->num; < if ((wn >= nW) || (W.el[wn] != w)) < { /* First visit to wedge {w}: */ < stop = visit(WedgeBase(w)); < /* Add it to the visited wedge set: */ < wn = nW; nW++; < Wedge_vec_expand(&W, wn); < W.el[wn] = w; < /* Set the wedge's {num} field to its index in {pw}: */ < w->num = wn; < } < } < < } < < #define Octf_C_author \ < "The Modula-3 version of this source file was created in 1998" \ < "by Luis Arturo Perez Lozada, UNICAMP, inspired on the " \ < "Modula-3 implementation of the quad-edge data structure by " \ < "J.Stolfi and R.M.Rosi (ca. 1994). " \ < "It was converted to C and substantially revised in\n" \ < "jan/2007 by J.Stolfi, who rewrote {EnumWedges}" \ < "and unified it with {RenumberWedges}." < ========================================== Only in old/liboct: OctfRep.c~ ========================================== diff -Bbs -r old/liboct/OctfRep.h cur/liboct/OctfRep.h --- 26c26 ----------------------- < comprising four /sibling quads/ {s00,s01,s10,s11}; where {flp[0]} > comprising four /sibling chips/ {s00,s01,s10,s11}; where {flp[0]} --- 32c32 ----------------------- < on {M} and an orbit of {M*}, both based on the same four quads, > on {M} and an orbit of {M*}, both based on the same four chips, --- 38,39c38,39 ----------------------- < record to represent each of these four-quad groups and the eight < places based on those quads. In this way, the operations > record to represent each of these four-chip groups and the eight > places based on those chips. In this way, the operations --- 47,50c47,50 ----------------------- < {M}, the subset of {X} that comprises the four quads of such a < group, plus every side with {M}-type {{0,1,2}} or {{1,2,3}} < that bounds two of those quads, and the link with {M}-type {{1,2}} < {m} that bounds all four quads. > {M}, the subset of {X} that comprises the four chips of such a > group, plus every flag with {M}-type {{0,1,2}} or {{1,2,3}} > that bounds two of those chips, and the link with {M}-type {{1,2}} > {m} that bounds all four chips. --- 92c92 ----------------------- < /orientation bits/ that identify one quad {s} among the four quads > /orientation bits/ that identify one chip {s} among the four chips --- 118c118 ----------------------- < quad {p.s} (together with the other three sibling quads). */ > chip {p.s} (together with the other three sibling chips). */ --- 121c121 ----------------------- < /* The bits that identify the place {p} among the eight quads > /* The bits that identify the place {p} among the eight chips --- 269c269 ----------------------- < NodeOrCell_t org[4]; /* Origin nodes (or containing cells) of the quads in wedge. */ > NodeOrCell_t org[4]; /* Origin nodes (or containing cells) of the chips in wedge. */ --- 281c281 ----------------------- < places whose quads are contained in {w}. If {p} is the base place > places whose chips are contained in {w}. If {p} is the base place --- 325,326c325,326 ----------------------- < side {0..3}\{i} of {s} is contained in the border of {X}. However, < this implementation is such that the quad {t = s.flp[i]} is always > flag {0..3}\{i} of {s} is contained in the border of {X}. However, > this implementation is such that the chip {t = s.flp[i]} is always --- 330c330 ----------------------- < The quads {s} and {t = s.flp[i]} specify the same sequence of > The chips {s} and {t = s.flp[i]} specify the same sequence of ========================================== Only in old/liboct: OctfRep.h~ ========================================== Files old/liboct/PZGeo3.c and cur/liboct/PZGeo3.c are identical ========================================== Files old/liboct/PZGeo3.h and cur/liboct/PZGeo3.h are identical ========================================== Files old/liboct/PZGeo4.c and cur/liboct/PZGeo4.c are identical ========================================== Files old/liboct/PZGeo4.h and cur/liboct/PZGeo4.h are identical ========================================== Files old/liboct/ParseMinimizerParams.h and cur/liboct/ParseMinimizerParams.h are identical ========================================== diff -Bbs -r old/liboct/Polygon.c cur/liboct/Polygon.c --- 22c22 ----------------------- < Place_t MakeGon(uint n) > Place_t MakePolygon(uint n) --- 41c41 ----------------------- < Place_vec_t MakeGonFull(uint n) > Place_vec_t MakePolygonFull(uint n) --- 60c60 ----------------------- < void FixCoordsGon(uint order, Place_t p, Topology_t *top, Coords_t *c) > void FixCoordsGon(uint order, Place_t p, ElemTableRec_t *top, Coords_t *c) --- 82c82 ----------------------- < " {MakeGon.c}" > " {MakePolygon.c}" ========================================== Only in old/liboct: Polygon.c~ ========================================== diff -Bbs -r old/liboct/Polygon.h cur/liboct/Polygon.h --- 17c17 ----------------------- < Place_t MakeGon(uint n); > Place_t MakePolygon(uint n); --- 19d18 ----------------------- < /* [!!! Rename to {MakePolygon !!!] */ --- 21c20 ----------------------- < Place_vec_t MakeGonFull(uint n); > Place_vec_t MakePolygonFull(uint n); --- 25c24 ----------------------- < void FixCoordsGon(uint order, Place_t p, Topology_t *top, Coords_t *c); > void FixCoordsGon(uint order, Place_t p, ElemTableRec_t *top, Coords_t *c); ========================================== Files old/liboct/Pov.c and cur/liboct/Pov.c are identical ========================================== Files old/liboct/Pov.h and cur/liboct/Pov.h are identical ========================================== diff -Bbs -r old/liboct/Pyramid.c cur/liboct/Pyramid.c --- 28c28 ----------------------- < Place_vec_t b = MakeGonFull(n); > Place_vec_t b = MakePolygonFull(n); --- 135c135 ----------------------- < void FixCoordsBipyramid(Place_t p, uint order, bool_t pyramid, Topology_t *top, Coords_t *c) > void FixCoordsBipyramid(Place_t p, uint order, bool_t pyramid, ElemTableRec_t *top, Coords_t *c) ========================================== Only in old/liboct: Pyramid.c~ ========================================== diff -Bbs -r old/liboct/Pyramid.h cur/liboct/Pyramid.h --- 28c28 ----------------------- < void FixCoordsBipyramid(Place_t p, uint order, bool_t pyramid, Topology_t *top, Coords_t *c); > void FixCoordsBipyramid(Place_t p, uint order, bool_t pyramid, ElemTableRec_t *top, Coords_t *c); ========================================== Files old/liboct/Random.h and cur/liboct/Random.h are identical ========================================== Files old/liboct/Square.c and cur/liboct/Square.c are identical ========================================== Only in old/liboct: Square.c~ ========================================== Files old/liboct/Square.h and cur/liboct/Square.h are identical ========================================== Files old/liboct/Squared.c and cur/liboct/Squared.c are identical ========================================== Only in old/liboct: Squared.c~ ========================================== diff -Bbs -r old/liboct/Squared.h cur/liboct/Squared.h --- 24a25,27 ----------------------- > void SetExWall(Place_t p, bool_t exists); > /* Set the {exists} bit of the wall of {p}. */ > ========================================== Files old/liboct/Tetrahedron.c and cur/liboct/Tetrahedron.c are identical ========================================== Only in old/liboct: Tetrahedron.c~ ========================================== Files old/liboct/Tetrahedron.h and cur/liboct/Tetrahedron.h are identical ========================================== Files old/liboct/Tools.c and cur/liboct/Tools.c are identical ========================================== Files old/liboct/Tools.h and cur/liboct/Tools.h are identical ========================================== Only in old/liboct: Topology.c~ ========================================== Only in old/liboct: Topology.h~ ========================================== Files old/liboct/Triangle.c and cur/liboct/Triangle.c are identical ========================================== Files old/liboct/Triangle.h and cur/liboct/Triangle.h are identical ========================================== diff -Bbs -r old/liboct/TriangulatedDodecahedron.c cur/liboct/TriangulatedDodecahedron.c --- 254c254 ----------------------- < { Place_t e = NextEk(walls[l], m); > { Place_t e = NextEK(walls[l], m); ========================================== Only in old/liboct: TriangulatedDodecahedron.c~ ========================================== Files old/liboct/TriangulatedDodecahedron.h and cur/liboct/TriangulatedDodecahedron.h are identical ========================================== Files old/liboct/Triangulation.c and cur/liboct/Triangulation.c are identical ========================================== Only in old/liboct: Triangulation.c~ ========================================== diff -Bbs -r old/liboct/Triangulation.h cur/liboct/Triangulation.h --- 6c6 ----------------------- < /* Triangulated tridimensional meshes for automatic topology visualization. */ > /* 3D triangulations represented with the facet-edge data structure. */ --- 97,98c97,98 ----------------------- < Place_vec_t *CollectTetrahedra(Topology_t *top); < /* Returns a list {t} with one wedge on each tetrahedron from tp in > Place_vec_t *CollectTetrahedra(ElemTableRec_t *top); > /* Returns a list {t} with one wedge on each tetrahedron from top in --- 141,142c141,142 ----------------------- < AdjacencyMatrix_t *MakeAdjacencyMatrix(Topology_t *top); < /* Builds the adjacency matrix for the topology {top}. */ > AdjacencyMatrix_t *MakeAdjacencyMatrix(ElemTableRec_t *top); > /* Builds the adjacency matrix for the map element table {top}. */ --- 144c144 ----------------------- < void GetVariableNodes(Topology_t *top, bool_vec_t *vr); > void GetVariableNodes(ElemTableRec_t *top, bool_vec_t *vr); --- 156c156 ----------------------- < Coords_t GenCoords(Topology_t *t); > Coords_t GenCoords(ElemTableRec_t *top); --- 160c160 ----------------------- < void Displace(Topology_t *top, r4_t *d, Coords_t *c); > void Displace(ElemTableRec_t *top, r4_t *d, Coords_t *c); --- 163c163 ----------------------- < void Scale(Topology_t *top, double s, Coords_t *c); > void Scale(ElemTableRec_t *top, double s, Coords_t *c); --- 202c202 ----------------------- < r4_t NodeCross(Place_t p, Coords_t *c, Topology_t *top); > r4_t NodeCross(Place_t p, Coords_t *c, ElemTableRec_t *top); --- 207c207 ----------------------- < r4_t NodeNormal(Place_t p, Coords_t *c, Topology_t *top); > r4_t NodeNormal(Place_t p, Coords_t *c, ElemTableRec_t *top); --- 220c220 ----------------------- < Node_vec_t *Neighbors(Place_t p, Topology_t *top); > Node_vec_t *Neighbors(Place_t p, ElemTableRec_t *top); --- 223c223 ----------------------- < Quadv_vec_t *StarOfNode(Place_t p, Topology_t *top); > Quadv_vec_t *StarOfNode(Place_t p, ElemTableRec_t *top); --- 232c232 ----------------------- < r4_vec_t *ComputeAllNodeNormals(Topology_t *top, Coords_t *c); > r4_vec_t *ComputeAllNodeNormals(ElemTableRec_t *top, Coords_t *c); --- 236c236 ----------------------- < r4_vec_t *ComputeAllEdgeNormals(Topology_t *top, Coords_t *c); > r4_vec_t *ComputeAllEdgeNormals(ElemTableRec_t *top, Coords_t *c); --- 240c240 ----------------------- < r4_vec_t *ComputeAllWallNormals(Topology_t *top, Coords_t *c); > r4_vec_t *ComputeAllWallNormals(ElemTableRec_t *top, Coords_t *c); --- 244c244 ----------------------- < r4_vec_t *ComputeAllCellNormals(Topology_t *top, Coords_t *c); > r4_vec_t *ComputeAllCellNormals(ElemTableRec_t *top, Coords_t *c); --- 254c254 ----------------------- < r4_t Barycenter(Topology_t *top, Coords_t *c, bool_t all); > r4_t Barycenter(ElemTableRec_t *top, Coords_t *c, bool_t all); --- 260c260 ----------------------- < double MeanNodeDistance(Topology_t *top, Coords_t *c, r4_t *ctr, bool_t all); > double MeanNodeDistance(ElemTableRec_t *top, Coords_t *c, r4_t *ctr, bool_t all); --- 264c264 ----------------------- < double MaxNodeDistance(Topology_t *top, Coords_t *c, r4_t *ctr, bool_t all); > double MaxNodeDistance(ElemTableRec_t *top, Coords_t *c, r4_t *ctr, bool_t all); --- 267c267 ----------------------- < double MeanEdgeLength(Topology_t *top, Coords_t *c, bool_t all); > double MeanEdgeLength(ElemTableRec_t *top, Coords_t *c, bool_t all); --- 271c271 ----------------------- < r4_t MeanCellNormal(Topology_t *top, Coords_t *c, bool_t all); > r4_t MeanCellNormal(ElemTableRec_t *top, Coords_t *c, bool_t all); --- 274c274 ----------------------- < double MeanThickness(Topology_t *top, Coords_t *c, r4_t *ctr, r4_t *norm, bool_t all); > double MeanThickness(ElemTableRec_t *top, Coords_t *c, r4_t *ctr, r4_t *norm, bool_t all); --- 278c278 ----------------------- < void NormalizeNodeDistances(Topology_t *top, Coords_t *c, bool_t all); > void NormalizeNodeDistances(ElemTableRec_t *top, Coords_t *c, bool_t all); --- 284c284 ----------------------- < void NormalizeEdgeLengths(Topology_t *top, Coords_t *c, bool_t all); > void NormalizeEdgeLengths(ElemTableRec_t *top, Coords_t *c, bool_t all); --- 292,293c292,293 ----------------------- < typedef struct TopCom_t { Topology_t *top; char *cmt; } TopCom_t; < /* A {Topology_t} with a comment string. */ > typedef struct TopCom_t { ElemTableRec_t *top; char *cmt; } TopCom_t; > /* A {ElemTableRec_t} with a comment string. */ --- 295c295 ----------------------- < void WriteTopology(char *name, char *tag, Topology_t *top, char *cmt /* DF " " */); > void WriteTopology(char *name, char *tag, ElemTableRec_t *top, char *cmt /* DF " " */); --- 299c299 ----------------------- < void WriteState(char *name, char *tag, Topology_t *top, Coords_t *c, char *cmt /* DF " " */); > void WriteState(char *name, char *tag, ElemTableRec_t *top, Coords_t *c, char *cmt /* DF " " */); --- 303c303 ----------------------- < void WriteMaterials(char *name, char *tag, Topology_t *top, char *cmt /* DF " " */, bool_t ro_te /* DF FALSE */); > void WriteMaterials(char *name, char *tag, ElemTableRec_t *top, char *cmt /* DF " " */, bool_t ro_te /* DF FALSE */); --- 307c307 ----------------------- < void WriteDualTopology(char *name, Topology_t *top, char *cmt /* DF " " */); > void WriteDualTopology(char *name, ElemTableRec_t *top, char *cmt /* DF " " */); ========================================== Only in old/liboct: Triangulation.h~ ========================================== diff -Bbs -r old/liboct/Tridimensional.c cur/liboct/Tridimensional.c --- 30c30 ----------------------- < r3_t Barycenter3D(Topology_t *top, Coords3D_t *c3) > r3_t Barycenter3D(ElemTableRec_t *top, Coords3D_t *c3) --- 35c35 ----------------------- < { Node_t v = top->node.el[i]; > { Node_t v = OrgV(top->node.el[i]); --- 42c42 ----------------------- < double MeanNodeDistance3D(Topology_t *top, Coords3D_t *c3) > double MeanNodeDistance3D(ElemTableRec_t *top, Coords3D_t *c3) --- 47c47 ----------------------- < { Node_t v = top->node.el[i]; > { Node_t v = OrgV(top->node.el[i]); --- 54c54 ----------------------- < void Displace3D(Topology_t *top, r3_t *d, Coords3D_t *c3) > void Displace3D(ElemTableRec_t *top, r3_t *d, Coords3D_t *c3) --- 57c57 ----------------------- < { if (top->node.el[i]->exists) > { if (OrgV(top->node.el[i])->exists) --- 62c62 ----------------------- < void Scale3D(Topology_t *top, double s, Coords3D_t *c3) > void Scale3D(ElemTableRec_t *top, double s, Coords3D_t *c3) --- 65c65 ----------------------- < { if (top->node.el[i]->exists) > { if (OrgV(top->node.el[i])->exists) --- 70c70 ----------------------- < void NormalizeNodeDistance3D(Topology_t *top, Coords3D_t *c3) > void NormalizeNodeDistance3D(ElemTableRec_t *top, Coords3D_t *c3) --- 143c143 ----------------------- < void WriteState3D(char *name, char *flag, Topology_t *top, Coords3D_t *c3, char *cmt /* DF " " */) > void WriteState3D(char *name, char *tag, ElemTableRec_t *top, Coords3D_t *c3, char *cmt /* DF " " */) --- 145c145 ----------------------- < asprintf(&fileName, "%s%s.st3", name, flag); > asprintf(&fileName, "%s%s.st3", name, tag); --- 152c152 ----------------------- < void FWriteState3D(FILE *wr, Topology_t *top, Coords3D_t *c3, char *cmt /* DF " " */) > void FWriteState3D(FILE *wr, ElemTableRec_t *top, Coords3D_t *c3, char *cmt /* DF " " */) --- 154c154 ----------------------- < int vWidth = digits(top->NV - 1); > int vWidth = digits(top->node.nel - 1); --- 160c160 ----------------------- < fprintf(wr, "nodes = %d\n", top->NV); > fprintf(wr, "nodes = %d\n", top->node.nel); --- 168,169c168,169 ----------------------- < for (i = 0; i < top->NV; i++) < { Node_t v = top->node.el[i]; > for (i = 0; i < top->node.nel; i++) > { Node_t v = OrgV(top->node.el[i]); --- 179c179 ----------------------- < Coords3D_t ReadState3D(char *name, char *flag) > Coords3D_t ReadState3D(char *name, char *tag) --- 181c181 ----------------------- < asprintf(&fileName, "%s%s.st3", name, flag); > asprintf(&fileName, "%s%s.st3", name, tag); --- 218c218 ----------------------- < void WriteTetrahedra(char *name, char *flag, Topology_t *top, TetraData_vec_t *cell, char *cmt /* DF " " */) > void WriteTetrahedra(char *name, char *tag, ElemTableRec_t *top, TetraData_vec_t *cell, char *cmt /* DF " " */) --- 220c220 ----------------------- < asprintf(&fileName, "%s%s.te", name, flag); > asprintf(&fileName, "%s%s.te", name, tag); --- 227,228c227,228 ----------------------- < void FWriteTetrahedra(FILE *wr, Topology_t *top, TetraData_vec_t *cell, char *cmt /* DF " " */) < { uint pWidth = digits(top->NP - 1); > void FWriteTetrahedra(FILE *wr, ElemTableRec_t *top, TetraData_vec_t *cell, char *cmt /* DF " " */) > { uint pWidth = digits(top->cell.nel - 1); ========================================== diff -Bbs -r old/liboct/Tridimensional.h cur/liboct/Tridimensional.h --- 33c33 ----------------------- < r3_t Barycenter3D(Topology_t *too, Coords3D_t *c3); > r3_t Barycenter3D(ElemTableRec_t *too, Coords3D_t *c3); --- 36c36 ----------------------- < void Displace3D(Topology_t *top, r3_t *d, Coords3D_t *c3); > void Displace3D(ElemTableRec_t *top, r3_t *d, Coords3D_t *c3); --- 39c39 ----------------------- < void Scale3D(Topology_t *top, double s, Coords3D_t *c3); > void Scale3D(ElemTableRec_t *top, double s, Coords3D_t *c3); --- 42c42 ----------------------- < double MeanNodeDistance3D(Topology_t *top, Coords3D_t *c3); > double MeanNodeDistance3D(ElemTableRec_t *top, Coords3D_t *c3); --- 47c47 ----------------------- < void NormalizeNodeDistance3D(Topology_t *top, Coords3D_t *c3); > void NormalizeNodeDistance3D(ElemTableRec_t *top, Coords3D_t *c3); --- 70c70 ----------------------- < void FWriteState3D(FILE *wr, Topology_t *top, Coords3D_t *c3, char *cmt /* DF " " */); > void FWriteState3D(FILE *wr, ElemTableRec_t *top, Coords3D_t *c3, char *cmt /* DF " " */); --- 75,76c75,76 ----------------------- < void WriteState3D(char *name, char *flag, Topology_t *top, Coords3D_t *c3, char *cmt /* DF { } */); < /* Similar to {FWriteState3D}, but writes the data to a file "{name}{flag}.st3". */ > void WriteState3D(char *name, char *tag, ElemTableRec_t *top, Coords3D_t *c3, char *cmt /* DF { } */); > /* Similar to {FWriteState3D}, but writes the data to a file "{name}{tag}.st3". */ --- 83c83 ----------------------- < Coords3D_t ReadState3D(char *name, char*flag); > Coords3D_t ReadState3D(char *name, char *tag); --- 85c85 ----------------------- < "{name}{flag}.st3". */ > "{name}{tag}.st3". */ --- 87c87 ----------------------- < void FWriteTetrahedra(FILE *wr, Topology_t *top, TetraData_vec_t *cell, char *cmt /* DF " " */); > void FWriteTetrahedra(FILE *wr, ElemTableRec_t *top, TetraData_vec_t *cell, char *cmt /* DF " " */); --- 92c92 ----------------------- < void WriteTetrahedra(char *name, char *flag, Topology_t *top, TetraData_vec_t *cell, char *cmt /* DF " " */); > void WriteTetrahedra(char *name, char *tag, ElemTableRec_t *top, TetraData_vec_t *cell, char *cmt /* DF " " */); ========================================== Files old/progs-main/Deps.make and cur/progs-main/Deps.make are identical ========================================== diff -Bbs -r old/progs-main/MakeBigCubeFixed.c cur/progs-main/MakeBigCubeFixed.c --- 39,40c39,40 ----------------------- < Topology_t top = MakeTopology(cd.el[0].p[0]); < Coords_t c = r4_vec_new(top->NV); > ElemTableRec_t top = MakeElemTable(cd.el[0].p[0]); > Coords_t c = r4_vec_new(top->node.nel); --- 104c104 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 118c118 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 120c120 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 132c132 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) ========================================== diff -Bbs -r old/progs-main/MakeBipyramid.c cur/progs-main/MakeBipyramid.c --- 108c108 ----------------------- < char *flag; > char *tag; --- 122,123c122 ----------------------- < Place_vec_t pv = (Place_vec_t){1, &m}; /* Root set is just {{m}}. */ < Topology_t t = MakeTopology(&pv); > ElemTableRec_t top = MakeElemTable(Place_vec_desc(&m,1)); --- 127,128c126,127 ----------------------- < for (i = 0; i < t.NF; i++) < { Wall_t f = t.wall.el[i]; f->root = f->num; } > for (i = 0; i < top.wall.nel; i++) > { Wall_t f = PWall(top.wall.el[i]); f->root = f->num; } --- 130,131c129,130 ----------------------- < for (i = 0; i < t.NE; i++) < { Edge_t e = t.edge.el[i]; e->root = e->num; } > for (i = 0; i < top.edge.nel; i++) > { Edge_t e = PEdge(top.edge.el[i]); e->root = e->num; } --- 134c133 ----------------------- < Coords_t c = r4_vec_new(t.NV); > Coords_t c = r4_vec_new(top.node.nel); --- 138c137 ----------------------- < flag = "-ran"; > tag = "-ran"; --- 143,144c142,143 ----------------------- < FixCoordsBipyramid(m, o, &t, &c); < flag = "-fix"; > FixCoordsBipyramid(m, o, top, &c); > tag = "-fix"; --- 149,151c148,150 ----------------------- < WriteTopology(o->output, flag, &t, topo_cmt); < WriteState(o->output, flag, &t, &c, txtcat(topo_cmt, geom_cmt)); < WriteMaterials(o->output, flag, &t, topo_cmt, FALSE); > WriteTopology(o->output, tag, &top, topo_cmt); > WriteState(o->output, tag, &top, &c, txtcat(topo_cmt, geom_cmt)); > WriteMaterials(o->output, tag, &top, topo_cmt, FALSE); ========================================== diff -Bbs -r old/progs-main/MakeComplex.c cur/progs-main/MakeComplex.c --- 41c41 ----------------------- < Shape == > Shape_t == --- 56c56 ----------------------- < typedef struct Options_t { shape: Shape; shapeName: char *; } > typedef struct Options_t { shape: Shape_t; shapeName: char *; } --- 68c68 ----------------------- < ??? t = MakeTopology(m; > ??? top = MakeElemTable(m; --- 73c73 ----------------------- < for (i = 0; i < t.NF; i++) { Wall_t f = t.wall.el[i]; f->root = f->num; } > for (i = 0; i < top.wall.nel; i++) { Wall_t f = top.wall.el[i]; f->root = f->num; } --- 75c75 ----------------------- < for (i = 0; i < t.NE; i++) { Edge_t e = t.edge.el[i]; e->root = e->num; } > for (i = 0; i < top.edge.nel; i++) { Edge_t e = top.edge.el[i]; e->root = e->num; } --- 77c77 ----------------------- < WriteTopology(o->output, flag, &t, topo_cmt); // shapeName MakeComplex shapeName > WriteTopology(o->output, tag, &top, topo_cmt); // shapeName MakeComplex shapeName --- 79c79 ----------------------- < WriteTable(o->output, flag, &t, topo_cmt); // shapeName MakeComplex shapeName > WriteTable(o->output, tag, &top, topo_cmt); // shapeName MakeComplex shapeName --- 82c82 ----------------------- < o->shapeName, t, c, "Created by MakeComplex: " & o->shapeName > o->shapeName, top, c, "Created by MakeComplex: " & o->shapeName --- 85c85 ----------------------- < /*Triangulation.FindDegeneracies(t);*/ > /*Triangulation.FindDegeneracies(top);*/ --- 87c87 ----------------------- < WriteMaterials(o->output, flag, &t, topo_cmt); // shapeName MakeComplex shapeName > WriteMaterials(o->output, tag, &top, topo_cmt); // shapeName MakeComplex shapeName --- 93c93 ----------------------- < Place_t MakeMap(Shape shape) > Place_t MakeMap(Shape_t shape) ========================================== diff -Bbs -r old/progs-main/MakeComplexWf.c cur/progs-main/MakeComplexWf.c --- 32c32 ----------------------- < double Shape = > double Shape_t = --- 49c49 ----------------------- < Shape shape; > Shape_t shape; --- 56,57c56,57 ----------------------- < t : Triangulation.Topology; < { Options_t *o = GetOptions(argc, argv); > { ElemTableRec_t top; > Options_t *o = GetOptions(argc, argv); --- 64,65c64,65 ----------------------- < t = MakeTopology(m); < Coords_t c = GenCoords(&t);; > top = MakeElemTable(m); > Coords_t c = GenCoords(&top);; --- 68c68 ----------------------- < for (i = 0; i < t.NF; i++) > for (i = 0; i < top.wall.nel; i++) --- 70c70 ----------------------- < ??? f = t.wall[i]; > ??? f = top.wall[i]; --- 76c76 ----------------------- < for (i = 0; i < t.NE; i++) > for (i = 0; i < top.edge.nel; i++) --- 78c78 ----------------------- < ??? e = t.edge[i]; > ??? e = top.edge[i]; --- 86c86 ----------------------- < WriteTopology(o->shapeName & "-" & Fmt.Int(o->order), t, > WriteTopology(o->shapeName & "-" & Fmt.Int(o->order), top, --- 90c90 ----------------------- < WriteState(o->shapeName & "-" & Fmt.Int(o->order), t, c, > WriteState(o->shapeName & "-" & Fmt.Int(o->order), top, c, --- 94c94 ----------------------- < WriteMaterials(o->shapeName & "-" & Fmt.Int(o->order), t, > WriteMaterials(o->shapeName & "-" & Fmt.Int(o->order), top, --- 102c102 ----------------------- < Place_t MakeMap(shape: Shape; order: uint) > Place_t MakeMap(shape: Shape_t; order: uint) --- 129c129 ----------------------- < /* Shape builders: */ > /* Shape_t builders: */ ========================================== diff -Bbs -r old/progs-main/MakeElongBip.c cur/progs-main/MakeElongBip.c --- 48,50c48,49 ----------------------- < Place_vec_t pv = (Place_vec_t){/*nel*/ 1, /*el*/ &m}; < Topology_t t = MakeTopology(&pv); /* [!!! Had extra argument {1} ] */ < Coords_t c = GenCoords(&t); > ElemTableRec_t top = MakeElemTable(Place_vec_desc(&m,1)); /* [!!! Had extra argument {1} ] */ > Coords_t c = GenCoords(&top); --- 55,56c54,55 ----------------------- < for (i = 0; i < t.NF; i++) { Wall_t f = t.wall.el[i]; f->root = f->num; } < for (i = 0; i < t.NE; i++) { Edge_t e = t.edge.el[i]; e->root = e->num; } > for (i = 0; i < top.wall.nel; i++) { Wall_t f = PWall(top.wall.el[i]); f->root = f->num; } > for (i = 0; i < top.edge.nel; i++) { Edge_t e = PEdge(top.edge.el[i]); e->root = e->num; } --- 58,60c57,59 ----------------------- < WriteTopology(o->outName, "", &t, topo_cmt); < WriteState(o->outName, "", &t, &c, txtcat(topo_cmt, geom_cmt)); < WriteMaterials(o->outName, "", &t, topo_cmt, FALSE); > WriteTopology(o->outName, "", &top, topo_cmt); > WriteState(o->outName, "", &top, &c, txtcat(topo_cmt, geom_cmt)); > WriteMaterials(o->outName, "", &top, topo_cmt, FALSE); ========================================== diff -Bbs -r old/progs-main/MakeGem.c cur/progs-main/MakeGem.c --- 25c25 ----------------------- < double Shape = { projective, r24_20}; > double Shape_t = { projective, r24_20}; --- 28c28 ----------------------- < Shape shape; > Shape_t shape; --- 145,146c145,146 ----------------------- < ??? t = MakeTopology(handles[0][0]); < Coords_t c = GenCoords(&t);; > ??? top = MakeElemTable(handles[0][0]); > Coords_t c = GenCoords(&top);; --- 149c149 ----------------------- < WriteTopology(name, t, > WriteTopology(name, top, --- 153c153 ----------------------- < WriteMaterials(name, t, > WriteMaterials(name, top, --- 157c157 ----------------------- < WriteState(name, t, c, > WriteState(name, top, c, ========================================== Files old/progs-main/MakeGemR2420.c and cur/progs-main/MakeGemR2420.c are identical ========================================== Only in old/progs-main: MakeGon.c ========================================== diff -Bbs -r old/progs-main/MakeManifold.c cur/progs-main/MakeManifold.c --- 38c38 ----------------------- < double Shape = { /* subdivided cells, such as builds by the: */ > double Shape_t = { /* subdivided cells, such as builds by the: */ --- 45c45 ----------------------- < typedef struct Options_t { shape: Shape; shapeName: char *; order: uint; } > typedef struct Options_t { shape: Shape_t; shapeName: char *; order: uint; } --- 56,57c56,57 ----------------------- < double t = MakeTopology(m); < double c = GenCoords(t)^ > double top = MakeElemTable(m); > double c = GenCoords(top)^ --- 60c60 ----------------------- < for (i = 0; i < t.NF; i++) { Wall_t f = t.wall.el[i]; f->root = f->num; } > for (i = 0; i < top.wall.nel; i++) { Wall_t f = top.wall.el[i]; f->root = f->num; } --- 62c62 ----------------------- < for (i = 0; i < t.NE; i++) { Edge_t e = t.edge.el[i]; e->root = e->num; } > for (i = 0; i < top.edge.nel; i++) { Edge_t e = top.edge.el[i]; e->root = e->num; } --- 65c65 ----------------------- < o->shapeName & "-" & Fmt.Int(o->order), t, "Created by MakeManifold: " > o->shapeName & "-" & Fmt.Int(o->order), top, "Created by MakeManifold: " --- 69c69 ----------------------- < o->shapeName & "-" & Fmt.Int(o->order),t,c,"Created by MakeManifold: " \ > o->shapeName & "-" & Fmt.Int(o->order),top,c,"Created by MakeManifold: " \ --- 74c74 ----------------------- < o->shapeName & "-" & Fmt.Int(o->order), t, "Created by MakeManifold: " \ > o->shapeName & "-" & Fmt.Int(o->order), top, "Created by MakeManifold: " \ --- 81c81 ----------------------- < Place_t MakeMap(shape: Shape; order: uint) > Place_t MakeMap(shape: Shape_t; order: uint) --- 103c103 ----------------------- < double t = MakeTopology(p) > double top = MakeElemTable(p) --- 107c107 ----------------------- < for (i = 0; i < t.NF; i++) > for (i = 0; i < top.wall.nel; i++) --- 110c110 ----------------------- < Wall_t f = t.wall.el[i] > Wall_t f = top.wall.el[i] --- 115c115 ----------------------- < for (i = 0; i < t.NE; i++) > for (i = 0; i < top.edge.nel; i++) --- 118c118 ----------------------- < Edge_t e = t.edge.el[i] > Edge_t e = top.edge.el[i] --- 123c123 ----------------------- < for (i = 0; i < t.NV; i++) > for (i = 0; i < top.node.nel; i++) --- 126c126 ----------------------- < double v = t.node[i] > double v = top.node[i] --- 133c133 ----------------------- < SetCubeProperties(a, order, t); > SetCubeProperties(a, order, top); ========================================== diff -Bbs -r old/progs-main/MakeNOComplex.c cur/progs-main/MakeNOComplex.c --- 33c33 ----------------------- < double Shape = {Projective}; > double Shape_t = {Projective}; --- 36c36 ----------------------- < Shape shape; > Shape_t shape; --- 48,49c48,49 ----------------------- < ??? t = MakeTopology(m); < Coords_t c = GenCoords(&t);; > ??? top = MakeElemTable(m); > Coords_t c = GenCoords(&top);; --- 51c51 ----------------------- < WriteTopology(o->output, flag, &t, topo_cmt); // shapeName MakeNOComplex shapeName > WriteTopology(o->output, tag, &top, topo_cmt); // shapeName MakeNOComplex shapeName --- 54c54 ----------------------- < o->shapeName, t, c,"Created by MakeNOComplex: " & o->shapeName \ > o->shapeName, top, c,"Created by MakeNOComplex: " & o->shapeName \ --- 57c57 ----------------------- < WriteMaterials(o->output, flag, &t, topo_cmt); // shapeName MakeNOComplex shapeName > WriteMaterials(o->output, tag, &top, topo_cmt); // shapeName MakeNOComplex shapeName --- 62c62 ----------------------- < Place_t MakeMap(Shape shape) > Place_t MakeMap(Shape_t shape) ========================================== diff -Bbs -r old/progs-main/MakeObjectTriang.c cur/progs-main/MakeObjectTriang.c --- 34c34 ----------------------- < double Shape = {Torus2D, Torus2H, Sausage}; > double Shape_t = {Torus2D, Torus2H, Sausage}; --- 36c36 ----------------------- < Shape shape; > Shape_t shape; --- 44,45c44,45 ----------------------- < top : Triangulation.Topology; < { Options_t *o = GetOptions(argc, argv); > { ElemTableRec_t top; > Options_t *o = GetOptions(argc, argv); --- 54c54 ----------------------- < top = MakeTopology(m,1); > top = MakeElemTable(m,1); --- 57c57 ----------------------- < assert(top->NV == 8 + (o->gridOrder-1) * 4 - 4); > assert(top->node.nel == 8 + (o->gridOrder-1) * 4 - 4); --- 59,61c59,61 ----------------------- < assert(top->NF == 18 + (o->gridOrder-1) * 16 - 2); < assert(top->NFE== 54 + (o->gridOrder-1) * 48 - 6); < assert(top->NP == 6 * o->gridOrder); > assert(top->wall.nel == 18 + (o->gridOrder-1) * 16 - 2); > assert(top->wall.nelE== 54 + (o->gridOrder-1) * 48 - 6); > assert(top->cell.nel == 6 * o->gridOrder); --- 65c65 ----------------------- < assert(top->NV == 8 + (o->gridOrder-1) * 4); > assert(top->node.nel == 8 + (o->gridOrder-1) * 4); --- 67,69c67,69 ----------------------- < assert(top->NF == 18 + (o->gridOrder-1) * 16); < assert(top->NFE== 54 + (o->gridOrder-1) * 48); < assert(top->NP == 6 * o->gridOrder); > assert(top->wall.nel == 18 + (o->gridOrder-1) * 16); > assert(top->wall.nelE== 54 + (o->gridOrder-1) * 48); > assert(top->cell.nel == 6 * o->gridOrder); --- 92c92 ----------------------- < Place_t MakeObject(shape: Shape; order: uint) > Place_t MakeObject(shape: Shape_t; order: uint) --- 103c103 ----------------------- < /* Shape builders: */ > /* Shape_t builders: */ --- 308c308 ----------------------- < an = Onext(an); > an = ONext(an); --- 314c314 ----------------------- < ap = Oprev(ap); > ap = OPrev(ap); ========================================== diff -Bbs -r old/progs-main/MakePentaOcta.c cur/progs-main/MakePentaOcta.c --- 969c969 ----------------------- < ??? e = NextEk(walls[l],m); > ??? e = NextEK(walls[l],m); --- 1038,1039c1038,1039 ----------------------- < double t = MakeTopology(a); < double c = GenCoords(t)^; > double top = MakeElemTable(a); > double c = GenCoords(top)^; --- 1043c1043 ----------------------- < for (i = 0; i < t.NF; i++) > for (i = 0; i < top.wall.nel; i++) --- 1045c1045 ----------------------- < ??? f = t.wall[i]; > ??? f = top.wall[i]; --- 1051c1051 ----------------------- < for (i = 0; i < t.NE; i++) > for (i = 0; i < top.edge.nel; i++) --- 1053c1053 ----------------------- < ??? e = t.edge[i]; > ??? e = top.edge[i]; --- 1062c1062 ----------------------- < for (i = 0; i < t.NV; i++) > for (i = 0; i < top.node.nel; i++) --- 1064c1064 ----------------------- < ??? v = t.node[i]; > ??? v = top.node[i]; --- 1069c1069 ----------------------- < for (i = 0; i < t.NE; i++) > for (i = 0; i < top.edge.nel; i++) --- 1071c1071 ----------------------- < ??? e = t.edge[i]; > ??? e = top.edge[i]; --- 1076c1076 ----------------------- < for (i = 0; i < t.NF; i++) > for (i = 0; i < top.wall.nel; i++) --- 1078c1078 ----------------------- < ??? f = t.wall[i]; > ??? f = top.wall[i]; --- 1088c1088 ----------------------- < WriteTopology(shapeName, t, > WriteTopology(shapeName, top, --- 1092c1092 ----------------------- < WriteMaterials(shapeName, t, > WriteMaterials(shapeName, top, --- 1096c1096 ----------------------- < WriteState(shapeName, t, c, > WriteState(shapeName, top, c, ========================================== diff -Bbs -r old/progs-main/MakePlatonic.c cur/progs-main/MakePlatonic.c --- 30c30 ----------------------- < typedef enum {Shape_Icosahedron, Shape_Dodecahedron} Shape; /* [!!!] Rename {Shape_t} */ > typedef enum {Shape_Icosahedron, Shape_Dodecahedron} Shape_t; /* [!!!] Rename {Shape_t} */ --- 34c34 ----------------------- < Shape shape; > Shape_t shape; --- 40c40 ----------------------- < Place_t MakeTheShape(Shape shape); > Place_t MakeTheShape(Shape_t shape); --- 50,52c50,51 ----------------------- < Place_vec_t pv = (Place_vec_t){/*nel*/ 1, /*el*/ &m}; < Topology_t t = MakeTopology(&pv); < Coords_t c = GenCoords(&t);; > ElemTableRec_t top = MakeElemTable(Place_vec_desc(&m, 1)); > Coords_t c = GenCoords(&top);; --- 56,57c55,56 ----------------------- < for (i = 0; i < t.NF; i++) { Wall_t f = t.wall.el[i]; f->root = f->num; } < for (i = 0; i < t.NE; i++) { Edge_t e = t.edge.el[i]; e->root = e->num; } > for (i = 0; i < top.wall.nel; i++) { Wall_t f = PWall(top.wall.el[i]); f->root = f->num; } > for (i = 0; i < top.edge.nel; i++) { Edge_t e = PEdge(top.edge.el[i]); e->root = e->num; } --- 59,62c58,61 ----------------------- < char *flag = ""; < WriteTopology(o->output, flag, &t, topo_cmt); < WriteState(o->output, flag, &t, &c, txtcat(topo_cmt, geom_cmt)); < WriteMaterials(o->output, flag, &t, topo_cmt, FALSE); > char *tag = ""; > WriteTopology(o->output, tag, &top, topo_cmt); > WriteState(o->output, tag, &top, &c, txtcat(topo_cmt, geom_cmt)); > WriteMaterials(o->output, tag, &top, topo_cmt, FALSE); --- 67,71c66,78 ----------------------- < Place_t MakeTheShape(Shape shape) < { switch (shape) < { case Shape_Icosahedron: return MakeIcosahedronTriang(FALSE); < case Shape_Dodecahedron: return MakeDodecahedron(); < default: assert(FALSE); > Place_t MakeTheShape(Shape_t shape) > { > switch (shape) > { case Shape_Icosahedron: > { TwentyPlaces_t twp = MakeIcosahedronTriang(FALSE); > return twp.p[0]; > } > > case Shape_Dodecahedron: > { return MakeDodecahedron(); } > > default: > { assert(FALSE); } ========================================== Only in cur/progs-main: MakePolygon.c ========================================== diff -Bbs -r old/progs-main/MakePolytope.c cur/progs-main/MakePolytope.c --- 34c34 ----------------------- < double Shape = {cell5, cell8, cell16}; > double Shape_t = {cell5, cell8, cell16}; --- 37c37 ----------------------- < Shape shape; > Shape_t shape; --- 50c50 ----------------------- < char *flag; > char *tag; --- 57c57 ----------------------- < ??? t = MakeTopology(m); > ??? top = MakeElemTable(m); --- 59c59 ----------------------- < c = r4_vec_new(t.NV); > c = r4_vec_new(top.node.nel); --- 62c62 ----------------------- < for (i = 0; i < t.NF; i++) { Wall_t f = t.wall.el[i]; f->root = f->num; } > for (i = 0; i < top.wall.nel; i++) { Wall_t f = top.wall.el[i]; f->root = f->num; } --- 64c64 ----------------------- < for (i = 0; i < t.NE; i++) { Edge_t e = t.edge.el[i]; e->root = e->num; } > for (i = 0; i < top.edge.nel; i++) { Edge_t e = top.edge.el[i]; e->root = e->num; } --- 68,69c68,69 ----------------------- < c = FixCoords(t, o->shape, m); < flag ="-fix"; > c = FixCoords(top, o->shape, m); > tag ="-fix"; --- 71c71 ----------------------- < o->shapeName & flag, t, > o->shapeName & tag, top, --- 76c76 ----------------------- < o->shapeName & flag,t, c^, > o->shapeName & tag,top, c^, --- 81c81 ----------------------- < o->shapeName & flag, t, > o->shapeName & tag, top, --- 88,89c88,89 ----------------------- < c = GenCoords(t); < flag ="-r"; > c = GenCoords(top); > tag ="-r"; --- 92c92 ----------------------- < o->shapeName & flag, t, > o->shapeName & tag, top, --- 97c97 ----------------------- < o->shapeName & flag,t, c^, > o->shapeName & tag,top, c^, --- 104c104 ----------------------- < o->shapeName & flag, t, > o->shapeName & tag, top, --- 110c110 ----------------------- < for (i = 0; i < t.NP; i++) > for (i = 0; i < top.cell.nel; i++) --- 112c112 ----------------------- < ??? p = t.cell[i]; > ??? p = top.cell[i]; --- 118c118 ----------------------- < o->shapeName & flag, t, > o->shapeName & tag, top, --- 127c127 ----------------------- < Place_t MakePolytope(Shape shape) > Place_t MakePolytope(Shape_t shape) --- 308c308 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 311c311 ----------------------- < with ( top->NV), > with ( top->node.nel), --- 365c365 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 368c368 ----------------------- < with ( top->NV), > with ( top->node.nel), --- 387c387 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 390c390 ----------------------- < with ( top->NV), > with ( top->node.nel), --- 413c413 ----------------------- < Coords_t *FixCoords(Topology_t *top, shape:Shape; > Coords_t *FixCoords(ElemTableRec_t *top, shape:Shape_t; --- 416c416 ----------------------- < with ( top->NV), > with ( top->node.nel), ========================================== diff -Bbs -r old/progs-main/MakeRawTetra.c cur/progs-main/MakeRawTetra.c --- 60,61c60,61 ----------------------- < t == MakeTopology(ca.el[1]), < c == ComputeCoordinates(ca, t, o->gridOrder)^, > top == MakeElemTable(ca.el[1]), > c == ComputeCoordinates(ca, top, o->gridOrder)^, --- 69c69 ----------------------- < for (i = 0; i < t.NF; i++) { Wall_t f = t.wall.el[i]; f->root = f->num; } > for (i = 0; i < top.wall.nel; i++) { Wall_t f = top.wall.el[i]; f->root = f->num; } --- 71c71 ----------------------- < for (i = 0; i < t.NE; i++) { Edge_t e = t.edge.el[i]; e->root = e->num; } > for (i = 0; i < top.edge.nel; i++) { Edge_t e = top.edge.el[i]; e->root = e->num; } --- 74c74 ----------------------- < name & "-" & Fmt.Int(o->gridOrder), t, co & ".tp on " & Today()); > name & "-" & Fmt.Int(o->gridOrder), top, co & ".tp on " & Today()); --- 77c77 ----------------------- < name & "-" & Fmt.Int(o->gridOrder), t, co & ".tb on " & Today()); > name & "-" & Fmt.Int(o->gridOrder), top, co & ".tb on " & Today()); --- 80c80 ----------------------- < name & "-" & Fmt.Int(o->gridOrder), t, c, co & ".st on "& Today()); > name & "-" & Fmt.Int(o->gridOrder), top, c, co & ".st on "& Today()); --- 83c83 ----------------------- < name & "-" & Fmt.Int(o->gridOrder), t, co & ".ma on " & Today()); > name & "-" & Fmt.Int(o->gridOrder), top, co & ".ma on " & Today()); --- 89c89 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 93c93 ----------------------- < with ( top->NV), > with ( top->node.nel), ========================================== diff -Bbs -r old/progs-main/MakeVStar.c cur/progs-main/MakeVStar.c --- 28c28 ----------------------- < Shape == > Shape_t == --- 37c37 ----------------------- < Shape shape; > Shape_t shape; --- 49,50c49,50 ----------------------- < ??? t = MakeTopology(m); < Coords_t c = GenCoords(&t);; > ??? top = MakeElemTable(m); > Coords_t c = GenCoords(&top);; --- 53c53 ----------------------- < for (i = 0; i < t.NF; i++) { Wall_t f = t.wall.el[i]; f->root = f->num; } > for (i = 0; i < top.wall.nel; i++) { Wall_t f = top.wall.el[i]; f->root = f->num; } --- 55c55 ----------------------- < for (i = 0; i < t.NE; i++) { Edge_t e = t.edge.el[i]; e->root = e->num; } > for (i = 0; i < top.edge.nel; i++) { Edge_t e = top.edge.el[i]; e->root = e->num; } --- 57c57 ----------------------- < SetElemProperties(t); > SetElemProperties(top); --- 59c59 ----------------------- < WriteTopology(o->output, flag, &t, topo_cmt); // shapeName MakeVStar shapeName > WriteTopology(o->output, tag, &top, topo_cmt); // shapeName MakeVStar shapeName --- 62c62 ----------------------- < o->shapeName, t, c,"Created by MakeVStar: " & o->shapeName \ > o->shapeName, top, c,"Created by MakeVStar: " & o->shapeName \ --- 66c66 ----------------------- < WriteMaterials(o->output, flag, &t, topo_cmt); // shapeName MakeVStar shapeName > WriteMaterials(o->output, tag, &top, topo_cmt); // shapeName MakeVStar shapeName --- 71c71 ----------------------- < Place_t MakePoly(Shape shape) > Place_t MakePoly(Shape_t shape) --- 84c84 ----------------------- < /* Shape builders: */ > /* Shape_t builders: */ --- 148c148 ----------------------- < PROCEDURE SetElemProperties(Topology *top) > PROCEDURE SetElemProperties(ElemTableRec_t *top) --- 150c150 ----------------------- < { for (i = 0; i < top->NV; i++){ SetNodeProperties(top->out[i], border = FALSE); } > { for (i = 0; i < top->node.nel; i++){ SetNodeProperties(top->node[i], border = FALSE); } --- 152c152 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) ========================================== Files old/progs-main/Makefile and cur/progs-main/Makefile are identical ========================================== diff -Bbs -r old/progs-main/TestTopology.c cur/progs-main/TestTopology.c --- 19c19 ----------------------- < on the list of cell of ".top" topology.. */ > on the list of cell of ".tp" topology.. */ --- 36c36 ----------------------- < char *inFile; /* Initial guess file name (minus ".top") */ > char *inFile; /* Initial guess file name (minus ".tp") */ --- 42c42 ----------------------- < /* A '@{quad->?}' is a group of four @places, consisting of two mutually dual > /* A '@{chip->?}' is a group of four @places, consisting of two mutually dual --- 47d46 ----------------------- < double @{Quad->?} = FourNodes_t; --- 51c50 ----------------------- < double Topology = Triangulation.Topology; > --- 66c65 ----------------------- < PROCEDURE TestePolyDif(*top : Topology) > PROCEDURE TestePolyDif(ElemDataRec_t *top) --- 69,70c68,69 ----------------------- < { for (i = 0; i < top->NV; i++){ < ??? a = top->out[i]; > { for (i = 0; i < top->node.nel; i++){ > ??? a = top->node[i]; --- 101c100 ----------------------- < PROCEDURE TestePolyExist(*top : Topology) > PROCEDURE TestePolyExist(ElemDataRec_t *top) --- 105c104 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 107c106 ----------------------- < ??? a = top->out[i]; > ??? a = top->node[i]; --- 121c120 ----------------------- < for (l = 0; l < top->NP; l++) > for (l = 0; l < top->cell.nel; l++) --- 152c151 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 154c153 ----------------------- < ??? a = top->out[i]; > ??? a = top->node[i]; --- 164c163 ----------------------- < assert(dg <= top->NV); > assert(dg <= top->node.nel); --- 174c173 ----------------------- < if ((top->bdr == 0) && (top->NV-top->NE+top->NF-top->NP == 0)) > if ((top->bdr == 0) && (top->node.nel-top->NE+top->wall.nel-top->cell.nel == 0)) --- 188c187 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 241c240 ----------------------- < *poly: REF ARRAY OF @{Quad->?}; > *poly: REF ARRAY OF FourNodes_t; ========================================== diff -Bbs -r old/progs-more/Anaglyphs.c cur/progs-more/Anaglyphs.c --- 25c25 ----------------------- < /* A '@{quad->?}' is a group of four @places, consisting of two mutually dual > /* A '@{chip->?}' is a group of four @places, consisting of two mutually dual --- 29c29 ----------------------- < double @{Quad->?} = RECORD u, v, w, x: uint; } > double FourNodes_t = RECORD u, v, w, x: uint; } --- 66c66 ----------------------- < void WritePOVFile(Topology_t *top, > void WritePOVFile(ElemTableRec_t *top, --- 82c82 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 89c89 ----------------------- < double FindOriR3(q: @{Quad->?}) > double FindOriR3(q: FourNodes_t) --- 121,122c121,122 ----------------------- < double t1 = @{Quad->?}{un,vn,wn,xn}; < double t2 = @{Quad->?}{un,vn,wn,yn}; > double t1 = FourNodes_t{un,vn,wn,xn}; > double t2 = FourNodes_t{un,vn,wn,yn}; --- 189c189 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 191c191 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 214c214 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 259c259 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) ========================================== diff -Bbs -r old/progs-more/AngleConse.c cur/progs-more/AngleConse.c --- 21c21 ----------------------- < char *inFile; /* Initial guess file name (minus ".top") */ > char *inFile; /* Initial guess file name (minus ".tp") */ --- 126c126 ----------------------- < int NF = top->NF; > int NF = top->wall.nel; --- 162c162 ----------------------- < int NF = top->NF; > int NF = top->wall.nel; ========================================== diff -Bbs -r old/progs-more/AutoDodeIco.c cur/progs-more/AutoDodeIco.c --- 28c28 ----------------------- < double Shape = {Dodecahedron, Icosahedron}; > double Shape_t = {Dodecahedron, Icosahedron}; --- 33c33 ----------------------- < Shape shape; > Shape_t shape; --- 1135c1135 ----------------------- < ??? e = NextEk(walls[l],m); > ??? e = NextEK(walls[l],m); --- 1215,1216c1215,1216 ----------------------- < double t = MakeTopology(a); < double c = GenCoords(t)^; > double top = MakeElemTable(a); > double c = GenCoords(top)^; --- 1219c1219 ----------------------- < for (i = 0; i < t.NF; i++) > for (i = 0; i < top.wall.nel; i++) --- 1221c1221 ----------------------- < ??? f = t.wall[i]; > ??? f = top.wall[i]; --- 1227c1227 ----------------------- < for (i = 0; i < t.NE; i++) > for (i = 0; i < top.edge.nel; i++) --- 1229c1229 ----------------------- < ??? e = t.edge[i]; > ??? e = top.edge[i]; --- 1235c1235 ----------------------- < WriteTopology(o->shapeName, t, > WriteTopology(o->shapeName, top, --- 1239c1239 ----------------------- < WriteMaterials(o->shapeName, t, > WriteMaterials(o->shapeName, top, --- 1243c1243 ----------------------- < WriteState(o->shapeName, t, c, > WriteState(o->shapeName, top, c, ========================================== diff -Bbs -r old/progs-more/AutoGluing.c cur/progs-more/AutoGluing.c --- 32c32 ----------------------- < double Shape = {cell5, cell16, cell24}; > double Shape_t = {cell5, cell16, cell24}; --- 36c36 ----------------------- < Shape shape; > Shape_t shape; --- 1770c1770 ----------------------- < ??? e = NextEk(walls[l], m); > ??? e = NextEK(walls[l], m); --- 1983,1984c1983,1984 ----------------------- < ??? t = MakeTopology(a,0); < Coords_t c = GenCoords(&t);; > ??? top = MakeElemTable(a,0); > Coords_t c = GenCoords(&top);; --- 1987c1987 ----------------------- < for (i = 0; i < t.NF; i++) > for (i = 0; i < top.wall.nel; i++) --- 1989c1989 ----------------------- < ??? f = t.wall[i]; > ??? f = top.wall[i]; --- 1995c1995 ----------------------- < for (i = 0; i < t.NE; i++) > for (i = 0; i < top.edge.nel; i++) --- 1997c1997 ----------------------- < ??? e = t.edge[i]; > ??? e = top.edge[i]; --- 2003c2003 ----------------------- < WriteTopology(o->shapeName, t, > WriteTopology(o->shapeName, top, --- 2007c2007 ----------------------- < WriteTable(o->shapeName, t, > WriteTable(o->shapeName, top, --- 2011c2011 ----------------------- < WriteMaterials(o->shapeName, t, > WriteMaterials(o->shapeName, top, --- 2015c2015 ----------------------- < WriteState(o->shapeName, t, c, > WriteState(o->shapeName, top, c, --- 2023,2024c2023,2024 ----------------------- < ??? t = MakeTopology(a,0); < ??? ca = GenCoords(t)^; > ??? top = MakeElemTable(a,0); > ??? ca = GenCoords(top)^; --- 2027c2027 ----------------------- < for (i = 0; i < t.NF; i++) > for (i = 0; i < top.wall.nel; i++) --- 2029c2029 ----------------------- < ??? f = t.wall[i]; > ??? f = top.wall[i]; --- 2036c2036 ----------------------- < for (i = 0; i < t.NE; i++) > for (i = 0; i < top.edge.nel; i++) --- 2038c2038 ----------------------- < ??? e = t.edge[i]; > ??? e = top.edge[i]; --- 2045c2045 ----------------------- < WriteTopology(o->shapeName, t, > WriteTopology(o->shapeName, top, --- 2049c2049 ----------------------- < WriteMaterials(o->shapeName, t, > WriteMaterials(o->shapeName, top, --- 2055c2055 ----------------------- < WriteState(o->shapeName, t, ca, > WriteState(o->shapeName, top, ca, --- 2061c2061 ----------------------- < WriteState(o->shapeName, t, c^, > WriteState(o->shapeName, top, c^, ========================================== diff -Bbs -r old/progs-more/BarySubdivision.c cur/progs-more/BarySubdivision.c --- 62c62 ----------------------- < ??? NFE = top->NFE; > ??? NFE = top->wall.nelE; --- 131c131 ----------------------- < ??? newtop = MakeTopology(PWedge(top->wedge[NFE-1]).ca.el[1]); > ??? newtop = MakeElemTable(PWedge(top->wedge[NFE-1]).ca.el[1]); --- 137c137 ----------------------- < for (i = 0; i < newtop.NV; i++) > for (i = 0; i < newtop.node.nel; i++) --- 155,159c155,159 ----------------------- < assert(newtop.NV == nvv + nve + nvf + nvp); < assert(newtop.NV == top->NV + top->NE + top->NF + top->NP); < assert(newtop.NF == 8 * top->NFE); < assert(newtop.NFE == 24 * top->NFE); < assert(newtop.NP == 4 * top->NFE); > assert(newtop.node.nel == nvv + nve + nvf + nvp); > assert(newtop.node.nel == top->node.nel + top->NE + top->wall.nel + top->cell.nel); > assert(newtop.wall.nel == 8 * top->wall.nelE); > assert(newtop.wedge.nel == 24 * top->wall.nelE); > assert(newtop.cell.nel == 4 * top->wall.nelE); --- 172c172 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 186c186 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 188c188 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 193c193 ----------------------- < for (i = 0; i < newtop.NE; i++) > for (i = 0; i < newtop.edge.nel; i++) --- 201c201 ----------------------- < for (i = 0; i < newtop.NV; i++) > for (i = 0; i < newtop.node.nel; i++) --- 215c215 ----------------------- < for (j = 0; j < top->NFE; j++) > for (j = 0; j < top->wall.nelE; j++) --- 231c231 ----------------------- < for (j = 0; j < top->NF; j++) > for (j = 0; j < top->wall.nel; j++) --- 244c244 ----------------------- < for (j = 0; j < top->NP; j++) > for (j = 0; j < top->cell.nel; j++) --- 246c246 ----------------------- < ??? a = top->region[j]; > ??? a = Srot(top->cell[j]); --- 374c374 ----------------------- < ??? newtop = MakeTopology(PWedge(top->wedge[NFE-1]).ca.el[1]); > ??? newtop = MakeElemTable(PWedge(top->wedge[NFE-1]).ca.el[1]); --- 381c381 ----------------------- < for (i = 0; i < newtop.NV; i++) > for (i = 0; i < newtop.node.nel; i++) --- 399,400c399,400 ----------------------- < assert(newtop.NV == nvv + nve + nvf + nvp); < assert(newtop.NV == top->NV + top->NE + top->NF + top->NP); > assert(newtop.node.nel == nvv + nve + nvf + nvp); > assert(newtop.node.nel == top->node.nel + top->NE + top->wall.nel + top->cell.nel); --- 403c403 ----------------------- < for (j = 0; j < top->NFE; j++) > for (j = 0; j < top->wall.nelE; j++) --- 863,864c863,864 ----------------------- < bool_t IsMapWithBorder(*top:Triangulation.Topology) < { for (i = 0; i < top->NFE; i++){ > bool_t IsMapWithBorder(ElemTableRec_t *top) > { for (i = 0; i < top->wall.nelE; i++){ ========================================== diff -Bbs -r old/progs-more/BezierToWire4.c cur/progs-more/BezierToWire4.c --- 409c409 ----------------------- < double Shape = > double Shape_t = --- 420c420 ----------------------- < Shape shape; > Shape_t shape; --- 440,441c440,441 ----------------------- < double t = MakeTopology(m,1); < double c = GenCoords(t)^; > double top = MakeElemTable(m,1); > double c = GenCoords(top)^; --- 444c444 ----------------------- < for (i = 0; i < t.NF; i++) > for (i = 0; i < top.wall.nel; i++) --- 446c446 ----------------------- < ??? f = t.wall[i]; > ??? f = top.wall[i]; --- 452c452 ----------------------- < for (i = 0; i < t.NE; i++) > for (i = 0; i < top.edge.nel; i++) --- 454c454 ----------------------- < ??? e = t.edge[i]; > ??? e = top.edge[i]; --- 460c460 ----------------------- < WriteTopology(o->output, flag, &t, topo_cmt); // outFile Build600cell outFile > WriteTopology(o->output, tag, &top, topo_cmt); // outFile Build600cell outFile --- 463c463 ----------------------- < o->outFile, t, c,"Created by Build600cell: " & o->outFile \ > o->outFile, top, c,"Created by Build600cell: " & o->outFile \ --- 467c467 ----------------------- < WriteMaterials(o->output, flag, &t, topo_cmt); // outFile Build600cell outFile > WriteMaterials(o->output, tag, &top, topo_cmt); // outFile Build600cell outFile --- 469c469 ----------------------- < ??? n = NumberFreeWalls(t); > ??? n = NumberFreeWalls(top); --- 476c476 ----------------------- < for (i = 0; i < t.NE; i++) > for (i = 0; i < top.edge.nel; i++) --- 478c478 ----------------------- < ??? e = t.edge[i].pa; > ??? e = top.edge[i].pa; --- 490c490 ----------------------- < Place_t MakeShape(shape: Shape; or: uint) > Place_t MakeShape(shape: Shape_t; or: uint) --- 508,509c508,509 ----------------------- < uint NumberFreeWalls(*top: Triangulation.Topology) < /* Find the number of boundary walls in the topology "top". */ > uint NumberFreeWalls(ElemTableRec_t *top) > /* Find the number of boundary walls in the elem table "top". */ --- 511c511 ----------------------- < { for (i = 0; i < top->NF; i++){ > { for (i = 0; i < top->wall.nel; i++){ ========================================== diff -Bbs -r old/progs-more/BuildRefinement.c cur/progs-more/BuildRefinement.c --- 147c147 ----------------------- < newtop: Triangulation.Topology; > ElemTableRec_t newtop; --- 158,159c158,159 ----------------------- < ??? co = NEW(REF ARRAY OF Corner, top->NP); < ??? nco = NEW(REF ARRAY OF Refine.Corner, top->NP); > ??? co = NEW(REF ARRAY OF Corner, top->cell.nel); > ??? nco = NEW(REF ARRAY OF Refine.Corner, top->cell.nel); --- 174c174 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 176c176 ----------------------- < ??? da = top->region[i]; > ??? da = Srot(top.cell[i]); --- 192c192 ----------------------- < vme = NEW(REF ARRAY OF CENTER, top->NP, 0); > vme = NEW(REF ARRAY OF CENTER, top->cell.nel, 0); --- 196c196 ----------------------- < vme = NEW(REF ARRAY OF CENTER, top->NP, 1); > vme = NEW(REF ARRAY OF CENTER, top->cell.nel, 1); --- 200c200 ----------------------- < vme = NEW(REF ARRAY OF CENTER, top->NP, 4); > vme = NEW(REF ARRAY OF CENTER, top->cell.nel, 4); --- 204,205c204,205 ----------------------- < vme = NEW(REF ARRAY OF CENTER, top->NP, 10); < vin = NEW(REF ARRAY OF CENTER, top->NP, 1); > vme = NEW(REF ARRAY OF CENTER, top->cell.nel, 10); > vin = NEW(REF ARRAY OF CENTER, top->cell.nel, 1); --- 209,210c209,210 ----------------------- < vme = NEW(REF ARRAY OF CENTER, top->NP, 20); < vin = NEW(REF ARRAY OF CENTER, top->NP, 4); > vme = NEW(REF ARRAY OF CENTER, top->cell.nel, 20); > vin = NEW(REF ARRAY OF CENTER, top->cell.nel, 4); --- 213c213 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 272c272 ----------------------- < for (k = 0; k < top->NF; k++) > for (k = 0; k < top->wall.nel; k++) --- 301c301 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 321c321 ----------------------- < newtop = MakeTopology(nco.el[0].right[0],1); > newtop = MakeElemTable(nco.el[0].right[0],1); --- 323c323 ----------------------- < for (i = 0; i < newtop.NV; i++) > for (i = 0; i < newtop.node.nel; i++) --- 346c346 ----------------------- < assert(newtop.NV == nvv + nve + nvf + nvp + nfe); > assert(newtop.node.nel == nvv + nve + nvf + nvp + nfe); --- 354c354 ----------------------- < if ( o->order == 3){ assert(nvf == top->NF * 1 + nof); > if ( o->order == 3){ assert(nvf == top->wall.nel * 1 + nof); --- 357c357 ----------------------- < if (o->order == 4){ assert(nvf == top->NF * 3 + nof); > if (o->order == 4){ assert(nvf == top->wall.nel * 3 + nof); --- 360c360 ----------------------- < if (o->order == 5){ assert(nvf == top->NF * 6 + nof); > if (o->order == 5){ assert(nvf == top->wall.nel * 6 + nof); --- 369c369 ----------------------- < assert(newtop.NP == top->NP * cte); > assert(newtop.cell.nel == top->cell.nel * cte); --- 371c371 ----------------------- < if ( o->order == 1){ assert(nvp == top->NP * 0 + nop); > if ( o->order == 1){ assert(nvp == top->cell.nel * 0 + nop); --- 374c374 ----------------------- < if (o->order == 2){ assert(nvp == top->NP * 1 + nop); > if (o->order == 2){ assert(nvp == top->cell.nel * 1 + nop); --- 377c377 ----------------------- < if (o->order == 3){ assert(nvp == top->NP * 4 + nop); > if (o->order == 3){ assert(nvp == top->cell.nel * 4 + nop); --- 382,383c382,383 ----------------------- < assert(nvp == top->NP * 10 + nop); < assert(nfe == top->NP * 1); > assert(nvp == top->cell.nel * 10 + nop); > assert(nfe == top->cell.nel * 1); --- 388,389c388,389 ----------------------- < assert(nvp == top->NP * 20 + nop); < assert(nfe == top->NP * 4); > assert(nvp == top->cell.nel * 20 + nop); > assert(nfe == top->cell.nel * 4); --- 501,502c501 ----------------------- < *tp : Triangulation.Topology; < ) > ElemTableRec_t *top) --- 520c519 ----------------------- < ??? ed = tp.edge[e->num]; > ??? ed = top.edge[e->num]; --- 533c532 ----------------------- < ??? fd = tp.wall[f->num]; > ??? fd = top.wall[f->num]; --- 605,608c604,607 ----------------------- < ??? f0e = tp.wall[f0->num]->exists; < ??? f1e = tp.wall[f1->num]->exists; < ??? f2e = tp.wall[f2->num]->exists; < ??? f3e = tp.wall[f3->num]->exists; > ??? f0e = top.wall[f0->num]->exists; > ??? f1e = top.wall[f1->num]->exists; > ??? f2e = top.wall[f2->num]->exists; > ??? f3e = top.wall[f3->num]->exists; --- 619c618 ----------------------- < if (! tp.edge[e0->num]->exists) > if (! top.edge[e0->num]->exists) --- 626c625 ----------------------- < ??? cor = tp.edge[e0->num].color; > ??? cor = top.edge[e0->num].color; --- 640c639 ----------------------- < if (! tp.edge[e1->num]->exists) > if (! top.edge[e1->num]->exists) --- 647c646 ----------------------- < ??? cor = tp.edge[e1->num].color; > ??? cor = top.edge[e1->num].color; --- 660c659 ----------------------- < if (! tp.edge[e3->num]->exists) > if (! top.edge[e3->num]->exists) --- 667c666 ----------------------- < ??? cor = tp.edge[e3->num].color; > ??? cor = top.edge[e3->num].color; --- 680c679 ----------------------- < if (! tp.edge[e4->num]->exists) > if (! top.edge[e4->num]->exists) --- 687c686 ----------------------- < ??? cor = tp.edge[e4->num].color; > ??? cor = top.edge[e4->num].color; --- 700c699 ----------------------- < if (! tp.edge[e2->num]->exists) > if (! top.edge[e2->num]->exists) --- 707c706 ----------------------- < ??? cor = tp.edge[e2->num].color; > ??? cor = top.edge[e2->num].color; --- 725c724 ----------------------- < if (! tp.edge[e5->num]->exists) > if (! top.edge[e5->num]->exists) --- 734c733 ----------------------- < ??? cor = tp.edge[e5->num].color; > ??? cor = top.edge[e5->num].color; --- 748,749c747,748 ----------------------- < *oldtp : Triangulation.Topology; < *newtp : Triangulation.Topology; > ElemTableRec_t *oldtop; > ElemTableRec_t *newtop; --- 760c759 ----------------------- < /*Return the new number node of the node "v" on the "newtp" topology.*/ > /*Return the new number node of the node "v" on the "newtp" table.*/ --- 774c773 ----------------------- < /* Return TRUE iff the node "v" is present on the "newtp" topology.*/ > /* Return TRUE iff the node "v" is present on the "newtp" table.*/ ========================================== Files old/progs-more/CameraPath.c and cur/progs-more/CameraPath.c are identical ========================================== Files old/progs-more/Circle.c and cur/progs-more/Circle.c are identical ========================================== Files old/progs-more/Cross.c and cur/progs-more/Cross.c are identical ========================================== diff -Bbs -r old/progs-more/DegreeOfNode.c cur/progs-more/DegreeOfNode.c --- 39c39 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 41c41 ----------------------- < ??? a = top->out[i]; > ??? a = top->node[i]; ========================================== Files old/progs-more/Deps.make and cur/progs-more/Deps.make are identical ========================================== diff -Bbs -r old/progs-more/Depthcueing4D.c cur/progs-more/Depthcueing4D.c --- 51c51 ----------------------- < /* A '@{quad->?}' is a group of four @places, consisting of two mutually dual > /* A '@{chip->?}' is a group of four @places, consisting of two mutually dual --- 56c56 ----------------------- < double @{Quad->?} = RECORD u, v, w, x: uint; } > double FourNodes_t = RECORD u, v, w, x: uint; } --- 106c106 ----------------------- < with ( top->NV), > with ( top->node.nel), --- 108c108 ----------------------- < double rdepth = double_vec_new(top->NV); > double rdepth = double_vec_new(top->node.nel); --- 229,231c229 ----------------------- < double_vec_t depth; < VAR *top: Topology < ) > double_vec_t depth, ElemTableRec_t *top) --- 250c248 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 252c250 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 278c276 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 283c281 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 317,319c315 ----------------------- < Coords_t *c; < *top: Topology < ) > Coords_t *c, ElemTableRec_t *top) --- 321,322c317,318 ----------------------- < { for (i = 0; i < top->NP; i++){ < ??? f = top->region[i]; > { for (i = 0; i < top->cell.nel; i++){ > ??? f = Srot(top.cell[i]); --- 378c374 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 394c390 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 431c427 ----------------------- < double FindOriR3(q: @{Quad->?}) > double FindOriR3(q: FourNodes_t) --- 465,466c461,462 ----------------------- < double t1 = @{Quad->?}{un,vn,wn,xn}; < double t2 = @{Quad->?}{un,vn,wn,yn}; > double t1 = FourNodes_t{un,vn,wn,xn}; > double t2 = FourNodes_t{un,vn,wn,yn}; --- 524c520 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 544c540 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) ========================================== Files old/progs-more/DirectionEyes.c and cur/progs-more/DirectionEyes.c are identical ========================================== diff -Bbs -r old/progs-more/DualMap.c cur/progs-more/DualMap.c --- 65c65 ----------------------- < WriteState(name, top->NP, cd^, com); > WriteState(name, top->cell.nel, cd^, com); --- 70c70 ----------------------- < void WriteDualMaterials(char *name, Topology_t *top, > void WriteDualMaterials(char *name, ElemTableRec_t *top, --- 82c82 ----------------------- < ??? vWidth = digits(MAX(1, top->NV - 1)); > ??? vWidth = digits(MAX(1, top->node.nel - 1)); --- 85,86c85,86 ----------------------- < double fWidth = digits(MAX(1,top->NF - 1)); < double pWidth = digits(MAX(1,top->NP - 1)) > double fWidth = digits(MAX(1,top->wall.nel - 1)); > double pWidth = digits(MAX(1,top->cell.nel - 1)) --- 94,95c94,95 ----------------------- < filefmt_write_comments(ma, "nodes " & Fmt.Pad(Fmt.Int(top->NP),6), '|'); < filefmt_write_comments(ma, "@{edge->?}s " & Fmt.Pad(Fmt.Int(top->NF),6), '|'); > filefmt_write_comments(ma, "nodes " & Fmt.Pad(Fmt.Int(top->cell.nel),6), '|'); > filefmt_write_comments(ma, "@{edge->?}s " & Fmt.Pad(Fmt.Int(top->wall.nel),6), '|'); --- 97c97 ----------------------- < filefmt_write_comments(ma, "cells " & Fmt.Pad(Fmt.Int(top->NV),6), '|'); > filefmt_write_comments(ma, "cells " & Fmt.Pad(Fmt.Int(top->node.nel),6), '|'); --- 99c99 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 126c126 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 174c174 ----------------------- < if (top->NV!=0) > if (top->node.nel!=0) --- 179c179 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 206c206 ----------------------- < Coords_t *ComputeDualState(Topology_t *top, > Coords_t *ComputeDualState(ElemTableRec_t *top, --- 213c213 ----------------------- < with ( top->NP) > with ( top->cell.nel) --- 215c215 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 217c217 ----------------------- < ??? da = top->region[i]; > ??? da = Srot(top.cell[i]); --- 229c229 ----------------------- < cd[i] = r4_Scale(1.0/FLOAT(ptop.NV,double), a); > cd[i] = r4_Scale(1.0/FLOAT(ptop.node.nel,double), a); ========================================== diff -Bbs -r old/progs-more/Explode.c cur/progs-more/Explode.c --- 58c58 ----------------------- < ntop: Triangulation.Topology; > ElemTableRec_t ntop; --- 66,67c66,67 ----------------------- < ??? half = Place_vec_new(2*top->NFE)^; < ??? vnew = Node_vec_new(top->NV)^; > ??? half = Place_vec_new(2*top->wall.nelE)^; > ??? vnew = Node_vec_new(top->node.nel)^; --- 82,83c82,83 ----------------------- < gi = NEW(REF ARRAY OF Place_vec_t, top->NP, 4); < Node_vec_t vf = Node_vec_new(top->NF); > gi = NEW(REF ARRAY OF Place_vec_t, top->cell.nel, 4); > Node_vec_t vf = Node_vec_new(top->wall.nel); --- 147c147 ----------------------- < for (iu = 0; iu < top->NV; iu++) > for (iu = 0; iu < top->node.nel; iu++) --- 172c172 ----------------------- < for (ie = 0; ie < top->NFE; ie++) > for (ie = 0; ie < top->wall.nelE; ie++) --- 186c186 ----------------------- < ve[i]->num = top->NV + NNV; INC (NNV); > ve[i]->num = top->node.nel + NNV; INC (NNV); --- 218,219c218,219 ----------------------- < SetOrg(Clock(ho),ve[m->num-top->NV]); < SetOrg(Clock(hd),ve[m->num-top->NV]); > SetOrg(Clock(ho),ve[m->num-top->node.nel]); > SetOrg(Clock(hd),ve[m->num-top->node.nel]); --- 230c230 ----------------------- < for (ie = 0; ie < top->NFE; ie++) > for (ie = 0; ie < top->wall.nelE; ie++) --- 273c273 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 276c276 ----------------------- < vf[i]->num = top->NV + NNV; INC (NNV); > vf[i]->num = top->node.nel + NNV; INC (NNV); --- 279c279 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 327c327 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 349c349 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) --- 365c365 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 367c367 ----------------------- < ??? v = top->region[i], a == Tors(v), af == PrevF(a), > ??? v = Srot(top.cell[i]), a == Tors(v), af == PrevF(a), --- 382c382 ----------------------- < ntop = MakeTopology(Half(top->wedge[0])); > ntop = MakeElemTable(Half(top->wedge[0])); --- 385c385 ----------------------- < with (ntop.NV)^ > with (ntop.node.nel)^ --- 391c391 ----------------------- < for (i = 0; i < ntop.NV; i++) > for (i = 0; i < ntop.node.nel; i++) --- 551c551 ----------------------- < for (j = 0; j < top->NFE; j++) > for (j = 0; j < top->wall.nelE; j++) --- 569c569 ----------------------- < for (j = 0; j < top->NF; j++) > for (j = 0; j < top->wall.nel; j++) --- 588c588 ----------------------- < for (j = 0; j < ntop.NF; j++) > for (j = 0; j < ntop.wall.nel; j++) ========================================== diff -Bbs -r old/progs-more/ExtendedTable.c cur/progs-more/ExtendedTable.c --- 4c4 ----------------------- < than "MakeTopologyTable" procedure. > than "MakeElemTableTable" procedure. --- 56c56 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 83c83 ----------------------- < if (top->NP!=0) > if (top->cell.nel!=0) --- 87c87 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 90c90 ----------------------- < ??? ri = top->region[i]; > ??? ri = Srot(top.cell[i]); ========================================== diff -Bbs -r old/progs-more/GeralBarySubdivision.c cur/progs-more/GeralBarySubdivision.c --- 33c33 ----------------------- < top : Triangulation.Topology; > ElemTableRec_t top; --- 48c48 ----------------------- < ??? NFE = top->NFE; > ??? NFE = top->wall.nelE; --- 84c84 ----------------------- < ??? newtop = MakeTopology(PWedge(top->wedge[NFE-1]).ca.el[1]; > ??? newtop = MakeElemTable(PWedge(top->wedge[NFE-1]).ca.el[1]; ========================================== diff -Bbs -r old/progs-more/Halo.c cur/progs-more/Halo.c --- 45c45 ----------------------- < /* A '@{quad->?}' is a group of four @places, consisting of two mutually dual > /* A '@{chip->?}' is a group of four @places, consisting of two mutually dual --- 49c49 ----------------------- < double @{Quad->?} = RECORD u, v, w, x: uint; } > double FourNodes_t = RECORD u, v, w, x: uint; } --- 95c95 ----------------------- < with (top->NV), > with (top->node.nel), --- 97c97 ----------------------- < double rdepth = double_vec_new(top->NV); > double rdepth = double_vec_new(top->node.nel); --- 207,209c207 ----------------------- < double_vec_t depth; < VAR *top: Topology < ) > double_vec_t depth, ElemTableRec_t *top) --- 228c226 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 230c228 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 256c254 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 261c259 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 290,292c288 ----------------------- < Coords_t *c; < *top: Topology < ) > Coords_t *c, ElemTableRec_t *top) --- 294,295c290,291 ----------------------- < { for (i = 0; i < top->NP; i++){ < ??? f = top->region[i]; > { for (i = 0; i < top->cell.nel; i++){ > ??? f = Srot(top.cell[i]); --- 348c344 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 363c359 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 369c365 ----------------------- < double FindOriR3(q: @{Quad->?}) > double FindOriR3(q: FourNodes_t) --- 403,404c399,400 ----------------------- < double t1 = @{Quad->?}{un,vn,wn,xn}; < double t2 = @{Quad->?}{un,vn,wn,yn}; > double t1 = FourNodes_t{un,vn,wn,xn}; > double t2 = FourNodes_t{un,vn,wn,yn}; --- 437c433 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 439c435 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 452c448 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 454c450 ----------------------- < ??? r = top->region[i]; > ??? r = Srot(top.cell[i]); --- 547c543 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) ========================================== diff -Bbs -r old/progs-more/JSNewExplode.c cur/progs-more/JSNewExplode.c --- 114c114 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 116c116 ----------------------- < ??? ptop = Triangulation.MakeCellTopology(top->region[i]); > ??? ptop = Triangulation.MakeCellTopology(Srot(top.cell[i])); --- 124c124 ----------------------- < for (i = 0; i < ptop.NV; i++) > for (i = 0; i < ptop.node.nel; i++) --- 132c132 ----------------------- < for (i = 0; i < ptop.NE; i++) > for (i = 0; i < ptop.edge.nel; i++) --- 140c140 ----------------------- < for (i = 0; i < ptop.NF; i++) > for (i = 0; i < ptop.wall.nel; i++) ========================================== diff -Bbs -r old/progs-more/JSRefineTriang.c cur/progs-more/JSRefineTriang.c --- 66,67c66,67 ----------------------- < ntop : Triangulation.Topology; < { Options_t *o = GetOptions(argc, argv); > n{ ElemTableRec_t top; > Options_t *o = GetOptions(argc, argv); --- 77,78c77,78 ----------------------- < double half = Place_vec_new(2*top->NFE)^; < double vnew = Node_vec_new(top->NV)^ > double half = Place_vec_new(2*top->wall.nelE)^; > double vnew = Node_vec_new(top->node.nel)^ --- 81,82c81,82 ----------------------- < gi = NEW(REF ARRAY OF Place_vec_t, top->NP, 4); < Node_vec_t x = Node_vec_new(top->NP); > gi = NEW(REF ARRAY OF Place_vec_t, top->cell.nel, 4); > Node_vec_t x = Node_vec_new(top->cell.nel); --- 428c428 ----------------------- < for (iu = 0; iu < top->NV; iu++) > for (iu = 0; iu < top->node.nel; iu++) --- 454c454 ----------------------- < for (ie = 0; ie < top->NFE; ie++) > for (ie = 0; ie < top->wall.nelE; ie++) --- 469c469 ----------------------- < ve[i]->num = top->NV + NNV; NNV++; > ve[i]->num = top->node.nel + NNV; NNV++; --- 516,517c516,517 ----------------------- < SetOrg(Clock(ho),ve[m-top->NV]); < SetOrg(Clock(hd),ve[m-top->NV]); > SetOrg(Clock(ho),ve[m-top->node.nel]); > SetOrg(Clock(hd),ve[m-top->node.nel]); --- 528c528 ----------------------- < for (ie = 0; ie < top->NFE; ie++) > for (ie = 0; ie < top->wall.nelE; ie++) --- 571c571 ----------------------- < for (j = 0; j < top->NF; j++) > for (j = 0; j < top->wall.nel; j++) --- 706c706 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) --- 717c717 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 719c719 ----------------------- < ??? v = top->region[i]; > ??? v = Srot(top.cell[i]); --- 737c737 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 744c744 ----------------------- < ntop = MakeTopology(Half(top->wedge[1]),0); > ntop = MakeElemTable(Half(top->wedge[1]),0); --- 748c748 ----------------------- < ntop = MakeTopology(Half(top->wedge[1]),1); > ntop = MakeElemTable(Half(top->wedge[1]),1); --- 752c752 ----------------------- < with (ntop.NV)^, > with (ntop.node.nel)^, --- 756,760c756,760 ----------------------- < assert(ntop.NV == top->NV + top->NE + top->NP); < assert(ntop.NE == 2*top->NE + 3*top->NF + 6*top->NP); < assert(ntop.NF == 4*top->NF + 16*top->NP); < assert(ntop.NP == 12*top->NP); < if (top->bdr == 0){ assert(ntop.NFE == 72*top->NP); } > assert(ntop.node.nel == top->node.nel + top->NE + top->cell.nel); > assert(ntop.edge.nel == 2*top->NE + 3*top->wall.nel + 6*top->cell.nel); > assert(ntop.wall.nel == 4*top->wall.nel + 16*top->cell.nel); > assert(ntop.cell.nel == 12*top->cell.nel); > if (top->bdr == 0){ assert(ntop.wedge.nel == 72*top->cell.nel); } --- 762c762 ----------------------- < for (j = 0; j < top->NFE; j++) > for (j = 0; j < top->wall.nelE; j++) --- 789c789 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 803c803 ----------------------- < for (i = 0; i < ntop.NE; i++) > for (i = 0; i < ntop.edge.nel; i++) --- 814c814 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 830c830 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) ========================================== Files old/progs-more/JUNK/DeterLR3.c and cur/progs-more/JUNK/DeterLR3.c are identical ========================================== diff -Bbs -r old/progs-more/MakeAdjacencyMatrix.c cur/progs-more/MakeAdjacencyMatrix.c --- 48c48 ----------------------- < char *inFile; /* Initial guess file name (minus ".top") */ > char *inFile; /* Initial guess file name (minus ".tp") */ --- 71,72c71,72 ----------------------- < PrintHalfMatrix(m,top->NV); < ShortestPath(m,top->NV); > PrintHalfMatrix(m,top->node.nel); > ShortestPath(m,top->node.nel); --- 74,75c74,75 ----------------------- < PrintHalfMatrix(m,top->NV); < max = FindMaxDistance(m,top->NV); > PrintHalfMatrix(m,top->node.nel); > max = FindMaxDistance(m,top->node.nel); --- 81,82c81 ----------------------- < AdjacencyMatrix *MakeAdjacencyMatrix( < *top : Triangulation.Topology; > AdjacencyMatrix *MakeAdjacencyMatrix(ElemTableRec_t *top, --- 86,87c85,86 ----------------------- < { m = NEW(REF ARRAY OF double_vec_t, top->NV, top->NV); < for (i = 0; i < top->NV; i++) > { m = NEW(REF ARRAY OF double_vec_t, top->node.nel, top->node.nel); > for (i = 0; i < top->node.nel; i++) --- 89c88 ----------------------- < for (j = 0; j < top->NV; j++) > for (j = 0; j < top->node.nel; j++) --- 95c94 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 97c96 ----------------------- < ??? a = top->out[i]; > ??? a = top->node[i]; ========================================== Files old/progs-more/Makefile and cur/progs-more/Makefile are identical ========================================== Files old/progs-more/MatrixRotation.c and cur/progs-more/MatrixRotation.c are identical ========================================== diff -Bbs -r old/progs-more/NewExplode.c cur/progs-more/NewExplode.c --- 54c54 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 56c56 ----------------------- < ??? r = top->region[i]; > ??? r = Srot(top.cell[i]); ========================================== diff -Bbs -r old/progs-more/OptShape.c cur/progs-more/OptShape.c --- 179c179 ----------------------- < uint writeEvery; /* When to write ".top" file */ > uint writeEvery; /* When to write ".tp" file */ --- 206c206 ----------------------- < int NV = top->NV; > int NV = top->node.nel; --- 388c388 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 404c404 ----------------------- < char *minComment; /* Comment for ".top" and ".st" files */ > char *minComment; /* Comment for ".tp" and ".st" files */ --- 473c473 ----------------------- < bool_vec_t *VariableNodes(Topology *top)== > bool_vec_t *VariableNodes(ElemTableRec_t *top)== --- 476c476 ----------------------- < { ??? r = bool_vec_new(top->NV); > { ??? r = bool_vec_new(top->node.nel); --- 656c656 ----------------------- < ScreenPlot.T MakeWindow(Topology_t *top, > ScreenPlot.T MakeWindow(ElemTableRec_t *top, --- 665c665 ----------------------- < int NV = top->NV; > int NV = top->node.nel; --- 740c740 ----------------------- < void WriteConfiguration(char *name, Topology_t *top, > void WriteConfiguration(char *name, ElemTableRec_t *top, --- 915c915 ----------------------- < Coords3D_t *ProjectTo3D(Topology_t *top, Coords_t *c, > Coords3D_t *ProjectTo3D(ElemTableRec_t *top, Coords_t *c, --- 942c942 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 947c947 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 949,950c949,950 ----------------------- < assert(OrgV(top->out[i])->num == i); < Node_t v = OrgV(top->out[i]); > assert(OrgV(top->node[i])->num == i); > Node_t v = OrgV(top->node[i]); ========================================== diff -Bbs -r old/progs-more/ProjectTo3D.c cur/progs-more/ProjectTo3D.c --- 81c81 ----------------------- < double rc3 = NEW(REF Tridimensional.Coords3D_t, top->NV), c3 == rc3^; > double rc3 = NEW(REF Tridimensional.Coords3D_t, top->node.nel), c3 == rc3^; --- 133c133 ----------------------- < double MaxRadius(Topology_t *top, *c: Coords4D; *ctr: r4_t) > double MaxRadius(ElemTableRec_t *top, *c: Coords4D; *ctr: r4_t) --- 135,136c135,136 ----------------------- < { for (i = 0; i < top->NV; i++){ < assert(OrgV(top->out[i])->num == i); > { for (i = 0; i < top->node.nel; i++){ > assert(OrgV(top->node[i])->num == i); --- 146c146 ----------------------- < double MeanRadius(Topology_t *top, *c: Coords4D; *bar: r4_t) > double MeanRadius(ElemTableRec_t *top, *c: Coords4D; *bar: r4_t) --- 148c148 ----------------------- < { for (i = 0; i < top->NV; i++){ > { for (i = 0; i < top->node.nel; i++){ --- 155c155 ----------------------- < return sqrt(sum2/FLOAT(top->NV-1,double)); > return sqrt(sum2/FLOAT(top->node.nel-1,double)); --- 158c158 ----------------------- < double MeanThickness(Topology_t *top, *c: Coords4D; *bar, norm: r4_t) > double MeanThickness(ElemTableRec_t *top, *c: Coords4D; *bar, norm: r4_t) --- 160c160 ----------------------- < { for (i = 0; i < top->NV; i++){ > { for (i = 0; i < top->node.nel; i++){ --- 167c167 ----------------------- < return sqrt(sum2/FLOAT(top->NV-1,double)); > return sqrt(sum2/FLOAT(top->node.nel-1,double)); --- 170c170 ----------------------- < r4_t MeanNorm(Topology_t *top, *c: Coords4D) > r4_t MeanNorm(ElemTableRec_t *top, *c: Coords4D) --- 172,173c172,173 ----------------------- < { for (i = 0; i < top->NP; i++){ < ??? f = top->region[i]; > { for (i = 0; i < top->cell.nel; i++){ > ??? f = Srot(top.cell[i]); --- 206c206 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 274c274 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 279c279 ----------------------- < Node_t v = OrgV(top->out[i]); > Node_t v = OrgV(top->node[i]); --- 346,349c346,349 ----------------------- < PROCEDURE ShowStatistics(Topology *tp; *c: Coords4D; *c3: Coords3D_t) < { Analyze@{Edge->?}s(tp, c); < AnalyzeWalls(tp, c, c3); < AnalyzeCells(tp, c, c3); > PROCEDURE ShowStatistics(ElemTableRec_t *top; *c: Coords4D; *c3: Coords3D_t) > { Analyze@{Edge->?}s(top, c); > AnalyzeWalls(top, c, c3); > AnalyzeCells(top, c, c3); --- 352c352 ----------------------- < PROCEDURE Analyze@{Edge->?}s(Topology_t *top, *c: Coords4D) == > PROCEDURE Analyze@{Edge->?}s(ElemTableRec_t *top, *c: Coords4D) == --- 380c380 ----------------------- < PROCEDURE AnalyzeWalls(Topology_t *top, *c: Coords4D; *c3: Coords3D_t) > PROCEDURE AnalyzeWalls(ElemTableRec_t *top, *c: Coords4D; *c3: Coords3D_t) --- 385c385 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 418c418 ----------------------- < double nn = top->NF-ns-nb > double nn = top->wall.nel-ns-nb --- 427c427 ----------------------- < PROCEDURE AnalyzeCells(Topology_t *top, *c: Coords4D; *c3: Coords3D_t) > PROCEDURE AnalyzeCells(ElemTableRec_t *top, *c: Coords4D; *c3: Coords3D_t) --- 432c432 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 434c434 ----------------------- < ??? r = top->region[i], t == PnegP(Tors(r)); > ??? r = Srot(top.cell[i]), t == PnegP(Tors(r)); --- 462c462 ----------------------- < double np = top->NP - nn > double np = top->cell.nel - nn --- 470c470 ----------------------- < PROCEDURE CountBorder@{Edge->?}s(Topology *tp) : uint == > PROCEDURE CountBorder@{Edge->?}s(ElemTableRec_t *top) : uint == --- 472,473c472,473 ----------------------- < { for (i = 0; i < tp.NE; i++){ < if ((Triangulation.EdgeIsBorder(tp.edge[i].pa))){ count++; } > { for (i = 0; i < top.edge.nel; i++){ > if ((Triangulation.EdgeIsBorder(top.edge[i].pa))){ count++; } --- 478c478 ----------------------- < PROCEDURE CountMiswound@{Edge->?}s(Topology *tp; *c3: Coords3D_t) : uint == > PROCEDURE CountMiswound@{Edge->?}s(ElemTableRec_t *top; *c3: Coords3D_t) : uint == --- 480,481c480,481 ----------------------- < { for (i = 0; i < tp.NE; i++){ < ??? a = tp.edge[i].pa; > { for (i = 0; i < top.edge.nel; i++){ > ??? a = top.edge[i].pa; --- 500c500 ----------------------- < uint CountSilhouetteWalls(Topology *tp; *c3: Coords3D_t) > uint CountSilhouetteWalls(ElemTableRec_t *top; *c3: Coords3D_t) --- 521,522c521,522 ----------------------- < { for (i = 0; i < tp.NF; i++){ < if ((WallIsSilhouette(tp.wall[i].pa))){ count++; } > { for (i = 0; i < top.wall.nel; i++){ > if ((WallIsSilhouette(top.wall[i].pa))){ count++; } --- 527c527 ----------------------- < uint CountBorderWalls(Topology *tp) > uint CountBorderWalls(ElemTableRec_t *top) --- 538,539c538,539 ----------------------- < { for (i = 0; i < tp.NF; i++){ < if ((WallIsBorder(tp.wall[i].pa))){ count++; } > { for (i = 0; i < top.wall.nel; i++){ > if ((WallIsBorder(top.wall[i].pa))){ count++; } --- 544c544 ----------------------- < uint CountNegativeTetrahedra(Topology *tp; *c3: Coords3D_t) > uint CountNegativeTetrahedra(ElemTableRec_t *top; *c3: Coords3D_t) --- 547c547 ----------------------- < { ??? t = Triangulation.CollectTetrahedra(tp)^; > { ??? t = Triangulation.CollectTetrahedra(top)^; --- 549c549 ----------------------- < for (i = 0; i < tp.NP; i++) > for (i = 0; i < top.cell.nel; i++) ========================================== diff -Bbs -r old/progs-more/RandomShape.c cur/progs-more/RandomShape.c --- 52c52 ----------------------- < with ( top->NV)^ > with ( top->node.nel)^ --- 77c77 ----------------------- < PROCEDURE PerturbCoords(Topology_t *top, Coords_t *c, > PROCEDURE PerturbCoords(ElemTableRec_t *top, Coords_t *c, --- 82c82 ----------------------- < if ((top->node.el[i]->exists) && (NOT top->node[i].fixed)) > if ((OrgV(top->node.el[i])->exists) && (NOT top->node[i].fixed)) ========================================== diff -Bbs -r old/progs-more/RawCubeTriang.c cur/progs-more/RawCubeTriang.c --- 34d33 ----------------------- < // Coords_t, OrgV, Place_t, Org, SetOrgAll, Topology; --- 36,37d34 ----------------------- < // NextE, Clock, PrevE, NextF, Spin, PrevF, SetRingEdgeInfo, < SpinBit; --- 51,53c48,49 ----------------------- < ??? ct = MakeTopology(co.el[0]; < with (1), < double c = ComputeCoordinates(co, ct, o->gridOrder)^; > ElemTableRec_t top = MakeElemTable(co.el[0], 1), > double c = ComputeCoordinates(co, top, o->gridOrder)^; --- 59c55 ----------------------- < "cubetriang-" & Fmt.Int(o->gridOrder), ct, cmt & Today()); > "cubetriang-" & Fmt.Int(o->gridOrder), top, cmt & Today()); --- 61,62c57,58 ----------------------- < MakeTopologyTable( < "cubetriang-" & Fmt.Int(o->gridOrder), ct, cmt & Today()); > MakeElemTableTable( > "cubetriang-" & Fmt.Int(o->gridOrder), top, cmt & Today()); --- 65c61 ----------------------- < "cubetriang-"&Fmt.Int(o->gridOrder),0.0,ct,c,cmt & Today()); > "cubetriang-"&Fmt.Int(o->gridOrder),0.0,top,c,cmt & Today()); --- 68c64 ----------------------- < "cubetriang-" & Fmt.Int(o->gridOrder), ct,cmt& Today()); > "cubetriang-" & Fmt.Int(o->gridOrder), top,cmt& Today()); --- 76c72 ----------------------- < *ct: Topology; > ElemTableRec_t *top; --- 80c76 ----------------------- < with ( ct.NV), > with ( top.node.nel), ========================================== diff -Bbs -r old/progs-more/RefineTriang.c cur/progs-more/RefineTriang.c --- 80,81c80,81 ----------------------- < ntop : Triangulation.Topology; < { Options_t *o = GetOptions(argc, argv); > n{ ElemTableRec_t top; > Options_t *o = GetOptions(argc, argv); --- 91,92c91,92 ----------------------- < double half = Place_vec_new(2*top->NFE)^; < double vnew = Node_vec_new(top->NV)^ > double half = Place_vec_new(2*top->wall.nelE)^; > double vnew = Node_vec_new(top->node.nel)^ --- 94c94 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 104,105c104,105 ----------------------- < gi = NEW(REF ARRAY OF Place_vec_t, top->NP, 4); < Node_vec_t x = Node_vec_new(top->NP); > gi = NEW(REF ARRAY OF Place_vec_t, top->cell.nel, 4); > Node_vec_t x = Node_vec_new(top->cell.nel); --- 451c451 ----------------------- < for (iu = 0; iu < top->NV; iu++) > for (iu = 0; iu < top->node.nel; iu++) --- 477c477 ----------------------- < for (ie = 0; ie < top->NFE; ie++) > for (ie = 0; ie < top->wall.nelE; ie++) --- 492c492 ----------------------- < ve[i]->num = top->NV + NNV; NNV++; > ve[i]->num = top->node.nel + NNV; NNV++; --- 539,540c539,540 ----------------------- < SetOrg(Clock(ho),ve[m-top->NV]); < SetOrg(Clock(hd),ve[m-top->NV]); > SetOrg(Clock(ho),ve[m-top->node.nel]); > SetOrg(Clock(hd),ve[m-top->node.nel]); --- 551c551 ----------------------- < for (ie = 0; ie < top->NFE; ie++) > for (ie = 0; ie < top->wall.nelE; ie++) --- 594c594 ----------------------- < for (j = 0; j < top->NF; j++) > for (j = 0; j < top->wall.nel; j++) --- 728c728 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) --- 739c739 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 741c741 ----------------------- < ??? v = top->region[i]; > ??? v = Srot(top.cell[i]); --- 758c758 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 763c763 ----------------------- < ntop = MakeTopology(Half(top->wedge[1])); > ntop = MakeElemTable(Half(top->wedge[1])); --- 766c766 ----------------------- < with (ntop.NV)^, > with (ntop.node.nel)^, --- 770,774c770,774 ----------------------- < assert(ntop.NV == top->NV + top->NE + top->NP); < assert(ntop.NE == 2*top->NE + 3*top->NF + 6*top->NP); < assert(ntop.NF == 4*top->NF + 16*top->NP); < assert(ntop.NP == 12*top->NP); < /*if (top->bdr == 0){ assert(ntop.NFE == 72*top->NP); }*/ > assert(ntop.node.nel == top->node.nel + top->NE + top->cell.nel); > assert(ntop.edge.nel == 2*top->NE + 3*top->wall.nel + 6*top->cell.nel); > assert(ntop.wall.nel == 4*top->wall.nel + 16*top->cell.nel); > assert(ntop.cell.nel == 12*top->cell.nel); > /*if (top->bdr == 0){ assert(ntop.wedge.nel == 72*top->cell.nel); }*/ --- 776c776 ----------------------- < for (j = 0; j < top->NFE; j++) > for (j = 0; j < top->wall.nelE; j++) --- 803c803 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 817c817 ----------------------- < for (i = 0; i < ntop.NE; i++) > for (i = 0; i < ntop.edge.nel; i++) --- 828c828 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 844c844 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) ========================================== diff -Bbs -r old/progs-more/RefineTriangGood.c cur/progs-more/RefineTriangGood.c --- 48,49c48,49 ----------------------- < ntop : Triangulation.Topology; < { Options_t *o = GetOptions(argc, argv); > n{ ElemTableRec_t top; > Options_t *o = GetOptions(argc, argv); --- 57,58c57,58 ----------------------- < ??? half = Place_vec_new(2*top->NFE)^; < ??? vnew = Node_vec_new(top->NV)^; > ??? half = Place_vec_new(2*top->wall.nelE)^; > ??? vnew = Node_vec_new(top->node.nel)^; --- 67c67 ----------------------- < gi = NEW(REF ARRAY OF Place_vec_t, top->NP, 4); > gi = NEW(REF ARRAY OF Place_vec_t, top->cell.nel, 4); --- 425c425 ----------------------- < for (iu = 0; iu < top->NV; iu++) > for (iu = 0; iu < top->node.nel; iu++) --- 450c450 ----------------------- < for (ie = 0; ie < top->NFE; ie++) > for (ie = 0; ie < top->wall.nelE; ie++) --- 464c464 ----------------------- < ve[i]->num = top->NV + NNV; INC (NNV); > ve[i]->num = top->node.nel + NNV; INC (NNV); --- 496,497c496,497 ----------------------- < SetOrg(Clock(ho),ve[m-top->NV]); < SetOrg(Clock(hd),ve[m-top->NV]); > SetOrg(Clock(ho),ve[m-top->node.nel]); > SetOrg(Clock(hd),ve[m-top->node.nel]); --- 508c508 ----------------------- < for (ie = 0; ie < top->NFE; ie++) > for (ie = 0; ie < top->wall.nelE; ie++) --- 551c551 ----------------------- < for (j = 0; j < top->NF; j++) > for (j = 0; j < top->wall.nel; j++) --- 643c643 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) --- 654c654 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 656c656 ----------------------- < ??? v = top->region[i], a == Tors(v), af == PrevF(a), > ??? v = Srot(top.cell[i]), a == Tors(v), af == PrevF(a), --- 671c671 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 678c678 ----------------------- < ntop = MakeTopology(Half(top->wedge[1]),0); > ntop = MakeElemTable(Half(top->wedge[1]),0); --- 682c682 ----------------------- < ntop = MakeTopology(Half(top->wedge[1]),1); > ntop = MakeElemTable(Half(top->wedge[1]),1); --- 686c686 ----------------------- < with ( ntop.NV)^, > with ( ntop.node.nel)^, --- 690,692c690,692 ----------------------- < assert(ntop.NV == top->NV + top->NE); < assert(ntop.NE == 2*top->NE + 3*top->NF + top->NP); < assert(ntop.NF == 4*top->NF + 8*top->NP); > assert(ntop.node.nel == top->node.nel + top->NE); > assert(ntop.edge.nel == 2*top->NE + 3*top->wall.nel + top->cell.nel); > assert(ntop.wall.nel == 4*top->wall.nel + 8*top->cell.nel); --- 694,695c694,695 ----------------------- < assert(ntop.NP == 8*top->NP); < if (top->bdr == 0){ assert(ntop.NFE == 48*top->NP); } > assert(ntop.cell.nel == 8*top->cell.nel); > if (top->bdr == 0){ assert(ntop.wedge.nel == 48*top->cell.nel); } --- 697c697 ----------------------- < for (j = 0; j < top->NFE; j++) > for (j = 0; j < top->wall.nelE; j++) --- 714c714 ----------------------- < MakeTopologyTable(o->outFile, ntop, cmt); > MakeElemTableTable(o->outFile, ntop, cmt); --- 721c721 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) ========================================== diff -Bbs -r old/progs-more/RootBarycenter.c cur/progs-more/RootBarycenter.c --- 39c39 ----------------------- < // Place_t, Org, MakeTopology, PposP, PnegP, OrgV, > // Place_t, Org, MakeElemTable, PposP, PnegP, OrgV, --- 74c74 ----------------------- < double NFE = top->NFE; > double NFE = top->wall.nelE; --- 144c144 ----------------------- < ??? newtop = MakeTopology(PWedge(top->wedge[NFE-1]).ca.el[1]); > ??? newtop = MakeElemTable(PWedge(top->wedge[NFE-1]).ca.el[1]); --- 151c151 ----------------------- < for (i = 0; i < newtop.NV; i++) > for (i = 0; i < newtop.node.nel; i++) --- 170,174c170,174 ----------------------- < assert(newtop.NV == nvv + nve + nvf + nvp); < assert(newtop.NV == top->NV + top->NE + top->NF + top->NP); < assert(newtop.NF == 8 * top->NFE); < assert(newtop.NFE == 24 * top->NFE); < assert(newtop.NP == 4 * top->NFE); > assert(newtop.node.nel == nvv + nve + nvf + nvp); > assert(newtop.node.nel == top->node.nel + top->NE + top->wall.nel + top->cell.nel); > assert(newtop.wall.nel == 8 * top->wall.nelE); > assert(newtop.wedge.nel == 24 * top->wall.nelE); > assert(newtop.cell.nel == 4 * top->wall.nelE); --- 179c179 ----------------------- < for (j = 0; j < top->NFE; j++) > for (j = 0; j < top->wall.nelE; j++) --- 195c195 ----------------------- < for (j = 0; j < top->NF; j++) > for (j = 0; j < top->wall.nel; j++) --- 209c209 ----------------------- < for (j = 0; j < top->NP; j++) > for (j = 0; j < top->cell.nel; j++) --- 211c211 ----------------------- < ??? a = top->region[j]; > ??? a = Srot(top->cell[j]); --- 680,681c680,681 ----------------------- < bool_t IsMapWithBorder(*top:Triangulation.Topology) < { for (i = 0; i < top->NFE; i++){ > bool_t IsMapWithBorder(ElemTableRec_t *top) > { for (i = 0; i < top->wall.nelE; i++){ ========================================== Files old/progs-more/Round.c and cur/progs-more/Round.c are identical ========================================== diff -Bbs -r old/progs-more/SelectSubdivision.c cur/progs-more/SelectSubdivision.c --- 71c71 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) --- 121c121 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) --- 136c136 ----------------------- < for (j = 0; j < top->NF; j++) > for (j = 0; j < top->wall.nel; j++) --- 152c152 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) --- 167c167 ----------------------- < for (j = 0; j < top->NP; j++) > for (j = 0; j < top->cell.nel; j++) --- 170c170 ----------------------- < ??? r = top->region[j]; > ??? r = Srot(top->cell[j]); --- 182c182 ----------------------- < ??? newtop = MakeTopology(top->wedge[0]); > ??? newtop = MakeElemTable(top->wedge[0]); --- 204c204 ----------------------- < *top: Triangulation.Topology; > ElemTableRec_t *top; --- 636c636 ----------------------- < PROCEDURE SubdivideWall(Place_t @p, *top: Triangulation.Topology) > PROCEDURE SubdivideWall(Place_t @p, ElemTableRec_t *top) --- 1000c1000 ----------------------- < PROCEDURE SubdivideTetrahedron(Place_t @p, Topology_t *top) > PROCEDURE SubdivideTetrahedron(Place_t @p, ElemTableRec_t *top) --- 1249c1249 ----------------------- < *top: Triangulation.Topology; > ElemTableRec_t *top; --- 1626c1626 ----------------------- < *top: Triangulation.Topology; > ElemTableRec_t *top; ========================================== Files old/progs-more/SplineToWire4.c and cur/progs-more/SplineToWire4.c are identical ========================================== diff -Bbs -r old/progs-more/Statistics.c cur/progs-more/Statistics.c --- 64c64 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 74c74 ----------------------- < PROCEDURE MakeTestLength(Topology_t *top, Coords_t *c) > PROCEDURE MakeTestLength(ElemTableRec_t *top, Coords_t *c) --- 95c95 ----------------------- < PROCEDURE MakeTestAngle(Topology_t *top, Coords_t *c) > PROCEDURE MakeTestAngle(ElemTableRec_t *top, Coords_t *c) --- 140c140 ----------------------- < VAR uint ct; > VAR uint top; --- 142c142 ----------------------- < int NF = top->NF; > int NF = top->wall.nel; --- 147c147 ----------------------- < ct = 0; > top = 0; --- 155,158c155,158 ----------------------- < if (((fun==eun) || (fun==evn))){ ct++; } < if (((fvn==eun) || (fvn==evn))){ ct++; } < if (((fwn==eun) || (fwn==evn))){ ct++; } < if (ct == 2) > if (((fun==eun) || (fun==evn))){ top++; } > if (((fvn==eun) || (fvn==evn))){ top++; } > if (((fwn==eun) || (fwn==evn))){ top++; } > if (top == 2) --- 234c234 ----------------------- < PROCEDURE MakeTestVolume(Topology_t *top, Coords_t *c) > PROCEDURE MakeTestVolume(ElemTableRec_t *top, Coords_t *c) --- 237c237 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 239c239 ----------------------- < ??? vt = TetrahedronNodes(top->region[i]); > ??? vt = TetrahedronNodes(Srot(top.cell[i])); --- 275c275 ----------------------- < PROCEDURE MakeTestArea(Topology_t *top, Coords_t *c) > PROCEDURE MakeTestArea(ElemTableRec_t *top, Coords_t *c) --- 278c278 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) ========================================== diff -Bbs -r old/progs-more/SubGon.c cur/progs-more/SubGon.c --- 36,37c36,37 ----------------------- < tp : Triangulation.Topology; < { Options_t *o = GetOptions(argc, argv); > { ElemTableRec_t top; > Options_t *o = GetOptions(argc, argv); --- 62c62 ----------------------- < tp = MakeTopology(a[0]); > top = MakeElemTable(a[0]); --- 64c64 ----------------------- < ??? c = GenCoords(tp); > ??? c = GenCoords(top); --- 66c66 ----------------------- < WriteTopology(o->outFile, tp, "Created by SubGon: gon-" \ > WriteTopology(o->outFile, top, "Created by SubGon: gon-" \ --- 69c69 ----------------------- < WriteState(o->outFile, tp, c^, > WriteState(o->outFile, top, c^, --- 72c72 ----------------------- < WriteMaterials(o->outFile, tp,"Created by SubGon: gon-" \ > WriteMaterials(o->outFile, top,"Created by SubGon: gon-" \ ========================================== Files old/progs-more/TestCorner.c and cur/progs-more/TestCorner.c are identical ========================================== Files old/progs-more/TestCornerFE.c and cur/progs-more/TestCornerFE.c are identical ========================================== diff -Bbs -r old/progs-more/TestCornerQE.c cur/progs-more/TestCornerQE.c --- 21c21 ----------------------- < // Splice, S, Onext, Oprev, Flip, Tor, Rot; > // Splice, S, ONext, OPrev, Flip, Tor, Rot; --- 31c31 ----------------------- < double Topology = Triang.Topology; > --- 122c122 ----------------------- < t : Topology; > ElemTableRec_t *top; /* Was {t} */; --- 138c138 ----------------------- < t = Triang.MakeTopology(a); > top = Triang.MakeElemTable(a); ========================================== diff -Bbs -r old/progs-more/TestCurvature.c cur/progs-more/TestCurvature.c --- 30d29 ----------------------- < // Topology, Coords_t; --- 56c55 ----------------------- < with ( top->NV)^, > with ( top->node.nel)^, --- 76c75 ----------------------- < PROCEDURE PerturbCoords(Topology_t *top, Coords_t *c, > PROCEDURE PerturbCoords(ElemTableRec_t *top, Coords_t *c, --- 82c81 ----------------------- < if ((top->node.el[i]->exists) && (NOT top->node[i].fixed)) > if ((OrgV(top->node.el[i])->exists) && (NOT top->node[i].fixed)) ========================================== Files old/progs-more/TestElasticity.c and cur/progs-more/TestElasticity.c are identical ========================================== diff -Bbs -r old/progs-more/TestEnergy.c cur/progs-more/TestEnergy.c --- 64,69c64,69 ----------------------- < ??? NV = top->NV; < ??? c = r4_vec_new(top->NV)^; < ??? cDs = r4_vec_new(top->NV)^; < ??? eDc = r4_vec_new(top->NV)^; < ??? vTot = bool_vec_new(top->NV)^; < ??? vSome = bool_vec_new(top->NV)^; > ??? NV = top->node.nel; > ??? c = r4_vec_new(top->node.nel)^; > ??? cDs = r4_vec_new(top->node.nel)^; > ??? eDc = r4_vec_new(top->node.nel)^; > ??? vTot = bool_vec_new(top->node.nel)^; > ??? vSome = bool_vec_new(top->node.nel)^; --- 92c92 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) ========================================== diff -Bbs -r old/progs-more/TestGeomDege.c cur/progs-more/TestGeomDege.c --- 85c85 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 87c87 ----------------------- < for (j = i+1; j < top->NF; j++) > for (j = i+1; j < top->wall.nel; j++) ========================================== diff -Bbs -r old/progs-more/TestRootElements.c cur/progs-more/TestRootElements.c --- 73c73 ----------------------- < ??? tp = tc.top; > ??? top = tc.top; --- 77c77 ----------------------- < num = WallStatistics(tp); > num = WallStatistics(top); --- 79c79 ----------------------- < ??? cf = CropChilWalls(tp; > ??? cf = CropChilWalls(top; --- 96c96 ----------------------- < num = @{Edge->?}Statistics(tp); > num = @{Edge->?}Statistics(top); --- 98c98 ----------------------- < ??? ce = CropChil@{Edge->?}s(tp; > ??? ce = CropChil@{Edge->?}s(top; --- 118c118 ----------------------- < *top: Triangulation.Topology; > ElemTableRec_t *top; --- 137c137 ----------------------- < for (j = 0; j < top->NF; j++) > for (j = 0; j < top->wall.nel; j++) --- 151c151 ----------------------- < *top: Triangulation.Topology; > ElemTableRec_t *top; --- 183c183 ----------------------- < Number WallStatistics(*top: Triangulation.Topology) > Number WallStatistics(ElemTableRec_t *top) --- 187c187 ----------------------- < { for (i = 0; i < top->NF; i++){ > { for (i = 0; i < top->wall.nel; i++){ --- 201c201 ----------------------- < PROCEDURE @{Edge->?}Statistics(*top: Triangulation.Topology) : Number == > PROCEDURE @{Edge->?}Statistics(ElemTableRec_t *top) : Number == --- 241c241 ----------------------- < *top: Triangulation.Topology; > ElemTableRec_t *top; --- 266c266 ----------------------- < *top: Triangulation.Topology; > ElemTableRec_t *top; --- 276c276 ----------------------- < for (j = 0; j < top->NF; j++) > for (j = 0; j < top->wall.nel; j++) ========================================== diff -Bbs -r old/progs-more/TestSubdivideEdge.c cur/progs-more/TestSubdivideEdge.c --- 27c27 ----------------------- < // Place_t, Org, MakeTopology, Makewedge, MakeNode, > // Place_t, Org, MakeElemTable, Makewedge, MakeNode, --- 59c59 ----------------------- < ??? newtop = MakeTopology(a); > ??? newtop = MakeElemTable(a); --- 74c74 ----------------------- < *top: Triangulation.Topology; > ElemTableRec_t *top; ========================================== diff -Bbs -r old/progs-more/TestSubdivideTetra.c cur/progs-more/TestSubdivideTetra.c --- 33c33 ----------------------- < // Place_t, Org, MakeTopology, @{Node->?},Node,MakeCell, > // Place_t, Org, MakeElemTable, @{Node->?},Node,MakeCell, --- 45c45 ----------------------- < oldtopology : Topology; > ElemTableRec_t oldtop; /* Was {oldtopology} */; --- 65c65 ----------------------- < with (top->NV+top->NP)^, > with (top->node.nel+top->cell.nel)^, --- 71c71 ----------------------- < for (j = 0; j < top->NP; j++) > for (j = 0; j < top->cell.nel; j++) --- 73c73 ----------------------- < ??? r = top->region[j]; > ??? r = Srot(top->cell[j]); --- 80c80 ----------------------- < ??? newtop = MakeTopology(top->wedge[1]); > ??? newtop = MakeElemTable(top->wedge[1]); --- 96c96 ----------------------- < PROCEDURE SubdivideTetrahedron(Place_t @p, Topology_t *top; *co: Coords_t; VAR nc: Coords_t) > PROCEDURE SubdivideTetrahedron(Place_t @p, ElemTableRec_t *top; *co: Coords_t; VAR nc: Coords_t) ========================================== diff -Bbs -r old/progs-more/TestSubdivideTetrahedron.c cur/progs-more/TestSubdivideTetrahedron.c --- 32,33c32 ----------------------- < // Place_t, Org, MakeTopology, @{Node->?},Node,MakeCell, < MakeNode, SetOrgAll, SetPnegOfNearbyWalls, Topology; > // Place_t, Org, MakeElemTable, @{Node->?},Node,MakeCell, --- 64c63 ----------------------- < for (j = 0; j < top->NP; j++) > for (j = 0; j < top->cell.nel; j++) --- 66c65 ----------------------- < ??? r = top->region[j]; > ??? r = Srot(top->cell[j]); --- 73c72 ----------------------- < ??? newtop = MakeTopology(top->wedge[1]; > ??? newtop = MakeElemTable(top->wedge[1]; --- 91c90 ----------------------- < PROCEDURE SubdivideTetrahedron(Place_t @p, Topology_t *top) > PROCEDURE SubdivideTetrahedron(Place_t @p, ElemTableRec_t *top) ========================================== diff -Bbs -r old/progs-more/TestSubdivideWall.c cur/progs-more/TestSubdivideWall.c --- 32c32 ----------------------- < // Place_t, Org, MakeTopology, @{Node->?}, Node, > // Place_t, Org, MakeElemTable, @{Node->?}, Node, --- 65c65 ----------------------- < for (j = 0; j < top->NF; j++) > for (j = 0; j < top->wall.nel; j++) --- 77c77 ----------------------- < ??? newtop = MakeTopology(top->wedge[0]); > ??? newtop = MakeElemTable(top->wedge[0]); --- 96c96 ----------------------- < PROCEDURE SubdivideWall(Place_t @p, *top: Triangulation.Topology) > PROCEDURE SubdivideWall(Place_t @p, ElemTableRec_t *top) --- 506c506 ----------------------- < uint NumInternalWalls(*top: Triangulation.Topology) > uint NumInternalWalls(ElemTableRec_t *top) --- 508c508 ----------------------- < { for (j = 0; j < top->NF; j++){ > { for (j = 0; j < top->wall.nel; j++){ ========================================== diff -Bbs -r old/progs-more/TesteElasticity.c cur/progs-more/TesteElasticity.c --- 269c269 ----------------------- < char *inFile; /* Initial guess file name (minus ".top") */ > char *inFile; /* Initial guess file name (minus ".tp") */ --- 315c315 ----------------------- < ??? t = top->region[p1]; > ??? t = Srot(top->cell[p1]); --- 323c323 ----------------------- < ??? tt = top->region[p2]; > ??? tt = Srot(top->cell[p2]); --- 347c347 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 349c349 ----------------------- < ??? poly1 = Triangulation.StarOfNode(top->out[i],top); > ??? poly1 = Triangulation.StarOfNode(top->node[i],top); --- 364c364 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 366c366 ----------------------- < ??? a = top->out[i]; > ??? a = top->node[i]; --- 394c394 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 418c418 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 430c430 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 453c453 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 455c455 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 478c478 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 480c480 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 494c494 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 496c496 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 511c511 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 513c513 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 523c523 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 525c525 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 594c594 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 596c596 ----------------------- < ??? a = top->out[i]; > ??? a = top->node[i]; --- 604c604 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 617c617 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 643c643 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 645c645 ----------------------- < ??? v = top->out[i]; > ??? v = top->node[i]; --- 647c647 ----------------------- < fprintf(stdout, " top->out[" & Fmt.Int(i) & "]:"); > fprintf(stdout, " top->node[" & Fmt.Int(i) & "]:"); --- 654c654 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 656c656 ----------------------- < ??? p = top->region[i]; > ??? p = Srot(top.cell[i]); --- 658c658 ----------------------- < fprintf(stdout," top->region[" & Fmt.Pad(Fmt.Int(i),2) & "]:"); > fprintf(stdout," Srot(top->cell[" & Fmt.Pad(Fmt.Int(i),2) & "]):"); --- 666c666 ----------------------- < fprintf(stdout, "Read.NV: " & Fmt.Int(top->NV) & "\n"); > fprintf(stdout, "Read.NV: " & Fmt.Int(top->node.nel) & "\n"); --- 668,670c668,670 ----------------------- < fprintf(stdout, "Read.NF: " & Fmt.Int(top->NF) & "\n"); < fprintf(stdout, "Read.NP: " & Fmt.Int(top->NP) & "\n"); < fprintf(stdout, "Read.NFE: " & Fmt.Int(top->NFE) & "\n"); > fprintf(stdout, "Read.NF: " & Fmt.Int(top->wall.nel) & "\n"); > fprintf(stdout, "Read.NP: " & Fmt.Int(top->cell.nel) & "\n"); > fprintf(stdout, "Read.NFE: " & Fmt.Int(top->wall.nelE) & "\n"); --- 674c674 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 676c676 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 735c735 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 755c755 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 775c775 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) --- 818c818 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) --- 830c830 ----------------------- < | Node(v) ==> fprintf(stdout, " top->out[" \ > | Node(v) ==> fprintf(stdout, " top->node[" \ --- 832,835c832,835 ----------------------- < Octf.PrintPlace(stdout, top->out[v->num], 4); < | Cell(p) ==> fprintf(stdout," top->region[" \ < Fmt.Pad(Fmt.Int(p->num),2) & "]:"); < Octf.PrintPlace(stdout, top->region[p->num], 4); > Octf.PrintPlace(stdout, top->node[v->num], 4); > | Cell(p) ==> fprintf(stdout," Srot(top->cell[" \ > Fmt.Pad(Fmt.Int(p->num),2) & "]):"); > Octf.PrintPlace(stdout, Srot(top->cell[p->num]), 4); --- 847c847 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 851c851 ----------------------- < ??? v = top->region[i], a == Tors(v); > ??? v = Srot(top.cell[i]), a == Tors(v); --- 872c872 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 890c890 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 892c892 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); ========================================== diff -Bbs -r old/progs-more/TestePolyTopology.c cur/progs-more/TestePolyTopology.c --- 39c39 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 41,42c41,42 ----------------------- < ??? a = top->region[i]; < ??? tp = MakeCellTopology(a); > ??? a = Srot(top.cell[i]); > ??? top = MakeCellTopology(a); --- 46,49c46,49 ----------------------- < fprintf(stderr, " nv : " & Fmt.Int(tp.NV) & "\n"); < fprintf(stderr, " ne : " & Fmt.Int(tp.NE) & "\n"); < fprintf(stderr, " nf : " & Fmt.Int(tp.NF) & "\n"); < assert(tp.NV-tp.NE+tp.NF==2); > fprintf(stderr, " nv : " & Fmt.Int(top.node.nel) & "\n"); > fprintf(stderr, " ne : " & Fmt.Int(top.edge.nel) & "\n"); > fprintf(stderr, " nf : " & Fmt.Int(top.wall.nel) & "\n"); > assert(top.node.nel-top.edge.nel+top.wall.nel==2); --- 53,54c53,54 ----------------------- < ov = NEW(REF ARRAY OF INTEGER, tp.NV); < for (j = 0; j < tp.NV; j++) > ov = NEW(REF ARRAY OF INTEGER, top.node.nel); > for (j = 0; j < top.node.nel; j++) --- 56c56 ----------------------- < ??? ver = tp.vRef[j]; > ??? ver = top.vRef[j]; --- 58c58 ----------------------- < assert(Pneg(tp.vRef[j]) == pn); > assert(Pneg(top.vRef[j]) == pn); --- 62c62 ----------------------- < Mis.InsertionSort(tp.NV-1,ov); > Mis.InsertionSort(top.node.nel-1,ov); --- 64c64 ----------------------- < for (j = 0; j < tp.NV; j++) > for (j = 0; j < top.node.nel; j++) --- 70,71c70,71 ----------------------- < oe = NEW(REF ARRAY OF INTEGER, tp.NE); < for (j = 0; j < tp.NE; j++) > oe = NEW(REF ARRAY OF INTEGER, top.edge.nel); > for (j = 0; j < top.edge.nel; j++) --- 73c73 ----------------------- < ??? eer = tp.eRef[j]; > ??? eer = top.eRef[j]; --- 75c75 ----------------------- < assert(Pneg(tp.eRef[j]) == pn); > assert(Pneg(top.eRef[j]) == pn); --- 79c79 ----------------------- < Mis.InsertionSort(tp.NE-1,oe); > Mis.InsertionSort(top.edge.nel-1,oe); --- 83c83 ----------------------- < for (j = 0; j < tp.NE; j++) > for (j = 0; j < top.edge.nel; j++) --- 90,91c90,91 ----------------------- < of = NEW(REF ARRAY OF INTEGER, tp.NF); < for (j = 0; j < tp.NF; j++) > of = NEW(REF ARRAY OF INTEGER, top.wall.nel); > for (j = 0; j < top.wall.nel; j++) --- 93c93 ----------------------- < ??? fer = tp.fRef[j]; > ??? fer = top.fRef[j]; --- 95c95 ----------------------- < assert(Pneg(tp.fRef[j]) == pn); > assert(Pneg(top.fRef[j]) == pn); --- 99c99 ----------------------- < Mis.InsertionSort(tp.NF-1,of); > Mis.InsertionSort(top.wall.nel-1,of); --- 103c103 ----------------------- < for (j = 0; j < tp.NF; j++) > for (j = 0; j < top.wall.nel; j++) ========================================== diff -Bbs -r old/progs-more/TriangToGeom.c cur/progs-more/TriangToGeom.c --- 44d43 ----------------------- < // Topology, Place_t, TetraNegPosNodes, OrgV; --- 46d44 ----------------------- < // NextE; --- 52c50 ----------------------- < /* A '@{quad->?}' is a group of four @places, consisting of two mutually dual > /* A '@{chip->?}' is a group of four @places, consisting of two mutually dual --- 55c53 ----------------------- < double @{Quad->?} = RECORD u, v, w, x: uint; } > double FourNodes_t = RECORD u, v, w, x: uint; } --- 99c97 ----------------------- < void WriteSkelFile(Topology_t *top, > void WriteSkelFile(ElemTableRec_t *top, --- 113c111 ----------------------- < void WriteOffFile(Topology_t *top, > void WriteOffFile(ElemTableRec_t *top, --- 129c127 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 135c133 ----------------------- < double FindOriR3(q: @{Quad->?}) > double FindOriR3(q: FourNodes_t) --- 169,170c167,168 ----------------------- < double t1 = @{Quad->?}{un,vn,wn,xn}; < double t2 = @{Quad->?}{un,vn,wn,yn}; > double t1 = FourNodes_t{un,vn,wn,xn}; > double t2 = FourNodes_t{un,vn,wn,yn}; --- 192c190 ----------------------- < ??? vd = digits(top->NV-1); > ??? vd = digits(top->node.nel-1); --- 212c210 ----------------------- < { for (i = 0; i < top->NF; i++){ > { for (i = 0; i < top->wall.nel; i++){ --- 218c216 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 230c228 ----------------------- < fprintf(wr, Fmt.Int(top->NV) & " " & Fmt.Int(top->NF) & "\n"); > fprintf(wr, Fmt.Int(top->node.nel) & " " & Fmt.Int(top->wall.nel) & "\n"); --- 235c233 ----------------------- < fprintf(wr, Fmt.Int(top->NV) & " " & Fmt.Int(m) & "\n"); > fprintf(wr, Fmt.Int(top->node.nel) & " " & Fmt.Int(m) & "\n"); --- 240c238 ----------------------- < fprintf(wr, Fmt.Int(top->NV) & " " & Fmt.Int(m) & "\n"); > fprintf(wr, Fmt.Int(top->node.nel) & " " & Fmt.Int(m) & "\n"); --- 244c242 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 246c244 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 254c252 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 267c265 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 284c282 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 290c288 ----------------------- < double FindOriR3(q: @{Quad->?}) > double FindOriR3(q: FourNodes_t) --- 324,325c322,323 ----------------------- < double t1 = @{Quad->?}{un,vn,wn,xn}; < double t2 = @{Quad->?}{un,vn,wn,yn}; > double t1 = FourNodes_t{un,vn,wn,xn}; > double t2 = FourNodes_t{un,vn,wn,yn}; --- 349c347 ----------------------- < ??? vd = digits(top->NV-1); > ??? vd = digits(top->node.nel-1); --- 366c364 ----------------------- < { for (i = 0; i < top->NF; i++){ > { for (i = 0; i < top->wall.nel; i++){ --- 372c370 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 384c382 ----------------------- < fprintf(wr, Fmt.Int(top->NV) & " " & Fmt.Int(top->NF) & " " \ > fprintf(wr, Fmt.Int(top->node.nel) & " " & Fmt.Int(top->wall.nel) & " " \ --- 390c388 ----------------------- < fprintf(wr, Fmt.Int(top->NV) & " " & Fmt.Int(m) & " " \ > fprintf(wr, Fmt.Int(top->node.nel) & " " & Fmt.Int(m) & " " \ --- 396c394 ----------------------- < fprintf(wr, Fmt.Int(top->NV) & " " & Fmt.Int(m) & " " \ > fprintf(wr, Fmt.Int(top->node.nel) & " " & Fmt.Int(m) & " " \ --- 401c399 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 403c401 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 411c409 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 427c425 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) ========================================== diff -Bbs -r old/progs-more/TriangToPov.c cur/progs-more/TriangToPov.c --- 33d32 ----------------------- < // Topology, Node, @{Edge->?}, Wall, Place_t, OrgV, WallIsBorder; --- 36d34 ----------------------- < // Coords3D_t, EdgeWindingNumber, WallIsSilhouette; --- 38,39d35 ----------------------- < // WritePOVCylinder, WritePOVSphere, WritePOVTriangle, < WritePOVTriangleTex; --- 151c147 ----------------------- < AllElementTypes ComputeAllElementTypes(Topology_t *top, > AllElementTypes ComputeAllElementTypes(ElemTableRec_t *top, --- 166c162 ----------------------- < atp.vType = NEW(REF ElemTypes, top->NV); > atp.vType = NEW(REF ElemTypes, top->node.nel); --- 168,169c164,165 ----------------------- < atp.fType = NEW(REF ElemTypes, top->NF); < atp.pType = NEW(REF ElemTypes, top->NP); > atp.fType = NEW(REF ElemTypes, top->wall.nel); > atp.pType = NEW(REF ElemTypes, top->cell.nel); --- 176c172 ----------------------- < Node_t vi = OrgV(top->out[i]); > Node_t vi = OrgV(top->node[i]); --- 198c194 ----------------------- < if ((fabs(NodeWrappingNumber(top->out[i], c3))!=1)){ vtp[i].mwr = TRUE; } > if ((fabs(NodeWrappingNumber(top->node[i], c3))!=1)){ vtp[i].mwr = TRUE; } --- 320c316 ----------------------- < PROCEDURE RemoveElements(Topology_t *top, *walls: WallNums) > PROCEDURE RemoveElements(ElemTableRec_t *top, *walls: WallNums) --- 326c322 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 328c324 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 338c334 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 381c377 ----------------------- < void WritePOVFile(Topology_t *top, > void WritePOVFile(ElemTableRec_t *top, --- 399c395 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 523c519 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 525c521 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 553c549 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) ========================================== diff -Bbs -r old/progs-more/TriangToWire4.c cur/progs-more/TriangToWire4.c --- 52c52 ----------------------- < /* A '@{quad->?}' is a group of four @places, consisting of two mutually dual > /* A '@{chip->?}' is a group of four @places, consisting of two mutually dual --- 58c58 ----------------------- < @{Quad->?} == RECORD u, v, w, x: uint; } > FourNodes_t == RECORD u, v, w, x: uint; } --- 94c94 ----------------------- < PROCEDURE @{Edge->?}BelongsToOriginalWall(Place_t @p, *top:Topology): PACK == > PROCEDURE @{Edge->?}BelongsToOriginalWall(Place_t @p, ElemTableRec_t *top): PACK == --- 140c140 ----------------------- < with (top->NV), > with (top->node.nel), --- 178c178 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 196c196 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 202c202 ----------------------- < double FindOriR3(q: @{Quad->?}) > double FindOriR3(q: FourNodes_t) --- 236,237c236,237 ----------------------- < double t1 = @{Quad->?}{un,vn,wn,xn}; < double t2 = @{Quad->?}{un,vn,wn,yn}; > double t1 = FourNodes_t{un,vn,wn,xn}; > double t2 = FourNodes_t{un,vn,wn,yn}; --- 279c279 ----------------------- < int NV = top->NV; > int NV = top->node.nel; --- 281c281 ----------------------- < int NF = top->NF; > int NF = top->wall.nel; --- 311c311 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 313c313 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 349c349 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 381c381 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 468c468 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 535c535 ----------------------- < *top: Topology > ElemTableRec_t *top --- 609c609 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 611c611 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 636c636 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 641c641 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); ========================================== diff -Bbs -r old/progs-more/TriangToX3D.c cur/progs-more/TriangToX3D.c --- 32,33d31 ----------------------- < // Topology, Place_t, TetraNegPosNodes, OrgV, Wall; < --- 35d32 ----------------------- < // NextE; --- 37d33 ----------------------- < // Scale, Add; --- 40c36 ----------------------- < /* A '@{quad->?}' is a group of four @places, consisting of two mutually dual > /* A '@{chip->?}' is a group of four @places, consisting of two mutually dual --- 44c40 ----------------------- < double @{Quad->?} = RECORD u, v, w, x: uint; } > double FourNodes_t = RECORD u, v, w, x: uint; } --- 84c80 ----------------------- < void WriteX3DFile(char *name, Topology_t *top, > void WriteX3DFile(char *name, ElemTableRec_t *top, --- 98c94 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 104c100 ----------------------- < double FindOriR3(q: @{Quad->?}) > double FindOriR3(q: FourNodes_t) --- 138,139c134,135 ----------------------- < double t1 = @{Quad->?}{un,vn,wn,xn}; < double t2 = @{Quad->?}{un,vn,wn,yn}; > double t1 = FourNodes_t{un,vn,wn,xn}; > double t2 = FourNodes_t{un,vn,wn,yn}; --- 337c333 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 356c352 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 387c383 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) ========================================== diff -Bbs -r old/progs-more/UnglueCell.c cur/progs-more/UnglueCell.c --- 43,44c43,44 ----------------------- < ??? a = top->region[o->cellnum]; < ??? tp = MakeCellTopology(a); > ??? a = Srot(top->cell[o->cellnum]); > ??? top = MakeCellTopology(a); --- 48c48 ----------------------- < for (j = 0; j < tp.NF; j++) > for (j = 0; j < top.wall.nel; j++) --- 50c50 ----------------------- < ??? fer = tp.fRef[j] > ??? fer = top.fRef[j] --- 64c64 ----------------------- < ??? t = MakeTopology(top->out[top->NV-1]; > ??? top = MakeElemTable(top->node[top->node.nel-1]; --- 66c66 ----------------------- < double c = GenCoords(t)^; > double c = GenCoords(top)^; --- 69,70c69,70 ----------------------- < WriteTopology(name, t, < "Created by MakeGem: " & name & ".tp on " \ > WriteTopology(name, top, > "Created by MakeGem: " & name & ".top on " \ --- 73c73 ----------------------- < WriteMaterials(name, t, > WriteMaterials(name, top, --- 77c77 ----------------------- < WriteState(name, t, c, > WriteState(name, top, c, ========================================== diff -Bbs -r old/progs-more/UngluingCell.c cur/progs-more/UngluingCell.c --- 45c45 ----------------------- < top : Triangulation.Topology; > ElemTableRec_t top; --- 67,69c67,69 ----------------------- < old@{edge->?} = NEW(REF ARRAY OF INTEGER, top->NFE); < oldwall = NEW(REF ARRAY OF INTEGER, top->NFE); < oldcoor = NEW(REF ARRAY OF INTEGER, top->NFE); > old@{edge->?} = NEW(REF ARRAY OF INTEGER, top->wall.nelE); > oldwall = NEW(REF ARRAY OF INTEGER, top->wall.nelE); > oldcoor = NEW(REF ARRAY OF INTEGER, top->wall.nelE); --- 71c71 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) --- 78c78 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) --- 89c89 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 93,94c93,94 ----------------------- < ??? a = top->region[i]; < ??? tp = MakeCellTopology(a); > ??? a = Srot(top.cell[i]); > ??? top = MakeCellTopology(a); --- 98c98 ----------------------- < for (j = 0; j < tp.NF; j++) > for (j = 0; j < top.wall.nel; j++) --- 100c100 ----------------------- < ??? fer = tp.fRef[j]; > ??? fer = top.fRef[j]; --- 116,117c116,117 ----------------------- < ??? a = top->region[o->cellnum]; < ??? tp = MakeCellTopology(a); > ??? a = Srot(top->cell[o->cellnum]); > ??? top = MakeCellTopology(a); --- 120c120 ----------------------- < for (j = 0; j < tp.NF; j++) > for (j = 0; j < top.wall.nel; j++) --- 122c122 ----------------------- < ??? fer = tp.fRef[j]; > ??? fer = top.fRef[j]; --- 135c135 ----------------------- < for (i = 0; i < top->NFE; i++) > for (i = 0; i < top->wall.nelE; i++) --- 160c160 ----------------------- < for (k = 0; k < top->NFE; k++) > for (k = 0; k < top->wall.nelE; k++) --- 173,174c173,174 ----------------------- < ??? t = MakeTopology(top->wedge[l]); < ??? cc = GenCoords(t)^; > ??? top = MakeElemTable(top->wedge[l]); > ??? cc = GenCoords(top)^; --- 179c179 ----------------------- < for (i = 0; i < t.NE; i++) > for (i = 0; i < top.edge.nel; i++) --- 181c181 ----------------------- < ??? a = t.edge[i]; > ??? a = top.edge[i]; --- 187c187 ----------------------- < for (i = 0; i < t.NF; i++) > for (i = 0; i < top.wall.nel; i++) --- 189c189 ----------------------- < ??? a = t.wall[i]; > ??? a = top.wall[i]; --- 195c195 ----------------------- < for (i = 0; i < t.NFE; i++) > for (i = 0; i < top.wedge.nel; i++) --- 197c197 ----------------------- < ??? fe = NARROW(PWedge(t.wedge[i]); > ??? fe = NARROW(PWedge(top.wedge[i]); --- 200,202c200,202 ----------------------- < double ne = PWedge(t.wedge[i]).edge->num; < double nf = PWedge(t.wedge[i]).wall->num; < double nv = OrgV(t.wedge[i])->num; > double ne = PWedge(top.wedge[i]).edge->num; > double nf = PWedge(top.wedge[i]).wall->num; > double nv = OrgV(top.wedge[i])->num; --- 208,212c208,212 ----------------------- < t.edge[ne]->exists = top->edge[oe]->exists; < t.edge[ne].color = top->edge[oe].color; < t.edge[ne].transp = top->edge[oe].transp; < t.edge[ne].radius = top->edge[oe].radius; < t.edge[ne]->root = top->edge[oe]->root; > top.edge[ne]->exists = top->edge[oe]->exists; > top.edge[ne].color = top->edge[oe].color; > top.edge[ne].transp = top->edge[oe].transp; > top.edge[ne].radius = top->edge[oe].radius; > top.edge[ne]->root = top->edge[oe]->root; --- 214,217c214,217 ----------------------- < t.wall[nf]->exists = top->wall[of]->exists; < t.wall[nf].color = top->wall[of].color; < t.wall[nf].transp = top->wall[of].transp; < t.wall[nf]->root = top->wall[of]->root; > top.wall[nf]->exists = top->wall[of]->exists; > top.wall[nf].color = top->wall[of].color; > top.wall[nf].transp = top->wall[of].transp; > top.wall[nf]->root = top->wall[of]->root; --- 223c223 ----------------------- < WriteTopology(name, t, > WriteTopology(name, top, --- 227c227 ----------------------- < WriteMaterials(name, t, > WriteMaterials(name, top, --- 231c231 ----------------------- < WriteState(name, t, cc, > WriteState(name, top, cc, ========================================== diff -Bbs -r old/progs-more/Unshellable.c cur/progs-more/Unshellable.c --- 74c74 ----------------------- < ??? top = MakeTopology(cd[0; > ??? top = MakeElemTable(cd[0; --- 76c76 ----------------------- < double r = NEW(REF Coords_t, top->NV); > double r = NEW(REF Coords_t, top->node.nel); --- 140c140 ----------------------- < MakeTopologyTable(name, top, cmt); > MakeElemTableTable(name, top, cmt); ========================================== diff -Bbs -r old/progs-more/Visibility.c cur/progs-more/Visibility.c --- 57,58c57 ----------------------- < // Topology, OrgV, Coords_t, TetraNegPosNodes, Place_t, < Barycenter; > --- 97c96 ----------------------- < /* A '@{quad->?}' is a group of four @places, consisting of two mutually dual > /* A '@{chip->?}' is a group of four @places, consisting of two mutually dual --- 100c99 ----------------------- < @{Quad->?} == RECORD u, v, w, x: uint; } > FourNodes_t == RECORD u, v, w, x: uint; } --- 107c106 ----------------------- < PROCEDURE @{Edge->?}BelongsToOriginalWall(Place_t @p, Topology_t *top): PACK == > PROCEDURE @{Edge->?}BelongsToOriginalWall(Place_t @p, ElemTableRec_t *top): PACK == --- 153c152 ----------------------- < with (top->NV), > with (top->node.nel), --- 214c213 ----------------------- < void WritePOV(char *name, Topology_t *top, > void WritePOV(char *name, ElemTableRec_t *top, --- 230c229 ----------------------- < *Topology_t *top; > *ElemTableRec_t *top; --- 236c235 ----------------------- < vseen = NEW(REF ARRAY OF bool_t, top->NV); /* stack for nodes */ > vseen = NEW(REF ARRAY OF bool_t, top->node.nel); /* stack for nodes */ --- 238,239c237,238 ----------------------- < fseen = NEW(REF ARRAY OF bool_t, top->NF); /* stack for walls */ < @{quad->?} : REF ARRAY OF @{Quad->?}; > fseen = NEW(REF ARRAY OF bool_t, top->wall.nel); /* stack for walls */ > quad : REF ARRAY OF FourNodes_t; --- 241c240 ----------------------- < bool_t IsFront(q: @{Quad->?}) > bool_t IsFront(q: FourNodes_t) --- 259c258 ----------------------- < double FindOrientR3(q: @{Quad->?}) > double FindOrientR3(q: FourNodes_t) --- 283,284c282,283 ----------------------- < double t1 = @{Quad->?}{un,vn,wn,xn}; < double t2 = @{Quad->?}{un,vn,wn,yn}; > double t1 = FourNodes_t{un,vn,wn,xn}; > double t2 = FourNodes_t{un,vn,wn,yn}; --- 407c406 ----------------------- < @{quad->?} = NEW(REF ARRAY OF @{Quad->?}, top->NP); > quad = NEW(REF ARRAY OF FourNodes_t, top->cell.nel); --- 414c413 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 442c441 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 455c454 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 457c456 ----------------------- < ??? da = top->region[i]; > ??? da = Srot(top.cell[i]); --- 468,469c467,468 ----------------------- < @{quad->?}[i] = @{Quad->?}{un,vn,wn,xn}; < isFront = IsFront(@{quad->?}[i]); > quad[i] = FourNodes_t{un,vn,wn,xn}; > isFront = IsFront(quad[i]); --- 488c487 ----------------------- < ??? ri = top->region[i]; > ??? ri = Srot(top.cell[i]); --- 617c616 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 644c643 ----------------------- < *top: Topology > ElemTableRec_t *top --- 718c717 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 720c719 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 746c745 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 751c750 ----------------------- < Node_t v = top->node.el[i]; > Node_t v = OrgV(top->node.el[i]); --- 768,770c767 ----------------------- < Coords_t *c; < *top: Topology < ) > Coords_t *c, ElemTableRec_t *top) --- 772,773c769,770 ----------------------- < { for (i = 0; i < top->NP; i++){ < ??? f = top->region[i]; > { for (i = 0; i < top->cell.nel; i++){ > ??? f = Srot(top.cell[i]); ========================================== Files old/progs-more/Volume.c and cur/progs-more/Volume.c are identical ========================================== diff -Bbs -r old/progs-more/WhatAttributes.c cur/progs-more/WhatAttributes.c --- 50c50 ----------------------- < for (i = 0; i < top->NV; i++) > for (i = 0; i < top->node.nel; i++) --- 66c66 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 74c74 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) ========================================== diff -Bbs -r old/progs-more/WhatDegenerations.c cur/progs-more/WhatDegenerations.c --- 119c119 ----------------------- < for (i = 0; i < top->NF; i++){ fdeg[i] = FALSE; } > for (i = 0; i < top->wall.nel; i++){ fdeg[i] = FALSE; } --- 123c123 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 125c125 ----------------------- < for (j = i+1; j < top->NF; j++) > for (j = i+1; j < top->wall.nel; j++) --- 189c189 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 191c191 ----------------------- < for (j = i+1; j < top->NF; j++) > for (j = i+1; j < top->wall.nel; j++) --- 239c239 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 241c241 ----------------------- < for (j = i+1; j < top->NF; j++) > for (j = i+1; j < top->wall.nel; j++) --- 282c282 ----------------------- < for (i = 0; i < top->NP; i++){ pdeg[i] = FALSE; } > for (i = 0; i < top->cell.nel; i++){ pdeg[i] = FALSE; } --- 286c286 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 288c288 ----------------------- < for (j = i+1; j < top->NP; j++) > for (j = i+1; j < top->cell.nel; j++) --- 335c335 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 337c337 ----------------------- < for (j = i+1; j < top->NP; j++) > for (j = i+1; j < top->cell.nel; j++) --- 506c506 ----------------------- < ??? p = top->region[np]; > ??? p = Srot(top->cell[np]); --- 562c562 ----------------------- < void FindDegeneracies(Topology *top) > void FindDegeneracies(ElemTableRec_t *top) --- 567,570c567,570 ----------------------- < Wall_vec_t fstack = Wall_vec_new(top->NF); < bool_vec_t fdeg = bool_vec_new(top->NF); < pstack = NEW(REF ARRAY OF Cell, top->NP); < bool_vec_t pdeg = bool_vec_new(top->NP); > Wall_vec_t fstack = Wall_vec_new(top->wall.nel); > bool_vec_t fdeg = bool_vec_new(top->wall.nel); > pstack = NEW(REF ARRAY OF Cell, top->cell.nel); > bool_vec_t pdeg = bool_vec_new(top->cell.nel); --- 577c577 ----------------------- < PROCEDURE Find@{Edge->?}Degeneracies(Topology_t *top, > PROCEDURE Find@{Edge->?}Degeneracies(ElemTableRec_t *top, --- 619c619 ----------------------- < PROCEDURE FindWallDegeneracies(Topology_t *top, > PROCEDURE FindWallDegeneracies(ElemTableRec_t *top, --- 627c627 ----------------------- < for (i = 0; i < top->NF; i++){ fdeg[i] = FALSE; } > for (i = 0; i < top->wall.nel; i++){ fdeg[i] = FALSE; } --- 629c629 ----------------------- < for (i = 0; i < top->NF; i++) > for (i = 0; i < top->wall.nel; i++) --- 635c635 ----------------------- < for (j = i+1; j < top->NF; j++) > for (j = i+1; j < top->wall.nel; j++) --- 662c662 ----------------------- < PROCEDURE FindCellDegeneracies(Topology_t *top, > PROCEDURE FindCellDegeneracies(ElemTableRec_t *top, --- 670c670 ----------------------- < for (i = 0; i < top->NP; i++){ pdeg[i] = FALSE; } > for (i = 0; i < top->cell.nel; i++){ pdeg[i] = FALSE; } --- 672c672 ----------------------- < for (i = 0; i < top->NP; i++) > for (i = 0; i < top->cell.nel; i++) --- 674c674 ----------------------- < Place_t ai = Tors(top->region[i]), pi == PnegP(ai); > Place_t ai = Tors(Srot(top.cell[i])), pi == PnegP(ai); --- 681c681 ----------------------- < for (j = i+1; j < top->NP; j++) > for (j = i+1; j < top->cell.nel; j++) --- 683c683 ----------------------- < Place_t aj = Tors(top->region[j]), pj == PnegP(aj); > Place_t aj = Tors(Srot(top->cell[j])), pj == PnegP(aj);