This commit is contained in:
Iscle 2022-11-24 01:17:13 +01:00
parent 6f78cc7ff3
commit de2f2142fd
18 changed files with 7650 additions and 186 deletions

View File

@ -37,7 +37,6 @@ set(FILES
src/viper/effects/DiffSurround.cpp
src/viper/effects/DynamicSystem.cpp
src/viper/effects/FETCompressor.cpp
src/viper/effects/FIREqualizer.cpp
src/viper/effects/IIRFilter.cpp
src/viper/effects/PlaybackGain.cpp
src/viper/effects/Reverberation.cpp
@ -70,7 +69,7 @@ set(FILES
src/viper/utils/MultiBiquad.cpp
src/viper/utils/NoiseSharpening.cpp
src/viper/utils/PassFilter.cpp
src/viper/utils/PConvSingle_F32.cpp
src/viper/utils/PConvSingle.cpp
src/viper/utils/PolesFilter.cpp
src/viper/utils/Polyphase.cpp
src/viper/utils/Stereo3DSurround.cpp

View File

@ -1,6 +1,8 @@
#pragma once
#include <cstdint>
#include "../utils/WaveBuffer.h"
#include "../utils/PConvSingle.h"
class Convolver {
public:
@ -20,6 +22,22 @@ public:
void SetKernelBuffer(uint32_t param_1, float *param_2, uint32_t param_3);
void SetKernelStereo(float *param_1, float *param_2, uint32_t param_3);
void SetSamplingRate(uint32_t param_1);
private:
WaveBuffer *waveBufferL;
WaveBuffer *waveBufferR;
PConvSingle kernelCh1;
PConvSingle kernelCh2;
PConvSingle kernelCh3;
PConvSingle kernelCh4;
char kernelFilePath[256];
uint32_t kernelId;
int isQuadChannel;
float crossChannel;
bool isValidCrossChannel;
uint32_t samplingRate;
bool enable;
};

View File

@ -92,7 +92,7 @@ void FETCompressor::Process(float *samples, uint32_t size) {
}
double FETCompressor::ProcessSidechain(double in) {
double in2 = pow(in, 2.0);
double in2 = in * in;
if (in2 < 0.000001) {
in2 = 0.000001;
}

View File

@ -1,2 +0,0 @@
#include "FIREqualizer.h"
#include <cstring>

View File

@ -1,12 +0,0 @@
#pragma once
#include <cstdint>
class FIREqualizer {
public:
FIREqualizer();
~FIREqualizer();
};

View File

@ -1,3 +1,4 @@
#include <cmath>
#include "PlaybackGain.h"
#include "../constants.h"
@ -16,12 +17,23 @@ PlaybackGain::PlaybackGain() {
this->biquad2.SetBandPassParameter(2200.0,this->samplingRate,0.33);
}
PlaybackGain::~PlaybackGain() {
float PlaybackGain::AnalyseWave(float *samples, uint32_t size) {
if (size == 0) return 0.0;
}
double tmpL = 0.0;
double tmpR = 0.0;
void PlaybackGain::AnalyseWave() {
for (uint32_t i = 0; i < size * 2; i += 2) {
double tmpL2 = this->biquad1.ProcessSample(samples[i]);
tmpL += tmpL2 * tmpL2;
double tmpR2 = this->biquad2.ProcessSample(samples[i + 1]);
tmpR += tmpR2 * tmpR2;
}
float tmp = tmpL;
return tmp / (float) size;
}
void PlaybackGain::Process(float *samples, uint32_t size) {
@ -37,10 +49,12 @@ void PlaybackGain::Reset() {
}
void PlaybackGain::SetEnable(bool enable) {
if (this->enable != enable) {
this->enable = enable;
if (enable) {
Reset();
}
}
}
void PlaybackGain::SetMaxGainFactor(float maxGainFactor) {
@ -49,12 +63,14 @@ void PlaybackGain::SetMaxGainFactor(float maxGainFactor) {
void PlaybackGain::SetRatio(float ratio) {
this->ratio1 = ratio + 1.0f;
this->ratio2 = 1.0f / (ratio + 1.0f);
this->ratio2 = 1.0f / this->ratio1;
}
void PlaybackGain::SetSamplingRate(uint32_t samplingRate) {
if (this->samplingRate != samplingRate) {
this->samplingRate = samplingRate;
Reset();
}
}
void PlaybackGain::SetVolume(float volume) {

View File

@ -6,9 +6,8 @@
class PlaybackGain {
public:
PlaybackGain();
~PlaybackGain();
void AnalyseWave();
float AnalyseWave(float *samples, uint32_t size);
void Process(float *samples, uint32_t size);
void Reset();
void SetEnable(bool enable);

View File

@ -1,14 +1,19 @@
#include "VHE.h"
#include "../constants.h"
#include "VHE_L0.h"
#include "VHE_L1.h"
#include "VHE_L2.h"
#include "VHE_L3.h"
#include "VHE_L4.h"
VHE::VHE() {
enabled = false;
effectLevel = 0;
convSize = 0;
samplingRate = VIPER_DEFAULT_SAMPLING_RATE;
this->enabled = false;
this->effectLevel = 0;
this->convSize = 0;
this->samplingRate = VIPER_DEFAULT_SAMPLING_RATE;
bufA = new WaveBuffer(2, 0x1000);
bufB = new WaveBuffer(2, 0x1000);
this->bufA = new WaveBuffer(2, 0x1000);
this->bufB = new WaveBuffer(2, 0x1000);
Reset();
}
@ -34,28 +39,152 @@ uint32_t VHE::Process(float *source, float *dest, uint32_t frameSize) {
}
void VHE::Reset() {
// TODO
this->bufA->Reset();
this->bufB->Reset();
this->convLeft.Reset();
this->convLeft.UnloadKernel();
this->convRight.Reset();
this->convRight.UnloadKernel();
if (this->effectLevel > 4) {
VIPER_LOGD("Invalid effect level %d", this->effectLevel);
return;
}
if (this->samplingRate != 44100 && this->samplingRate != 48000) {
VIPER_LOGD("Invalid sampling rate %d", this->samplingRate);
return;
}
const float *arrLeft;
const float *arrRight;
uint32_t arrSize;
float someValue;
switch (this->effectLevel) {
case 0: {
switch (this->samplingRate) {
case 44100: {
arrLeft = VHE_L0_44100_L;
arrRight = VHE_L0_44100_R;
someValue = 2.94595;
break;
}
case 48000: {
arrLeft = VHE_L0_48000_L;
arrRight = VHE_L0_48000_R;
someValue = 2.94595;
break;
}
}
arrSize = 4096;
break;
}
case 1: {
switch (this->samplingRate) {
case 44100: {
arrLeft = VHE_L1_44100_L;
arrRight = VHE_L1_44100_R;
someValue = 0.944061;
break;
}
case 48000: {
arrLeft = VHE_L1_48000_L;
arrRight = VHE_L1_48000_R;
someValue = 0.944061;
break;
}
}
arrSize = 2047;
break;
}
case 2: {
switch (this->samplingRate) {
case 44100: {
arrLeft = VHE_L2_44100_L;
arrRight = VHE_L2_44100_R;
someValue = 1.544582;
break;
}
case 48000: {
arrLeft = VHE_L2_48000_L;
arrRight = VHE_L2_48000_R;
someValue = 1.531516;
break;
}
}
arrSize = 4096;
break;
}
case 3: {
switch (this->samplingRate) {
case 44100: {
arrLeft = VHE_L3_44100_L;
arrRight = VHE_L3_44100_R;
someValue = 1.584257;
break;
}
case 48000: {
arrLeft = VHE_L3_48000_L;
arrRight = VHE_L3_48000_R;
someValue = 1.567789;
break;
}
}
arrSize = 4096;
break;
}
case 4: {
switch (this->samplingRate) {
case 44100: {
arrLeft = VHE_L4_44100_L;
arrRight = VHE_L4_44100_R;
someValue = 1.466681;
break;
}
case 48000: {
arrLeft = VHE_L4_48000_L;
arrRight = VHE_L4_48000_R;
someValue = 1.487227;
break;
}
}
arrSize = 4096;
break;
}
}
this->convLeft.LoadKernel(arrLeft, someValue, arrSize, 4096);
this->convRight.LoadKernel(arrRight, someValue, arrSize, 4096);
this->convSize = 4096;
}
bool VHE::GetEnabled() {
return enabled;
}
void VHE::SetEffectLevel(uint32_t level) {
if (level < 5) {
this->effectLevel = level;
void VHE::SetEffectLevel(uint32_t effectLevel) {
if (this->effectLevel != effectLevel) {
if (effectLevel < 5) {
this->effectLevel = effectLevel;
Reset();
}
}
}
void VHE::SetEnable(bool enabled) {
if (this->enabled != enabled) {
this->enabled = enabled;
if (enabled) {
if (this->enabled) {
Reset();
}
}
}
void VHE::SetSamplingRate(uint32_t srate) {
this->samplingRate = srate;
void VHE::SetSamplingRate(uint32_t samplingRate) {
if (this->samplingRate != samplingRate) {
this->samplingRate = samplingRate;
Reset();
}
}

View File

@ -1,7 +1,7 @@
#pragma once
#include <cstdint>
#include "../utils/PConvSingle_F32.h"
#include "../utils/PConvSingle.h"
#include "../utils/WaveBuffer.h"
class VHE {
@ -12,15 +12,16 @@ public:
bool GetEnabled();
uint32_t Process(float *source, float *dest, uint32_t frameSize);
void Reset();
void SetEffectLevel(uint32_t level);
void SetEffectLevel(uint32_t effectLevel);
void SetEnable(bool enabled);
void SetSamplingRate(uint32_t srate);
void SetSamplingRate(uint32_t samplingRate);
PConvSingle_F32 convLeft, convRight;
private:
PConvSingle convLeft, convRight;
WaveBuffer *bufA, *bufB;
uint32_t samplingRate;
bool enabled;
int effectLevel;
uint32_t effectLevel;
uint32_t convSize;
};

1653
src/viper/effects/VHE_L0.h Normal file

File diff suppressed because it is too large Load Diff

829
src/viper/effects/VHE_L1.h Normal file
View File

@ -0,0 +1,829 @@
#pragma once
static const float VHE_L1_44100_L[] = {
0.000263, -0.000262, 0.000261, -0.000260, 0.000259, -0.000258, 0.000257, -0.000256, 0.000255, -0.000254,
0.000253, -0.000251, 0.000250, -0.000249, 0.000248, -0.000247, 0.000246, -0.000245, 0.000243, -0.000242,
0.000241, -0.000240, 0.000238, -0.000237, 0.000236, -0.000235, 0.000233, -0.000232, 0.000231, -0.000229,
0.000228, -0.000226, 0.000225, -0.000224, 0.000222, -0.000221, 0.000219, -0.000218, 0.000216, -0.000215,
0.000213, -0.000212, 0.000210, -0.000209, 0.000207, -0.000206, 0.000204, -0.000202, 0.000201, -0.000199,
0.000198, -0.000196, 0.000194, -0.000193, 0.000191, -0.000189, 0.000187, -0.000186, 0.000184, -0.000182,
0.000180, -0.000179, 0.000177, -0.000175, 0.000173, -0.000171, 0.000169, -0.000168, 0.000166, -0.000164,
0.000162, -0.000160, 0.000158, -0.000156, 0.000154, -0.000152, 0.000150, -0.000148, 0.000146, -0.000144,
0.000142, -0.000140, 0.000138, -0.000136, 0.000134, -0.000132, 0.000130, -0.000128, 0.000126, -0.000123,
0.000121, -0.000119, 0.000117, -0.000115, 0.000113, -0.000110, 0.000108, -0.000106, 0.000104, -0.000102,
0.000099, -0.000097, 0.000095, -0.000093, 0.000090, -0.000088, 0.000086, -0.000083, 0.000081, -0.000079,
0.000076, -0.000074, 0.000072, -0.000069, 0.000067, -0.000065, 0.000062, -0.000060, 0.000057, -0.000055,
0.000053, -0.000050, 0.000048, -0.000045, 0.000043, -0.000040, 0.000038, -0.000035, 0.000033, -0.000030,
0.000028, -0.000025, 0.000023, -0.000020, 0.000018, -0.000015, 0.000013, -0.000010, 0.000008, -0.000005,
0.000003, 0.000000, -0.000003, 0.000005, -0.000008, 0.000010, -0.000013, 0.000016, -0.000018, 0.000021,
-0.000023, 0.000026, -0.000029, 0.000031, -0.000034, 0.000037, -0.000039, 0.000042, -0.000044, 0.000047,
-0.000050, 0.000052, -0.000055, 0.000058, -0.000060, 0.000063, -0.000066, 0.000068, -0.000071, 0.000074,
-0.000077, 0.000079, -0.000082, 0.000085, -0.000087, 0.000090, -0.000093, 0.000095, -0.000098, 0.000101,
-0.000104, 0.000106, -0.000109, 0.000112, -0.000114, 0.000117, -0.000120, 0.000123, -0.000125, 0.000128,
-0.000131, 0.000133, -0.000136, 0.000139, -0.000142, 0.000144, -0.000147, 0.000150, -0.000152, 0.000155,
-0.000158, 0.000161, -0.000163, 0.000166, -0.000169, 0.000171, -0.000174, 0.000177, -0.000179, 0.000182,
-0.000185, 0.000187, -0.000190, 0.000193, -0.000195, 0.000198, -0.000201, 0.000204, -0.000206, 0.000209,
-0.000212, 0.000214, -0.000217, 0.000219, -0.000222, 0.000225, -0.000227, 0.000230, -0.000233, 0.000235,
-0.000238, 0.000240, -0.000243, 0.000246, -0.000248, 0.000251, -0.000253, 0.000256, -0.000258, 0.000261,
-0.000264, 0.000266, -0.000269, 0.000271, -0.000274, 0.000276, -0.000279, 0.000281, -0.000284, 0.000286,
-0.000289, 0.000291, -0.000294, 0.000296, -0.000298, 0.000301, -0.000303, 0.000306, -0.000308, 0.000310,
-0.000313, 0.000315, -0.000318, 0.000320, -0.000322, 0.000325, -0.000327, 0.000329, -0.000331, 0.000334,
-0.000336, 0.000338, -0.000341, 0.000343, -0.000345, 0.000347, -0.000349, 0.000352, -0.000354, 0.000356,
-0.000358, 0.000360, -0.000362, 0.000365, -0.000367, 0.000369, -0.000371, 0.000373, -0.000375, 0.000377,
-0.000379, 0.000381, -0.000383, 0.000385, -0.000387, 0.000389, -0.000391, 0.000393, -0.000395, 0.000397,
-0.000399, 0.000401, -0.000402, 0.000404, -0.000406, 0.000408, -0.000410, 0.000411, -0.000413, 0.000415,
-0.000417, 0.000418, -0.000420, 0.000422, -0.000423, 0.000425, -0.000427, 0.000428, -0.000430, 0.000432,
-0.000433, 0.000435, -0.000436, 0.000438, -0.000439, 0.000441, -0.000442, 0.000444, -0.000445, 0.000446,
-0.000448, 0.000449, -0.000451, 0.000452, -0.000453, 0.000454, -0.000456, 0.000457, -0.000458, 0.000459,
-0.000461, 0.000462, -0.000463, 0.000464, -0.000465, 0.000466, -0.000467, 0.000468, -0.000469, 0.000470,
-0.000471, 0.000472, -0.000473, 0.000474, -0.000475, 0.000476, -0.000477, 0.000478, -0.000479, 0.000479,
-0.000480, 0.000481, -0.000482, 0.000482, -0.000483, 0.000484, -0.000484, 0.000485, -0.000485, 0.000486,
-0.000487, 0.000487, -0.000488, 0.000488, -0.000489, 0.000489, -0.000489, 0.000490, -0.000490, 0.000490,
-0.000491, 0.000491, -0.000491, 0.000492, -0.000492, 0.000492, -0.000492, 0.000492, -0.000492, 0.000492,
-0.000493, 0.000493, -0.000493, 0.000493, -0.000493, 0.000493, -0.000492, 0.000492, -0.000492, 0.000492,
-0.000492, 0.000492, -0.000491, 0.000491, -0.000491, 0.000491, -0.000490, 0.000490, -0.000489, 0.000489,
-0.000489, 0.000488, -0.000488, 0.000487, -0.000487, 0.000486, -0.000485, 0.000485, -0.000484, 0.000483,
-0.000483, 0.000482, -0.000481, 0.000480, -0.000480, 0.000479, -0.000478, 0.000477, -0.000476, 0.000475,
-0.000474, 0.000473, -0.000472, 0.000471, -0.000470, 0.000469, -0.000468, 0.000467, -0.000465, 0.000464,
-0.000463, 0.000462, -0.000460, 0.000459, -0.000458, 0.000456, -0.000455, 0.000453, -0.000452, 0.000450,
-0.000449, 0.000447, -0.000446, 0.000444, -0.000442, 0.000441, -0.000439, 0.000437, -0.000435, 0.000434,
-0.000432, 0.000430, -0.000428, 0.000426, -0.000424, 0.000422, -0.000420, 0.000418, -0.000416, 0.000414,
-0.000412, 0.000410, -0.000408, 0.000406, -0.000403, 0.000401, -0.000399, 0.000397, -0.000394, 0.000392,
-0.000389, 0.000387, -0.000385, 0.000382, -0.000380, 0.000377, -0.000375, 0.000372, -0.000369, 0.000367,
-0.000364, 0.000361, -0.000359, 0.000356, -0.000353, 0.000350, -0.000347, 0.000344, -0.000342, 0.000339,
-0.000336, 0.000333, -0.000330, 0.000327, -0.000324, 0.000320, -0.000317, 0.000314, -0.000311, 0.000308,
-0.000304, 0.000301, -0.000298, 0.000295, -0.000291, 0.000288, -0.000284, 0.000281, -0.000278, 0.000274,
-0.000271, 0.000267, -0.000263, 0.000260, -0.000256, 0.000252, -0.000249, 0.000245, -0.000241, 0.000238,
-0.000234, 0.000230, -0.000226, 0.000222, -0.000218, 0.000214, -0.000210, 0.000206, -0.000202, 0.000198,
-0.000194, 0.000190, -0.000186, 0.000182, -0.000178, 0.000173, -0.000169, 0.000165, -0.000161, 0.000156,
-0.000152, 0.000148, -0.000143, 0.000139, -0.000134, 0.000130, -0.000126, 0.000121, -0.000117, 0.000112,
-0.000107, 0.000103, -0.000098, 0.000093, -0.000089, 0.000084, -0.000079, 0.000074, -0.000070, 0.000065,
-0.000060, 0.000055, -0.000050, 0.000045, -0.000040, 0.000035, -0.000030, 0.000025, -0.000020, 0.000015,
-0.000010, 0.000005, 0.000000, -0.000005, 0.000010, -0.000016, 0.000021, -0.000026, 0.000031, -0.000037,
0.000042, -0.000047, 0.000053, -0.000058, 0.000063, -0.000069, 0.000074, -0.000080, 0.000085, -0.000091,
0.000096, -0.000102, 0.000107, -0.000113, 0.000119, -0.000124, 0.000130, -0.000135, 0.000141, -0.000147,
0.000153, -0.000158, 0.000164, -0.000170, 0.000176, -0.000182, 0.000188, -0.000193, 0.000199, -0.000205,
0.000211, -0.000217, 0.000223, -0.000229, 0.000235, -0.000241, 0.000247, -0.000253, 0.000259, -0.000265,
0.000272, -0.000278, 0.000284, -0.000290, 0.000296, -0.000302, 0.000309, -0.000315, 0.000321, -0.000327,
0.000334, -0.000340, 0.000346, -0.000353, 0.000359, -0.000365, 0.000372, -0.000378, 0.000385, -0.000391,
0.000397, -0.000404, 0.000410, -0.000417, 0.000423, -0.000430, 0.000436, -0.000443, 0.000449, -0.000456,
0.000463, -0.000469, 0.000476, -0.000482, 0.000489, -0.000496, 0.000502, -0.000509, 0.000516, -0.000522,
0.000529, -0.000536, 0.000542, -0.000549, 0.000556, -0.000563, 0.000569, -0.000576, 0.000583, -0.000590,
0.000597, -0.000603, 0.000610, -0.000617, 0.000624, -0.000631, 0.000638, -0.000644, 0.000651, -0.000658,
0.000665, -0.000672, 0.000679, -0.000686, 0.000693, -0.000699, 0.000706, -0.000713, 0.000720, -0.000727,
0.000734, -0.000741, 0.000748, -0.000755, 0.000762, -0.000740, 0.000791, -0.000775, 0.000794, -0.000796,
0.000804, -0.000812, 0.000817, -0.000826, 0.000831, -0.000840, 0.000845, -0.000854, 0.000859, -0.000868,
0.000873, -0.000882, 0.000887, -0.000897, 0.000901, -0.000911, 0.000916, -0.000925, 0.000930, -0.000939,
0.000944, -0.000953, 0.000958, -0.000967, 0.000972, -0.000981, 0.000986, -0.000995, 0.001000, -0.001009,
0.001015, -0.001023, 0.001029, -0.001037, 0.001043, -0.001051, 0.001057, -0.001065, 0.001071, -0.001079,
0.001085, -0.001093, 0.001099, -0.001107, 0.001113, -0.001121, 0.001127, -0.001135, 0.001141, -0.001149,
0.001155, -0.001163, 0.001169, -0.001177, 0.001183, -0.001190, 0.001197, -0.001204, 0.001211, -0.001218,
0.001224, -0.001232, 0.001238, -0.001246, 0.001252, -0.001259, 0.001266, -0.001273, 0.001279, -0.001287,
0.001293, -0.001300, 0.001307, -0.001314, 0.001320, -0.001327, 0.001334, -0.001341, 0.001347, -0.001354,
0.001361, -0.001368, 0.001374, -0.001381, 0.001387, -0.001394, 0.001401, -0.001408, 0.001414, -0.001421,
0.001427, -0.001434, 0.001440, -0.001447, 0.001453, -0.001460, 0.001466, -0.001473, 0.001479, -0.001486,
0.001492, -0.001499, 0.001505, -0.001512, 0.001518, -0.001525, 0.001531, -0.001537, 0.001543, -0.001550,
0.001556, -0.001562, 0.001568, -0.001575, 0.001581, -0.001587, 0.001593, -0.001600, 0.001606, -0.001612,
0.001618, -0.001624, 0.001630, -0.001636, 0.001642, -0.001648, 0.001654, -0.001660, 0.001666, -0.001672,
0.001678, -0.001684, 0.001690, -0.001696, 0.001701, -0.001707, 0.001713, -0.001719, 0.001724, -0.001730,
0.001736, -0.001741, 0.001747, -0.001753, 0.001758, -0.001764, 0.001769, -0.001775, 0.001780, -0.001786,
0.001791, -0.001797, 0.001802, -0.001808, 0.001813, -0.001818, 0.001824, -0.001829, 0.001834, -0.001840,
0.001845, -0.001850, 0.001855, -0.001860, 0.001865, -0.001870, 0.001875, -0.001881, 0.001885, -0.001891,
0.001895, -0.001900, 0.001905, -0.001910, 0.001915, -0.001920, 0.001925, -0.001929, 0.001934, -0.001939,
0.001943, -0.001948, 0.001953, -0.001957, 0.001962, -0.001966, 0.001971, -0.001975, 0.001980, -0.001984,
0.001989, -0.001993, 0.001997, -0.002002, 0.002006, -0.002010, 0.002014, -0.002018, 0.002023, -0.002027,
0.002031, -0.002035, 0.002039, -0.002043, 0.002047, -0.002051, 0.002054, -0.002058, 0.002062, -0.002066,
0.002070, -0.002073, 0.002077, -0.002081, 0.002084, -0.002088, 0.002092, -0.002095, 0.002099, -0.002102,
0.002106, -0.002109, 0.002112, -0.002116, 0.002119, -0.002122, 0.002125, -0.002129, 0.002132, -0.002135,
0.002138, -0.002141, 0.002144, -0.002147, 0.002150, -0.002153, 0.002156, -0.002159, 0.002161, -0.002164,
0.002167, -0.002170, 0.002172, -0.002175, 0.002178, -0.002180, 0.002183, -0.002185, 0.002188, -0.002190,
0.002192, -0.002195, 0.002197, -0.002199, 0.002202, -0.002204, 0.002206, -0.002208, 0.002210, -0.002212,
0.002214, -0.002216, 0.002218, -0.002220, 0.002222, -0.002224, 0.002226, -0.002227, 0.002229, -0.002231,
0.002232, -0.002234, 0.002236, -0.002237, 0.002239, -0.002240, 0.002242, -0.002243, 0.002244, -0.002246,
0.002247, -0.002248, 0.002249, -0.002251, 0.002252, -0.002253, 0.002254, -0.002255, 0.002256, -0.002257,
0.002258, -0.002258, 0.002259, -0.002260, 0.002261, -0.002262, 0.002262, -0.002263, 0.002263, -0.002264,
0.002265, -0.002265, 0.002265, -0.002266, 0.002266, -0.002266, 0.002267, -0.002267, 0.002267, -0.002267,
0.002268, -0.002268, 0.002268, 0.997732, 0.002268, -0.002268, 0.002268, -0.002267, 0.002267, -0.002267,
0.002267, -0.002266, 0.002266, -0.002266, 0.002265, -0.002265, 0.002264, -0.002264, 0.002263, -0.002263,
0.002262, -0.002262, 0.002261, -0.002260, 0.002259, -0.002258, 0.002258, -0.002257, 0.002256, -0.002255,
0.002254, -0.002253, 0.002252, -0.002250, 0.002249, -0.002248, 0.002247, -0.002246, 0.002244, -0.002243,
0.002242, -0.002240, 0.002239, -0.002237, 0.002236, -0.002234, 0.002232, -0.002231, 0.002229, -0.002227,
0.002225, -0.002224, 0.002222, -0.002220, 0.002218, -0.002216, 0.002214, -0.002212, 0.002210, -0.002208,
0.002206, -0.002204, 0.002201, -0.002199, 0.002197, -0.002195, 0.002192, -0.002190, 0.002187, -0.002185,
0.002182, -0.002180, 0.002177, -0.002175, 0.002172, -0.002169, 0.002167, -0.002164, 0.002161, -0.002158,
0.002156, -0.002153, 0.002150, -0.002147, 0.002144, -0.002141, 0.002138, -0.002135, 0.002132, -0.002128,
0.002125, -0.002122, 0.002119, -0.002115, 0.002112, -0.002109, 0.002105, -0.002102, 0.002098, -0.002095,
0.002091, -0.002088, 0.002084, -0.002081, 0.002077, -0.002073, 0.002069, -0.002066, 0.002062, -0.002058,
0.002054, -0.002050, 0.002046, -0.002042, 0.002039, -0.002034, 0.002030, -0.002026, 0.002022, -0.002018,
0.002014, -0.002010, 0.002005, -0.002001, 0.001997, -0.001993, 0.001988, -0.001984, 0.001979, -0.001975,
0.001971, -0.001966, 0.001962, -0.001957, 0.001952, -0.001948, 0.001943, -0.001938, 0.001934, -0.001929,
0.001924, -0.001919, 0.001915, -0.001910, 0.001905, -0.001900, 0.001895, -0.001890, 0.001885, -0.001880,
0.001875, -0.001870, 0.001865, -0.001860, 0.001855, -0.001850, 0.001844, -0.001839, 0.001834, -0.001829,
0.001823, -0.001818, 0.001813, -0.001807, 0.001802, -0.001797, 0.001791, -0.001786, 0.001780, -0.001775,
0.001769, -0.001764, 0.001758, -0.001752, 0.001747, -0.001741, 0.001735, -0.001730, 0.001724, -0.001718,
0.001713, -0.001707, 0.001701, -0.001695, 0.001689, -0.001683, 0.001677, -0.001672, 0.001666, -0.001660,
0.001654, -0.001648, 0.001642, -0.001636, 0.001630, -0.001624, 0.001618, -0.001611, 0.001605, -0.001599,
0.001593, -0.001587, 0.001581, -0.001574, 0.001568, -0.001562, 0.001556, -0.001549, 0.001543, -0.001537,
0.001530, -0.001524, 0.001518, -0.001511, 0.001505, -0.001498, 0.001492, -0.001486, 0.001479, -0.001473,
0.001466, -0.001460, 0.001453, -0.001447, 0.001440, -0.001433, 0.001427, -0.001420, 0.001414, -0.001407,
0.001400, -0.001394, 0.001387, -0.001380, 0.001374, -0.001367, 0.001360, -0.001354, 0.001347, -0.001340,
0.001333, -0.001327, 0.001320, -0.001313, 0.001306, -0.001300, 0.001293, -0.001286, 0.001279, -0.001272,
0.001265, -0.001259, 0.001252, -0.001245, 0.001238, -0.001231, 0.001224, -0.001217, 0.001210, -0.001203,
0.001197, -0.001190, 0.001183, -0.001176, 0.001169, -0.001162, 0.001155, -0.001148, 0.001141, -0.001134,
0.001127, -0.001120, 0.001113, -0.001106, 0.001099, -0.001092, 0.001085, -0.001078, 0.001071, -0.001064,
0.001057, -0.001050, 0.001043, -0.001036, 0.001029, -0.001022, 0.001015, -0.001008, 0.001001, -0.000994,
0.000987, -0.000979, 0.000972, -0.000965, 0.000958, -0.000951, 0.000944, -0.000937, 0.000930, -0.000923,
0.000916, -0.000909, 0.000902, -0.000895, 0.000888, -0.000881, 0.000874, -0.000867, 0.000860, -0.000853,
0.000846, -0.000839, 0.000832, -0.000825, 0.000818, -0.000811, 0.000804, -0.000797, 0.000790, -0.000783,
0.000776, -0.000769, 0.000762, -0.000755, 0.000748, -0.000741, 0.000734, -0.000727, 0.000720, -0.000713,
0.000706, -0.000699, 0.000692, -0.000685, 0.000678, -0.000671, 0.000664, -0.000658, 0.000651, -0.000644,
0.000637, -0.000630, 0.000623, -0.000616, 0.000610, -0.000603, 0.000596, -0.000589, 0.000582, -0.000576,
0.000569, -0.000562, 0.000555, -0.000549, 0.000542, -0.000535, 0.000529, -0.000522, 0.000515, -0.000508,
0.000502, -0.000495, 0.000488, -0.000482, 0.000475, -0.000469, 0.000462, -0.000455, 0.000449, -0.000442,
0.000436, -0.000429, 0.000423, -0.000416, 0.000410, -0.000403, 0.000397, -0.000391, 0.000384, -0.000378,
0.000371, -0.000365, 0.000358, -0.000352, 0.000346, -0.000339, 0.000333, -0.000327, 0.000321, -0.000314,
0.000308, -0.000302, 0.000296, -0.000290, 0.000283, -0.000277, 0.000271, -0.000265, 0.000259, -0.000253,
0.000247, -0.000241, 0.000235, -0.000229, 0.000223, -0.000217, 0.000211, -0.000205, 0.000199, -0.000193,
0.000187, -0.000181, 0.000175, -0.000170, 0.000164, -0.000158, 0.000152, -0.000146, 0.000141, -0.000135,
0.000129, -0.000124, 0.000118, -0.000112, 0.000107, -0.000101, 0.000096, -0.000090, 0.000085, -0.000079,
0.000074, -0.000068, 0.000063, -0.000057, 0.000052, -0.000047, 0.000041, -0.000036, 0.000031, -0.000025,
0.000020, -0.000015, 0.000010, -0.000005, -0.000000, 0.000006, -0.000011, 0.000016, -0.000021, 0.000026,
-0.000031, 0.000036, -0.000041, 0.000046, -0.000051, 0.000056, -0.000061, 0.000065, -0.000070, 0.000075,
-0.000080, 0.000085, -0.000089, 0.000094, -0.000099, 0.000103, -0.000108, 0.000112, -0.000117, 0.000122,
-0.000126, 0.000131, -0.000135, 0.000139, -0.000144, 0.000148, -0.000153, 0.000157, -0.000161, 0.000165,
-0.000170, 0.000174, -0.000178, 0.000182, -0.000187, 0.000191, -0.000195, 0.000199, -0.000203, 0.000207,
-0.000211, 0.000215, -0.000219, 0.000223, -0.000227, 0.000230, -0.000234, 0.000238, -0.000242, 0.000246,
-0.000249, 0.000253, -0.000257, 0.000260, -0.000264, 0.000267, -0.000271, 0.000275, -0.000278, 0.000281,
-0.000285, 0.000288, -0.000292, 0.000295, -0.000298, 0.000302, -0.000305, 0.000308, -0.000311, 0.000315,
-0.000318, 0.000321, -0.000324, 0.000327, -0.000330, 0.000333, -0.000336, 0.000339, -0.000342, 0.000345,
-0.000348, 0.000351, -0.000353, 0.000356, -0.000359, 0.000362, -0.000364, 0.000367, -0.000370, 0.000372,
-0.000375, 0.000377, -0.000380, 0.000383, -0.000385, 0.000387, -0.000390, 0.000392, -0.000395, 0.000397,
-0.000399, 0.000402, -0.000404, 0.000406, -0.000408, 0.000410, -0.000412, 0.000415, -0.000417, 0.000419,
-0.000421, 0.000423, -0.000425, 0.000427, -0.000428, 0.000430, -0.000432, 0.000434, -0.000436, 0.000438,
-0.000439, 0.000441, -0.000443, 0.000444, -0.000446, 0.000448, -0.000449, 0.000451, -0.000452, 0.000454,
-0.000455, 0.000456, -0.000458, 0.000459, -0.000461, 0.000462, -0.000463, 0.000464, -0.000466, 0.000467,
-0.000468, 0.000469, -0.000470, 0.000471, -0.000472, 0.000473, -0.000474, 0.000475, -0.000476, 0.000477,
-0.000478, 0.000479, -0.000480, 0.000481, -0.000481, 0.000482, -0.000483, 0.000484, -0.000484, 0.000485,
-0.000486, 0.000486, -0.000487, 0.000487, -0.000488, 0.000488, -0.000489, 0.000489, -0.000490, 0.000490,
-0.000490, 0.000491, -0.000491, 0.000491, -0.000492, 0.000492, -0.000492, 0.000492, -0.000492, 0.000493,
-0.000493, 0.000493, -0.000493, 0.000493, -0.000493, 0.000493, -0.000493, 0.000493, -0.000493, 0.000492,
-0.000492, 0.000492, -0.000492, 0.000492, -0.000491, 0.000491, -0.000491, 0.000491, -0.000490, 0.000490,
-0.000490, 0.000489, -0.000489, 0.000488, -0.000488, 0.000487, -0.000487, 0.000486, -0.000486, 0.000485,
-0.000484, 0.000484, -0.000483, 0.000482, -0.000482, 0.000481, -0.000480, 0.000479, -0.000479, 0.000478,
-0.000477, 0.000476, -0.000475, 0.000474, -0.000473, 0.000472, -0.000471, 0.000470, -0.000469, 0.000468,
-0.000467, 0.000466, -0.000465, 0.000464, -0.000463, 0.000462, -0.000461, 0.000459, -0.000458, 0.000457,
-0.000456, 0.000454, -0.000453, 0.000452, -0.000451, 0.000449, -0.000448, 0.000446, -0.000445, 0.000444,
-0.000442, 0.000441, -0.000439, 0.000438, -0.000436, 0.000435, -0.000433, 0.000432, 0.110076, 0.169209,
0.087369, 0.043668, 0.018363, 0.005838, -0.002260, -0.005307, -0.008171, -0.008347, -0.009621, -0.008936,
-0.009730, -0.008796, -0.009446, -0.008449, -0.009058, -0.008054, -0.008653, -0.007659, -0.008255, -0.007277,
-0.007874, -0.006911, -0.007509, -0.006564, -0.007162, -0.006232, -0.006831, -0.005918, -0.006516, -0.005618,
-0.006216, -0.005333, -0.005929, -0.005063, -0.005657, -0.004805, -0.005397, -0.004560, -0.005150, -0.004327,
-0.004914, -0.004106, -0.004690, -0.003896, -0.004476, -0.003696, -0.004272, -0.003506, -0.004077, -0.003325,
-0.003892, -0.003154, -0.003715, -0.002991, -0.003547, -0.002836, -0.003386, -0.002688, -0.003233, -0.002549,
-0.003087, -0.002416, -0.002948, -0.002290, -0.002816, -0.002170, -0.002689, -0.002056, -0.002568, -0.001948,
-0.002453, -0.001846, -0.002343, -0.001748, -0.002238, -0.001656, -0.002138, -0.001568, -0.002043, -0.001485,
-0.001951, -0.001406, -0.001864, -0.001332, -0.001781, -0.001261, -0.001702, -0.001194, -0.001626, -0.001130,
-0.001554, -0.001070, -0.001484, -0.001013, -0.001418, -0.000958, -0.001355, -0.000907, -0.001294, -0.000859,
-0.001237, -0.000813, -0.001181, -0.000769, -0.001128, -0.000728, -0.001078, -0.000690, -0.001029, -0.000653,
-0.000983, -0.000618, -0.000938, -0.000586, -0.000896, -0.000555, -0.000855, -0.000526, -0.000816, -0.000498,
-0.000779, -0.000473, -0.000743, -0.000448, -0.000708, -0.000425, -0.000675, -0.000404, -0.000643, -0.000384,
-0.000613, -0.000365, -0.000584, -0.000347, -0.000556, -0.000330, -0.000529, -0.000315, -0.000503, -0.000300,
-0.000478, -0.000286, -0.000454, -0.000274, -0.000431, -0.000262, -0.000408, -0.000251, -0.000387, -0.000241,
-0.000366, -0.000231, -0.000347, -0.000222, -0.000327, -0.000214, -0.000309, -0.000206, -0.000291, -0.000200,
-0.000274, -0.000193, -0.000257, -0.000188, -0.000241, -0.000182, -0.000226, -0.000177, -0.000211, -0.000173,
-0.000196, -0.000169, -0.000182, -0.000166, -0.000168, -0.000163, -0.000155, -0.000160, -0.000143, -0.000158,
-0.000130, -0.000156, -0.000118, -0.000154, -0.000107, -0.000153, -0.000095, -0.000151, -0.000084, -0.000151,
-0.000074, -0.000150, -0.000063, -0.000150, -0.000053, -0.000150, -0.000044, -0.000150, -0.000034, -0.000150,
-0.000025, -0.000150, -0.000016, -0.000151, -0.000007, -0.000152, 0.000001, -0.000153, 0.000010, -0.000154,
0.000018, -0.000155, 0.000026, -0.000156, 0.000033, -0.000158, 0.000041, -0.000159, 0.000048, -0.000161,
0.000055, -0.000163, 0.000062, -0.000165, 0.000069, -0.000167, 0.000076, -0.000169, 0.000082, -0.000171,
0.000089, -0.000173, 0.000095, -0.000175, 0.000101, -0.000177, 0.000107, -0.000180, 0.000112, -0.000182,
0.000118, -0.000184, 0.000124, -0.000187, 0.000129, -0.000189, 0.000134, -0.000192, 0.000139, -0.000194,
0.000145, -0.000197, 0.000149, -0.000199, 0.000154, -0.000202, 0.000159, -0.000204, 0.000164, -0.000206,
0.000168, -0.000209, 0.000172, -0.000211, 0.000177, -0.000214, 0.000181, -0.000216, 0.000185, -0.000219,
0.000189, -0.000221, 0.000193, -0.000224, 0.000197, -0.000226, 0.000201, -0.000228, 0.000204, -0.000231,
0.000208, -0.000233, 0.000211, -0.000235, 0.000215, -0.000238, 0.000218, -0.000240, 0.000221, -0.000242,
0.000224, -0.000244, 0.000227, -0.000246, 0.000230, -0.000249, 0.000233, -0.000251, 0.000236, -0.000253,
0.000239, -0.000255, 0.000242, -0.000257, 0.000244, -0.000258, 0.000247, -0.000260, 0.000249, -0.000262,
0.000251, -0.000264, 0.000254, -0.000266, 0.000256, -0.000267, 0.000258
};
static const float VHE_L1_44100_R[] = {
0.000263, -0.000262, 0.000261, -0.000260, 0.000259, -0.000258, 0.000257, -0.000256, 0.000255, -0.000254,
0.000253, -0.000251, 0.000250, -0.000249, 0.000248, -0.000247, 0.000246, -0.000245, 0.000243, -0.000242,
0.000241, -0.000240, 0.000238, -0.000237, 0.000236, -0.000235, 0.000233, -0.000232, 0.000231, -0.000229,
0.000228, -0.000226, 0.000225, -0.000224, 0.000222, -0.000221, 0.000219, -0.000218, 0.000216, -0.000215,
0.000213, -0.000212, 0.000210, -0.000209, 0.000207, -0.000206, 0.000204, -0.000202, 0.000201, -0.000199,
0.000198, -0.000196, 0.000194, -0.000193, 0.000191, -0.000189, 0.000187, -0.000186, 0.000184, -0.000182,
0.000180, -0.000179, 0.000177, -0.000175, 0.000173, -0.000171, 0.000169, -0.000168, 0.000166, -0.000164,
0.000162, -0.000160, 0.000158, -0.000156, 0.000154, -0.000152, 0.000150, -0.000148, 0.000146, -0.000144,
0.000142, -0.000140, 0.000138, -0.000136, 0.000134, -0.000132, 0.000130, -0.000128, 0.000126, -0.000123,
0.000121, -0.000119, 0.000117, -0.000115, 0.000113, -0.000110, 0.000108, -0.000106, 0.000104, -0.000102,
0.000099, -0.000097, 0.000095, -0.000093, 0.000090, -0.000088, 0.000086, -0.000083, 0.000081, -0.000079,
0.000076, -0.000074, 0.000072, -0.000069, 0.000067, -0.000065, 0.000062, -0.000060, 0.000057, -0.000055,
0.000053, -0.000050, 0.000048, -0.000045, 0.000043, -0.000040, 0.000038, -0.000035, 0.000033, -0.000030,
0.000028, -0.000025, 0.000023, -0.000020, 0.000018, -0.000015, 0.000013, -0.000010, 0.000008, -0.000005,
0.000003, 0.000000, -0.000003, 0.000005, -0.000008, 0.000010, -0.000013, 0.000016, -0.000018, 0.000021,
-0.000023, 0.000026, -0.000029, 0.000031, -0.000034, 0.000037, -0.000039, 0.000042, -0.000044, 0.000047,
-0.000050, 0.000052, -0.000055, 0.000058, -0.000060, 0.000063, -0.000066, 0.000068, -0.000071, 0.000074,
-0.000077, 0.000079, -0.000082, 0.000085, -0.000087, 0.000090, -0.000093, 0.000095, -0.000098, 0.000101,
-0.000104, 0.000106, -0.000109, 0.000112, -0.000114, 0.000117, -0.000120, 0.000123, -0.000125, 0.000128,
-0.000131, 0.000133, -0.000136, 0.000139, -0.000142, 0.000144, -0.000147, 0.000150, -0.000152, 0.000155,
-0.000158, 0.000161, -0.000163, 0.000166, -0.000169, 0.000171, -0.000174, 0.000177, -0.000179, 0.000182,
-0.000185, 0.000187, -0.000190, 0.000193, -0.000195, 0.000198, -0.000201, 0.000204, -0.000206, 0.000209,
-0.000212, 0.000214, -0.000217, 0.000219, -0.000222, 0.000225, -0.000227, 0.000230, -0.000233, 0.000235,
-0.000238, 0.000240, -0.000243, 0.000246, -0.000248, 0.000251, -0.000253, 0.000256, -0.000258, 0.000261,
-0.000264, 0.000266, -0.000269, 0.000271, -0.000274, 0.000276, -0.000279, 0.000281, -0.000284, 0.000286,
-0.000289, 0.000291, -0.000294, 0.000296, -0.000298, 0.000301, -0.000303, 0.000306, -0.000308, 0.000310,
-0.000313, 0.000315, -0.000318, 0.000320, -0.000322, 0.000325, -0.000327, 0.000329, -0.000331, 0.000334,
-0.000336, 0.000338, -0.000341, 0.000343, -0.000345, 0.000347, -0.000349, 0.000352, -0.000354, 0.000356,
-0.000358, 0.000360, -0.000362, 0.000365, -0.000367, 0.000369, -0.000371, 0.000373, -0.000375, 0.000377,
-0.000379, 0.000381, -0.000383, 0.000385, -0.000387, 0.000389, -0.000391, 0.000393, -0.000395, 0.000397,
-0.000399, 0.000401, -0.000402, 0.000404, -0.000406, 0.000408, -0.000410, 0.000411, -0.000413, 0.000415,
-0.000417, 0.000418, -0.000420, 0.000422, -0.000423, 0.000425, -0.000427, 0.000428, -0.000430, 0.000432,
-0.000433, 0.000435, -0.000436, 0.000438, -0.000439, 0.000441, -0.000442, 0.000444, -0.000445, 0.000446,
-0.000448, 0.000449, -0.000451, 0.000452, -0.000453, 0.000454, -0.000456, 0.000457, -0.000458, 0.000459,
-0.000461, 0.000462, -0.000463, 0.000464, -0.000465, 0.000466, -0.000467, 0.000468, -0.000469, 0.000470,
-0.000471, 0.000472, -0.000473, 0.000474, -0.000475, 0.000476, -0.000477, 0.000478, -0.000479, 0.000479,
-0.000480, 0.000481, -0.000482, 0.000482, -0.000483, 0.000484, -0.000484, 0.000485, -0.000485, 0.000486,
-0.000487, 0.000487, -0.000488, 0.000488, -0.000489, 0.000489, -0.000489, 0.000490, -0.000490, 0.000490,
-0.000491, 0.000491, -0.000491, 0.000492, -0.000492, 0.000492, -0.000492, 0.000492, -0.000492, 0.000492,
-0.000493, 0.000493, -0.000493, 0.000493, -0.000493, 0.000493, -0.000492, 0.000492, -0.000492, 0.000492,
-0.000492, 0.000492, -0.000491, 0.000491, -0.000491, 0.000491, -0.000490, 0.000490, -0.000489, 0.000489,
-0.000489, 0.000488, -0.000488, 0.000487, -0.000487, 0.000486, -0.000485, 0.000485, -0.000484, 0.000483,
-0.000483, 0.000482, -0.000481, 0.000480, -0.000480, 0.000479, -0.000478, 0.000477, -0.000476, 0.000475,
-0.000474, 0.000473, -0.000472, 0.000471, -0.000470, 0.000469, -0.000468, 0.000467, -0.000465, 0.000464,
-0.000463, 0.000462, -0.000460, 0.000459, -0.000458, 0.000456, -0.000455, 0.000453, -0.000452, 0.000450,
-0.000449, 0.000447, -0.000446, 0.000444, -0.000442, 0.000441, -0.000439, 0.000437, -0.000435, 0.000434,
-0.000432, 0.000430, -0.000428, 0.000426, -0.000424, 0.000422, -0.000420, 0.000418, -0.000416, 0.000414,
-0.000412, 0.000410, -0.000408, 0.000406, -0.000403, 0.000401, -0.000399, 0.000397, -0.000394, 0.000392,
-0.000389, 0.000387, -0.000385, 0.000382, -0.000380, 0.000377, -0.000375, 0.000372, -0.000369, 0.000367,
-0.000364, 0.000361, -0.000359, 0.000356, -0.000353, 0.000350, -0.000347, 0.000344, -0.000342, 0.000339,
-0.000336, 0.000333, -0.000330, 0.000327, -0.000324, 0.000320, -0.000317, 0.000314, -0.000311, 0.000308,
-0.000304, 0.000301, -0.000298, 0.000295, -0.000291, 0.000288, -0.000284, 0.000281, -0.000278, 0.000274,
-0.000271, 0.000267, -0.000263, 0.000260, -0.000256, 0.000252, -0.000249, 0.000245, -0.000241, 0.000238,
-0.000234, 0.000230, -0.000226, 0.000222, -0.000218, 0.000214, -0.000210, 0.000206, -0.000202, 0.000198,
-0.000194, 0.000190, -0.000186, 0.000182, -0.000178, 0.000173, -0.000169, 0.000165, -0.000161, 0.000156,
-0.000152, 0.000148, -0.000143, 0.000139, -0.000134, 0.000130, -0.000126, 0.000121, -0.000117, 0.000112,
-0.000107, 0.000103, -0.000098, 0.000093, -0.000089, 0.000084, -0.000079, 0.000074, -0.000070, 0.000065,
-0.000060, 0.000055, -0.000050, 0.000045, -0.000040, 0.000035, -0.000030, 0.000025, -0.000020, 0.000015,
-0.000010, 0.000005, 0.000000, -0.000005, 0.000010, -0.000016, 0.000021, -0.000026, 0.000031, -0.000037,
0.000042, -0.000047, 0.000053, -0.000058, 0.000063, -0.000069, 0.000074, -0.000080, 0.000085, -0.000091,
0.000096, -0.000102, 0.000107, -0.000113, 0.000119, -0.000124, 0.000130, -0.000135, 0.000141, -0.000147,
0.000153, -0.000158, 0.000164, -0.000170, 0.000176, -0.000182, 0.000188, -0.000193, 0.000199, -0.000205,
0.000211, -0.000217, 0.000223, -0.000229, 0.000235, -0.000241, 0.000247, -0.000253, 0.000259, -0.000265,
0.000272, -0.000278, 0.000284, -0.000290, 0.000296, -0.000302, 0.000309, -0.000315, 0.000321, -0.000327,
0.000334, -0.000340, 0.000346, -0.000353, 0.000359, -0.000365, 0.000372, -0.000378, 0.000385, -0.000391,
0.000397, -0.000404, 0.000410, -0.000417, 0.000423, -0.000430, 0.000436, -0.000443, 0.000449, -0.000456,
0.000463, -0.000469, 0.000476, -0.000482, 0.000489, -0.000496, 0.000502, -0.000509, 0.000516, -0.000522,
0.000529, -0.000536, 0.000542, -0.000549, 0.000556, -0.000563, 0.000569, -0.000576, 0.000583, -0.000590,
0.000597, -0.000603, 0.000610, -0.000617, 0.000624, -0.000631, 0.000638, -0.000644, 0.000651, -0.000658,
0.000665, -0.000672, 0.000679, -0.000686, 0.000693, -0.000699, 0.000706, -0.000713, 0.000720, -0.000727,
0.000734, -0.000741, 0.000748, -0.000755, 0.000762, -0.000798, 0.000761, -0.000791, 0.000786, -0.000798,
0.000804, -0.000810, 0.000819, -0.000824, 0.000833, -0.000838, 0.000847, -0.000852, 0.000861, -0.000866,
0.000875, -0.000880, 0.000889, -0.000894, 0.000903, -0.000908, 0.000917, -0.000922, 0.000931, -0.000937,
0.000945, -0.000951, 0.000960, -0.000965, 0.000974, -0.000979, 0.000988, -0.000993, 0.001002, -0.001007,
0.001016, -0.001021, 0.001030, -0.001035, 0.001044, -0.001050, 0.001058, -0.001064, 0.001072, -0.001078,
0.001086, -0.001092, 0.001100, -0.001106, 0.001114, -0.001120, 0.001128, -0.001134, 0.001142, -0.001148,
0.001156, -0.001162, 0.001169, -0.001176, 0.001183, -0.001189, 0.001197, -0.001203, 0.001211, -0.001217,
0.001225, -0.001231, 0.001239, -0.001245, 0.001252, -0.001259, 0.001266, -0.001272, 0.001280, -0.001286,
0.001293, -0.001300, 0.001307, -0.001313, 0.001320, -0.001327, 0.001334, -0.001340, 0.001347, -0.001354,
0.001361, -0.001367, 0.001374, -0.001380, 0.001387, -0.001394, 0.001401, -0.001407, 0.001414, -0.001420,
0.001427, -0.001433, 0.001440, -0.001447, 0.001453, -0.001460, 0.001466, -0.001473, 0.001479, -0.001486,
0.001492, -0.001498, 0.001505, -0.001511, 0.001518, -0.001524, 0.001531, -0.001537, 0.001543, -0.001549,
0.001556, -0.001562, 0.001568, -0.001574, 0.001581, -0.001587, 0.001593, -0.001599, 0.001605, -0.001611,
0.001618, -0.001624, 0.001630, -0.001636, 0.001642, -0.001648, 0.001654, -0.001660, 0.001666, -0.001672,
0.001678, -0.001683, 0.001689, -0.001695, 0.001701, -0.001707, 0.001713, -0.001718, 0.001724, -0.001730,
0.001735, -0.001741, 0.001747, -0.001752, 0.001758, -0.001763, 0.001769, -0.001775, 0.001780, -0.001786,
0.001791, -0.001797, 0.001802, -0.001807, 0.001813, -0.001818, 0.001823, -0.001829, 0.001834, -0.001839,
0.001844, -0.001849, 0.001855, -0.001860, 0.001865, -0.001870, 0.001875, -0.001880, 0.001885, -0.001890,
0.001895, -0.001900, 0.001905, -0.001910, 0.001915, -0.001919, 0.001924, -0.001929, 0.001934, -0.001938,
0.001943, -0.001948, 0.001952, -0.001957, 0.001961, -0.001966, 0.001970, -0.001975, 0.001979, -0.001984,
0.001988, -0.001993, 0.001997, -0.002001, 0.002005, -0.002010, 0.002014, -0.002018, 0.002022, -0.002026,
0.002030, -0.002034, 0.002038, -0.002042, 0.002046, -0.002050, 0.002054, -0.002058, 0.002062, -0.002066,
0.002069, -0.002073, 0.002077, -0.002080, 0.002084, -0.002088, 0.002091, -0.002095, 0.002098, -0.002102,
0.002105, -0.002109, 0.002112, -0.002115, 0.002119, -0.002122, 0.002125, -0.002128, 0.002131, -0.002134,
0.002138, -0.002141, 0.002144, -0.002147, 0.002150, -0.002152, 0.002155, -0.002158, 0.002161, -0.002164,
0.002167, -0.002169, 0.002172, -0.002175, 0.002177, -0.002180, 0.002182, -0.002185, 0.002187, -0.002190,
0.002192, -0.002194, 0.002197, -0.002199, 0.002201, -0.002203, 0.002206, -0.002208, 0.002210, -0.002212,
0.002214, -0.002216, 0.002218, -0.002220, 0.002222, -0.002224, 0.002225, -0.002227, 0.002229, -0.002230,
0.002232, -0.002234, 0.002235, -0.002237, 0.002238, -0.002240, 0.002241, -0.002243, 0.002244, -0.002245,
0.002247, -0.002248, 0.002249, -0.002250, 0.002251, -0.002252, 0.002253, -0.002255, 0.002256, -0.002256,
0.002257, -0.002258, 0.002259, -0.002260, 0.002261, -0.002261, 0.002262, -0.002263, 0.002263, -0.002264,
0.002264, -0.002265, 0.002265, -0.002266, 0.002266, -0.002266, 0.002267, -0.002267, 0.002267, -0.002267,
0.002267, -0.002267, 0.002267, 0.997733, 0.002267, -0.002267, 0.002267, -0.002267, 0.002267, -0.002267,
0.002267, -0.002266, 0.002266, -0.002266, 0.002265, -0.002265, 0.002264, -0.002264, 0.002263, -0.002263,
0.002262, -0.002261, 0.002261, -0.002260, 0.002259, -0.002258, 0.002257, -0.002257, 0.002256, -0.002255,
0.002254, -0.002252, 0.002251, -0.002250, 0.002249, -0.002248, 0.002247, -0.002245, 0.002244, -0.002243,
0.002241, -0.002240, 0.002238, -0.002237, 0.002235, -0.002234, 0.002232, -0.002231, 0.002229, -0.002227,
0.002225, -0.002224, 0.002222, -0.002220, 0.002218, -0.002216, 0.002214, -0.002212, 0.002210, -0.002208,
0.002206, -0.002204, 0.002201, -0.002199, 0.002197, -0.002195, 0.002192, -0.002190, 0.002187, -0.002185,
0.002182, -0.002180, 0.002177, -0.002175, 0.002172, -0.002169, 0.002167, -0.002164, 0.002161, -0.002158,
0.002156, -0.002153, 0.002150, -0.002147, 0.002144, -0.002141, 0.002138, -0.002135, 0.002132, -0.002128,
0.002125, -0.002122, 0.002119, -0.002115, 0.002112, -0.002109, 0.002105, -0.002102, 0.002098, -0.002095,
0.002091, -0.002088, 0.002084, -0.002081, 0.002077, -0.002073, 0.002070, -0.002066, 0.002062, -0.002058,
0.002054, -0.002050, 0.002047, -0.002043, 0.002039, -0.002035, 0.002031, -0.002027, 0.002022, -0.002018,
0.002014, -0.002010, 0.002006, -0.002001, 0.001997, -0.001993, 0.001988, -0.001984, 0.001980, -0.001975,
0.001971, -0.001966, 0.001962, -0.001957, 0.001953, -0.001948, 0.001943, -0.001939, 0.001934, -0.001929,
0.001925, -0.001920, 0.001915, -0.001910, 0.001905, -0.001900, 0.001895, -0.001890, 0.001885, -0.001880,
0.001875, -0.001870, 0.001865, -0.001860, 0.001855, -0.001850, 0.001845, -0.001839, 0.001834, -0.001829,
0.001824, -0.001818, 0.001813, -0.001808, 0.001802, -0.001797, 0.001791, -0.001786, 0.001780, -0.001775,
0.001769, -0.001764, 0.001758, -0.001753, 0.001747, -0.001741, 0.001736, -0.001730, 0.001724, -0.001719,
0.001713, -0.001707, 0.001701, -0.001696, 0.001690, -0.001684, 0.001678, -0.001672, 0.001666, -0.001660,
0.001654, -0.001648, 0.001642, -0.001636, 0.001630, -0.001624, 0.001618, -0.001612, 0.001606, -0.001600,
0.001593, -0.001587, 0.001581, -0.001575, 0.001569, -0.001562, 0.001556, -0.001550, 0.001544, -0.001537,
0.001531, -0.001525, 0.001518, -0.001512, 0.001505, -0.001499, 0.001493, -0.001486, 0.001480, -0.001473,
0.001467, -0.001460, 0.001454, -0.001447, 0.001441, -0.001434, 0.001427, -0.001421, 0.001414, -0.001408,
0.001401, -0.001394, 0.001388, -0.001381, 0.001374, -0.001368, 0.001361, -0.001354, 0.001348, -0.001341,
0.001334, -0.001327, 0.001321, -0.001314, 0.001307, -0.001300, 0.001293, -0.001287, 0.001280, -0.001273,
0.001266, -0.001259, 0.001252, -0.001246, 0.001239, -0.001232, 0.001225, -0.001218, 0.001211, -0.001204,
0.001197, -0.001190, 0.001183, -0.001176, 0.001170, -0.001163, 0.001156, -0.001149, 0.001142, -0.001135,
0.001128, -0.001121, 0.001114, -0.001107, 0.001100, -0.001093, 0.001086, -0.001079, 0.001072, -0.001065,
0.001058, -0.001051, 0.001044, -0.001037, 0.001030, -0.001023, 0.001016, -0.001008, 0.001001, -0.000994,
0.000987, -0.000980, 0.000973, -0.000966, 0.000959, -0.000952, 0.000945, -0.000938, 0.000931, -0.000924,
0.000917, -0.000910, 0.000903, -0.000896, 0.000889, -0.000882, 0.000875, -0.000868, 0.000861, -0.000854,
0.000847, -0.000840, 0.000833, -0.000826, 0.000819, -0.000811, 0.000804, -0.000797, 0.000790, -0.000783,
0.000776, -0.000769, 0.000763, -0.000756, 0.000749, -0.000742, 0.000735, -0.000728, 0.000721, -0.000714,
0.000707, -0.000700, 0.000693, -0.000686, 0.000679, -0.000672, 0.000665, -0.000659, 0.000652, -0.000645,
0.000638, -0.000631, 0.000624, -0.000617, 0.000611, -0.000604, 0.000597, -0.000590, 0.000583, -0.000577,
0.000570, -0.000563, 0.000556, -0.000550, 0.000543, -0.000536, 0.000529, -0.000523, 0.000516, -0.000509,
0.000503, -0.000496, 0.000489, -0.000483, 0.000476, -0.000470, 0.000463, -0.000456, 0.000450, -0.000443,
0.000437, -0.000430, 0.000424, -0.000417, 0.000411, -0.000404, 0.000398, -0.000391, 0.000385, -0.000379,
0.000372, -0.000366, 0.000359, -0.000353, 0.000347, -0.000340, 0.000334, -0.000328, 0.000322, -0.000315,
0.000309, -0.000303, 0.000297, -0.000291, 0.000284, -0.000278, 0.000272, -0.000266, 0.000260, -0.000254,
0.000248, -0.000242, 0.000236, -0.000230, 0.000224, -0.000218, 0.000212, -0.000206, 0.000200, -0.000194,
0.000188, -0.000182, 0.000176, -0.000171, 0.000165, -0.000159, 0.000153, -0.000147, 0.000142, -0.000136,
0.000130, -0.000125, 0.000119, -0.000113, 0.000108, -0.000102, 0.000097, -0.000091, 0.000086, -0.000080,
0.000075, -0.000069, 0.000064, -0.000058, 0.000053, -0.000048, 0.000042, -0.000037, 0.000032, -0.000026,
0.000021, -0.000016, 0.000011, -0.000006, 0.000001, 0.000005, -0.000010, 0.000015, -0.000020, 0.000025,
-0.000030, 0.000035, -0.000040, 0.000045, -0.000050, 0.000055, -0.000060, 0.000064, -0.000069, 0.000074,
-0.000079, 0.000084, -0.000088, 0.000093, -0.000098, 0.000102, -0.000107, 0.000111, -0.000116, 0.000121,
-0.000125, 0.000130, -0.000134, 0.000138, -0.000143, 0.000147, -0.000152, 0.000156, -0.000160, 0.000165,
-0.000169, 0.000173, -0.000177, 0.000181, -0.000186, 0.000190, -0.000194, 0.000198, -0.000202, 0.000206,
-0.000210, 0.000214, -0.000218, 0.000222, -0.000226, 0.000229, -0.000233, 0.000237, -0.000241, 0.000245,
-0.000248, 0.000252, -0.000256, 0.000259, -0.000263, 0.000267, -0.000270, 0.000274, -0.000277, 0.000281,
-0.000284, 0.000287, -0.000291, 0.000294, -0.000298, 0.000301, -0.000304, 0.000307, -0.000311, 0.000314,
-0.000317, 0.000320, -0.000323, 0.000326, -0.000329, 0.000332, -0.000335, 0.000338, -0.000341, 0.000344,
-0.000347, 0.000350, -0.000353, 0.000355, -0.000358, 0.000361, -0.000364, 0.000366, -0.000369, 0.000372,
-0.000374, 0.000377, -0.000379, 0.000382, -0.000384, 0.000387, -0.000389, 0.000391, -0.000394, 0.000396,
-0.000398, 0.000401, -0.000403, 0.000405, -0.000407, 0.000410, -0.000412, 0.000414, -0.000416, 0.000418,
-0.000420, 0.000422, -0.000424, 0.000426, -0.000428, 0.000430, -0.000431, 0.000433, -0.000435, 0.000437,
-0.000439, 0.000440, -0.000442, 0.000444, -0.000445, 0.000447, -0.000448, 0.000450, -0.000451, 0.000453,
-0.000454, 0.000456, -0.000457, 0.000459, -0.000460, 0.000461, -0.000463, 0.000464, -0.000465, 0.000466,
-0.000467, 0.000469, -0.000470, 0.000471, -0.000472, 0.000473, -0.000474, 0.000475, -0.000476, 0.000477,
-0.000478, 0.000478, -0.000479, 0.000480, -0.000481, 0.000482, -0.000482, 0.000483, -0.000484, 0.000485,
-0.000485, 0.000486, -0.000486, 0.000487, -0.000487, 0.000488, -0.000488, 0.000489, -0.000489, 0.000490,
-0.000490, 0.000490, -0.000491, 0.000491, -0.000491, 0.000491, -0.000492, 0.000492, -0.000492, 0.000492,
-0.000492, 0.000492, -0.000492, 0.000492, -0.000492, 0.000492, -0.000492, 0.000492, -0.000492, 0.000492,
-0.000492, 0.000492, -0.000492, 0.000491, -0.000491, 0.000491, -0.000491, 0.000490, -0.000490, 0.000490,
-0.000489, 0.000489, -0.000488, 0.000488, -0.000487, 0.000487, -0.000486, 0.000486, -0.000485, 0.000485,
-0.000484, 0.000483, -0.000483, 0.000482, -0.000481, 0.000481, -0.000480, 0.000479, -0.000478, 0.000478,
-0.000477, 0.000476, -0.000475, 0.000474, -0.000473, 0.000472, -0.000471, 0.000470, -0.000469, 0.000468,
-0.000467, 0.000466, -0.000465, 0.000464, -0.000463, 0.000462, -0.000461, 0.000459, -0.000458, 0.000457,
-0.000456, 0.000454, -0.000453, 0.000452, -0.000450, 0.000449, -0.000448, 0.000446, -0.000445, 0.000444,
-0.000442, 0.000441, -0.000439, 0.000438, -0.000436, 0.000435, -0.000433, 0.000432, -0.110936, -0.168352,
-0.088223, -0.042817, -0.019210, -0.004995, 0.001419, 0.006144, 0.007338, 0.009177, 0.008795, 0.009759,
0.008911, 0.009612, 0.008634, 0.009257, 0.008253, 0.008855, 0.007855, 0.008452, 0.007466, 0.008063, 0.007092,
0.007690, 0.006735, 0.007334, 0.006396, 0.006995, 0.006073, 0.006672, 0.005766, 0.006364, 0.005474, 0.006071,
0.005196, 0.005792, 0.004932, 0.005526, 0.004681, 0.005272, 0.004442, 0.005031, 0.004215, 0.004801, 0.003999,
0.004581, 0.003794, 0.004373, 0.003599, 0.004173, 0.003414, 0.003984, 0.003238, 0.003803, 0.003071, 0.003630,
0.002912, 0.003466, 0.002761, 0.003309, 0.002617, 0.003160, 0.002481, 0.003017, 0.002352, 0.002881, 0.002229,
0.002752, 0.002112, 0.002628, 0.002001, 0.002510, 0.001896, 0.002398, 0.001796, 0.002291, 0.001701, 0.002188,
0.001611, 0.002090, 0.001526, 0.001997, 0.001445, 0.001908, 0.001368, 0.001823, 0.001295, 0.001742, 0.001226,
0.001664, 0.001161, 0.001590, 0.001099, 0.001519, 0.001040, 0.001451, 0.000985, 0.001387, 0.000932, 0.001325,
0.000882, 0.001266, 0.000835, 0.001209, 0.000790, 0.001155, 0.000748, 0.001103, 0.000708, 0.001054, 0.000670,
0.001006, 0.000635, 0.000961, 0.000601, 0.000917, 0.000569, 0.000876, 0.000540, 0.000836, 0.000511, 0.000798,
0.000485, 0.000761, 0.000460, 0.000726, 0.000436, 0.000692, 0.000414, 0.000660, 0.000393, 0.000629, 0.000373,
0.000599, 0.000355, 0.000570, 0.000338, 0.000543, 0.000322, 0.000516, 0.000306, 0.000491, 0.000292, 0.000466,
0.000279, 0.000443, 0.000267, 0.000420, 0.000255, 0.000398, 0.000245, 0.000377, 0.000235, 0.000357, 0.000226,
0.000338, 0.000217, 0.000319, 0.000209, 0.000301, 0.000202, 0.000283, 0.000196, 0.000266, 0.000190, 0.000250,
0.000184, 0.000234, 0.000179, 0.000219, 0.000174, 0.000204, 0.000170, 0.000190, 0.000167, 0.000176, 0.000163,
0.000163, 0.000161, 0.000150, 0.000158, 0.000137, 0.000156, 0.000125, 0.000154, 0.000113, 0.000152, 0.000102,
0.000151, 0.000091, 0.000150, 0.000080, 0.000149, 0.000069, 0.000149, 0.000059, 0.000149, 0.000049, 0.000149,
0.000040, 0.000149, 0.000030, 0.000149, 0.000021, 0.000150, 0.000012, 0.000151, 0.000004, 0.000151, -0.000005,
0.000152, -0.000013, 0.000154, -0.000021, 0.000155, -0.000029, 0.000156, -0.000036, 0.000158, -0.000044,
0.000159, -0.000051, 0.000161, -0.000058, 0.000163, -0.000065, 0.000165, -0.000071, 0.000167, -0.000078,
0.000169, -0.000084, 0.000171, -0.000091, 0.000173, -0.000097, 0.000175, -0.000103, 0.000178, -0.000109,
0.000180, -0.000114, 0.000182, -0.000120, 0.000185, -0.000125, 0.000187, -0.000131, 0.000189, -0.000136,
0.000192, -0.000141, 0.000194, -0.000146, 0.000197, -0.000151, 0.000199, -0.000156, 0.000202, -0.000160,
0.000204, -0.000165, 0.000207, -0.000169, 0.000209, -0.000174, 0.000212, -0.000178, 0.000214, -0.000182,
0.000217, -0.000186, 0.000219, -0.000190, 0.000221, -0.000194, 0.000224, -0.000198, 0.000226, -0.000201,
0.000229, -0.000205, 0.000231, -0.000208, 0.000233, -0.000212, 0.000236, -0.000215, 0.000238, -0.000219,
0.000240, -0.000222, 0.000242, -0.000225, 0.000244, -0.000228, 0.000246, -0.000231, 0.000249, -0.000234,
0.000251, -0.000236, 0.000253, -0.000239, 0.000255, -0.000242, 0.000256, -0.000244, 0.000258, -0.000247,
0.000260, -0.000249, 0.000262, -0.000252, 0.000264, -0.000254, 0.000265, -0.000256, 0.000267
};
static const float VHE_L1_48000_L[] = {
0.000263, -0.000262, 0.000261, -0.000260, 0.000259, -0.000258, 0.000257, -0.000256, 0.000255, -0.000254,
0.000253, -0.000251, 0.000250, -0.000249, 0.000248, -0.000247, 0.000246, -0.000245, 0.000243, -0.000242,
0.000241, -0.000240, 0.000238, -0.000237, 0.000236, -0.000235, 0.000233, -0.000232, 0.000231, -0.000229,
0.000228, -0.000226, 0.000225, -0.000224, 0.000222, -0.000221, 0.000219, -0.000218, 0.000216, -0.000215,
0.000213, -0.000212, 0.000210, -0.000209, 0.000207, -0.000206, 0.000204, -0.000202, 0.000201, -0.000199,
0.000198, -0.000196, 0.000194, -0.000193, 0.000191, -0.000189, 0.000187, -0.000186, 0.000184, -0.000182,
0.000180, -0.000179, 0.000177, -0.000175, 0.000173, -0.000171, 0.000169, -0.000168, 0.000166, -0.000164,
0.000162, -0.000160, 0.000158, -0.000156, 0.000154, -0.000152, 0.000150, -0.000148, 0.000146, -0.000144,
0.000142, -0.000140, 0.000138, -0.000136, 0.000134, -0.000132, 0.000130, -0.000128, 0.000126, -0.000123,
0.000121, -0.000119, 0.000117, -0.000115, 0.000113, -0.000110, 0.000108, -0.000106, 0.000104, -0.000102,
0.000099, -0.000097, 0.000095, -0.000093, 0.000090, -0.000088, 0.000086, -0.000083, 0.000081, -0.000079,
0.000076, -0.000074, 0.000072, -0.000069, 0.000067, -0.000065, 0.000062, -0.000060, 0.000057, -0.000055,
0.000053, -0.000050, 0.000048, -0.000045, 0.000043, -0.000040, 0.000038, -0.000035, 0.000033, -0.000030,
0.000028, -0.000025, 0.000023, -0.000020, 0.000018, -0.000015, 0.000013, -0.000010, 0.000008, -0.000005,
0.000003, 0.000000, -0.000003, 0.000005, -0.000008, 0.000010, -0.000013, 0.000016, -0.000018, 0.000021,
-0.000023, 0.000026, -0.000029, 0.000031, -0.000034, 0.000037, -0.000039, 0.000042, -0.000044, 0.000047,
-0.000050, 0.000052, -0.000055, 0.000058, -0.000060, 0.000063, -0.000066, 0.000068, -0.000071, 0.000074,
-0.000077, 0.000079, -0.000082, 0.000085, -0.000087, 0.000090, -0.000093, 0.000095, -0.000098, 0.000101,
-0.000104, 0.000106, -0.000109, 0.000112, -0.000114, 0.000117, -0.000120, 0.000123, -0.000125, 0.000128,
-0.000131, 0.000133, -0.000136, 0.000139, -0.000142, 0.000144, -0.000147, 0.000150, -0.000152, 0.000155,
-0.000158, 0.000161, -0.000163, 0.000166, -0.000169, 0.000171, -0.000174, 0.000177, -0.000179, 0.000182,
-0.000185, 0.000187, -0.000190, 0.000193, -0.000195, 0.000198, -0.000201, 0.000204, -0.000206, 0.000209,
-0.000212, 0.000214, -0.000217, 0.000219, -0.000222, 0.000225, -0.000227, 0.000230, -0.000233, 0.000235,
-0.000238, 0.000240, -0.000243, 0.000246, -0.000248, 0.000251, -0.000253, 0.000256, -0.000258, 0.000261,
-0.000264, 0.000266, -0.000269, 0.000271, -0.000274, 0.000276, -0.000279, 0.000281, -0.000284, 0.000286,
-0.000289, 0.000291, -0.000294, 0.000296, -0.000298, 0.000301, -0.000303, 0.000306, -0.000308, 0.000310,
-0.000313, 0.000315, -0.000318, 0.000320, -0.000322, 0.000325, -0.000327, 0.000329, -0.000331, 0.000334,
-0.000336, 0.000338, -0.000341, 0.000343, -0.000345, 0.000347, -0.000349, 0.000352, -0.000354, 0.000356,
-0.000358, 0.000360, -0.000362, 0.000365, -0.000367, 0.000369, -0.000371, 0.000373, -0.000375, 0.000377,
-0.000379, 0.000381, -0.000383, 0.000385, -0.000387, 0.000389, -0.000391, 0.000393, -0.000395, 0.000397,
-0.000399, 0.000401, -0.000402, 0.000404, -0.000406, 0.000408, -0.000410, 0.000411, -0.000413, 0.000415,
-0.000417, 0.000418, -0.000420, 0.000422, -0.000423, 0.000425, -0.000427, 0.000428, -0.000430, 0.000432,
-0.000433, 0.000435, -0.000436, 0.000438, -0.000439, 0.000441, -0.000442, 0.000444, -0.000445, 0.000446,
-0.000448, 0.000449, -0.000451, 0.000452, -0.000453, 0.000454, -0.000456, 0.000457, -0.000458, 0.000459,
-0.000461, 0.000462, -0.000463, 0.000464, -0.000465, 0.000466, -0.000467, 0.000468, -0.000469, 0.000470,
-0.000471, 0.000472, -0.000473, 0.000474, -0.000475, 0.000476, -0.000477, 0.000478, -0.000479, 0.000479,
-0.000480, 0.000481, -0.000482, 0.000482, -0.000483, 0.000484, -0.000484, 0.000485, -0.000485, 0.000486,
-0.000487, 0.000487, -0.000488, 0.000488, -0.000489, 0.000489, -0.000489, 0.000490, -0.000490, 0.000490,
-0.000491, 0.000491, -0.000491, 0.000492, -0.000492, 0.000492, -0.000492, 0.000492, -0.000492, 0.000492,
-0.000493, 0.000493, -0.000493, 0.000493, -0.000493, 0.000493, -0.000492, 0.000492, -0.000492, 0.000492,
-0.000492, 0.000492, -0.000491, 0.000491, -0.000491, 0.000491, -0.000490, 0.000490, -0.000489, 0.000489,
-0.000489, 0.000488, -0.000488, 0.000487, -0.000487, 0.000486, -0.000485, 0.000485, -0.000484, 0.000483,
-0.000483, 0.000482, -0.000481, 0.000480, -0.000480, 0.000479, -0.000478, 0.000477, -0.000476, 0.000475,
-0.000474, 0.000473, -0.000472, 0.000471, -0.000470, 0.000469, -0.000468, 0.000467, -0.000465, 0.000464,
-0.000463, 0.000462, -0.000460, 0.000459, -0.000458, 0.000456, -0.000455, 0.000453, -0.000452, 0.000450,
-0.000449, 0.000447, -0.000446, 0.000444, -0.000442, 0.000441, -0.000439, 0.000437, -0.000435, 0.000434,
-0.000432, 0.000430, -0.000428, 0.000426, -0.000424, 0.000422, -0.000420, 0.000418, -0.000416, 0.000414,
-0.000412, 0.000410, -0.000408, 0.000406, -0.000403, 0.000401, -0.000399, 0.000397, -0.000394, 0.000392,
-0.000389, 0.000387, -0.000385, 0.000382, -0.000380, 0.000377, -0.000375, 0.000372, -0.000369, 0.000367,
-0.000364, 0.000361, -0.000359, 0.000356, -0.000353, 0.000350, -0.000347, 0.000344, -0.000342, 0.000339,
-0.000336, 0.000333, -0.000330, 0.000327, -0.000324, 0.000320, -0.000317, 0.000314, -0.000311, 0.000308,
-0.000304, 0.000301, -0.000298, 0.000295, -0.000291, 0.000288, -0.000284, 0.000281, -0.000278, 0.000274,
-0.000271, 0.000267, -0.000263, 0.000260, -0.000256, 0.000252, -0.000249, 0.000245, -0.000241, 0.000238,
-0.000234, 0.000230, -0.000226, 0.000222, -0.000218, 0.000214, -0.000210, 0.000206, -0.000202, 0.000198,
-0.000194, 0.000190, -0.000186, 0.000182, -0.000178, 0.000173, -0.000169, 0.000165, -0.000161, 0.000156,
-0.000152, 0.000148, -0.000143, 0.000139, -0.000134, 0.000130, -0.000126, 0.000121, -0.000117, 0.000112,
-0.000107, 0.000103, -0.000098, 0.000093, -0.000089, 0.000084, -0.000079, 0.000074, -0.000070, 0.000065,
-0.000060, 0.000055, -0.000050, 0.000045, -0.000040, 0.000035, -0.000030, 0.000025, -0.000020, 0.000015,
-0.000010, 0.000005, 0.000000, -0.000005, 0.000010, -0.000016, 0.000021, -0.000026, 0.000031, -0.000037,
0.000042, -0.000047, 0.000053, -0.000058, 0.000063, -0.000069, 0.000074, -0.000080, 0.000085, -0.000091,
0.000096, -0.000102, 0.000107, -0.000113, 0.000119, -0.000124, 0.000130, -0.000135, 0.000141, -0.000147,
0.000153, -0.000158, 0.000164, -0.000170, 0.000176, -0.000182, 0.000188, -0.000193, 0.000199, -0.000205,
0.000211, -0.000217, 0.000223, -0.000229, 0.000235, -0.000241, 0.000247, -0.000253, 0.000259, -0.000265,
0.000272, -0.000278, 0.000284, -0.000290, 0.000296, -0.000302, 0.000309, -0.000315, 0.000321, -0.000327,
0.000334, -0.000340, 0.000346, -0.000353, 0.000359, -0.000365, 0.000372, -0.000378, 0.000385, -0.000391,
0.000397, -0.000404, 0.000410, -0.000417, 0.000423, -0.000430, 0.000436, -0.000443, 0.000449, -0.000456,
0.000463, -0.000469, 0.000476, -0.000482, 0.000489, -0.000496, 0.000502, -0.000509, 0.000516, -0.000522,
0.000529, -0.000536, 0.000542, -0.000549, 0.000556, -0.000563, 0.000569, -0.000576, 0.000583, -0.000590,
0.000597, -0.000603, 0.000610, -0.000617, 0.000624, -0.000631, 0.000638, -0.000644, 0.000651, -0.000658,
0.000665, -0.000672, 0.000679, -0.000686, 0.000693, -0.000699, 0.000706, -0.000713, 0.000720, -0.000727,
0.000734, -0.000741, 0.000748, -0.000755, 0.000762, -0.000740, 0.000791, -0.000775, 0.000794, -0.000796,
0.000804, -0.000812, 0.000817, -0.000826, 0.000831, -0.000840, 0.000845, -0.000854, 0.000859, -0.000868,
0.000873, -0.000882, 0.000887, -0.000897, 0.000901, -0.000911, 0.000916, -0.000925, 0.000930, -0.000939,
0.000944, -0.000953, 0.000958, -0.000967, 0.000972, -0.000981, 0.000986, -0.000995, 0.001000, -0.001009,
0.001015, -0.001023, 0.001029, -0.001037, 0.001043, -0.001051, 0.001057, -0.001065, 0.001071, -0.001079,
0.001085, -0.001093, 0.001099, -0.001107, 0.001113, -0.001121, 0.001127, -0.001135, 0.001141, -0.001149,
0.001155, -0.001163, 0.001169, -0.001177, 0.001183, -0.001190, 0.001197, -0.001204, 0.001211, -0.001218,
0.001224, -0.001232, 0.001238, -0.001246, 0.001252, -0.001259, 0.001266, -0.001273, 0.001279, -0.001287,
0.001293, -0.001300, 0.001307, -0.001314, 0.001320, -0.001327, 0.001334, -0.001341, 0.001347, -0.001354,
0.001361, -0.001368, 0.001374, -0.001381, 0.001387, -0.001394, 0.001401, -0.001408, 0.001414, -0.001421,
0.001427, -0.001434, 0.001440, -0.001447, 0.001453, -0.001460, 0.001466, -0.001473, 0.001479, -0.001486,
0.001492, -0.001499, 0.001505, -0.001512, 0.001518, -0.001525, 0.001531, -0.001537, 0.001543, -0.001550,
0.001556, -0.001562, 0.001568, -0.001575, 0.001581, -0.001587, 0.001593, -0.001600, 0.001606, -0.001612,
0.001618, -0.001624, 0.001630, -0.001636, 0.001642, -0.001648, 0.001654, -0.001660, 0.001666, -0.001672,
0.001678, -0.001684, 0.001690, -0.001696, 0.001701, -0.001707, 0.001713, -0.001719, 0.001724, -0.001730,
0.001736, -0.001741, 0.001747, -0.001753, 0.001758, -0.001764, 0.001769, -0.001775, 0.001780, -0.001786,
0.001791, -0.001797, 0.001802, -0.001808, 0.001813, -0.001818, 0.001824, -0.001829, 0.001834, -0.001840,
0.001845, -0.001850, 0.001855, -0.001860, 0.001865, -0.001870, 0.001875, -0.001881, 0.001885, -0.001891,
0.001895, -0.001900, 0.001905, -0.001910, 0.001915, -0.001920, 0.001925, -0.001929, 0.001934, -0.001939,
0.001943, -0.001948, 0.001953, -0.001957, 0.001962, -0.001966, 0.001971, -0.001975, 0.001980, -0.001984,
0.001989, -0.001993, 0.001997, -0.002002, 0.002006, -0.002010, 0.002014, -0.002018, 0.002023, -0.002027,
0.002031, -0.002035, 0.002039, -0.002043, 0.002047, -0.002051, 0.002054, -0.002058, 0.002062, -0.002066,
0.002070, -0.002073, 0.002077, -0.002081, 0.002084, -0.002088, 0.002092, -0.002095, 0.002099, -0.002102,
0.002106, -0.002109, 0.002112, -0.002116, 0.002119, -0.002122, 0.002125, -0.002129, 0.002132, -0.002135,
0.002138, -0.002141, 0.002144, -0.002147, 0.002150, -0.002153, 0.002156, -0.002159, 0.002161, -0.002164,
0.002167, -0.002170, 0.002172, -0.002175, 0.002178, -0.002180, 0.002183, -0.002185, 0.002188, -0.002190,
0.002192, -0.002195, 0.002197, -0.002199, 0.002202, -0.002204, 0.002206, -0.002208, 0.002210, -0.002212,
0.002214, -0.002216, 0.002218, -0.002220, 0.002222, -0.002224, 0.002226, -0.002227, 0.002229, -0.002231,
0.002232, -0.002234, 0.002236, -0.002237, 0.002239, -0.002240, 0.002242, -0.002243, 0.002244, -0.002246,
0.002247, -0.002248, 0.002249, -0.002251, 0.002252, -0.002253, 0.002254, -0.002255, 0.002256, -0.002257,
0.002258, -0.002258, 0.002259, -0.002260, 0.002261, -0.002262, 0.002262, -0.002263, 0.002263, -0.002264,
0.002265, -0.002265, 0.002265, -0.002266, 0.002266, -0.002266, 0.002267, -0.002267, 0.002267, -0.002267,
0.002268, -0.002268, 0.002268, 0.997732, 0.002268, -0.002268, 0.002268, -0.002267, 0.002267, -0.002267,
0.002267, -0.002266, 0.002266, -0.002266, 0.002265, -0.002265, 0.002264, -0.002264, 0.002263, -0.002263,
0.002262, -0.002262, 0.002261, -0.002260, 0.002259, -0.002258, 0.002258, -0.002257, 0.002256, -0.002255,
0.002254, -0.002253, 0.002252, -0.002250, 0.002249, -0.002248, 0.002247, -0.002246, 0.002244, -0.002243,
0.002242, -0.002240, 0.002239, -0.002237, 0.002236, -0.002234, 0.002232, -0.002231, 0.002229, -0.002227,
0.002225, -0.002224, 0.002222, -0.002220, 0.002218, -0.002216, 0.002214, -0.002212, 0.002210, -0.002208,
0.002206, -0.002204, 0.002201, -0.002199, 0.002197, -0.002195, 0.002192, -0.002190, 0.002187, -0.002185,
0.002182, -0.002180, 0.002177, -0.002175, 0.002172, -0.002169, 0.002167, -0.002164, 0.002161, -0.002158,
0.002156, -0.002153, 0.002150, -0.002147, 0.002144, -0.002141, 0.002138, -0.002135, 0.002132, -0.002128,
0.002125, -0.002122, 0.002119, -0.002115, 0.002112, -0.002109, 0.002105, -0.002102, 0.002098, -0.002095,
0.002091, -0.002088, 0.002084, -0.002081, 0.002077, -0.002073, 0.002069, -0.002066, 0.002062, -0.002058,
0.002054, -0.002050, 0.002046, -0.002042, 0.002039, -0.002034, 0.002030, -0.002026, 0.002022, -0.002018,
0.002014, -0.002010, 0.002005, -0.002001, 0.001997, -0.001993, 0.001988, -0.001984, 0.001979, -0.001975,
0.001971, -0.001966, 0.001962, -0.001957, 0.001952, -0.001948, 0.001943, -0.001938, 0.001934, -0.001929,
0.001924, -0.001919, 0.001915, -0.001910, 0.001905, -0.001900, 0.001895, -0.001890, 0.001885, -0.001880,
0.001875, -0.001870, 0.001865, -0.001860, 0.001855, -0.001850, 0.001844, -0.001839, 0.001834, -0.001829,
0.001823, -0.001818, 0.001813, -0.001807, 0.001802, -0.001797, 0.001791, -0.001786, 0.001780, -0.001775,
0.001769, -0.001764, 0.001758, -0.001752, 0.001747, -0.001741, 0.001735, -0.001730, 0.001724, -0.001718,
0.001713, -0.001707, 0.001701, -0.001695, 0.001689, -0.001683, 0.001677, -0.001672, 0.001666, -0.001660,
0.001654, -0.001648, 0.001642, -0.001636, 0.001630, -0.001624, 0.001618, -0.001611, 0.001605, -0.001599,
0.001593, -0.001587, 0.001581, -0.001574, 0.001568, -0.001562, 0.001556, -0.001549, 0.001543, -0.001537,
0.001530, -0.001524, 0.001518, -0.001511, 0.001505, -0.001498, 0.001492, -0.001486, 0.001479, -0.001473,
0.001466, -0.001460, 0.001453, -0.001447, 0.001440, -0.001433, 0.001427, -0.001420, 0.001414, -0.001407,
0.001400, -0.001394, 0.001387, -0.001380, 0.001374, -0.001367, 0.001360, -0.001354, 0.001347, -0.001340,
0.001333, -0.001327, 0.001320, -0.001313, 0.001306, -0.001300, 0.001293, -0.001286, 0.001279, -0.001272,
0.001265, -0.001259, 0.001252, -0.001245, 0.001238, -0.001231, 0.001224, -0.001217, 0.001210, -0.001203,
0.001197, -0.001190, 0.001183, -0.001176, 0.001169, -0.001162, 0.001155, -0.001148, 0.001141, -0.001134,
0.001127, -0.001120, 0.001113, -0.001106, 0.001099, -0.001092, 0.001085, -0.001078, 0.001071, -0.001064,
0.001057, -0.001050, 0.001043, -0.001036, 0.001029, -0.001022, 0.001015, -0.001008, 0.001001, -0.000994,
0.000987, -0.000979, 0.000972, -0.000965, 0.000958, -0.000951, 0.000944, -0.000937, 0.000930, -0.000923,
0.000916, -0.000909, 0.000902, -0.000895, 0.000888, -0.000881, 0.000874, -0.000867, 0.000860, -0.000853,
0.000846, -0.000839, 0.000832, -0.000825, 0.000818, -0.000811, 0.000804, -0.000797, 0.000790, -0.000783,
0.000776, -0.000769, 0.000762, -0.000755, 0.000748, -0.000741, 0.000734, -0.000727, 0.000720, -0.000713,
0.000706, -0.000699, 0.000692, -0.000685, 0.000678, -0.000671, 0.000664, -0.000658, 0.000651, -0.000644,
0.000637, -0.000630, 0.000623, -0.000616, 0.000610, -0.000603, 0.000596, -0.000589, 0.000582, -0.000576,
0.000569, -0.000562, 0.000555, -0.000549, 0.000542, -0.000535, 0.000529, -0.000522, 0.000515, -0.000508,
0.000502, -0.000495, 0.000488, -0.000482, 0.000475, -0.000469, 0.000462, -0.000455, 0.000449, -0.000442,
0.000436, -0.000429, 0.000423, -0.000416, 0.000410, -0.000403, 0.000397, -0.000391, 0.000384, -0.000378,
0.000371, -0.000365, 0.000358, -0.000352, 0.000346, -0.000339, 0.000333, -0.000327, 0.000321, -0.000314,
0.000308, -0.000302, 0.000296, -0.000290, 0.000283, -0.000277, 0.000271, -0.000265, 0.000259, -0.000253,
0.000247, -0.000241, 0.000235, -0.000229, 0.000223, -0.000217, 0.000211, -0.000205, 0.000199, -0.000193,
0.000187, -0.000181, 0.000175, -0.000170, 0.000164, -0.000158, 0.000152, -0.000146, 0.000141, -0.000135,
0.000129, -0.000124, 0.000118, -0.000112, 0.000107, -0.000101, 0.000096, -0.000090, 0.000085, -0.000079,
0.000074, -0.000068, 0.000063, -0.000057, 0.000052, -0.000047, 0.000041, -0.000036, 0.000031, -0.000025,
0.000020, -0.000015, 0.000010, -0.000005, -0.000000, 0.000006, -0.000011, 0.000016, -0.000021, 0.000026,
-0.000031, 0.000036, -0.000041, 0.000046, -0.000051, 0.000056, -0.000061, 0.000065, -0.000070, 0.000075,
-0.000080, 0.000085, -0.000089, 0.000094, -0.000099, 0.000103, -0.000108, 0.000112, -0.000117, 0.000122,
-0.000126, 0.000131, -0.000135, 0.000139, -0.000144, 0.000148, -0.000153, 0.000157, -0.000161, 0.000165,
-0.000170, 0.000174, -0.000178, 0.000182, -0.000187, 0.000191, -0.000195, 0.000199, -0.000203, 0.000207,
-0.000211, 0.000215, -0.000219, 0.000223, -0.000227, 0.000230, -0.000234, 0.000238, -0.000242, 0.000246,
-0.000249, 0.000253, -0.000257, 0.000260, -0.000264, 0.000267, -0.000271, 0.000275, -0.000278, 0.000281,
-0.000285, 0.000288, -0.000292, 0.000295, -0.000298, 0.000302, -0.000305, 0.000308, -0.000311, 0.000315,
-0.000318, 0.000321, -0.000324, 0.000327, -0.000330, 0.000333, -0.000336, 0.000339, -0.000342, 0.000345,
-0.000348, 0.000351, -0.000353, 0.000356, -0.000359, 0.000362, -0.000364, 0.000367, -0.000370, 0.000372,
-0.000375, 0.000377, -0.000380, 0.000383, -0.000385, 0.000387, -0.000390, 0.000392, -0.000395, 0.000397,
-0.000399, 0.000402, -0.000404, 0.000406, -0.000408, 0.000410, -0.000412, 0.000415, -0.000417, 0.000419,
-0.000421, 0.000423, -0.000425, 0.000427, -0.000428, 0.000430, -0.000432, 0.000434, -0.000436, 0.000438,
-0.000439, 0.000441, -0.000443, 0.000444, -0.000446, 0.000448, -0.000449, 0.000451, -0.000452, 0.000454,
-0.000455, 0.000456, -0.000458, 0.000459, -0.000461, 0.000462, -0.000463, 0.000464, -0.000466, 0.000467,
-0.000468, 0.000469, -0.000470, 0.000471, -0.000472, 0.000473, -0.000474, 0.000475, -0.000476, 0.000477,
-0.000478, 0.000479, -0.000480, 0.000481, -0.000481, 0.000482, -0.000483, 0.000484, -0.000484, 0.000485,
-0.000486, 0.000486, -0.000487, 0.000487, -0.000488, 0.000488, -0.000489, 0.000489, -0.000490, 0.000490,
-0.000490, 0.000491, -0.000491, 0.000491, -0.000492, 0.000492, -0.000492, 0.000492, -0.000492, 0.000493,
-0.000493, 0.000493, -0.000493, 0.000493, -0.000493, 0.000493, -0.000493, 0.000493, -0.000493, 0.000492,
-0.000492, 0.000492, -0.000492, 0.000492, -0.000491, 0.000491, -0.000491, 0.000491, -0.000490, 0.000490,
-0.000490, 0.000489, -0.000489, 0.000488, -0.000488, 0.000487, -0.000487, 0.000486, -0.000486, 0.000485,
-0.000484, 0.000484, -0.000483, 0.000482, -0.000482, 0.000481, -0.000480, 0.000479, -0.000479, 0.000478,
-0.000477, 0.000476, -0.000475, 0.000474, -0.000473, 0.000472, -0.000471, 0.000470, -0.000469, 0.000468,
-0.000467, 0.000466, -0.000465, 0.000464, -0.000463, 0.000462, -0.000461, 0.000459, -0.000458, 0.000457,
-0.000456, 0.000454, -0.000453, 0.000452, -0.000451, 0.000449, -0.000448, 0.000446, -0.000445, 0.000444,
-0.000442, 0.000441, -0.000439, 0.000438, -0.000436, 0.000435, -0.000433, 0.000432, 0.110076, 0.169209,
0.087369, 0.043668, 0.018363, 0.005838, -0.002260, -0.005307, -0.008171, -0.008347, -0.009621, -0.008936,
-0.009730, -0.008796, -0.009446, -0.008449, -0.009058, -0.008054, -0.008653, -0.007659, -0.008255, -0.007277,
-0.007874, -0.006911, -0.007509, -0.006564, -0.007162, -0.006232, -0.006831, -0.005918, -0.006516, -0.005618,
-0.006216, -0.005333, -0.005929, -0.005063, -0.005657, -0.004805, -0.005397, -0.004560, -0.005150, -0.004327,
-0.004914, -0.004106, -0.004690, -0.003896, -0.004476, -0.003696, -0.004272, -0.003506, -0.004077, -0.003325,
-0.003892, -0.003154, -0.003715, -0.002991, -0.003547, -0.002836, -0.003386, -0.002688, -0.003233, -0.002549,
-0.003087, -0.002416, -0.002948, -0.002290, -0.002816, -0.002170, -0.002689, -0.002056, -0.002568, -0.001948,
-0.002453, -0.001846, -0.002343, -0.001748, -0.002238, -0.001656, -0.002138, -0.001568, -0.002043, -0.001485,
-0.001951, -0.001406, -0.001864, -0.001332, -0.001781, -0.001261, -0.001702, -0.001194, -0.001626, -0.001130,
-0.001554, -0.001070, -0.001484, -0.001013, -0.001418, -0.000958, -0.001355, -0.000907, -0.001294, -0.000859,
-0.001237, -0.000813, -0.001181, -0.000769, -0.001128, -0.000728, -0.001078, -0.000690, -0.001029, -0.000653,
-0.000983, -0.000618, -0.000938, -0.000586, -0.000896, -0.000555, -0.000855, -0.000526, -0.000816, -0.000498,
-0.000779, -0.000473, -0.000743, -0.000448, -0.000708, -0.000425, -0.000675, -0.000404, -0.000643, -0.000384,
-0.000613, -0.000365, -0.000584, -0.000347, -0.000556, -0.000330, -0.000529, -0.000315, -0.000503, -0.000300,
-0.000478, -0.000286, -0.000454, -0.000274, -0.000431, -0.000262, -0.000408, -0.000251, -0.000387, -0.000241,
-0.000366, -0.000231, -0.000347, -0.000222, -0.000327, -0.000214, -0.000309, -0.000206, -0.000291, -0.000200,
-0.000274, -0.000193, -0.000257, -0.000188, -0.000241, -0.000182, -0.000226, -0.000177, -0.000211, -0.000173,
-0.000196, -0.000169, -0.000182, -0.000166, -0.000168, -0.000163, -0.000155, -0.000160, -0.000143, -0.000158,
-0.000130, -0.000156, -0.000118, -0.000154, -0.000107, -0.000153, -0.000095, -0.000151, -0.000084, -0.000151,
-0.000074, -0.000150, -0.000063, -0.000150, -0.000053, -0.000150, -0.000044, -0.000150, -0.000034, -0.000150,
-0.000025, -0.000150, -0.000016, -0.000151, -0.000007, -0.000152, 0.000001, -0.000153, 0.000010, -0.000154,
0.000018, -0.000155, 0.000026, -0.000156, 0.000033, -0.000158, 0.000041, -0.000159, 0.000048, -0.000161,
0.000055, -0.000163, 0.000062, -0.000165, 0.000069, -0.000167, 0.000076, -0.000169, 0.000082, -0.000171,
0.000089, -0.000173, 0.000095, -0.000175, 0.000101, -0.000177, 0.000107, -0.000180, 0.000112, -0.000182,
0.000118, -0.000184, 0.000124, -0.000187, 0.000129, -0.000189, 0.000134, -0.000192, 0.000139, -0.000194,
0.000145, -0.000197, 0.000149, -0.000199, 0.000154, -0.000202, 0.000159, -0.000204, 0.000164, -0.000206,
0.000168, -0.000209, 0.000172, -0.000211, 0.000177, -0.000214, 0.000181, -0.000216, 0.000185, -0.000219,
0.000189, -0.000221, 0.000193, -0.000224, 0.000197, -0.000226, 0.000201, -0.000228, 0.000204, -0.000231,
0.000208, -0.000233, 0.000211, -0.000235, 0.000215, -0.000238, 0.000218, -0.000240, 0.000221, -0.000242,
0.000224, -0.000244, 0.000227, -0.000246, 0.000230, -0.000249, 0.000233, -0.000251, 0.000236, -0.000253,
0.000239, -0.000255, 0.000242, -0.000257, 0.000244, -0.000258, 0.000247, -0.000260, 0.000249, -0.000262,
0.000251, -0.000264, 0.000254, -0.000266, 0.000256, -0.000267, 0.000258
};
static const float VHE_L1_48000_R[] = {
0.000263, -0.000262, 0.000261, -0.000260, 0.000259, -0.000258, 0.000257, -0.000256, 0.000255, -0.000254,
0.000253, -0.000251, 0.000250, -0.000249, 0.000248, -0.000247, 0.000246, -0.000245, 0.000243, -0.000242,
0.000241, -0.000240, 0.000238, -0.000237, 0.000236, -0.000235, 0.000233, -0.000232, 0.000231, -0.000229,
0.000228, -0.000226, 0.000225, -0.000224, 0.000222, -0.000221, 0.000219, -0.000218, 0.000216, -0.000215,
0.000213, -0.000212, 0.000210, -0.000209, 0.000207, -0.000206, 0.000204, -0.000202, 0.000201, -0.000199,
0.000198, -0.000196, 0.000194, -0.000193, 0.000191, -0.000189, 0.000187, -0.000186, 0.000184, -0.000182,
0.000180, -0.000179, 0.000177, -0.000175, 0.000173, -0.000171, 0.000169, -0.000168, 0.000166, -0.000164,
0.000162, -0.000160, 0.000158, -0.000156, 0.000154, -0.000152, 0.000150, -0.000148, 0.000146, -0.000144,
0.000142, -0.000140, 0.000138, -0.000136, 0.000134, -0.000132, 0.000130, -0.000128, 0.000126, -0.000123,
0.000121, -0.000119, 0.000117, -0.000115, 0.000113, -0.000110, 0.000108, -0.000106, 0.000104, -0.000102,
0.000099, -0.000097, 0.000095, -0.000093, 0.000090, -0.000088, 0.000086, -0.000083, 0.000081, -0.000079,
0.000076, -0.000074, 0.000072, -0.000069, 0.000067, -0.000065, 0.000062, -0.000060, 0.000057, -0.000055,
0.000053, -0.000050, 0.000048, -0.000045, 0.000043, -0.000040, 0.000038, -0.000035, 0.000033, -0.000030,
0.000028, -0.000025, 0.000023, -0.000020, 0.000018, -0.000015, 0.000013, -0.000010, 0.000008, -0.000005,
0.000003, 0.000000, -0.000003, 0.000005, -0.000008, 0.000010, -0.000013, 0.000016, -0.000018, 0.000021,
-0.000023, 0.000026, -0.000029, 0.000031, -0.000034, 0.000037, -0.000039, 0.000042, -0.000044, 0.000047,
-0.000050, 0.000052, -0.000055, 0.000058, -0.000060, 0.000063, -0.000066, 0.000068, -0.000071, 0.000074,
-0.000077, 0.000079, -0.000082, 0.000085, -0.000087, 0.000090, -0.000093, 0.000095, -0.000098, 0.000101,
-0.000104, 0.000106, -0.000109, 0.000112, -0.000114, 0.000117, -0.000120, 0.000123, -0.000125, 0.000128,
-0.000131, 0.000133, -0.000136, 0.000139, -0.000142, 0.000144, -0.000147, 0.000150, -0.000152, 0.000155,
-0.000158, 0.000161, -0.000163, 0.000166, -0.000169, 0.000171, -0.000174, 0.000177, -0.000179, 0.000182,
-0.000185, 0.000187, -0.000190, 0.000193, -0.000195, 0.000198, -0.000201, 0.000204, -0.000206, 0.000209,
-0.000212, 0.000214, -0.000217, 0.000219, -0.000222, 0.000225, -0.000227, 0.000230, -0.000233, 0.000235,
-0.000238, 0.000240, -0.000243, 0.000246, -0.000248, 0.000251, -0.000253, 0.000256, -0.000258, 0.000261,
-0.000264, 0.000266, -0.000269, 0.000271, -0.000274, 0.000276, -0.000279, 0.000281, -0.000284, 0.000286,
-0.000289, 0.000291, -0.000294, 0.000296, -0.000298, 0.000301, -0.000303, 0.000306, -0.000308, 0.000310,
-0.000313, 0.000315, -0.000318, 0.000320, -0.000322, 0.000325, -0.000327, 0.000329, -0.000331, 0.000334,
-0.000336, 0.000338, -0.000341, 0.000343, -0.000345, 0.000347, -0.000349, 0.000352, -0.000354, 0.000356,
-0.000358, 0.000360, -0.000362, 0.000365, -0.000367, 0.000369, -0.000371, 0.000373, -0.000375, 0.000377,
-0.000379, 0.000381, -0.000383, 0.000385, -0.000387, 0.000389, -0.000391, 0.000393, -0.000395, 0.000397,
-0.000399, 0.000401, -0.000402, 0.000404, -0.000406, 0.000408, -0.000410, 0.000411, -0.000413, 0.000415,
-0.000417, 0.000418, -0.000420, 0.000422, -0.000423, 0.000425, -0.000427, 0.000428, -0.000430, 0.000432,
-0.000433, 0.000435, -0.000436, 0.000438, -0.000439, 0.000441, -0.000442, 0.000444, -0.000445, 0.000446,
-0.000448, 0.000449, -0.000451, 0.000452, -0.000453, 0.000454, -0.000456, 0.000457, -0.000458, 0.000459,
-0.000461, 0.000462, -0.000463, 0.000464, -0.000465, 0.000466, -0.000467, 0.000468, -0.000469, 0.000470,
-0.000471, 0.000472, -0.000473, 0.000474, -0.000475, 0.000476, -0.000477, 0.000478, -0.000479, 0.000479,
-0.000480, 0.000481, -0.000482, 0.000482, -0.000483, 0.000484, -0.000484, 0.000485, -0.000485, 0.000486,
-0.000487, 0.000487, -0.000488, 0.000488, -0.000489, 0.000489, -0.000489, 0.000490, -0.000490, 0.000490,
-0.000491, 0.000491, -0.000491, 0.000492, -0.000492, 0.000492, -0.000492, 0.000492, -0.000492, 0.000492,
-0.000493, 0.000493, -0.000493, 0.000493, -0.000493, 0.000493, -0.000492, 0.000492, -0.000492, 0.000492,
-0.000492, 0.000492, -0.000491, 0.000491, -0.000491, 0.000491, -0.000490, 0.000490, -0.000489, 0.000489,
-0.000489, 0.000488, -0.000488, 0.000487, -0.000487, 0.000486, -0.000485, 0.000485, -0.000484, 0.000483,
-0.000483, 0.000482, -0.000481, 0.000480, -0.000480, 0.000479, -0.000478, 0.000477, -0.000476, 0.000475,
-0.000474, 0.000473, -0.000472, 0.000471, -0.000470, 0.000469, -0.000468, 0.000467, -0.000465, 0.000464,
-0.000463, 0.000462, -0.000460, 0.000459, -0.000458, 0.000456, -0.000455, 0.000453, -0.000452, 0.000450,
-0.000449, 0.000447, -0.000446, 0.000444, -0.000442, 0.000441, -0.000439, 0.000437, -0.000435, 0.000434,
-0.000432, 0.000430, -0.000428, 0.000426, -0.000424, 0.000422, -0.000420, 0.000418, -0.000416, 0.000414,
-0.000412, 0.000410, -0.000408, 0.000406, -0.000403, 0.000401, -0.000399, 0.000397, -0.000394, 0.000392,
-0.000389, 0.000387, -0.000385, 0.000382, -0.000380, 0.000377, -0.000375, 0.000372, -0.000369, 0.000367,
-0.000364, 0.000361, -0.000359, 0.000356, -0.000353, 0.000350, -0.000347, 0.000344, -0.000342, 0.000339,
-0.000336, 0.000333, -0.000330, 0.000327, -0.000324, 0.000320, -0.000317, 0.000314, -0.000311, 0.000308,
-0.000304, 0.000301, -0.000298, 0.000295, -0.000291, 0.000288, -0.000284, 0.000281, -0.000278, 0.000274,
-0.000271, 0.000267, -0.000263, 0.000260, -0.000256, 0.000252, -0.000249, 0.000245, -0.000241, 0.000238,
-0.000234, 0.000230, -0.000226, 0.000222, -0.000218, 0.000214, -0.000210, 0.000206, -0.000202, 0.000198,
-0.000194, 0.000190, -0.000186, 0.000182, -0.000178, 0.000173, -0.000169, 0.000165, -0.000161, 0.000156,
-0.000152, 0.000148, -0.000143, 0.000139, -0.000134, 0.000130, -0.000126, 0.000121, -0.000117, 0.000112,
-0.000107, 0.000103, -0.000098, 0.000093, -0.000089, 0.000084, -0.000079, 0.000074, -0.000070, 0.000065,
-0.000060, 0.000055, -0.000050, 0.000045, -0.000040, 0.000035, -0.000030, 0.000025, -0.000020, 0.000015,
-0.000010, 0.000005, 0.000000, -0.000005, 0.000010, -0.000016, 0.000021, -0.000026, 0.000031, -0.000037,
0.000042, -0.000047, 0.000053, -0.000058, 0.000063, -0.000069, 0.000074, -0.000080, 0.000085, -0.000091,
0.000096, -0.000102, 0.000107, -0.000113, 0.000119, -0.000124, 0.000130, -0.000135, 0.000141, -0.000147,
0.000153, -0.000158, 0.000164, -0.000170, 0.000176, -0.000182, 0.000188, -0.000193, 0.000199, -0.000205,
0.000211, -0.000217, 0.000223, -0.000229, 0.000235, -0.000241, 0.000247, -0.000253, 0.000259, -0.000265,
0.000272, -0.000278, 0.000284, -0.000290, 0.000296, -0.000302, 0.000309, -0.000315, 0.000321, -0.000327,
0.000334, -0.000340, 0.000346, -0.000353, 0.000359, -0.000365, 0.000372, -0.000378, 0.000385, -0.000391,
0.000397, -0.000404, 0.000410, -0.000417, 0.000423, -0.000430, 0.000436, -0.000443, 0.000449, -0.000456,
0.000463, -0.000469, 0.000476, -0.000482, 0.000489, -0.000496, 0.000502, -0.000509, 0.000516, -0.000522,
0.000529, -0.000536, 0.000542, -0.000549, 0.000556, -0.000563, 0.000569, -0.000576, 0.000583, -0.000590,
0.000597, -0.000603, 0.000610, -0.000617, 0.000624, -0.000631, 0.000638, -0.000644, 0.000651, -0.000658,
0.000665, -0.000672, 0.000679, -0.000686, 0.000693, -0.000699, 0.000706, -0.000713, 0.000720, -0.000727,
0.000734, -0.000741, 0.000748, -0.000755, 0.000762, -0.000798, 0.000761, -0.000791, 0.000786, -0.000798,
0.000804, -0.000810, 0.000819, -0.000824, 0.000833, -0.000838, 0.000847, -0.000852, 0.000861, -0.000866,
0.000875, -0.000880, 0.000889, -0.000894, 0.000903, -0.000908, 0.000917, -0.000922, 0.000931, -0.000937,
0.000945, -0.000951, 0.000960, -0.000965, 0.000974, -0.000979, 0.000988, -0.000993, 0.001002, -0.001007,
0.001016, -0.001021, 0.001030, -0.001035, 0.001044, -0.001050, 0.001058, -0.001064, 0.001072, -0.001078,
0.001086, -0.001092, 0.001100, -0.001106, 0.001114, -0.001120, 0.001128, -0.001134, 0.001142, -0.001148,
0.001156, -0.001162, 0.001169, -0.001176, 0.001183, -0.001189, 0.001197, -0.001203, 0.001211, -0.001217,
0.001225, -0.001231, 0.001239, -0.001245, 0.001252, -0.001259, 0.001266, -0.001272, 0.001280, -0.001286,
0.001293, -0.001300, 0.001307, -0.001313, 0.001320, -0.001327, 0.001334, -0.001340, 0.001347, -0.001354,
0.001361, -0.001367, 0.001374, -0.001380, 0.001387, -0.001394, 0.001401, -0.001407, 0.001414, -0.001420,
0.001427, -0.001433, 0.001440, -0.001447, 0.001453, -0.001460, 0.001466, -0.001473, 0.001479, -0.001486,
0.001492, -0.001498, 0.001505, -0.001511, 0.001518, -0.001524, 0.001531, -0.001537, 0.001543, -0.001549,
0.001556, -0.001562, 0.001568, -0.001574, 0.001581, -0.001587, 0.001593, -0.001599, 0.001605, -0.001611,
0.001618, -0.001624, 0.001630, -0.001636, 0.001642, -0.001648, 0.001654, -0.001660, 0.001666, -0.001672,
0.001678, -0.001683, 0.001689, -0.001695, 0.001701, -0.001707, 0.001713, -0.001718, 0.001724, -0.001730,
0.001735, -0.001741, 0.001747, -0.001752, 0.001758, -0.001763, 0.001769, -0.001775, 0.001780, -0.001786,
0.001791, -0.001797, 0.001802, -0.001807, 0.001813, -0.001818, 0.001823, -0.001829, 0.001834, -0.001839,
0.001844, -0.001849, 0.001855, -0.001860, 0.001865, -0.001870, 0.001875, -0.001880, 0.001885, -0.001890,
0.001895, -0.001900, 0.001905, -0.001910, 0.001915, -0.001919, 0.001924, -0.001929, 0.001934, -0.001938,
0.001943, -0.001948, 0.001952, -0.001957, 0.001961, -0.001966, 0.001970, -0.001975, 0.001979, -0.001984,
0.001988, -0.001993, 0.001997, -0.002001, 0.002005, -0.002010, 0.002014, -0.002018, 0.002022, -0.002026,
0.002030, -0.002034, 0.002038, -0.002042, 0.002046, -0.002050, 0.002054, -0.002058, 0.002062, -0.002066,
0.002069, -0.002073, 0.002077, -0.002080, 0.002084, -0.002088, 0.002091, -0.002095, 0.002098, -0.002102,
0.002105, -0.002109, 0.002112, -0.002115, 0.002119, -0.002122, 0.002125, -0.002128, 0.002131, -0.002134,
0.002138, -0.002141, 0.002144, -0.002147, 0.002150, -0.002152, 0.002155, -0.002158, 0.002161, -0.002164,
0.002167, -0.002169, 0.002172, -0.002175, 0.002177, -0.002180, 0.002182, -0.002185, 0.002187, -0.002190,
0.002192, -0.002194, 0.002197, -0.002199, 0.002201, -0.002203, 0.002206, -0.002208, 0.002210, -0.002212,
0.002214, -0.002216, 0.002218, -0.002220, 0.002222, -0.002224, 0.002225, -0.002227, 0.002229, -0.002230,
0.002232, -0.002234, 0.002235, -0.002237, 0.002238, -0.002240, 0.002241, -0.002243, 0.002244, -0.002245,
0.002247, -0.002248, 0.002249, -0.002250, 0.002251, -0.002252, 0.002253, -0.002255, 0.002256, -0.002256,
0.002257, -0.002258, 0.002259, -0.002260, 0.002261, -0.002261, 0.002262, -0.002263, 0.002263, -0.002264,
0.002264, -0.002265, 0.002265, -0.002266, 0.002266, -0.002266, 0.002267, -0.002267, 0.002267, -0.002267,
0.002267, -0.002267, 0.002267, 0.997733, 0.002267, -0.002267, 0.002267, -0.002267, 0.002267, -0.002267,
0.002267, -0.002266, 0.002266, -0.002266, 0.002265, -0.002265, 0.002264, -0.002264, 0.002263, -0.002263,
0.002262, -0.002261, 0.002261, -0.002260, 0.002259, -0.002258, 0.002257, -0.002257, 0.002256, -0.002255,
0.002254, -0.002252, 0.002251, -0.002250, 0.002249, -0.002248, 0.002247, -0.002245, 0.002244, -0.002243,
0.002241, -0.002240, 0.002238, -0.002237, 0.002235, -0.002234, 0.002232, -0.002231, 0.002229, -0.002227,
0.002225, -0.002224, 0.002222, -0.002220, 0.002218, -0.002216, 0.002214, -0.002212, 0.002210, -0.002208,
0.002206, -0.002204, 0.002201, -0.002199, 0.002197, -0.002195, 0.002192, -0.002190, 0.002187, -0.002185,
0.002182, -0.002180, 0.002177, -0.002175, 0.002172, -0.002169, 0.002167, -0.002164, 0.002161, -0.002158,
0.002156, -0.002153, 0.002150, -0.002147, 0.002144, -0.002141, 0.002138, -0.002135, 0.002132, -0.002128,
0.002125, -0.002122, 0.002119, -0.002115, 0.002112, -0.002109, 0.002105, -0.002102, 0.002098, -0.002095,
0.002091, -0.002088, 0.002084, -0.002081, 0.002077, -0.002073, 0.002070, -0.002066, 0.002062, -0.002058,
0.002054, -0.002050, 0.002047, -0.002043, 0.002039, -0.002035, 0.002031, -0.002027, 0.002022, -0.002018,
0.002014, -0.002010, 0.002006, -0.002001, 0.001997, -0.001993, 0.001988, -0.001984, 0.001980, -0.001975,
0.001971, -0.001966, 0.001962, -0.001957, 0.001953, -0.001948, 0.001943, -0.001939, 0.001934, -0.001929,
0.001925, -0.001920, 0.001915, -0.001910, 0.001905, -0.001900, 0.001895, -0.001890, 0.001885, -0.001880,
0.001875, -0.001870, 0.001865, -0.001860, 0.001855, -0.001850, 0.001845, -0.001839, 0.001834, -0.001829,
0.001824, -0.001818, 0.001813, -0.001808, 0.001802, -0.001797, 0.001791, -0.001786, 0.001780, -0.001775,
0.001769, -0.001764, 0.001758, -0.001753, 0.001747, -0.001741, 0.001736, -0.001730, 0.001724, -0.001719,
0.001713, -0.001707, 0.001701, -0.001696, 0.001690, -0.001684, 0.001678, -0.001672, 0.001666, -0.001660,
0.001654, -0.001648, 0.001642, -0.001636, 0.001630, -0.001624, 0.001618, -0.001612, 0.001606, -0.001600,
0.001593, -0.001587, 0.001581, -0.001575, 0.001569, -0.001562, 0.001556, -0.001550, 0.001544, -0.001537,
0.001531, -0.001525, 0.001518, -0.001512, 0.001505, -0.001499, 0.001493, -0.001486, 0.001480, -0.001473,
0.001467, -0.001460, 0.001454, -0.001447, 0.001441, -0.001434, 0.001427, -0.001421, 0.001414, -0.001408,
0.001401, -0.001394, 0.001388, -0.001381, 0.001374, -0.001368, 0.001361, -0.001354, 0.001348, -0.001341,
0.001334, -0.001327, 0.001321, -0.001314, 0.001307, -0.001300, 0.001293, -0.001287, 0.001280, -0.001273,
0.001266, -0.001259, 0.001252, -0.001246, 0.001239, -0.001232, 0.001225, -0.001218, 0.001211, -0.001204,
0.001197, -0.001190, 0.001183, -0.001176, 0.001170, -0.001163, 0.001156, -0.001149, 0.001142, -0.001135,
0.001128, -0.001121, 0.001114, -0.001107, 0.001100, -0.001093, 0.001086, -0.001079, 0.001072, -0.001065,
0.001058, -0.001051, 0.001044, -0.001037, 0.001030, -0.001023, 0.001016, -0.001008, 0.001001, -0.000994,
0.000987, -0.000980, 0.000973, -0.000966, 0.000959, -0.000952, 0.000945, -0.000938, 0.000931, -0.000924,
0.000917, -0.000910, 0.000903, -0.000896, 0.000889, -0.000882, 0.000875, -0.000868, 0.000861, -0.000854,
0.000847, -0.000840, 0.000833, -0.000826, 0.000819, -0.000811, 0.000804, -0.000797, 0.000790, -0.000783,
0.000776, -0.000769, 0.000763, -0.000756, 0.000749, -0.000742, 0.000735, -0.000728, 0.000721, -0.000714,
0.000707, -0.000700, 0.000693, -0.000686, 0.000679, -0.000672, 0.000665, -0.000659, 0.000652, -0.000645,
0.000638, -0.000631, 0.000624, -0.000617, 0.000611, -0.000604, 0.000597, -0.000590, 0.000583, -0.000577,
0.000570, -0.000563, 0.000556, -0.000550, 0.000543, -0.000536, 0.000529, -0.000523, 0.000516, -0.000509,
0.000503, -0.000496, 0.000489, -0.000483, 0.000476, -0.000470, 0.000463, -0.000456, 0.000450, -0.000443,
0.000437, -0.000430, 0.000424, -0.000417, 0.000411, -0.000404, 0.000398, -0.000391, 0.000385, -0.000379,
0.000372, -0.000366, 0.000359, -0.000353, 0.000347, -0.000340, 0.000334, -0.000328, 0.000322, -0.000315,
0.000309, -0.000303, 0.000297, -0.000291, 0.000284, -0.000278, 0.000272, -0.000266, 0.000260, -0.000254,
0.000248, -0.000242, 0.000236, -0.000230, 0.000224, -0.000218, 0.000212, -0.000206, 0.000200, -0.000194,
0.000188, -0.000182, 0.000176, -0.000171, 0.000165, -0.000159, 0.000153, -0.000147, 0.000142, -0.000136,
0.000130, -0.000125, 0.000119, -0.000113, 0.000108, -0.000102, 0.000097, -0.000091, 0.000086, -0.000080,
0.000075, -0.000069, 0.000064, -0.000058, 0.000053, -0.000048, 0.000042, -0.000037, 0.000032, -0.000026,
0.000021, -0.000016, 0.000011, -0.000006, 0.000001, 0.000005, -0.000010, 0.000015, -0.000020, 0.000025,
-0.000030, 0.000035, -0.000040, 0.000045, -0.000050, 0.000055, -0.000060, 0.000064, -0.000069, 0.000074,
-0.000079, 0.000084, -0.000088, 0.000093, -0.000098, 0.000102, -0.000107, 0.000111, -0.000116, 0.000121,
-0.000125, 0.000130, -0.000134, 0.000138, -0.000143, 0.000147, -0.000152, 0.000156, -0.000160, 0.000165,
-0.000169, 0.000173, -0.000177, 0.000181, -0.000186, 0.000190, -0.000194, 0.000198, -0.000202, 0.000206,
-0.000210, 0.000214, -0.000218, 0.000222, -0.000226, 0.000229, -0.000233, 0.000237, -0.000241, 0.000245,
-0.000248, 0.000252, -0.000256, 0.000259, -0.000263, 0.000267, -0.000270, 0.000274, -0.000277, 0.000281,
-0.000284, 0.000287, -0.000291, 0.000294, -0.000298, 0.000301, -0.000304, 0.000307, -0.000311, 0.000314,
-0.000317, 0.000320, -0.000323, 0.000326, -0.000329, 0.000332, -0.000335, 0.000338, -0.000341, 0.000344,
-0.000347, 0.000350, -0.000353, 0.000355, -0.000358, 0.000361, -0.000364, 0.000366, -0.000369, 0.000372,
-0.000374, 0.000377, -0.000379, 0.000382, -0.000384, 0.000387, -0.000389, 0.000391, -0.000394, 0.000396,
-0.000398, 0.000401, -0.000403, 0.000405, -0.000407, 0.000410, -0.000412, 0.000414, -0.000416, 0.000418,
-0.000420, 0.000422, -0.000424, 0.000426, -0.000428, 0.000430, -0.000431, 0.000433, -0.000435, 0.000437,
-0.000439, 0.000440, -0.000442, 0.000444, -0.000445, 0.000447, -0.000448, 0.000450, -0.000451, 0.000453,
-0.000454, 0.000456, -0.000457, 0.000459, -0.000460, 0.000461, -0.000463, 0.000464, -0.000465, 0.000466,
-0.000467, 0.000469, -0.000470, 0.000471, -0.000472, 0.000473, -0.000474, 0.000475, -0.000476, 0.000477,
-0.000478, 0.000478, -0.000479, 0.000480, -0.000481, 0.000482, -0.000482, 0.000483, -0.000484, 0.000485,
-0.000485, 0.000486, -0.000486, 0.000487, -0.000487, 0.000488, -0.000488, 0.000489, -0.000489, 0.000490,
-0.000490, 0.000490, -0.000491, 0.000491, -0.000491, 0.000491, -0.000492, 0.000492, -0.000492, 0.000492,
-0.000492, 0.000492, -0.000492, 0.000492, -0.000492, 0.000492, -0.000492, 0.000492, -0.000492, 0.000492,
-0.000492, 0.000492, -0.000492, 0.000491, -0.000491, 0.000491, -0.000491, 0.000490, -0.000490, 0.000490,
-0.000489, 0.000489, -0.000488, 0.000488, -0.000487, 0.000487, -0.000486, 0.000486, -0.000485, 0.000485,
-0.000484, 0.000483, -0.000483, 0.000482, -0.000481, 0.000481, -0.000480, 0.000479, -0.000478, 0.000478,
-0.000477, 0.000476, -0.000475, 0.000474, -0.000473, 0.000472, -0.000471, 0.000470, -0.000469, 0.000468,
-0.000467, 0.000466, -0.000465, 0.000464, -0.000463, 0.000462, -0.000461, 0.000459, -0.000458, 0.000457,
-0.000456, 0.000454, -0.000453, 0.000452, -0.000450, 0.000449, -0.000448, 0.000446, -0.000445, 0.000444,
-0.000442, 0.000441, -0.000439, 0.000438, -0.000436, 0.000435, -0.000433, 0.000432, -0.110936, -0.168352,
-0.088223, -0.042817, -0.019210, -0.004995, 0.001419, 0.006144, 0.007338, 0.009177, 0.008795, 0.009759,
0.008911, 0.009612, 0.008634, 0.009257, 0.008253, 0.008855, 0.007855, 0.008452, 0.007466, 0.008063, 0.007092,
0.007690, 0.006735, 0.007334, 0.006396, 0.006995, 0.006073, 0.006672, 0.005766, 0.006364, 0.005474, 0.006071,
0.005196, 0.005792, 0.004932, 0.005526, 0.004681, 0.005272, 0.004442, 0.005031, 0.004215, 0.004801, 0.003999,
0.004581, 0.003794, 0.004373, 0.003599, 0.004173, 0.003414, 0.003984, 0.003238, 0.003803, 0.003071, 0.003630,
0.002912, 0.003466, 0.002761, 0.003309, 0.002617, 0.003160, 0.002481, 0.003017, 0.002352, 0.002881, 0.002229,
0.002752, 0.002112, 0.002628, 0.002001, 0.002510, 0.001896, 0.002398, 0.001796, 0.002291, 0.001701, 0.002188,
0.001611, 0.002090, 0.001526, 0.001997, 0.001445, 0.001908, 0.001368, 0.001823, 0.001295, 0.001742, 0.001226,
0.001664, 0.001161, 0.001590, 0.001099, 0.001519, 0.001040, 0.001451, 0.000985, 0.001387, 0.000932, 0.001325,
0.000882, 0.001266, 0.000835, 0.001209, 0.000790, 0.001155, 0.000748, 0.001103, 0.000708, 0.001054, 0.000670,
0.001006, 0.000635, 0.000961, 0.000601, 0.000917, 0.000569, 0.000876, 0.000540, 0.000836, 0.000511, 0.000798,
0.000485, 0.000761, 0.000460, 0.000726, 0.000436, 0.000692, 0.000414, 0.000660, 0.000393, 0.000629, 0.000373,
0.000599, 0.000355, 0.000570, 0.000338, 0.000543, 0.000322, 0.000516, 0.000306, 0.000491, 0.000292, 0.000466,
0.000279, 0.000443, 0.000267, 0.000420, 0.000255, 0.000398, 0.000245, 0.000377, 0.000235, 0.000357, 0.000226,
0.000338, 0.000217, 0.000319, 0.000209, 0.000301, 0.000202, 0.000283, 0.000196, 0.000266, 0.000190, 0.000250,
0.000184, 0.000234, 0.000179, 0.000219, 0.000174, 0.000204, 0.000170, 0.000190, 0.000167, 0.000176, 0.000163,
0.000163, 0.000161, 0.000150, 0.000158, 0.000137, 0.000156, 0.000125, 0.000154, 0.000113, 0.000152, 0.000102,
0.000151, 0.000091, 0.000150, 0.000080, 0.000149, 0.000069, 0.000149, 0.000059, 0.000149, 0.000049, 0.000149,
0.000040, 0.000149, 0.000030, 0.000149, 0.000021, 0.000150, 0.000012, 0.000151, 0.000004, 0.000151, -0.000005,
0.000152, -0.000013, 0.000154, -0.000021, 0.000155, -0.000029, 0.000156, -0.000036, 0.000158, -0.000044,
0.000159, -0.000051, 0.000161, -0.000058, 0.000163, -0.000065, 0.000165, -0.000071, 0.000167, -0.000078,
0.000169, -0.000084, 0.000171, -0.000091, 0.000173, -0.000097, 0.000175, -0.000103, 0.000178, -0.000109,
0.000180, -0.000114, 0.000182, -0.000120, 0.000185, -0.000125, 0.000187, -0.000131, 0.000189, -0.000136,
0.000192, -0.000141, 0.000194, -0.000146, 0.000197, -0.000151, 0.000199, -0.000156, 0.000202, -0.000160,
0.000204, -0.000165, 0.000207, -0.000169, 0.000209, -0.000174, 0.000212, -0.000178, 0.000214, -0.000182,
0.000217, -0.000186, 0.000219, -0.000190, 0.000221, -0.000194, 0.000224, -0.000198, 0.000226, -0.000201,
0.000229, -0.000205, 0.000231, -0.000208, 0.000233, -0.000212, 0.000236, -0.000215, 0.000238, -0.000219,
0.000240, -0.000222, 0.000242, -0.000225, 0.000244, -0.000228, 0.000246, -0.000231, 0.000249, -0.000234,
0.000251, -0.000236, 0.000253, -0.000239, 0.000255, -0.000242, 0.000256, -0.000244, 0.000258, -0.000247,
0.000260, -0.000249, 0.000262, -0.000252, 0.000264, -0.000254, 0.000265, -0.000256, 0.000267
};

1621
src/viper/effects/VHE_L2.h Normal file

File diff suppressed because it is too large Load Diff

1622
src/viper/effects/VHE_L3.h Normal file

File diff suppressed because it is too large Load Diff

1614
src/viper/effects/VHE_L4.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -131,7 +131,7 @@ float MinPhaseIIRCoeffs::GetIndexFrequency(uint32_t index) {
}
int MinPhaseIIRCoeffs::SolveRoot(double param_2, double param_3, double param_4, double *param_5) {
double x = (param_4 - pow(param_3, 2) / (param_2 * 4.0)) / param_2;
double x = (param_4 - (param_3 * param_3) / (param_2 * 4.0)) / param_2;
double y = param_3 / (param_2 * 2.0);
if (x >= 0.0) {
@ -197,15 +197,15 @@ int MinPhaseIIRCoeffs::UpdateCoeffs(uint32_t bands, uint32_t samplingRate) {
double sinY = sin(y);
double a = cosX * cosY;
double b = pow(cosX, 2.0) / 2.0;
double c = pow(sinY, 2.0);
double b = (cosX * cosX) / 2.0;
double c = (sinY * sinY);
// ((b - a) + 0.5) - c
double d = ((b - a) + 0.5) - c;
// c + (((b + pow(cosY, 2.0)) - a) - 0.5)
double e = c + (((b + pow(cosY, 2.0)) - a) - 0.5);
// ((pow(cosX, 2.0) / 8.0 - cosX * cosY / 4.0) + 0.125) - c / 4.0
double f = ((pow(cosX, 2.0) * 0.125 - cosX * cosY * 0.25) + 0.125) - c * 0.25;
// c + (((b + (cosY * cosY)) - a) - 0.5)
double e = c + (((b + (cosY * cosY)) - a) - 0.5);
// (((cosX * cosX) / 8.0 - cosX * cosY / 4.0) + 0.125) - c / 4.0
double f = (((cosX * cosX) * 0.125 - cosX * cosY * 0.25) + 0.125) - c * 0.25;
if (SolveRoot(d, e, f, &ret1) == 0) {
this->coeffs[4 * i] = ret1 * 2.0;

View File

@ -0,0 +1,101 @@
#include <cstdlib>
#include <cstring>
#include "PConvSingle.h"
PConvSingle::PConvSingle() {
this->enabled = false;
this->segments = 0;
this->segmentSize = 0;
// this->data = nullptr;
}
PConvSingle::~PConvSingle() {
ReleaseResources();
}
void PConvSingle::Convolve(float *buffer) {
ConvSegment(buffer, false, 0);
}
void PConvSingle::ConvolveInterleaved(float *buffer, int channel) {
ConvSegment(buffer, true, channel);
}
void PConvSingle::ConvSegment(float *buffer, bool interleaved, int channel) {
// TODO
}
int PConvSingle::GetFFTSize() {
return this->segmentSize * 2;
}
int PConvSingle::GetSegmentCount() {
return this->segments;
}
int PConvSingle::GetSegmentSize() {
return this->segmentSize;
}
bool PConvSingle::InstanceUsable() {
return this->enabled;
}
int PConvSingle::LoadKernel(float *buf, int param_2, int segmentSize) {
if (buf != nullptr && param_2 > 0 && segmentSize > 0 && segmentSize % 2 == 0) {
this->enabled = false;
ReleaseResources();
// this->data = new PConvData(); //(PConvData *) malloc(0x140); // TODO: Sizeof
this->segmentSize = segmentSize;
int n = ProcessKernel(buf, param_2, 1);
if (n != 0) {
this->enabled = true;
return n;
}
ReleaseResources();
}
return 0;
}
int PConvSingle::LoadKernel(const float *param_2,float param_3,int param_4,int param_5) {
// if (buf != nullptr && param_5 > 0 && segmentSize > 0 && segmentSize % 2 == 0) {
// this->enabled = false;
// ReleaseResources();
//// this->data = new PConvData(); //(PConvData *) malloc(0x140); // TODO: Sizeof
// this->segmentSize = segmentSize;
// int n = ProcessKernel(1, param_2, param_4, param_5);
// if (n != 0) {
// this->enabled = true;
// return n;
// }
// ReleaseResources();
// }
return 0;
}
int PConvSingle::ProcessKernel(float *param_1, int param_2, int param_3) {
// TODO
return 0;
}
int PConvSingle::ProcessKernel(int param_2, float *param_3, int param_4, int param_5) {
// TODO
return 0;
}
void PConvSingle::ReleaseResources() {
// TODO
this->enabled = false;
this->segments = 0;
this->segmentSize = 0;
}
void PConvSingle::Reset() {
if (!this->enabled) return;
// TODO
}
void PConvSingle::UnloadKernel() {
this->enabled = false;
ReleaseResources();
}

View File

@ -1,31 +1,10 @@
#pragma once
typedef struct {
int unk_0x00;
int unk_0x04;
int unk_0x08;
float *unk_buffer;
float *fftInputBuffer;
float *fftOutputBuffer;
float *unk_buffer_2;
float *unk_buffer_3;
int size_A;
void *field_A1;
void *field_A2;
int size_B;
void *field_B1;
void *field_B2;
int *unk_0x120;
void *fft_plan_1;
void *fft_plan_2;
} PConvData;
class PConvSingle_F32 {
class PConvSingle {
public:
PConvSingle_F32();
PConvSingle();
~PConvSingle_F32();
~PConvSingle();
void Reset();
@ -45,7 +24,7 @@ public:
int LoadKernel(float *buf, int param_2, int segmentSize);
int LoadKernel(float *buf, float *param_2, int segmentSize, int param_4, int param_5);
int LoadKernel(const float *param_2,float param_3,int param_4,int param_5);
int ProcessKernel(float *param_1, int param_2, int param_3);
@ -57,5 +36,5 @@ public:
bool enabled;
int segments, segmentSize;
PConvData *data; // TODO: Type
// PConvData *data; // TODO: Type
};

View File

@ -1,103 +0,0 @@
#include <cstdlib>
#include <cstring>
#include "PConvSingle_F32.h"
PConvSingle_F32::PConvSingle_F32() {
this->enabled = false;
this->segments = 0;
this->segmentSize = 0;
this->data = nullptr;
}
PConvSingle_F32::~PConvSingle_F32() {
ReleaseResources();
}
void PConvSingle_F32::Reset() {
// TODO
}
int PConvSingle_F32::GetFFTSize() {
return this->segmentSize * 2;
}
int PConvSingle_F32::GetSegmentCount() {
return this->segments;
}
int PConvSingle_F32::GetSegmentSize() {
return this->segmentSize;
}
bool PConvSingle_F32::InstanceUsable() {
return this->enabled;
}
void PConvSingle_F32::Convolve(float *buffer) {
ConvSegment(buffer, false, 0);
}
void PConvSingle_F32::ConvolveInterleaved(float *buffer, int channel) {
ConvSegment(buffer, true, channel);
}
void PConvSingle_F32::ConvSegment(float *buffer, bool interleaved, int channel) {
// TODO
}
int PConvSingle_F32::LoadKernel(float *buf, int param_2, int segmentSize) {
if (buf == nullptr) {
return 0;
}
if (param_2 > 0 && segmentSize > 0 && segmentSize % 2 == 0) {
this->enabled = false;
ReleaseResources();
this->data = new PConvData(); //(PConvData *) malloc(0x140); // TODO: Sizeof
this->segmentSize = segmentSize;
int n = ProcessKernel(buf, param_2, 1);
if (n != 0) {
this->enabled = true;
return n;
}
ReleaseResources();
}
return 0;
}
int PConvSingle_F32::LoadKernel(float *buf, float *param_2, int segmentSize, int param_4, int param_5) {
if (buf == nullptr) {
return 0;
}
if (param_5 > 0 && segmentSize > 0 && segmentSize % 2 == 0) {
this->enabled = false;
ReleaseResources();
this->data = new PConvData(); //(PConvData *) malloc(0x140); // TODO: Sizeof
this->segmentSize = segmentSize;
int n = ProcessKernel(1, param_2, param_4, param_5);
if (n != 0) {
this->enabled = true;
return n;
}
ReleaseResources();
}
return 0;
}
int PConvSingle_F32::ProcessKernel(float *param_1, int param_2, int param_3) {
// TODO
return 0;
}
int PConvSingle_F32::ProcessKernel(int param_2, float *param_3, int param_4, int param_5) {
// TODO
return 0;
}
void PConvSingle_F32::ReleaseResources() {
// TODO
}
void PConvSingle_F32::UnloadKernel() {
this->enabled = false;
ReleaseResources();
}