diff options
Diffstat (limited to 'test/ccured_olden/power')
-rw-r--r-- | test/ccured_olden/power/.cvsignore | 21 | ||||
-rw-r--r-- | test/ccured_olden/power/.gdbinit | 5 | ||||
-rw-r--r-- | test/ccured_olden/power/CVS/Entries | 11 | ||||
-rw-r--r-- | test/ccured_olden/power/CVS/Repository | 1 | ||||
-rw-r--r-- | test/ccured_olden/power/CVS/Root | 1 | ||||
-rw-r--r-- | test/ccured_olden/power/Makefile | 41 | ||||
-rw-r--r-- | test/ccured_olden/power/README | 21 | ||||
-rw-r--r-- | test/ccured_olden/power/build.c | 154 | ||||
-rw-r--r-- | test/ccured_olden/power/compute.c | 379 | ||||
-rw-r--r-- | test/ccured_olden/power/main.c | 116 | ||||
-rw-r--r-- | test/ccured_olden/power/out.orig | 37 | ||||
-rw-r--r-- | test/ccured_olden/power/output | 38 | ||||
-rw-r--r-- | test/ccured_olden/power/power.h | 114 | ||||
-rwxr-xr-x | test/ccured_olden/power/testit | 26 |
14 files changed, 0 insertions, 965 deletions
diff --git a/test/ccured_olden/power/.cvsignore b/test/ccured_olden/power/.cvsignore deleted file mode 100644 index c4eadcc3..00000000 --- a/test/ccured_olden/power/.cvsignore +++ /dev/null @@ -1,21 +0,0 @@ -*.i -*_all*.c -*cil.c -*box.c -code -data.in -data.out -*.origi -*_ppp.c -power.cil -power.*box -*infer.c -changes.out -allcfiles -ope.m -*cured.c -*.optim.c -*_comb.c -*.exe_comb.browser -changes -output diff --git a/test/ccured_olden/power/.gdbinit b/test/ccured_olden/power/.gdbinit deleted file mode 100644 index 81003d62..00000000 --- a/test/ccured_olden/power/.gdbinit +++ /dev/null @@ -1,5 +0,0 @@ -# .gdbinit - -file power.exe.orig -break main -run diff --git a/test/ccured_olden/power/CVS/Entries b/test/ccured_olden/power/CVS/Entries deleted file mode 100644 index fccdd5e3..00000000 --- a/test/ccured_olden/power/CVS/Entries +++ /dev/null @@ -1,11 +0,0 @@ -/README/1.1/Mon Jun 11 21:20:00 2001// -/build.c/1.1/Mon Jun 11 21:20:00 2001// -/compute.c/1.2/Wed Jun 13 18:16:23 2001// -/main.c/1.2/Mon Jun 11 22:47:26 2001// -/.gdbinit/1.1/Mon Nov 12 08:08:28 2001// -/Makefile/1.5/Mon Nov 12 15:44:12 2001// -/out.orig/1.1/Mon Nov 12 08:08:28 2001// -/testit/1.1/Mon Nov 12 08:08:28 2001// -/.cvsignore/1.10/Fri Oct 4 16:28:44 2002// -/power.h/1.6/Sat Jan 11 20:33:38 2003// -D diff --git a/test/ccured_olden/power/CVS/Repository b/test/ccured_olden/power/CVS/Repository deleted file mode 100644 index edf93de9..00000000 --- a/test/ccured_olden/power/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -cil/test/olden/power diff --git a/test/ccured_olden/power/CVS/Root b/test/ccured_olden/power/CVS/Root deleted file mode 100644 index 35f411e9..00000000 --- a/test/ccured_olden/power/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -/home/cvs-repository diff --git a/test/ccured_olden/power/Makefile b/test/ccured_olden/power/Makefile deleted file mode 100644 index 9396957b..00000000 --- a/test/ccured_olden/power/Makefile +++ /dev/null @@ -1,41 +0,0 @@ - -CC = gcc -arch ppc -CCOMP=../../../ccomp -CCOMPFLAGS=-dump-c - -CFLAGS = $(EXTRA_CFLAGS) -#CFLAGS = -O2 -LDFLAGS = $(EXTRA_LDFLAGS) - -CFLAGS += -DPLAIN - -ifdef _MSVC - # ... -else - MATH = -lm - CFLAGS += -g -ffloat-store - LDFLAGS += -g -ffloat-store -endif - -PROGS = compute build main - -#defaulttarget: $(OBJS) -# $(CC) $(LDFLAGS) $(OBJS) $(EXTRA_LIBS) -o power.exe $(MATH) - -all_s: $(PROGS:%=%.s) - -all: $(PROGS:%=%.compcert) - -all_gcc: $(PROGS:%=%.gcc) - -%.compcert: %.s - $(CC) $(LDFALGS) -o $*.compcert $*.s - -%.s: %.c ../../../../ccomp - $(CCOMP) $(CCOMPFLAGS) $*.c - -%.gcc: %.c - $(CC) $(CFLAGS) $(LDFALGS) $(OPTFLAGS) -o $*.gcc $*.c - -clean: - rm -f $(TARGET) $(OBJS) *~ *.obj *.o *.exe .make.state .nse_depinfo *.light.c *.s *.compcert diff --git a/test/ccured_olden/power/README b/test/ccured_olden/power/README deleted file mode 100644 index 478692e8..00000000 --- a/test/ccured_olden/power/README +++ /dev/null @@ -1,21 +0,0 @@ -/* For copyright information, see olden_v1.0/COPYRIGHT */ -********************** -olden_v1.0/benchmarks/power/README -January 3, 1995 -Martin C. Carlisle - -this directory contains the Power Pricing benchmark: - -S. Lumetta, L. Murphy, X. Li, D. Culler, and I. Khalil. "Decentralized -optimal power pricing: The development of a parallel program." -Supercomputing '93, 243-249 - -as implemented for Olden by Martin C. Carlisle -********************** - -Makefile - use "make power" to create executable - -args.c - process command line args -main.c,power.h - main routines -build.c - build tree -compute.c - compute prices diff --git a/test/ccured_olden/power/build.c b/test/ccured_olden/power/build.c deleted file mode 100644 index 881b8e60..00000000 --- a/test/ccured_olden/power/build.c +++ /dev/null @@ -1,154 +0,0 @@ -/* For copyright information, see olden_v1.0/COPYRIGHT */ - -/* build.c - * - * By: Martin C. Carlisle - * 6/15/94 - * builds the tree for the Power Pricing problem - * - * based on code by: Steve Lumetta, Sherry Li, and Ismail Khalil - * University of California at Berkeley - */ - -#include "power.h" - -Root build_tree() -{ - register int i; - register Root t; -#ifdef FUTURES - int j; - future_cell_int fc[NUM_FEEDERS]; -#else - register Lateral l; -#endif - - t = (Root) ALLOC(0,sizeof(*t)); -#ifdef FUTURES - for (i=0,j=0; i<NUM_FEEDERS; i++,j+=LATERALS_PER_FEEDER) { - FUTURE(j,LATERALS_PER_FEEDER,build_lateral,&fc[i]); - } - for (i=0; i<NUM_FEEDERS; i++) { - TOUCH(&fc[i]); - t->feeders[i]=(Lateral) fc[i].value; - } -#else - for (i=0; i<NUM_FEEDERS; i++) { - /* Insert future here, split into two loops */ - l = build_lateral(i*LATERALS_PER_FEEDER,LATERALS_PER_FEEDER); - t->feeders[i]=l; - } -#endif - t->theta_R = 0.8; - t->theta_I = 0.16; - return t; -} - -Lateral build_lateral(int i, int num) -{ - register int j,k; - register Lateral l; - register Branch b; -#ifdef FUTURES - future_cell_int fc; -#else - register Lateral next; -#endif - - if (num == 0) return NULL; - -#ifndef PLAIN - { int x,m,q,proc; - x = (i+num-1)*BRANCHES_PER_LATERAL+BRANCHES_PER_LATERAL-1; - m = 1000%__NumNodes; - q = 1000/__NumNodes; - if (x<m*(q+1)) proc = x/(q+1); - else proc = (x-m)/q; - l = (Lateral) ALLOC(__NumNodes-1-proc,sizeof(*l)); - } -#else - l = (Lateral) ALLOC(0,sizeof(*l)); -#endif - -#ifdef FUTURES - FUTURE(i,num-1,build_lateral,&fc); - b = build_branch(i*BRANCHES_PER_LATERAL,(num-1)*BRANCHES_PER_LATERAL, - BRANCHES_PER_LATERAL); -#else - next = build_lateral(i,num-1); - b = build_branch(i*BRANCHES_PER_LATERAL,(num-1)*BRANCHES_PER_LATERAL, - BRANCHES_PER_LATERAL); -#endif - -#ifdef FUTURES - TOUCH(&fc); - l->next_lateral = (Lateral) fc.value; -#else - l->next_lateral = next; -#endif - l->branch = b; - l->R = 1/300000.0; - l->X = 0.000001; - l->alpha = 0.0; - l->beta = 0.0; - return l; -} - -Branch build_branch(int i, int j, int num) -{ - register Leaf l; - register Branch b; -#ifdef FUTURES - future_cell_int fc; -#endif - - if (num == 0) return NULL; - /* allocate branch */ -#ifndef PLAIN - { int x,m,q,proc; - x = i+j+num-1; - m = 1000%__NumNodes; - q = 1000/__NumNodes; - if (x<m*(q+1)) proc = x/(q+1); - else proc = (x-m)/q; - b = (Branch) ALLOC(__NumNodes-1-proc,sizeof(*b)); - } -#else - b = (Branch) ALLOC(0,sizeof(*b)); -#endif - - /* fill in children */ -#ifndef FUTURES - b->next_branch= build_branch(i,j,num-1); -#else - FUTURE(i,j,num-1,build_branch,&fc); -#endif - - for (i=0; i<LEAVES_PER_BRANCH; i++) { - l = build_leaf(); - b->leaves[i] = l; - } - - -#ifdef FUTURES - TOUCH(&fc); - b->next_branch = (Branch) fc.value; -#endif - - /* fill in values */ - b->R = 0.0001; - b->X = 0.00002; - b->alpha = 0.0; - b->beta = 0.0; - return b; -} - -Leaf build_leaf() -{ - register Leaf l; - - l = (Leaf) mymalloc(sizeof(*l)); - l->D.P = 1.0; - l->D.Q = 1.0; - return l; -} diff --git a/test/ccured_olden/power/compute.c b/test/ccured_olden/power/compute.c deleted file mode 100644 index 83d47b59..00000000 --- a/test/ccured_olden/power/compute.c +++ /dev/null @@ -1,379 +0,0 @@ -/* For copyright information, see olden_v1.0/COPYRIGHT */ - -/* compute.c - * - * By: Martin C. Carlisle - * 6/15/94 - * - * Implements computation phase of the Power Pricing problem - * based on code by: Steve Lumetta, Sherry Li, and Ismail Khalil - * University of California at Berkeley - * - */ - -#include "power.h" -#include <math.h> - -/*----------------------------------------------------------------------*/ -/* Leaf optimization 'global' variables */ - - static double P=1.0; - static double Q=1.0; - - -/*----------------------------------------------------------------------*/ -/* Leaf optimization procedures */ - -void optimize_node (double pi_R, double pi_I); -double find_g (); -double find_h (); -double find_gradient_f (double pi_R, double pi_I, local double* gradient); -double find_gradient_g (local double* gradient); -double find_gradient_h (local double* gradient); -void find_dd_grad_f (double pi_R, double pi_I, local double* dd_grad); -double make_orthogonal (local double* v_mod, local double* v_static); - - -void Compute_Tree(Root r) { - register int i; - Lateral l; -#ifndef FUTURES - Demand a; -#else - future_cell_demand fc[NUM_FEEDERS]; -#endif - Demand tmp; - double theta_R,theta_I; - - tmp.P = 0.0; - tmp.Q = 0.0; -#ifndef FUTURES - for (i=0; i<NUM_FEEDERS; i++) { - l = r->feeders[i]; - theta_R = r->theta_R; - theta_I = r->theta_I; - a = Compute_Lateral(l,theta_R,theta_I,theta_R,theta_I); - tmp.P += a.P; - tmp.Q += a.Q; - - } -#else - for (i=0; i<NUM_FEEDERS; i++) { - l = r->feeders[i]; - theta_R = r->theta_R; - theta_I = r->theta_I; - FUTURE(l,theta_R,theta_I,theta_R,theta_I,Compute_Lateral,&fc[i]); - } - for (i=NUM_FEEDERS-1; i>=0; i--) { - TOUCH(&fc[i]); - tmp.P += fc[i].value.P; - tmp.Q += fc[i].value.Q; - } -#endif - r->D.P = tmp.P; - r->D.Q = tmp.Q; -} - -Demand Compute_Lateral(Lateral l, double theta_R, double theta_I, - double pi_R, double pi_I) { -#ifndef FUTURES - Demand a1; -#else - future_cell_demand fc; -#endif - Demand a2; - double new_pi_R, new_pi_I; - double a,b,c,root; - Lateral next; - Branch br; - - new_pi_R = pi_R + l->alpha*(theta_R+(theta_I*l->X)/l->R); - new_pi_I = pi_I + l->beta*(theta_I+(theta_R*l->R)/l->X); - - next = l->next_lateral; - if (next != NULL) -#ifndef FUTURES - a1 = Compute_Lateral(next,theta_R,theta_I,new_pi_R,new_pi_I); -#else - FUTURE(next,theta_R,theta_I,new_pi_R,new_pi_I,Compute_Lateral,&fc); -#endif - - br = l->branch; - a2 = Compute_Branch(br,theta_R,theta_I,new_pi_R,new_pi_I); - - if (next != NULL) { -#ifndef FUTURES - l->D.P = a1.P + a2.P; - l->D.Q = a1.Q + a2.Q; -#else - TOUCH(&fc); - l->D.P = a2.P + fc.value.P; - l->D.Q = a2.Q + fc.value.Q; -#endif - } else { - l->D.P = a2.P; - l->D.Q = a2.Q; - } - - /* compute P,Q */ - a = l->R*l->R + l->X*l->X; - b = 2*l->R*l->X*l->D.Q - 2*l->X*l->X*l->D.P - l->R; - c = l->R*l->D.Q - l->X*l->D.P; - c = c*c + l->R*l->D.P; - root = (-b-sqrt(b*b-4*a*c))/(2*a); - l->D.Q = l->D.Q + ((root-l->D.P)*l->X)/l->R; - l->D.P = root; - - /* compute alpha, beta */ - a = 2*l->R*l->D.P; - b = 2*l->X*l->D.Q; - l->alpha = a/(1-a-b); - l->beta = b/(1-a-b); - return l->D; -} - -Demand Compute_Branch(Branch br, double theta_R, double theta_I, - double pi_R, double pi_I) { - Demand a2,tmp; - double new_pi_R, new_pi_I; - double a,b,c,root; - Leaf l; - Branch next; - int i; -#ifdef FUTURES - future_cell_demand fc; -#else - Demand a1; -#endif - - new_pi_R = pi_R + br->alpha*(theta_R+(theta_I*br->X)/br->R); - new_pi_I = pi_I + br->beta*(theta_I+(theta_R*br->R)/br->X); - - next = br->next_branch; - if (next != NULL) { -#ifndef FUTURES - a1 = Compute_Branch(next,theta_R,theta_I,new_pi_R,new_pi_I); -#else - FUTURE(next,theta_R,theta_I,new_pi_R,new_pi_I,Compute_Branch,&fc); -#endif - } - - /* Initialize tmp */ - tmp.P = 0.0; tmp.Q = 0.0; - - for (i=0; i<LEAVES_PER_BRANCH; i++) { - l = br->leaves[i]; - a2 = Compute_Leaf(l,new_pi_R,new_pi_I); - tmp.P += a2.P; - tmp.Q += a2.Q; - } - if (next != NULL) { -#ifndef FUTURES - br->D.P = a1.P + tmp.P; - br->D.Q = a1.Q + tmp.Q; -#else - TOUCH(&fc); - br->D.P = fc.value.P + tmp.P; - br->D.Q = fc.value.Q + tmp.Q; -#endif - } else { - br->D.P = tmp.P; - br->D.Q = tmp.Q; - } - - /* compute P,Q */ - a = br->R*br->R + br->X*br->X; - b = 2*br->R*br->X*br->D.Q - 2*br->X*br->X*br->D.P - br->R; - c = br->R*br->D.Q - br->X*br->D.P; - c = c*c + br->R*br->D.P; - root = (-b-sqrt(b*b-4*a*c))/(2*a); - br->D.Q = br->D.Q + ((root-br->D.P)*br->X)/br->R; - br->D.P = root; - /* compute alpha, beta */ - a = 2*br->R*br->D.P; - b = 2*br->X*br->D.Q; - br->alpha = a/(1-a-b); - br->beta = b/(1-a-b); - - return br->D; -} - -Demand Compute_Leaf(Leaf l, double pi_R, double pi_I) { - P = l->D.P; - Q = l->D.Q; - - optimize_node(pi_R,pi_I); - - if (P<0.0) { - P = 0.0; - Q = 0.0; - } - l->D.P = P; - l->D.Q = Q; - return l->D; -} - -/*----------------------------------------------------------------------*/ - -void optimize_node (double pi_R, double pi_I) -{ - double g; - double h; - - double grad_f[2]; - double grad_g[2]; - double grad_h[2]; - double dd_grad_f[2]; - double magnitude; - - int i; - double total; - double max_dist; - - do { - /* Move onto h=0 line */ - h=find_h (); - if (fabs (h)>H_EPSILON) { - magnitude=find_gradient_h (grad_h); - total=h/magnitude; - P-=total*grad_h[0]; - Q-=total*grad_h[1]; - } - - /* Check that g is still valid */ - g=find_g (); - if (g>G_EPSILON) { - magnitude=find_gradient_g (grad_g); - find_gradient_h (grad_h); - magnitude*=make_orthogonal (grad_g,grad_h); - total=g/magnitude; - P-=total*grad_g[0]; - Q-=total*grad_g[1]; - } - - /* Maximize benefit */ - magnitude=find_gradient_f (pi_R,pi_I,grad_f); - find_dd_grad_f (pi_R,pi_I,dd_grad_f); - total=0.0; - for (i=0; i<2; i++) - total+=grad_f[i]*dd_grad_f[i]; - magnitude/=fabs (total); - find_gradient_h (grad_h); - magnitude*=make_orthogonal (grad_f,grad_h); - find_gradient_g (grad_g); - total=0.0; - for (i=0; i<2; i++) - total+=grad_f[i]*grad_g[i]; - if (total>0) { - max_dist=-find_g ()/total; - if (magnitude>max_dist) - magnitude=max_dist; - } - P+=magnitude*grad_f[0]; - Q+=magnitude*grad_f[1]; - - h=find_h (); - g=find_g (); - find_gradient_f (pi_R,pi_I,grad_f); - find_gradient_h (grad_h); - - } while (fabs (h)>H_EPSILON || g>G_EPSILON || - (fabs (g)>G_EPSILON && - fabs (grad_f[0]*grad_h[1]-grad_f[1]*grad_h[0])>F_EPSILON)); -} - -double find_g () -{ - return (P*P+Q*Q-0.8); -} - -double find_h () -{ - return (P-5*Q); -} - -double find_gradient_f (double pi_R, double pi_I, local double* gradient) -{ - int i; - double magnitude=0.0; - - gradient[0]=1/(1+P)-pi_R; - gradient[1]=1/(1+Q)-pi_I; - for (i=0; i<2; i++) - magnitude+=gradient[i]*gradient[i]; - magnitude=sqrt (magnitude); - for (i=0; i<2; i++) - gradient[i]/=magnitude; - - return magnitude; -} - -double find_gradient_g (local double* gradient) -{ - int i; - double magnitude=0.0; - - gradient[0]=2*P; - gradient[1]=2*Q; - for (i=0; i<2; i++) - magnitude+=gradient[i]*gradient[i]; - magnitude=sqrt (magnitude); - for (i=0; i<2; i++) - gradient[i]/=magnitude; - - return magnitude; -} - -double find_gradient_h (local double* gradient) -{ - int i; - double magnitude=0.0; - - gradient[0]=1.0; - gradient[1]=-5.0; - for (i=0; i<2; i++) - magnitude+=gradient[i]*gradient[i]; - magnitude=sqrt (magnitude); - for (i=0; i<2; i++) - gradient[i]/=magnitude; - - return magnitude; -} - -void find_dd_grad_f (double pi_R, double pi_I, local double* dd_grad) -{ - double P_plus_1_inv=1/(P+1); - double Q_plus_1_inv=1/(Q+1); - double P_grad_term=P_plus_1_inv-pi_R; - double Q_grad_term=Q_plus_1_inv-pi_I; - double grad_mag; - - grad_mag=sqrt (P_grad_term*P_grad_term+Q_grad_term*Q_grad_term); - - dd_grad[0]=-P_plus_1_inv*P_plus_1_inv*P_grad_term/grad_mag; - dd_grad[1]=-Q_plus_1_inv*Q_plus_1_inv*Q_grad_term/grad_mag; -} - -double make_orthogonal (local double* v_mod, local double* v_static) -{ - int i; - double total=0.0; - double length=0.0; - - for (i=0; i<2; i++) - total+=v_mod[i]*v_static[i]; - for (i=0; i<2; i++) { - v_mod[i]-=total*v_static[i]; - length+=v_mod[i]*v_mod[i]; - } - length=sqrt (length); - for (i=0; i<2; i++) - v_mod[i]/=length; - - if (1-total*total<0) /* Roundoff error--vectors are parallel */ - return 0; - - return sqrt (1-total*total); -} - -/*----------------------------------------------------------------------*/ diff --git a/test/ccured_olden/power/main.c b/test/ccured_olden/power/main.c deleted file mode 100644 index 0fb87c0f..00000000 --- a/test/ccured_olden/power/main.c +++ /dev/null @@ -1,116 +0,0 @@ -/* For copyright information, see olden_v1.0/COPYRIGHT */ - -/* main.c - * - * By: Martin C. Carlisle - * 6/16/94 - * - * main routine for the Power Pricing problem - * adapted from code by: Steve Lumetta, Sherry Li, and Ismail Khalil - * University of California at Berkeley - * - * Cleaned up the CM stuff. George Necula - */ - -#include "power.h" - -/* Domain of thetaR->P map is 0.65 to 1.00 [index*0.01+0.65] */ -double map_P[36] = -{8752.218091048, 8446.106670416, 8107.990680283, - 7776.191574285, 7455.920518777, 7146.602181352, - 6847.709026813, 6558.734204024, 6279.213382291, - 6008.702199986, 5746.786181029, 5493.078256495, - 5247.206333097, 5008.828069358, 4777.615815166, - 4553.258735900, 4335.470002316, 4123.971545694, - 3918.501939675, 3718.817618538, 3524.683625800, - 3335.876573044, 3152.188635673, 2973.421417103, - 2799.382330486, 2629.892542617, 2464.782829705, - 2303.889031418, 2147.054385395, 1994.132771399, - 1844.985347313, 1699.475053321, 1557.474019598, - 1418.860479043, 1283.520126656, 1151.338004216}; - -#define MIN_THETA_R 0.65 -#define PER_INDEX_R 0.01 -#define MAX_THETA_R 0.995 - -/* Domain of thetaI->Q map is 0.130 to 0.200 [index*0.002+0.130] */ -double map_Q[36] = -{1768.846590190, 1706.229490046, 1637.253873079, - 1569.637451623, 1504.419525242, 1441.477913810, - 1380.700660446, 1321.980440476, 1265.218982201, - 1210.322424636, 1157.203306183, 1105.780028163, - 1055.974296746, 1007.714103979, 960.930643875, - 915.558722782, 871.538200178, 828.810882006, - 787.322098340, 747.020941334, 707.858376214, - 669.787829741, 632.765987756, 596.751545633, - 561.704466609, 527.587580585, 494.365739051, - 462.004890691, 430.472546686, 399.738429196, - 369.773787595, 340.550287137, 312.041496095, - 284.222260660, 257.068973074, 230.557938283}; - -#define MIN_THETA_I 0.13 -#define PER_INDEX_I 0.002 -#define MAX_THETA_I 0.199 - -#ifdef PLAIN -double wallclock; -#endif - -main(int argc,char *argv[]) -{ - Root r; - int i,finished=0; - double d_theta_R,d_theta_I; - - chatting("Past initialization\n"); - - timer_start(0); - - /* initial pass */ - r = build_tree(); - chatting("Built tree\n"); - Compute_Tree(r); - r->last.P = r->D.P; - r->last.Q = r->D.Q; - r->last_theta_R = r->theta_R; - r->last_theta_I = r->theta_I; - r->theta_R = 0.7; - r->theta_I = 0.14; - - while (!finished) { - Compute_Tree(r); - chatting("TR=%13.9f, TI=%13.9f, P0=%13.9f, Q0=%13.9f\n", - r->theta_R,r->theta_I,r->D.P,r->D.Q); - if (fabs(r->D.P/10000.0 - r->theta_R) < ROOT_EPSILON && - fabs(r->D.Q/10000.0 - r->theta_I) < ROOT_EPSILON) { - finished = 1; - } else { - i = (int)((r->theta_R - MIN_THETA_R) / PER_INDEX_R); - if (i<0) i=0; - if (i>35) i=35; - d_theta_R = -(r->theta_R - r->D.P/10000.0) / - (1 - (map_P[i+1] - map_P[i]) / (PER_INDEX_R * 10000.0)); - - i = (int)((r->theta_I - MIN_THETA_I) / PER_INDEX_I); - if (i<0) i=0; - if (i>35) i=35; - d_theta_I = -(r->theta_I - r->D.Q/10000.0) / - (1 - (map_Q[i+1] - map_Q[i]) / (PER_INDEX_I * 10000.0)); - - chatting("D TR-%13.9f, TI=%13.9f\n", d_theta_R,d_theta_I); - r->last.P = r->D.P; - r->last.Q = r->D.Q; - r->last_theta_R = r->theta_R; - r->last_theta_I = r->theta_I; - r->theta_R = r->theta_R + d_theta_R; - r->theta_I = r->theta_I + d_theta_I; - } - } /* while */ - timer_stop(0); - chatting("Elapsed time %f\n", timer_elapsed(0)); - -#ifdef FUTURES - __ShutDown(0); -#endif - return 0; -} diff --git a/test/ccured_olden/power/out.orig b/test/ccured_olden/power/out.orig deleted file mode 100644 index ce4ccae8..00000000 --- a/test/ccured_olden/power/out.orig +++ /dev/null @@ -1,37 +0,0 @@ -Past initialization -Built tree -TR= 0.70000, TI= 0.14000, P0=7368.11283, Q0=1486.61206 -D TR- 0.00899, TI= 0.00214 -TR= 0.70899, TI= 0.14214, P0=6825.69077, Q0=1376.20403 -D TR- -0.00662, TI= -0.00114 -TR= 0.70236, TI= 0.14099, P0=7102.87981, Q0=1432.59759 -D TR- 0.00198, TI= 0.00056 -TR= 0.70435, TI= 0.14155, P0=7000.94922, Q0=1411.85085 -D TR- -0.00106, TI= -0.00009 -TR= 0.70328, TI= 0.14146, P0=7047.52523, Q0=1421.32891 -D TR- 0.00036, TI= 0.00016 -TR= 0.70365, TI= 0.14162, P0=7029.01641, Q0=1417.56197 -D TR- -0.00018, TI= 0.00003 -TR= 0.70346, TI= 0.14166, P0=7037.01709, Q0=1419.19017 -D TR- 0.00005, TI= 0.00006 -TR= 0.70352, TI= 0.14172, P0=7033.77002, Q0=1418.52933 -D TR- -0.00003, TI= 0.00003 -TR= 0.70348, TI= 0.14175, P0=7035.10974, Q0=1418.80198 -D TR- 0.00000, TI= 0.00003 -TR= 0.70349, TI= 0.14178, P0=7034.59229, Q0=1418.69667 -D TR- -0.00000, TI= 0.00002 -TR= 0.70348, TI= 0.14180, P0=7034.76550, Q0=1418.73192 -D TR- -0.00000, TI= 0.00001 -TR= 0.70348, TI= 0.14182, P0=7034.73206, Q0=1418.72511 -D TR- -0.00000, TI= 0.00001 -TR= 0.70348, TI= 0.14183, P0=7034.72701, Q0=1418.72409 -D TR- -0.00000, TI= 0.00000 -TR= 0.70347, TI= 0.14184, P0=7034.72601, Q0=1418.72388 -D TR- -0.00000, TI= 0.00000 -TR= 0.70347, TI= 0.14185, P0=7034.72675, Q0=1418.72403 -D TR- -0.00000, TI= 0.00000 -TR= 0.70347, TI= 0.14185, P0=7034.72767, Q0=1418.72422 -D TR- -0.00000, TI= 0.00000 -TR= 0.70347, TI= 0.14186, P0=7034.72812, Q0=1418.72431 -D TR- -0.00000, TI= 0.00000 -TR= 0.70347, TI= 0.14186, P0=7034.72817, Q0=1418.72432 diff --git a/test/ccured_olden/power/output b/test/ccured_olden/power/output deleted file mode 100644 index 5d8d9f14..00000000 --- a/test/ccured_olden/power/output +++ /dev/null @@ -1,38 +0,0 @@ -Past initialization -Built tree -TR= 0.700000000, TI= 0.140000000, P0=7368.112832298, Q0=1486.612062522 -D TR- 0.008993314, TI= 0.002144467 -TR= 0.708993314, TI= 0.142144467, P0=6825.690778967, Q0=1376.204035288 -D TR- -0.006624389, TI= -0.001149403 -TR= 0.702368925, TI= 0.140995064, P0=7102.879810214, Q0=1432.597592989 -D TR- 0.001985258, TI= 0.000560726 -TR= 0.704354182, TI= 0.141555790, P0=7000.949225527, Q0=1411.850856419 -D TR- -0.001067770, TI= -0.000091784 -TR= 0.703286413, TI= 0.141464005, P0=7047.525235387, Q0=1421.328911557 -D TR- 0.000367545, TI= 0.000165612 -TR= 0.703653957, TI= 0.141629618, P0=7029.016413235, Q0=1417.561973965 -D TR- -0.000188601, TI= 0.000031340 -TR= 0.703465356, TI= 0.141660958, P0=7037.017091019, Q0=1419.190170854 -D TR- 0.000059252, TI= 0.000063894 -TR= 0.703524609, TI= 0.141724852, P0=7033.770028540, Q0=1418.529337079 -D TR- -0.000037004, TI= 0.000031712 -TR= 0.703487605, TI= 0.141756564, P0=7035.109740779, Q0=1418.801987979 -D TR- 0.000005859, TI= 0.000030611 -TR= 0.703493463, TI= 0.141787176, P0=7034.592291756, Q0=1418.696672935 -D TR- -0.000008582, TI= 0.000020424 -TR= 0.703484881, TI= 0.141807600, P0=7034.765506561, Q0=1418.731929644 -D TR- -0.000002088, TI= 0.000016240 -TR= 0.703482793, TI= 0.141823841, P0=7034.732061514, Q0=1418.725114927 -D TR- -0.000002403, TI= 0.000012051 -TR= 0.703480389, TI= 0.141835891, P0=7034.727015389, Q0=1418.724090079 -D TR- -0.000001927, TI= 0.000009042 -TR= 0.703478462, TI= 0.141844933, P0=7034.726010052, Q0=1418.723886296 -D TR- -0.000001469, TI= 0.000006798 -TR= 0.703476993, TI= 0.141851731, P0=7034.726755730, Q0=1418.724038175 -D TR- -0.000001082, TI= 0.000005119 -TR= 0.703475910, TI= 0.141856849, P0=7034.727670658, Q0=1418.724224195 -D TR- -0.000000788, TI= 0.000003856 -TR= 0.703475122, TI= 0.141860705, P0=7034.728128768, Q0=1418.724317198 -D TR- -0.000000579, TI= 0.000002903 -TR= 0.703474543, TI= 0.141863609, P0=7034.728179600, Q0=1418.724327425 -Elapsed time 5130.000000 diff --git a/test/ccured_olden/power/power.h b/test/ccured_olden/power/power.h deleted file mode 100644 index b8fbd2dd..00000000 --- a/test/ccured_olden/power/power.h +++ /dev/null @@ -1,114 +0,0 @@ -/* For copyright information, see olden_v1.0/COPYRIGHT */ - -/* - * power.h - * - * By: Martin C. Carlisle - * 6/15/94 - * - * Header file for the Power Pricing problem - * adapted from code by Steve Lumetta, Sherry Li, and Ismail Khalil - * University of California at Berkeley - * - */ - -typedef struct demand { - double P; - double Q; -} Demand; - -#ifndef PLAIN -#include "future-cell.h" -#include "mem-ref.h" -typedef struct fc_demand { - future_cell_impl impl; - Demand value; /* cell's value */ - } future_cell_demand; -#endif - -#ifdef PLAIN -#include <time.h> -#define local -#define mymalloc malloc -#define CMMD_node_timer_clear(x) (void)0 -#define TIMESTART(clk) {clk=(double)clock();} -#define TIMESTOP(clk) {clk=1000000.0 * ((double)clock()-(clk))/CLOCKS_PER_SEC;} -extern double wallclock; -#define timer_start(x) TIMESTART(wallclock) -#define timer_stop(x) TIMESTOP(wallclock) -#define timer_elapsed(x) (wallclock / 1000.0) -#endif - -#include "math.h" -#include <stdlib.h> // malloc -#include <stdio.h> // printf - -#ifndef NULL -#define NULL 0 -#endif - -#define NUM_FEEDERS 10 -#define LATERALS_PER_FEEDER 20 -#define BRANCHES_PER_LATERAL 5 -#define LEAVES_PER_BRANCH 10 - -#define F_EPSILON 0.000001 -#define G_EPSILON 0.000001 -#define H_EPSILON 0.000001 -#define ROOT_EPSILON 0.00001 - -typedef struct root { - Demand D; - double theta_R; - double theta_I; - Demand last; - double last_theta_R; - double last_theta_I; - struct lateral *feeders[NUM_FEEDERS]; -} *Root; - -typedef struct lateral { - Demand D; - double alpha; - double beta; - double R; - double X; - struct lateral *next_lateral; - struct branch *branch; -} *Lateral; - -typedef struct branch { - Demand D; - double alpha; - double beta; - double R; - double X; - struct branch *next_branch; - struct leaf *leaves[LEAVES_PER_BRANCH]; -} *Branch; - -typedef struct leaf { - Demand D; - double pi_R; - double pi_I; -} *Leaf; - -#ifdef PLAIN -#define ALLOC(pn,sz) malloc(sz) -#define chatting printf -#define __NumNodes 1 -#define __MyNodeId 0 -#endif - -/* Prototypes */ -Root build_tree(); -Lateral build_lateral(int i, int num); -Branch build_branch(int i, int j, int num); -Leaf build_leaf(); - -void Compute_Tree(Root r); -Demand Compute_Lateral(Lateral l, double theta_R, double theta_I, - double pi_R, double pi_I); -Demand Compute_Branch(Branch b, double theta_R, double theta_I, - double pi_R, double pi_I); -Demand Compute_Leaf(Leaf l, double pi_R, double pi_I); diff --git a/test/ccured_olden/power/testit b/test/ccured_olden/power/testit deleted file mode 100755 index b5132dd7..00000000 --- a/test/ccured_olden/power/testit +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -# test a power binary - -if [ "$1" = "" ]; then - echo "usage: $0 ./power.exe" - exit -fi - -# all of power's output is to stdout -echo "running: $1 >output" -if ! $1 >output; then - echo "$1 failed directly" - exit 2 -fi - -# must strip elapsed time -# must truncate precision to only 5 decimal places, because gcc's optimizer -# (even with -ffloat-store) seems to change the answer under boxing -if ! grep -v "Elapsed time" <output | \ - sed 's/\(\.[0-9]\{5\}\)[0-9]*/\1/g' | diff out.orig - >/dev/null; then - echo "$1 got the wrong answer" - exit 4 -else - echo "$1 seems to work" -fi -
\ No newline at end of file |