tadd const keywords, suppress some debug output - slidergrid - grid of elastic sliders on a frictional surface
 (HTM) git clone git://src.adamsgaard.dk/slidergrid
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit c6e2a96799b3fc1b5c926bace6763524480d5417
 (DIR) parent 651d6ad14183acc05109edf9fb4569dda244cde1
 (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
       Date:   Tue, 22 Mar 2016 15:15:23 -0700
       
       add const keywords, suppress some debug output
       
       Diffstat:
         M slidergrid/main.c                   |      13 +++++++------
         M slidergrid/slider.c                 |       7 +++++--
         M slidergrid/vector_math.c            |      34 ++++++++++++++++----------------
       
       3 files changed, 29 insertions(+), 25 deletions(-)
       ---
 (DIR) diff --git a/slidergrid/main.c b/slidergrid/main.c
       t@@ -128,23 +128,23 @@ int main(int argc, char** argv)
                    sim.time <= sim.time_end;
                    sim.time += sim.dt) {
        
       -        for (i=0; i<sim.N; i++)
       +        /*for (i=0; i<sim.N; i++)
                    printf("%d: vel = %f %f %f\n", i,
                            sim.sliders[i].vel.x,
                            sim.sliders[i].vel.y,
       -                    sim.sliders[i].vel.z);
       +                    sim.sliders[i].vel.z);*/
        
                for (i=0; i<sim.N; i++)
                    project_slider_position(&sim.sliders[i], sim.dt, sim.iteration);
        
       -        for (i=0; i<sim.N; i++)
       +        /*for (i=0; i<sim.N; i++)
                    printf("%d: pos = %f %f %f, pos_future = %f %f %f\n", i,
                            sim.sliders[i].pos.x,
                            sim.sliders[i].pos.y,
                            sim.sliders[i].pos.z,
                            sim.sliders[i].pos_future.x,
                            sim.sliders[i].pos_future.y,
       -                    sim.sliders[i].pos_future.z);
       +                    sim.sliders[i].pos_future.z);*/
        
                // resolve slider-to-slider interaction
                for (i=0; i<sim.N; i++) {
       t@@ -157,14 +157,15 @@ int main(int argc, char** argv)
        
        #ifdef DEBUG_SLIDER_FORCE_TORQUE_AND_NEIGHBORS
                    int j;
       -            printf("main.c: Slider %d: F = %f %f %f, T = %f %f %f, contacts = ",
       +            printf("main.c: Slider %d: F = %f %f %f, T = %f %f %f, mass = %f, contacts = ",
                            i,
                            sim.sliders[i].force.x,
                            sim.sliders[i].force.y,
                            sim.sliders[i].force.z,
                            sim.sliders[i].torque.x,
                            sim.sliders[i].torque.y,
       -                    sim.sliders[i].torque.z);
       +                    sim.sliders[i].torque.z,
       +                    sim.sliders[i].mass);
                    for (j=0; j<MAX_NEIGHBORS; j++)
                        if (sim.sliders[i].neighbors[j] >= 0)
                            printf("%d ", sim.sliders[i].neighbors[j]);
 (DIR) diff --git a/slidergrid/slider.c b/slidergrid/slider.c
       t@@ -244,6 +244,7 @@ void slider_neighbor_interaction(
                // reset sum of forces and torques on slider
                s->force = make_float3(0., 0., 0.);
                s->torque = make_float3(0., 0., 0.);
       +        //s->mass = 1.0;
        
                if (s->neighbors[idx_neighbor] != -1) {
        
       t@@ -251,15 +252,17 @@ void slider_neighbor_interaction(
                            s, sliders[s->neighbors[idx_neighbor]],
                            idx_neighbor, iteration);
        
       -            printf("- %d: rel_disp = %f %f %f\n",
       +            /*printf("- %d: rel_disp = %f %f %f\n",
                            idx_neighbor, 
                            s->neighbor_relative_distance_displacement[idx_neighbor].x,
                            s->neighbor_relative_distance_displacement[idx_neighbor].y,
                            s->neighbor_relative_distance_displacement[idx_neighbor].z
       -                  );
       +                  );*/
        
                    slider_interaction(
                            s, sliders[s->neighbors[idx_neighbor]], idx_neighbor);
       +
       +            s->force = make_float3(123, 456, 789);
                    printf("s.force = %f %f %f\n",
                            s->force.x, s->force.y, s->force.z);
                }
 (DIR) diff --git a/slidergrid/vector_math.c b/slidergrid/vector_math.c
       t@@ -3,7 +3,7 @@
        
        
        // constructors
       -inline Float3 make_float3(Float x, Float y, Float z)
       +inline Float3 make_float3(const Float x, const Float y, const Float z)
        {
            Float3 v = {.x = x, .y = y, .z = z};
            return v;
       t@@ -21,39 +21,39 @@ inline Float3 ones_float3()
        
        
        // single-vector operations
       -inline Float3 copy_float3(Float3 v)
       +inline Float3 copy_float3(const Float3 v)
        {
            return make_float3(v.x, v.y, v.z);
        }
        
       -inline Float norm_float3(Float3 v)
       +inline Float norm_float3(const Float3 v)
        {
            return sqrt(v.x*v.x + v.y*v.y + v.z*v.z);
        }
        
        
        // vector-vector operations
       -inline Float3 add_float3(Float3 v1, Float3 v2)
       +inline Float3 add_float3(const Float3 v1, const Float3 v2)
        {
            return make_float3(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z);
        }
        
       -inline Float3 subtract_float3(Float3 v1, Float3 v2)
       +inline Float3 subtract_float3(const Float3 v1, const Float3 v2)
        {
            return make_float3(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z);
        }
        
       -inline Float3 multiply_float3(Float3 v1, Float3 v2)
       +inline Float3 multiply_float3(const Float3 v1, const Float3 v2)
        {
            return make_float3(v1.x*v2.x, v1.y*v2.y, v1.z*v2.z);
        }
        
       -inline Float3 divide_float3(Float3 v1, Float3 v2)
       +inline Float3 divide_float3(const Float3 v1, const Float3 v2)
        {
            return make_float3(v1.x/v2.x, v1.y/v2.y, v1.z/v2.z);
        }
        
       -inline Float3 cross_float3(Float3 v1, Float3 v2)
       +inline Float3 cross_float3(const Float3 v1, const Float3 v2)
        {
            return make_float3(
                    v1.y*v2.z - v1.z*v2.y,
       t@@ -61,48 +61,48 @@ inline Float3 cross_float3(Float3 v1, Float3 v2)
                    v1.x*v2.y - v1.y*v2.x);
        }
        
       -inline Float dot_float3(Float3 v1, Float3 v2)
       +inline Float dot_float3(const Float3 v1, const Float3 v2)
        {
            return v1.x*v2.x + v1.y*v2.y + v1.z*v2.z;
        }
        
        // vector-scalar operations
       -inline Float3 add_float3_scalar(Float3 v, Float s)
       +inline Float3 add_float3_scalar(const Float3 v, const Float s)
        {
            return make_float3(v.x + s, v.y + s, v.z + s);
        }
        
       -inline Float3 add_scalar_float3(Float s, Float3 v)
       +inline Float3 add_scalar_float3(const Float s, const Float3 v)
        {
            return add_float3_scalar(v, s);
        }
        
       -inline Float3 subtract_float3_scalar(Float3 v, Float s)
       +inline Float3 subtract_float3_scalar(const Float3 v, const Float s)
        {
            return make_float3(v.x - s, v.y - s, v.z - s);
        }
        
       -inline Float3 subtract_scalar_float3(Float s, Float3 v)
       +inline Float3 subtract_scalar_float3(const Float s, const Float3 v)
        {
            return make_float3(s - v.x, s - v.y, s - v.z);
        }
        
       -inline Float3 multiply_float3_scalar(Float3 v, Float s)
       +inline Float3 multiply_float3_scalar(const Float3 v, const Float s)
        {
            return make_float3(v.x*s, v.y*s, v.z*s);
        }
        
       -inline Float3 multiply_scalar_float3(Float s, Float3 v)
       +inline Float3 multiply_scalar_float3(const Float s, const Float3 v)
        {
            return multiply_float3_scalar(v, s);
        }
        
       -inline Float3 divide_float3_scalar(Float3 v, Float s)
       +inline Float3 divide_float3_scalar(const Float3 v, const Float s)
        {
            return make_float3(v.x/s, v.y/s, v.z/s);
        }
        
       -inline Float3 divide_scalar_float3(Float s, Float3 v)
       +inline Float3 divide_scalar_float3(const Float s, const Float3 v)
        {
            return make_float3(s/v.x, s/v.y, s/v.z);
        }