bonjour monsieur quessy,
my theory: it runs under i386 under max with doubles internally, the
problem is the method binding to PD and it's not a problem with the
rest of the struct members. having them as doubles shouldn't prevent
compiling AND the results are different if run as 32bit floats or
64bit doubles.
i say try to change just the function definitions: for example
void Flock_mode(t_boids *x, double arg);
to:
void Flock_mode(t_boids *x, t_float arg);
i just did so myself and it compiles and runs fine on Mac OS X/PD
extended 0.39-4
i'm attaching the two source files for you to try.
there will be a new version of the boids in Max shortly adding a few
features: when that's ready i'll update the PD version and submit it
to CVS.
cheers
/*j
> Thomas Ouellet Fredericks has found a bug in the [boids2d] external
> for pd which makes its compilation under GNU/Linux i386 impossible. To
> fix it, one only needs to replace all the "double" by "float". It
> might be the same thing for the [boids3d] external. Can I submit this
> major bugfix in the CVS or will you do it ?
>
> Thanks !
> Very nice contribution, by the way.
well, it's not my work exclusively. there have been a few people
involved, namely eric singer and andre sier. the original max-object
goes way back, it must be at least 10 years old. what andre and i did
was adapt it to 3D and make it run in floating point space. my main
interest has been to use this as a spatialisation algorithm for
multichannel audio: it's very effective.