osctable.cpp

説明を見る。
00001 /** \file osctable.cpp
00002 * brief 三角関数用ルックアップ・テーブル
00003 *
00004 * 三角関数の合成に使うテーブルを作る。テーブルのデータは、サブディレクトリ
00005 * にあるテキスト・ファイルを読み込んで使う。
00006 * 記事本文の内容に合わせて、3種類のサブディレクトリを用意している。
00007 * 
00008 * 1_int は、記事中で最初に使うテーブルである。このテーブルは、Scilab
00009 * スクリプトでデータを整数化する際にint()関数を使っている。
00010 *
00011 * 2_roundは、記事中で2番目に使うテーブルを収めたサブディレクトリである。
00012 * このディレクトリのデータは、Scilabスクリプトでデータを整数化する際に
00013 * round()関数を使っている。
00014 *
00015 * 3_smallは、記事中で3番目に使うテーブルを収めたサブディレクトリである。
00016 * このディレクトリのデータは、2_round同様、スクリプト内でround()関数に
00017 * より、整数化している。異なるのは整数化するときの係数で、上二つは
00018 * 32768倍しているが、このディレクトリのデータは32767倍している。その
00019 * 結果、真の正弦関数、余弦関数より小さくなるが、飽和による非対称な誤差
00020 * から逃げることができる。
00021 */
00022 #include "osc.h"
00023 namespace osc{
00024         /** ルックアップ・テーブルのサイズ
00025         * 
00026         * sine/cosineの計算をするための基本ルックアップテーブルのサイズ。
00027         * 16bit位相を8bit/8bitに分割するので、ルックアップテーブルのサイズは
00028         * 256になる
00029         */
00030     const int tableSize = 256;
00031     
00032         /** cosの上位位相分
00033         *
00034         * 全周を256分割したコサイン・テーブル。 
00035         */
00036     shortfract co_h[tableSize]= {
00037         #include "3_small\\hco.txt"
00038     };
00039         /** cosの下位位相分
00040         *
00041         * 全周の256分の1をさらに256分割したコサイン・テーブル。 
00042         */
00043     shortfract co_l[tableSize]= {
00044         #include "3_small\\lco.txt"
00045     };
00046         /** sinの上位位相分
00047         *
00048         * 全周を256分割したサイン・テーブル。 
00049         */
00050     shortfract si_h[tableSize]= {
00051         #include "3_small\\hsi.txt"
00052     };
00053         /** sinの下位位相分
00054         *
00055         * 全周の256分の1をさらに256分割したサイン・テーブル。 
00056         */
00057     shortfract si_l[tableSize]= {
00058         #include "3_small\\lsi.txt"
00059      };
00060 }

Overflowに対してSat Jul 14 16:32:32 2007に生成されました。  doxygen 1.5.2