From 8d1f54604ebda500d6524cfad222f01b1faa7b62 Mon Sep 17 00:00:00 2001 From: PedroEdiaz Date: Wed, 27 Nov 2024 00:20:51 -0600 Subject: [PATCH] Optimize and work with dim=2 --- src/surface.c | 97 +++++++++++++++++++++++---------------------------- 1 file changed, 44 insertions(+), 53 deletions(-) diff --git a/src/surface.c b/src/surface.c index b568302..bc14bc7 100644 --- a/src/surface.c +++ b/src/surface.c @@ -90,6 +90,7 @@ typedef void (*function_t)(float *, int *, int); size = grid_size * grid_size * 6 * (*m); d_surface = malloc((size + 1) * sizeof(float)); d_surface[0] = size; + ++d_surface; for (i = 0; i < grid_size; i++) { @@ -122,76 +123,66 @@ float *generate_data_surface(int grid_size, unsigned char *s) long size; function_t f; float *d_surface; - int dim = 2; + const int dim =2; + int cara[dim]; f = klein; *s = 4; - int cara[2]; - - size = grid_size * grid_size * 2 * dim * (*s); + size = grid_size * grid_size * 6 * (*s); d_surface = malloc((size + 1) * sizeof(float)); d_surface[0] = size; - + for(o = 0; o < dim; o ++) - { - for (p = o + 1; p < dim; p++) + { + for (p = 0; p < o; p++) { - for (k = 0; k < (1 << o); k++) + for (k = 0; k < (1 << (dim-2)); k++) { - for(l = 0; l < (1 << p); l += (1 << (o + 1))) + for(n = 0; n < dim; n ++) { - for(m = 0; m < (1 << dim); m += (1 << (p + 1))) + if( n==o || n== p ) + continue; + + cara[n] = (k & (1<