X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=svrt.c;h=fdee66fd9cbfa5d516a4d2a9836213293dffc0f5;hb=44bd6cf57f00009c7049dcd3e5600f12f2f41de5;hp=0f53642e4b749a7af9ab2ac50351b1632cfe6aff;hpb=f542d0542b1e51ca7dd12bc6b96f6a299371ae8d;p=pysvrt.git diff --git a/svrt.c b/svrt.c index 0f53642..fdee66f 100644 --- a/svrt.c +++ b/svrt.c @@ -29,21 +29,37 @@ THByteTensor *generate_vignettes(long n_problem, long nb_vignettes) { struct VignetteSet vs; + long st0, st1, st2; + long v, i, j; + 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); THLongStorage *size = THLongStorage_newWithSize(3); - size->data[0] = nb_vignettes; + size->data[0] = vs.nb_vignettes; size->data[1] = vs.height; size->data[2] = vs.width; THByteTensor *result = THByteTensor_newWithSize(size, NULL); THLongStorage_free(size); - /* st0 = THByteTensor_stride(result, 0); */ - /* st1 = THByteTensor_stride(result, 1); */ - /* st2 = THByteTensor_stride(result, 2); */ + st0 = THByteTensor_stride(result, 0); + st1 = THByteTensor_stride(result, 1); + st2 = THByteTensor_stride(result, 2); + + unsigned char *r = vs.data; + for(v = 0; v < vs.nb_vignettes; v++) { + a = THByteTensor_storage(result)->data + THByteTensor_storageOffset(result) + v * st0; + for(i = 0; i < vs.height; i++) { + b = a + i * st1; + for(j = 0; j < vs.width; j++) { + *b = (unsigned char) (*r); + r++; + b += st2; + } + } + } return result; }