Boulanger と Lazzarini の「The Audio Programming Book」から入手したサンプル コードに問題があります。正弦波の値を生成するはずですが、実行すると、-1.0 と +1.0 の間の期待値ではなく、-0.0000000 と 0.0000000 の値が得られます。ブレークポイントを使用して実行されている値を確認しましたが、すべて問題ないように見えますが、(デバッグ モードまたはリリース モードで) 実行すると、悪い値が返されます。
MacOSX 10.6.8 で Xcode 3.2.6 を使用しています。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#ifndef M_PI
#define M_PI (3.141592654)
#endif
int main(int argc, char** argv) {
int i, nsamps;
double samp;
double twopi = 2.0 * M_PI;
double angleincr;
nsamps = 50;
angleincr = twopi * nsamps;
for (i=0; i < nsamps; i++) {
samp = sin(angleincr*i);
fprintf(stdout, "%lf\n", samp);
}
fprintf(stderr, "done\n");
return 0;
}
ありがとう!:)