static void SerialFFTCalculation(complex<double> *signal, unsigned int first, unsigned int recursion_depth, unsigned int size, unsigned int start_size) { if(size == 1) { return; } #pragma omp parallel sections if(recursion_depth <= 1) { #pragma omp section { SerialFFTCalculation(signal, first, recursion_depth + 1, size / 2, start_size); } #pragma omp section { SerialFFTCalculation(signal, first + (size / 2), recursion_depth + 1,size / 2, start_size); } } omp_set_dynamic(0); #pragma omp parallel for schedule(static) if(recursion_depth == 0) num_threads(5) for (int k = first; k < first + size / 2; k++) { auto w = W(k, size); Butterfly(signal, w, k, size / 2); } }
void testApp::setup(){ ofBackground(255, 255, 255); Butterfly::addFile("Butterfly_001.svg"); Butterfly::addFile("Butterfly_002.svg"); Butterfly::addFile("Butterfly_003.svg"); Butterfly::addFile("Butterfly_004.svg"); for(int i = 0; i < 512; i++) { butterflies.push_back(Butterfly()); } }