int main(int argc, char *argv[]) { CSA SA; csa_read(&SA,argc-1,argv+1); test_approxsearch(&SA); }
int load_index(char *filename, void **index){ char fname1[128],fname2[128]; CSA *SA; SA = (CSA *) malloc(sizeof(CSA)); initranktables(); mkdecodetable(); sprintf(fname1,"%s.psi",filename); sprintf(fname2,"%s.idx",filename); csa_read(SA,fname1,fname2); (*index) = SA; return 0; }
static VALUE rb_csa_initialize(VALUE self, VALUE idx, VALUE psi) { CSA *sa = csa_ptr(self); char *fname[2]; fname[0] = StringValueCStr(idx); fname[1] = StringValueCStr(psi); csa_read(sa, 2, fname); return self; }
int main(int argc, char *argv[]) { i64 i,n; CSA csa; mytimestruct before,after; double t; if (argc<2) { fprintf(stderr, "syntax: suftest file\n"); return 1; } csa_read(&csa,argc,argv); n = csa.n; mygettime(&before); { int m; FILE *out; out = fopen("output.dec","w"); i = 0; while (i < n) { if ((i/PAGE) % PAGE == 0) { fprintf(stderr,"%ld \r",i/PAGE); fflush(stderr); } m = PAGE; if (i+m >= n) m = n-i; csa.text(buf,&csa,i,i+m-1); fwrite(buf,1,m,out); i += m; } fwrite(buf,1,0,out); fclose(out); } mygettime(&after); t = mylaptime(&before,&after); fprintf(stderr,"time %f sec\n",t); return 0; }
int load_index(char *filename, void **index) { CSA *csa; char *fname1; int fnamelen; char **argv; fnamelen = strlen(filename); fname1 = malloc(fnamelen); if (fname1 == NULL) { printf("load_index:1. not enough mem.\n"); exit(1); } strncpy(fname1,filename,fnamelen-4); strcpy(fname1+fnamelen-4,".idx"); argv = malloc(sizeof(char *)*2); if (argv == NULL) { printf("load_index:3. not enough mem.\n"); exit(1); } argv[0] = fname1; argv[1] = filename; csa = malloc(sizeof(CSA)); if (csa == NULL) { printf("load_index:2. not enough mem.\n"); exit(1); } // printf("csa_read %s %s\n",argv[1],argv[2]); csa_read(csa,2,argv); *index = (void *)csa; free(argv); free(fname1); return 0; }
int main(int argc, char *argv[]) { i64 n; CSA SA; if (argc<3) { fprintf(stderr, "syntax: %s {indexfiles}\n", argv[0]); return 1; } csa_read(&SA,argc-1, argv+1); n = SA.n; #if 0 { int i; rank_t x; unicode_t code; uchar buf[6], *p; x = SA.inverse(&SA, 0); for (i = 0; i < 1000; i++) { if (csa_utf8_T_psi(&SA, &x, &code) == -1) { printf("???\n"); } p = &buf[0]; unicode_to_string(&p, code); buf[unicode_len(code)] = 0; printf("%d code = %d (%s) rank = %ld\n", i, code, &buf[0], x); } for (i = 0; i < 1000; i++) { if (csa_utf8_BW_LF(&SA, &x, &code) == -1) { printf("???\n"); } p = &buf[0]; unicode_to_string(&p, code); buf[unicode_len(code)] = 0; printf("%d code = %d (%s) rank = %ld\n", i, code, &buf[0], x); } } #endif #if 1 { int i; rank_t x; unicode_t code; uchar buf[6], *p; CSAFILE *csafile; csafile = csa_fdopen(&SA, NULL); for (i = 0; i < 1000; i++) { code = csa_fgetwc(csafile); x = csafile->rank; p = &buf[0]; unicode_to_string(&p, code); buf[unicode_len(code)] = 0; printf("%d code = %d (%s) rank = %ld\n", i, code, &buf[0], x); } for (i = 0; i < 1000; i++) { code = csa_fgetwbw(csafile); x = csafile->rank; p = &buf[0]; unicode_to_string(&p, code); buf[unicode_len(code)] = 0; printf("%d code = %d (%s) rank = %ld\n", i, code, &buf[0], x); } } #endif return 0; }