X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=svrt.c;h=1a2449b04ee43638b9bc961478dbbe5db3adfabe;hb=24368498f3065e8a4be34c5e8e2b68f9d1220f7d;hp=fdee66fd9cbfa5d516a4d2a9836213293dffc0f5;hpb=44bd6cf57f00009c7049dcd3e5600f12f2f41de5;p=pysvrt.git diff --git a/svrt.c b/svrt.c index fdee66f..1a2449b 100644 --- a/svrt.c +++ b/svrt.c @@ -27,14 +27,25 @@ #include "svrt_generator.h" -THByteTensor *generate_vignettes(long n_problem, long nb_vignettes) { +THByteTensor *generate_vignettes(long n_problem, THLongTensor *labels) { struct VignetteSet vs; + long nb_vignettes; long st0, st1, st2; long v, i, j; + long *m, *l; unsigned char *a, *b; - svrt_generate_vignettes(n_problem, nb_vignettes, &vs); - printf("SANITY %d %d %d\n", vs.nb_vignettes, vs.width, vs.height); + nb_vignettes = THLongTensor_size(labels, 0); + m = THLongTensor_storage(labels)->data + THLongTensor_storageOffset(labels); + st0 = THLongTensor_stride(labels, 0); + l = (long *) malloc(sizeof(long) * nb_vignettes); + for(v = 0; v < nb_vignettes; v++) { + l[v] = *m; + m += st0; + } + + svrt_generate_vignettes(n_problem, nb_vignettes, l, &vs); + free(l); THLongStorage *size = THLongStorage_newWithSize(3); size->data[0] = vs.nb_vignettes; @@ -61,5 +72,7 @@ THByteTensor *generate_vignettes(long n_problem, long nb_vignettes) { } } + free(vs.data); + return result; }