/*--------------------------------------------------- * file: dw2zwp.c * purpose: * usage: * inputs: docword.txt (to get W) dw.p*.bin z.txt (if RESTARTZ) P * outputs: z.p*.bin wp.sbin * version: 1.0 * author: newman@uci.edu * date: 8/10/07 * NOTE: binary matrices are all (c-style) zero offset *-------------------------------------------------*/ #include #include #include #include #include #include "topiclib.h" // comment out below as needed //#define RESTARTZ /*========================================== * main *========================================== */ int main(int argc, char* argv[]) { int P, T, W, Np, D, seed; int p, i, t, chk, n2=2, n1=1; int *d, *w, *z; int **wp; FILE *fin, *fout, *finz; char fname[32]; if (argc == 1) { fprintf(stderr, "usage: %s P T seed\n", argv[0]); exit(-1); } P = atoi(argv[1]); assert(P>0); T = atoi(argv[2]); assert(T>0); seed = atoi(argv[3]); assert(seed>0); srand48(seed); /*========================================== * read header of docword.txt to get W *========================================== */ fin = fopen("docword.txt","r"); assert(fin); fscanf(fin,"%d", &D); assert(D>0); fscanf(fin,"%d", &W); assert(W>0); fclose(fin); printf("... read docword.txt\n"); printf(" W = %d\n", W); wp = imat(W,T); assert(wp); //#ifdef RESTARTZ //finz = fopen("z.txt","r"); assert(finz); //#endif /*========================================== * create z.p*.bin *========================================== */ for (p = 0; p < P; p++) { sprintf(fname,"dw.p%d.bin",p); fin = fopen(fname,"r"); assert(fin); assert(fread(&n2, sizeof(int),1,fin)); assert(n2==2); assert(fread(&Np, sizeof(int),1,fin)); assert(Np>0); d = ivec(Np); assert(d); w = ivec(Np); assert(w); chk = fread(d,sizeof(int),Np,fin); assert(chk==Np); chk = fread(w,sizeof(int),Np,fin); assert(chk==Np); fclose(fin); printf("... read %s, Np = %d\n", fname, Np); #ifdef RESTARTZ sprintf(fname,"z.p%d.txt",p); finz = fopen(fname,"r"); assert(finz); #endif z = ivec(Np); assert(z); for (i = 0; i < Np; i++) { #ifdef RESTARTZ chk = fscanf(finz,"%d", &t); assert(chk); t--; assert(t>-1); assert(t