#include <stdio.h>
#include <vector>
#define DPI (2*M_PI)
using namespace std;
vector<double> Re;// [出力] 実数部
vector<double> Im;// [出力] 虚数部
void dft(MONO_PCM pcm,size_t st, size_t ed)
{
// dft
int N = ed-st;
int* a = &pcm.s[st];
Re.clear();
Im.clear();
for( int fq=0; fq<NN; fq++ )
{
double Re_sum = 0;
double Im_sum = 0;
for( int i=0; i<NN; ++i){
double tht = DPI*fq*i/N;
Re_sum += a[i] * cos( tht );
Im_sum += a[i] * -sin( tht );
}
Re.push_back( Re_sum );
Im.push_back( Im_sum );
}
return;
}
void idft(MONO_PCM& pcm,size_t N)
{
for( int fq=0; fq<N; fq++ )
{
double Re_sum = 0;
double Im_sum = 0;
for( int i=0; i<N; ++i){
double tht = DPI*fq*i/N;
Re_sum += Re[i] * cos(tht)
-Im[i] * sin(tht);
Im_sum += Re[i] * sin(tht)
+Im[i] * cos(tht);
}
pcm.s.push_back(Re_sum/N);
}
return;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx2ZWN0b3I+CiNkZWZpbmUgRFBJICgyKk1fUEkpCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZlY3Rvcjxkb3VibGU+IFJlOy8vIFvlh7rliptdIOWun+aVsOmDqAp2ZWN0b3I8ZG91YmxlPiBJbTsvLyBb5Ye65YqbXSDomZrmlbDpg6gKdm9pZCBkZnQoTU9OT19QQ00gcGNtLHNpemVfdCBzdCwgc2l6ZV90IGVkKQp7CiAgICAvLyBkZnQKICAgIGludCBOID0gZWQtc3Q7CiAgICBpbnQqIGEgPSAmcGNtLnNbc3RdOwogICAgUmUuY2xlYXIoKTsKICAgIEltLmNsZWFyKCk7CiAgICBmb3IoIGludCBmcT0wOyBmcTxOTjsgZnErKyApCiAgICB7CiAgICAgICAgZG91YmxlIFJlX3N1bSA9IDA7CiAgICAgICAgZG91YmxlIEltX3N1bSA9IDA7CiAgICAgICAgZm9yKCBpbnQgaT0wOyBpPE5OOyArK2kpewogICAgICAgICAgICBkb3VibGUgdGh0ID0gRFBJKmZxKmkvTjsKICAgICAgICAgICAgUmVfc3VtICs9IGFbaV0gKiAgY29zKCB0aHQgKTsKICAgICAgICAgICAgSW1fc3VtICs9IGFbaV0gKiAtc2luKCB0aHQgKTsKICAgICAgICB9CiAgICAgICAgUmUucHVzaF9iYWNrKCBSZV9zdW0gKTsKICAgICAgICBJbS5wdXNoX2JhY2soIEltX3N1bSApOwogICAgfQogICAgcmV0dXJuOwp9CnZvaWQgaWRmdChNT05PX1BDTSYgcGNtLHNpemVfdCBOKQp7CiAgICBmb3IoIGludCBmcT0wOyBmcTxOOyBmcSsrICkKICAgIHsKICAgICAgICBkb3VibGUgUmVfc3VtID0gMDsKICAgICAgICBkb3VibGUgSW1fc3VtID0gMDsKICAgICAgICBmb3IoIGludCBpPTA7IGk8TjsgKytpKXsKICAgICAgICAgICAgZG91YmxlIHRodCA9IERQSSpmcSppL047CiAgICAgICAgICAgIFJlX3N1bSArPSAgUmVbaV0gKiBjb3ModGh0KQogICAgICAgICAgICAgICAgICAgICAgLUltW2ldICogc2luKHRodCk7CiAgICAgICAgICAgIEltX3N1bSArPSAgUmVbaV0gKiBzaW4odGh0KQogICAgICAgICAgICAgICAgICAgICAgK0ltW2ldICogY29zKHRodCk7CiAgICAgICAgfQogICAgICAgIHBjbS5zLnB1c2hfYmFjayhSZV9zdW0vTik7CiAgICB9CiAgICByZXR1cm47Cn0K
prog.cpp:7:10: error: variable or field 'dft' declared void
void dft(MONO_PCM pcm,size_t st, size_t ed)
^
prog.cpp:7:10: error: 'MONO_PCM' was not declared in this scope
prog.cpp:7:30: error: expected primary-expression before 'st'
void dft(MONO_PCM pcm,size_t st, size_t ed)
^
prog.cpp:7:41: error: expected primary-expression before 'ed'
void dft(MONO_PCM pcm,size_t st, size_t ed)
^