unsafe void calculate_window(float* window, window_function func, WindowFunction flag) { if ((eparams.window_function & flag) == 0 || _windowcount == lpc.MAX_LPC_WINDOWS) return; int sz = _windowsize; float* pos1 = window + _windowcount * Flake.MAX_BLOCKSIZE * 2; float* pos = pos1; do { func(pos, sz); if ((sz & 1) != 0) break; pos += sz; sz >>= 1; } while (sz >= 32); double scale = 0.0; for (int i = 0; i < _windowsize; i++) scale += pos1[i] * pos1[i]; windowScale[_windowcount] = scale; _windowcount++; }
unsafe void calculate_window(float * window, window_function func, WindowFunction flag) { if ((eparams.window_function & flag) == 0 || _windowcount == Alac.MAX_LPC_WINDOWS) return; int sz = _windowsize; float* pos = window + _windowcount * Alac.MAX_BLOCKSIZE * 2; do { func(pos, sz); if ((sz & 1) != 0) break; pos += sz; sz >>= 1; } while (sz >= 32); _windowcount++; }
unsafe void calculate_window(FLACCLTask task, window_function func, WindowFunction flag) { if ((eparams.window_function & flag) == 0 || task.nWindowFunctions == lpc.MAX_LPC_WINDOWS) return; func(((float*)task.clWindowFunctionsPtr) + task.nWindowFunctions * task.frameSize, task.frameSize); //int sz = _windowsize; //float* pos = window + _windowcount * FLACCLWriter.MAX_BLOCKSIZE * 2; //do //{ // func(pos, sz); // if ((sz & 1) != 0) // break; // pos += sz; // sz >>= 1; //} while (sz >= 32); task.nWindowFunctions++; }
unsafe void calculate_window(float* window, window_function func, WindowFunction flag) { if ((eparams.window_function & flag) == 0 || _windowcount == lpc.MAX_LPC_WINDOWS) return; func(window + _windowcount * _windowsize, _windowsize); //int sz = _windowsize; //float* pos = window + _windowcount * FlaCudaWriter.MAX_BLOCKSIZE * 2; //do //{ // func(pos, sz); // if ((sz & 1) != 0) // break; // pos += sz; // sz >>= 1; //} while (sz >= 32); _windowcount++; }