771 lines
26 KiB
C
771 lines
26 KiB
C
/*
|
|
* iLBC - a library for the iLBC codec
|
|
*
|
|
* constant.c - The iLBC low bit rate speech codec.
|
|
*
|
|
* Adapted by Steve Underwood <steveu@coppice.org> from the reference
|
|
* iLBC code supplied in RFC3951.
|
|
*
|
|
* Original code Copyright (C) The Internet Society (2004).
|
|
* All changes to produce this version Copyright (C) 2008 by Steve Underwood
|
|
* All Rights Reserved.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
*
|
|
* $Id: constants.c,v 1.2 2008/03/06 12:27:38 steveu Exp $
|
|
*/
|
|
|
|
/*! \file */
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include <config.h>
|
|
#endif
|
|
|
|
#include <inttypes.h>
|
|
|
|
#include "ilbc.h"
|
|
#include "constants.h"
|
|
|
|
/* ULP bit allocation */
|
|
|
|
/* 20 ms frame */
|
|
const ilbc_ulp_inst_t ULP_20msTbl =
|
|
{
|
|
/* LSF */
|
|
{
|
|
{6, 0, 0, 0, 0}, {7, 0, 0, 0, 0}, {7, 0, 0, 0, 0},
|
|
{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}
|
|
},
|
|
/* Start state location, gain and samples */
|
|
{2, 0, 0, 0, 0},
|
|
{1, 0, 0, 0, 0},
|
|
{6, 0, 0, 0, 0},
|
|
{0, 1, 2, 0, 0},
|
|
/* extra CB index and extra CB gain */
|
|
{{6, 0, 1, 0, 0}, {0, 0, 7, 0, 0}, {0, 0, 7, 0, 0}},
|
|
{{2, 0, 3, 0, 0}, {1, 1, 2, 0, 0}, {0, 0, 3, 0, 0}},
|
|
/* CB index and CB gain */
|
|
{
|
|
{{7, 0, 1, 0, 0}, {0, 0, 7, 0, 0}, {0, 0, 7, 0, 0}},
|
|
{{0, 0, 8, 0, 0}, {0, 0, 8, 0, 0}, {0, 0, 8, 0, 0}},
|
|
{{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}},
|
|
{{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}}
|
|
},
|
|
{
|
|
{{1, 2, 2, 0, 0}, {1, 1, 2, 0, 0}, {0, 0, 3, 0, 0}},
|
|
{{1, 1, 3, 0, 0}, {0, 2, 2, 0, 0}, {0, 0, 3, 0, 0}},
|
|
{{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}},
|
|
{{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}}
|
|
}
|
|
};
|
|
|
|
/* 30 ms frame */
|
|
const ilbc_ulp_inst_t ULP_30msTbl =
|
|
{
|
|
/* LSF */
|
|
{
|
|
{6, 0, 0, 0, 0}, {7, 0, 0, 0, 0}, {7, 0, 0, 0, 0},
|
|
{6, 0, 0, 0, 0}, {7, 0, 0, 0, 0}, {7, 0, 0, 0, 0}
|
|
},
|
|
/* Start state location, gain and samples */
|
|
{3, 0, 0, 0, 0},
|
|
{1, 0, 0, 0, 0},
|
|
{6, 0, 0, 0, 0},
|
|
{0, 1, 2, 0, 0},
|
|
/* extra CB index and extra CB gain */
|
|
{{4, 2, 1, 0, 0}, {0, 0, 7, 0, 0}, {0, 0, 7, 0, 0}},
|
|
{{1, 1, 3, 0, 0}, {1, 1, 2, 0, 0}, {0, 0, 3, 0, 0}},
|
|
/* CB index and CB gain */
|
|
{
|
|
{{6, 1, 1, 0, 0}, {0, 0, 7, 0, 0}, {0, 0,7, 0, 0}},
|
|
{{0, 7, 1, 0, 0}, {0, 0, 8, 0, 0}, {0, 0,8, 0, 0}},
|
|
{{0, 7, 1, 0, 0}, {0, 0, 8, 0, 0}, {0, 0,8, 0, 0}},
|
|
{{0, 7, 1, 0, 0}, {0, 0, 8, 0, 0}, {0, 0,8, 0, 0}}
|
|
},
|
|
{
|
|
{{1, 2, 2, 0, 0}, {1, 2, 1, 0, 0}, {0, 0, 3, 0, 0}},
|
|
{{0, 2, 3, 0, 0}, {0, 2, 2, 0, 0}, {0, 0, 3, 0, 0}},
|
|
{{0, 1, 4, 0, 0}, {0, 1, 3, 0, 0}, {0, 0, 3, 0, 0}},
|
|
{{0, 1, 4, 0, 0}, {0, 1, 3, 0, 0}, {0, 0, 3, 0, 0}}
|
|
}
|
|
};
|
|
|
|
/* HP Filters */
|
|
|
|
const float hpi_zero_coefsTbl[3] =
|
|
{
|
|
0.92727436f, -1.8544941f, 0.92727436f
|
|
};
|
|
|
|
const float hpi_pole_coefsTbl[3] =
|
|
{
|
|
1.0f, -1.9059465f, 0.9114024f
|
|
};
|
|
|
|
const float hpo_zero_coefsTbl[3] =
|
|
{
|
|
0.93980581f, -1.8795834f, 0.93980581f
|
|
};
|
|
|
|
const float hpo_pole_coefsTbl[3] =
|
|
{
|
|
1.0f, -1.9330735f, 0.93589199f
|
|
};
|
|
|
|
/* LP Filter */
|
|
|
|
const float lpFilt_coefsTbl[FILTERORDER_DS] =
|
|
{
|
|
-0.066650f, 0.125000f, 0.316650f,
|
|
0.414063f, 0.316650f,
|
|
0.125000f, -0.066650f
|
|
};
|
|
|
|
/* State quantization tables */
|
|
|
|
const float state_sq3Tbl[8] =
|
|
{
|
|
-3.719849f, -2.177490f, -1.130005f,
|
|
-0.309692f, 0.444214f, 1.329712f,
|
|
2.436279f, 3.983887f
|
|
};
|
|
|
|
const float state_frgqTbl[64] =
|
|
{
|
|
1.000085f, 1.071695f, 1.140395f,
|
|
1.206868f, 1.277188f, 1.351503f,
|
|
1.429380f, 1.500727f, 1.569049f,
|
|
1.639599f, 1.707071f, 1.781531f,
|
|
1.840799f, 1.901550f, 1.956695f,
|
|
2.006750f, 2.055474f, 2.102787f,
|
|
2.142819f, 2.183592f, 2.217962f,
|
|
2.257177f, 2.295739f, 2.332967f,
|
|
2.369248f, 2.402792f, 2.435080f,
|
|
2.468598f, 2.503394f, 2.539284f,
|
|
2.572944f, 2.605036f, 2.636331f,
|
|
2.668939f, 2.698780f, 2.729101f,
|
|
2.759786f, 2.789834f, 2.818679f,
|
|
2.848074f, 2.877470f, 2.906899f,
|
|
2.936655f, 2.967804f, 3.000115f,
|
|
3.033367f, 3.066355f, 3.104231f,
|
|
3.141499f, 3.183012f, 3.222952f,
|
|
3.265433f, 3.308441f, 3.350823f,
|
|
3.395275f, 3.442793f, 3.490801f,
|
|
3.542514f, 3.604064f, 3.666050f,
|
|
3.740994f, 3.830749f, 3.938770f,
|
|
4.101764f
|
|
};
|
|
|
|
/* CB tables */
|
|
|
|
const int search_rangeTbl[5][CB_NSTAGES] =
|
|
{
|
|
{58, 58, 58},
|
|
{108, 44, 44},
|
|
{108, 108, 108},
|
|
{108, 108, 108},
|
|
{108, 108, 108}
|
|
};
|
|
|
|
const int stMemLTbl = 85;
|
|
const int memLfTbl[NASUB_MAX] = {147, 147, 147, 147};
|
|
|
|
/* expansion filter(s) */
|
|
|
|
const float cbfiltersTbl[CB_FILTERLEN] =
|
|
{
|
|
-0.034180f, 0.108887f, -0.184326f,
|
|
0.806152f, 0.713379f, -0.144043f,
|
|
0.083740f, -0.033691f
|
|
};
|
|
|
|
/* Gain Quantization */
|
|
|
|
const float gain_sq3Tbl[8] =
|
|
{
|
|
-1.000000f, -0.659973f, -0.330017f,
|
|
0.000000f, 0.250000f, 0.500000f,
|
|
0.750000f, 1.00000f
|
|
};
|
|
|
|
const float gain_sq4Tbl[16] =
|
|
{
|
|
-1.049988f, -0.900024f, -0.750000f,
|
|
-0.599976f, -0.450012f, -0.299988f,
|
|
-0.150024f, 0.000000f, 0.150024f,
|
|
0.299988f, 0.450012f, 0.599976f,
|
|
0.750000f, 0.900024f, 1.049988f,
|
|
1.200012f
|
|
};
|
|
|
|
const float gain_sq5Tbl[32]=
|
|
{
|
|
0.037476f, 0.075012f, 0.112488f,
|
|
0.150024f, 0.187500f, 0.224976f,
|
|
0.262512f, 0.299988f, 0.337524f,
|
|
0.375000f, 0.412476f, 0.450012f,
|
|
0.487488f, 0.525024f, 0.562500f,
|
|
0.599976f, 0.637512f, 0.674988f,
|
|
0.712524f, 0.750000f, 0.787476f,
|
|
0.825012f, 0.862488f, 0.900024f,
|
|
0.937500f, 0.974976f, 1.012512f,
|
|
1.049988f, 1.087524f, 1.125000f,
|
|
1.162476f, 1.200012f
|
|
};
|
|
|
|
/* Enhancer - Upsamling a factor 4 (ENH_UPS0 = 4) */
|
|
const float polyphaserTbl[ENH_UPS0*(2*ENH_FL0+1)] =
|
|
{
|
|
0.000000f, 0.000000f, 0.000000f,
|
|
1.000000f,
|
|
0.000000f, 0.000000f, 0.000000f,
|
|
0.015625f, -0.076904f, 0.288330f,
|
|
0.862061f,
|
|
-0.106445f, 0.018799f, -0.015625f,
|
|
0.023682f, -0.124268f, 0.601563f,
|
|
0.601563f,
|
|
-0.124268f, 0.023682f, -0.023682f,
|
|
0.018799f, -0.106445f, 0.862061f,
|
|
0.288330f,
|
|
-0.076904f, 0.015625f, -0.018799f
|
|
};
|
|
|
|
const float enh_plocsTbl[ENH_NBLOCKS_TOT] =
|
|
{
|
|
40.0f, 120.0f,
|
|
200.0f, 280.0f, 360.0f,
|
|
440.0f, 520.0f, 600.0f
|
|
};
|
|
|
|
/* LPC analysis and quantization */
|
|
|
|
const int dim_lsfCbTbl[LSF_NSPLIT] = {3, 3, 4};
|
|
const int size_lsfCbTbl[LSF_NSPLIT] = {64, 128, 128};
|
|
|
|
const float lsfmeanTbl[ILBC_LPC_FILTERORDER] =
|
|
{
|
|
0.281738f, 0.445801f, 0.663330f,
|
|
0.962524f, 1.251831f, 1.533081f,
|
|
1.850586f, 2.137817f, 2.481445f,
|
|
2.777344f
|
|
};
|
|
|
|
const float lsf_weightTbl_30ms[6] =
|
|
{
|
|
1.0f/2.0f, 1.0f,
|
|
2.0f/3.0f,
|
|
1.0f/3.0f, 0.0f, 0.0f
|
|
};
|
|
|
|
const float lsf_weightTbl_20ms[4] =
|
|
{
|
|
3.0f/4.0f, 2.0f/4.0f,
|
|
1.0f/4.0f, 0.0f
|
|
};
|
|
|
|
/* Hanning LPC window */
|
|
const float lpc_winTbl[ILBC_BLOCK_LEN_MAX] =
|
|
{
|
|
0.000183f, 0.000671f, 0.001526f,
|
|
0.002716f, 0.004242f, 0.006104f,
|
|
0.008301f, 0.010834f, 0.013702f,
|
|
0.016907f, 0.020416f, 0.024261f,
|
|
0.028442f, 0.032928f, 0.037750f,
|
|
0.042877f, 0.048309f, 0.054047f,
|
|
0.060089f, 0.066437f, 0.073090f,
|
|
0.080017f, 0.087219f, 0.094727f,
|
|
0.102509f, 0.110535f, 0.118835f,
|
|
0.127411f, 0.136230f, 0.145294f,
|
|
0.154602f, 0.164154f, 0.173920f,
|
|
0.183899f, 0.194122f, 0.204529f,
|
|
0.215149f, 0.225952f, 0.236938f,
|
|
0.248108f, 0.259460f, 0.270966f,
|
|
0.282654f, 0.294464f, 0.306396f,
|
|
0.318481f, 0.330688f, 0.343018f,
|
|
0.355438f, 0.367981f, 0.380585f,
|
|
0.393280f, 0.406067f, 0.418884f,
|
|
0.431763f, 0.444702f, 0.457672f,
|
|
0.470673f, 0.483704f, 0.496735f,
|
|
0.509766f, 0.522797f, 0.535828f,
|
|
0.548798f, 0.561768f, 0.574677f,
|
|
0.587524f, 0.600342f, 0.613068f,
|
|
0.625732f, 0.638306f, 0.650787f,
|
|
0.663147f, 0.675415f, 0.687561f,
|
|
0.699585f, 0.711487f, 0.723206f,
|
|
0.734802f, 0.746216f, 0.757477f,
|
|
0.768585f, 0.779480f, 0.790192f,
|
|
0.800720f, 0.811005f, 0.821106f,
|
|
0.830994f, 0.840668f, 0.850067f,
|
|
0.859253f, 0.868225f, 0.876892f,
|
|
0.885345f, 0.893524f, 0.901428f,
|
|
0.909058f, 0.916412f, 0.923492f,
|
|
0.930267f, 0.936768f, 0.942963f,
|
|
0.948853f, 0.954437f, 0.959717f,
|
|
0.964691f, 0.969360f, 0.973694f,
|
|
0.977692f, 0.981384f, 0.984741f,
|
|
0.987762f, 0.990479f, 0.992828f,
|
|
0.994873f, 0.996552f, 0.997925f,
|
|
0.998932f, 0.999603f, 0.999969f,
|
|
0.999969f, 0.999603f, 0.998932f,
|
|
0.997925f, 0.996552f, 0.994873f,
|
|
0.992828f, 0.990479f, 0.987762f,
|
|
0.984741f, 0.981384f, 0.977692f,
|
|
0.973694f, 0.969360f, 0.964691f,
|
|
0.959717f, 0.954437f, 0.948853f,
|
|
0.942963f, 0.936768f, 0.930267f,
|
|
0.923492f, 0.916412f, 0.909058f,
|
|
0.901428f, 0.893524f, 0.885345f,
|
|
0.876892f, 0.868225f, 0.859253f,
|
|
0.850067f, 0.840668f, 0.830994f,
|
|
0.821106f, 0.811005f, 0.800720f,
|
|
0.790192f, 0.779480f, 0.768585f,
|
|
0.757477f, 0.746216f, 0.734802f,
|
|
0.723206f, 0.711487f, 0.699585f,
|
|
0.687561f, 0.675415f, 0.663147f,
|
|
0.650787f, 0.638306f, 0.625732f,
|
|
0.613068f, 0.600342f, 0.587524f,
|
|
0.574677f, 0.561768f, 0.548798f,
|
|
0.535828f, 0.522797f, 0.509766f,
|
|
0.496735f, 0.483704f, 0.470673f,
|
|
0.457672f, 0.444702f, 0.431763f,
|
|
0.418884f, 0.406067f, 0.393280f,
|
|
0.380585f, 0.367981f, 0.355438f,
|
|
0.343018f, 0.330688f, 0.318481f,
|
|
0.306396f, 0.294464f, 0.282654f,
|
|
0.270966f, 0.259460f, 0.248108f,
|
|
0.236938f, 0.225952f, 0.215149f,
|
|
0.204529f, 0.194122f, 0.183899f,
|
|
0.173920f, 0.164154f, 0.154602f,
|
|
0.145294f, 0.136230f, 0.127411f,
|
|
0.118835f, 0.110535f, 0.102509f,
|
|
0.094727f, 0.087219f, 0.080017f,
|
|
0.073090f, 0.066437f, 0.060089f,
|
|
0.054047f, 0.048309f, 0.042877f,
|
|
0.037750f, 0.032928f, 0.028442f,
|
|
0.024261f, 0.020416f, 0.016907f,
|
|
0.013702f, 0.010834f, 0.008301f,
|
|
0.006104f, 0.004242f, 0.002716f,
|
|
0.001526f, 0.000671f, 0.000183f
|
|
};
|
|
|
|
/* Asymmetric LPC window */
|
|
const float lpc_asymwinTbl[ILBC_BLOCK_LEN_MAX] =
|
|
{
|
|
0.000061f, 0.000214f, 0.000458f,
|
|
0.000824f, 0.001282f, 0.001831f,
|
|
0.002472f, 0.003235f, 0.004120f,
|
|
0.005066f, 0.006134f, 0.007294f,
|
|
0.008545f, 0.009918f, 0.011383f,
|
|
0.012939f, 0.014587f, 0.016357f,
|
|
0.018219f, 0.020172f, 0.022217f,
|
|
0.024353f, 0.026611f, 0.028961f,
|
|
0.031372f, 0.033905f, 0.036530f,
|
|
0.039276f, 0.042084f, 0.044983f,
|
|
0.047974f, 0.051086f, 0.054260f,
|
|
0.057526f, 0.060883f, 0.064331f,
|
|
0.067871f, 0.071503f, 0.075226f,
|
|
0.079010f, 0.082916f, 0.086884f,
|
|
0.090942f, 0.095062f, 0.099304f,
|
|
0.103607f, 0.107971f, 0.112427f,
|
|
0.116974f, 0.121582f, 0.126282f,
|
|
0.131073f, 0.135895f, 0.140839f,
|
|
0.145813f, 0.150879f, 0.156006f,
|
|
0.161224f, 0.166504f, 0.171844f,
|
|
0.177246f, 0.182709f, 0.188263f,
|
|
0.193848f, 0.199524f, 0.205231f,
|
|
0.211029f, 0.216858f, 0.222778f,
|
|
0.228729f, 0.234741f, 0.240814f,
|
|
0.246918f, 0.253082f, 0.259308f,
|
|
0.265564f, 0.271881f, 0.278259f,
|
|
0.284668f, 0.291107f, 0.297607f,
|
|
0.304138f, 0.310730f, 0.317322f,
|
|
0.323975f, 0.330658f, 0.337372f,
|
|
0.344147f, 0.350922f, 0.357727f,
|
|
0.364594f, 0.371460f, 0.378357f,
|
|
0.385284f, 0.392212f, 0.399170f,
|
|
0.406158f, 0.413177f, 0.420197f,
|
|
0.427246f, 0.434296f, 0.441376f,
|
|
0.448456f, 0.455536f, 0.462646f,
|
|
0.469757f, 0.476868f, 0.483978f,
|
|
0.491089f, 0.498230f, 0.505341f,
|
|
0.512451f, 0.519592f, 0.526703f,
|
|
0.533813f, 0.540924f, 0.548004f,
|
|
0.555084f, 0.562164f, 0.569244f,
|
|
0.576294f, 0.583313f, 0.590332f,
|
|
0.597321f, 0.604309f, 0.611267f,
|
|
0.618195f, 0.625092f, 0.631989f,
|
|
0.638855f, 0.645660f, 0.652466f,
|
|
0.659241f, 0.665985f, 0.672668f,
|
|
0.679352f, 0.685974f, 0.692566f,
|
|
0.699127f, 0.705658f, 0.712128f,
|
|
0.718536f, 0.724945f, 0.731262f,
|
|
0.737549f, 0.743805f, 0.750000f,
|
|
0.756134f, 0.762238f, 0.768280f,
|
|
0.774261f, 0.780182f, 0.786072f,
|
|
0.791870f, 0.797638f, 0.803314f,
|
|
0.808960f, 0.814514f, 0.820038f,
|
|
0.825470f, 0.830841f, 0.836151f,
|
|
0.841400f, 0.846558f, 0.851654f,
|
|
0.856689f, 0.861633f, 0.866516f,
|
|
0.871338f, 0.876068f, 0.880737f,
|
|
0.885315f, 0.889801f, 0.894226f,
|
|
0.898560f, 0.902832f, 0.907013f,
|
|
0.911102f, 0.915100f, 0.919037f,
|
|
0.922882f, 0.926636f, 0.930328f,
|
|
0.933899f, 0.937408f, 0.940796f,
|
|
0.944122f, 0.947357f, 0.950470f,
|
|
0.953522f, 0.956482f, 0.959351f,
|
|
0.962097f, 0.964783f, 0.967377f,
|
|
0.969849f, 0.972229f, 0.974518f,
|
|
0.976715f, 0.978821f, 0.980835f,
|
|
0.982727f, 0.984528f, 0.986237f,
|
|
0.987854f, 0.989380f, 0.990784f,
|
|
0.992096f, 0.993317f, 0.994415f,
|
|
0.995422f, 0.996338f, 0.997162f,
|
|
0.997864f, 0.998474f, 0.998962f,
|
|
0.999390f, 0.999695f, 0.999878f,
|
|
0.999969f, 0.999969f, 0.996918f,
|
|
0.987701f, 0.972382f, 0.951050f,
|
|
0.923889f, 0.891022f, 0.852631f,
|
|
0.809021f, 0.760406f, 0.707092f,
|
|
0.649445f, 0.587799f, 0.522491f,
|
|
0.453979f, 0.382690f, 0.309021f,
|
|
0.233459f, 0.156433f, 0.078461f
|
|
};
|
|
|
|
/* Lag window for LPC */
|
|
const float lpc_lagwinTbl[ILBC_LPC_FILTERORDER + 1] =
|
|
{
|
|
1.000100f, 0.998890f, 0.995569f,
|
|
0.990057f, 0.982392f,
|
|
0.972623f, 0.960816f, 0.947047f,
|
|
0.931405f, 0.913989f, 0.894909f
|
|
};
|
|
|
|
/* LSF quantization*/
|
|
const float lsfCbTbl[64 * 3 + 128 * 3 + 128 * 4] =
|
|
{
|
|
0.155396f, 0.273193f, 0.451172f,
|
|
0.390503f, 0.648071f, 1.002075f,
|
|
0.440186f, 0.692261f, 0.955688f,
|
|
0.343628f, 0.642334f, 1.071533f,
|
|
0.318359f, 0.491577f, 0.670532f,
|
|
0.193115f, 0.375488f, 0.725708f,
|
|
0.364136f, 0.510376f, 0.658691f,
|
|
0.297485f, 0.527588f, 0.842529f,
|
|
0.227173f, 0.365967f, 0.563110f,
|
|
0.244995f, 0.396729f, 0.636475f,
|
|
0.169434f, 0.300171f, 0.520264f,
|
|
0.312866f, 0.464478f, 0.643188f,
|
|
0.248535f, 0.429932f, 0.626099f,
|
|
0.236206f, 0.491333f, 0.817139f,
|
|
0.334961f, 0.625122f, 0.895752f,
|
|
0.343018f, 0.518555f, 0.698608f,
|
|
0.372803f, 0.659790f, 0.945435f,
|
|
0.176880f, 0.316528f, 0.581421f,
|
|
0.416382f, 0.625977f, 0.805176f,
|
|
0.303223f, 0.568726f, 0.915039f,
|
|
0.203613f, 0.351440f, 0.588135f,
|
|
0.221191f, 0.375000f, 0.614746f,
|
|
0.199951f, 0.323364f, 0.476074f,
|
|
0.300781f, 0.433350f, 0.566895f,
|
|
0.226196f, 0.354004f, 0.507568f,
|
|
0.300049f, 0.508179f, 0.711670f,
|
|
0.312012f, 0.492676f, 0.763428f,
|
|
0.329956f, 0.541016f, 0.795776f,
|
|
0.373779f, 0.604614f, 0.928833f,
|
|
0.210571f, 0.452026f, 0.755249f,
|
|
0.271118f, 0.473267f, 0.662476f,
|
|
0.285522f, 0.436890f, 0.634399f,
|
|
0.246704f, 0.565552f, 0.859009f,
|
|
0.270508f, 0.406250f, 0.553589f,
|
|
0.361450f, 0.578491f, 0.813843f,
|
|
0.342651f, 0.482788f, 0.622437f,
|
|
0.340332f, 0.549438f, 0.743164f,
|
|
0.200439f, 0.336304f, 0.540894f,
|
|
0.407837f, 0.644775f, 0.895142f,
|
|
0.294678f, 0.454834f, 0.699097f,
|
|
0.193115f, 0.344482f, 0.643188f,
|
|
0.275757f, 0.420776f, 0.598755f,
|
|
0.380493f, 0.608643f, 0.861084f,
|
|
0.222778f, 0.426147f, 0.676514f,
|
|
0.407471f, 0.700195f, 1.053101f,
|
|
0.218384f, 0.377197f, 0.669922f,
|
|
0.313232f, 0.454102f, 0.600952f,
|
|
0.347412f, 0.571533f, 0.874146f,
|
|
0.238037f, 0.405396f, 0.729492f,
|
|
0.223877f, 0.412964f, 0.822021f,
|
|
0.395264f, 0.582153f, 0.743896f,
|
|
0.247925f, 0.485596f, 0.720581f,
|
|
0.229126f, 0.496582f, 0.907715f,
|
|
0.260132f, 0.566895f, 1.012695f,
|
|
0.337402f, 0.611572f, 0.978149f,
|
|
0.267822f, 0.447632f, 0.769287f,
|
|
0.250610f, 0.381714f, 0.530029f,
|
|
0.430054f, 0.805054f, 1.221924f,
|
|
0.382568f, 0.544067f, 0.701660f,
|
|
0.383545f, 0.710327f, 1.149170f,
|
|
0.271362f, 0.529053f, 0.775513f,
|
|
0.246826f, 0.393555f, 0.588623f,
|
|
0.266846f, 0.422119f, 0.676758f,
|
|
0.311523f, 0.580688f, 0.838623f,
|
|
1.331177f, 1.576782f, 1.779541f,
|
|
1.160034f, 1.401978f, 1.768188f,
|
|
1.161865f, 1.525146f, 1.715332f,
|
|
0.759521f, 0.913940f, 1.119873f,
|
|
0.947144f, 1.121338f, 1.282471f,
|
|
1.015015f, 1.557007f, 1.804932f,
|
|
1.172974f, 1.402100f, 1.692627f,
|
|
1.087524f, 1.474243f, 1.665405f,
|
|
0.899536f, 1.105225f, 1.406250f,
|
|
1.148438f, 1.484741f, 1.796265f,
|
|
0.785645f, 1.209839f, 1.567749f,
|
|
0.867798f, 1.166504f, 1.450684f,
|
|
0.922485f, 1.229858f, 1.420898f,
|
|
0.791260f, 1.123291f, 1.409546f,
|
|
0.788940f, 0.966064f, 1.340332f,
|
|
1.051147f, 1.272827f, 1.556641f,
|
|
0.866821f, 1.181152f, 1.538818f,
|
|
0.906738f, 1.373535f, 1.607910f,
|
|
1.244751f, 1.581421f, 1.933838f,
|
|
0.913940f, 1.337280f, 1.539673f,
|
|
0.680542f, 0.959229f, 1.662720f,
|
|
0.887207f, 1.430542f, 1.800781f,
|
|
0.912598f, 1.433594f, 1.683960f,
|
|
0.860474f, 1.060303f, 1.455322f,
|
|
1.005127f, 1.381104f, 1.706909f,
|
|
0.800781f, 1.363892f, 1.829102f,
|
|
0.781860f, 1.124390f, 1.505981f,
|
|
1.003662f, 1.471436f, 1.684692f,
|
|
0.981323f, 1.309570f, 1.618042f,
|
|
1.228760f, 1.554321f, 1.756470f,
|
|
0.734375f, 0.895752f, 1.225586f,
|
|
0.841797f, 1.055664f, 1.249268f,
|
|
0.920166f, 1.119385f, 1.486206f,
|
|
0.894409f, 1.539063f, 1.828979f,
|
|
1.283691f, 1.543335f, 1.858276f,
|
|
0.676025f, 0.933105f, 1.490845f,
|
|
0.821289f, 1.491821f, 1.739868f,
|
|
0.923218f, 1.144653f, 1.580566f,
|
|
1.057251f, 1.345581f, 1.635864f,
|
|
0.888672f, 1.074951f, 1.353149f,
|
|
0.942749f, 1.195435f, 1.505493f,
|
|
1.492310f, 1.788086f, 2.039673f,
|
|
1.070313f, 1.634399f, 1.860962f,
|
|
1.253296f, 1.488892f, 1.686035f,
|
|
0.647095f, 0.864014f, 1.401855f,
|
|
0.866699f, 1.254883f, 1.453369f,
|
|
1.063965f, 1.532593f, 1.731323f,
|
|
1.167847f, 1.521484f, 1.884033f,
|
|
0.956055f, 1.502075f, 1.745605f,
|
|
0.928711f, 1.288574f, 1.479614f,
|
|
1.088013f, 1.380737f, 1.570801f,
|
|
0.905029f, 1.186768f, 1.371948f,
|
|
1.057861f, 1.421021f, 1.617432f,
|
|
1.108276f, 1.312500f, 1.501465f,
|
|
0.979492f, 1.416992f, 1.624268f,
|
|
1.276001f, 1.661011f, 2.007935f,
|
|
0.993042f, 1.168579f, 1.331665f,
|
|
0.778198f, 0.944946f, 1.235962f,
|
|
1.223755f, 1.491333f, 1.815674f,
|
|
0.852661f, 1.350464f, 1.722290f,
|
|
1.134766f, 1.593140f, 1.787354f,
|
|
1.051392f, 1.339722f, 1.531006f,
|
|
0.803589f, 1.271240f, 1.652100f,
|
|
0.755737f, 1.143555f, 1.639404f,
|
|
0.700928f, 0.837280f, 1.130371f,
|
|
0.942749f, 1.197876f, 1.669800f,
|
|
0.993286f, 1.378296f, 1.566528f,
|
|
0.801025f, 1.095337f, 1.298950f,
|
|
0.739990f, 1.032959f, 1.383667f,
|
|
0.845703f, 1.072266f, 1.543823f,
|
|
0.915649f, 1.072266f, 1.224487f,
|
|
1.021973f, 1.226196f, 1.481323f,
|
|
0.999878f, 1.204102f, 1.555908f,
|
|
0.722290f, 0.913940f, 1.340210f,
|
|
0.673340f, 0.835938f, 1.259521f,
|
|
0.832397f, 1.208374f, 1.394165f,
|
|
0.962158f, 1.576172f, 1.912842f,
|
|
1.166748f, 1.370850f, 1.556763f,
|
|
0.946289f, 1.138550f, 1.400391f,
|
|
1.035034f, 1.218262f, 1.386475f,
|
|
1.393799f, 1.717773f, 2.000244f,
|
|
0.972656f, 1.260986f, 1.760620f,
|
|
1.028198f, 1.288452f, 1.484619f,
|
|
0.773560f, 1.258057f, 1.756714f,
|
|
1.080322f, 1.328003f, 1.742676f,
|
|
0.823975f, 1.450806f, 1.917725f,
|
|
0.859009f, 1.016602f, 1.191895f,
|
|
0.843994f, 1.131104f, 1.645020f,
|
|
1.189697f, 1.702759f, 1.894409f,
|
|
1.346680f, 1.763184f, 2.066040f,
|
|
0.980469f, 1.253784f, 1.441650f,
|
|
1.338135f, 1.641968f, 1.932739f,
|
|
1.223267f, 1.424194f, 1.626465f,
|
|
0.765747f, 1.004150f, 1.579102f,
|
|
1.042847f, 1.269165f, 1.647461f,
|
|
0.968750f, 1.257568f, 1.555786f,
|
|
0.826294f, 0.993408f, 1.275146f,
|
|
0.742310f, 0.950439f, 1.430542f,
|
|
1.054321f, 1.439819f, 1.828003f,
|
|
1.072998f, 1.261719f, 1.441895f,
|
|
0.859375f, 1.036377f, 1.314819f,
|
|
0.895752f, 1.267212f, 1.605591f,
|
|
0.805420f, 0.962891f, 1.142334f,
|
|
0.795654f, 1.005493f, 1.468506f,
|
|
1.105347f, 1.313843f, 1.584839f,
|
|
0.792236f, 1.221802f, 1.465698f,
|
|
1.170532f, 1.467651f, 1.664063f,
|
|
0.838257f, 1.153198f, 1.342163f,
|
|
0.968018f, 1.198242f, 1.391235f,
|
|
1.250122f, 1.623535f, 1.823608f,
|
|
0.711670f, 1.058350f, 1.512085f,
|
|
1.204834f, 1.454468f, 1.739136f,
|
|
1.137451f, 1.421753f, 1.620117f,
|
|
0.820435f, 1.322754f, 1.578247f,
|
|
0.798706f, 1.005005f, 1.213867f,
|
|
0.980713f, 1.324951f, 1.512939f,
|
|
1.112305f, 1.438843f, 1.735596f,
|
|
1.135498f, 1.356689f, 1.635742f,
|
|
1.101318f, 1.387451f, 1.686523f,
|
|
0.849854f, 1.276978f, 1.523438f,
|
|
1.377930f, 1.627563f, 1.858154f,
|
|
0.884888f, 1.095459f, 1.287476f,
|
|
1.289795f, 1.505859f, 1.756592f,
|
|
0.817505f, 1.384155f, 1.650513f,
|
|
1.446655f, 1.702148f, 1.931885f,
|
|
0.835815f, 1.023071f, 1.385376f,
|
|
0.916626f, 1.139038f, 1.335327f,
|
|
0.980103f, 1.174072f, 1.453735f,
|
|
1.705688f, 2.153809f, 2.398315f, 2.743408f,
|
|
1.797119f, 2.016846f, 2.445679f, 2.701904f,
|
|
1.990356f, 2.219116f, 2.576416f, 2.813477f,
|
|
1.849365f, 2.190918f, 2.611572f, 2.835083f,
|
|
1.657959f, 1.854370f, 2.159058f, 2.726196f,
|
|
1.437744f, 1.897705f, 2.253174f, 2.655396f,
|
|
2.028687f, 2.247314f, 2.542358f, 2.875854f,
|
|
1.736938f, 1.922119f, 2.185913f, 2.743408f,
|
|
1.521606f, 1.870972f, 2.526855f, 2.786987f,
|
|
1.841431f, 2.050659f, 2.463623f, 2.857666f,
|
|
1.590088f, 2.067261f, 2.427979f, 2.794434f,
|
|
1.746826f, 2.057373f, 2.320190f, 2.800781f,
|
|
1.734619f, 1.940552f, 2.306030f, 2.826416f,
|
|
1.786255f, 2.204468f, 2.457520f, 2.795288f,
|
|
1.861084f, 2.170532f, 2.414551f, 2.763672f,
|
|
2.001465f, 2.307617f, 2.552734f, 2.811890f,
|
|
1.784424f, 2.124146f, 2.381592f, 2.645508f,
|
|
1.888794f, 2.135864f, 2.418579f, 2.861206f,
|
|
2.301147f, 2.531250f, 2.724976f, 2.913086f,
|
|
1.837769f, 2.051270f, 2.261963f, 2.553223f,
|
|
2.012939f, 2.221191f, 2.440186f, 2.678101f,
|
|
1.429565f, 1.858276f, 2.582275f, 2.845703f,
|
|
1.622803f, 1.897705f, 2.367310f, 2.621094f,
|
|
1.581543f, 1.960449f, 2.515869f, 2.736450f,
|
|
1.419434f, 1.933960f, 2.394653f, 2.746704f,
|
|
1.721924f, 2.059570f, 2.421753f, 2.769653f,
|
|
1.911011f, 2.220703f, 2.461060f, 2.740723f,
|
|
1.581177f, 1.860840f, 2.516968f, 2.874634f,
|
|
1.870361f, 2.098755f, 2.432373f, 2.656494f,
|
|
2.059692f, 2.279785f, 2.495605f, 2.729370f,
|
|
1.815674f, 2.181519f, 2.451538f, 2.680542f,
|
|
1.407959f, 1.768311f, 2.343018f, 2.668091f,
|
|
2.168701f, 2.394653f, 2.604736f, 2.829346f,
|
|
1.636230f, 1.865723f, 2.329102f, 2.824219f,
|
|
1.878906f, 2.139526f, 2.376709f, 2.679810f,
|
|
1.765381f, 1.971802f, 2.195435f, 2.586914f,
|
|
2.164795f, 2.410889f, 2.673706f, 2.903198f,
|
|
2.071899f, 2.331055f, 2.645874f, 2.907104f,
|
|
2.026001f, 2.311523f, 2.594849f, 2.863892f,
|
|
1.948975f, 2.180786f, 2.514893f, 2.797852f,
|
|
1.881836f, 2.130859f, 2.478149f, 2.804199f,
|
|
2.238159f, 2.452759f, 2.652832f, 2.868286f,
|
|
1.897949f, 2.101685f, 2.524292f, 2.880127f,
|
|
1.856445f, 2.074585f, 2.541016f, 2.791748f,
|
|
1.695557f, 2.199097f, 2.506226f, 2.742676f,
|
|
1.612671f, 1.877075f, 2.435425f, 2.732910f,
|
|
1.568848f, 1.786499f, 2.194580f, 2.768555f,
|
|
1.953369f, 2.164551f, 2.486938f, 2.874023f,
|
|
1.388306f, 1.725342f, 2.384521f, 2.771851f,
|
|
2.115356f, 2.337769f, 2.592896f, 2.864014f,
|
|
1.905762f, 2.111328f, 2.363525f, 2.789307f,
|
|
1.882568f, 2.332031f, 2.598267f, 2.827637f,
|
|
1.683594f, 2.088745f, 2.361938f, 2.608643f,
|
|
1.874023f, 2.182129f, 2.536133f, 2.766968f,
|
|
1.861938f, 2.070435f, 2.309692f, 2.700562f,
|
|
1.722168f, 2.107422f, 2.477295f, 2.837646f,
|
|
1.926880f, 2.184692f, 2.442627f, 2.663818f,
|
|
2.123901f, 2.337280f, 2.553101f, 2.777466f,
|
|
1.588135f, 1.911499f, 2.212769f, 2.543945f,
|
|
2.053955f, 2.370850f, 2.712158f, 2.939941f,
|
|
2.210449f, 2.519653f, 2.770386f, 2.958618f,
|
|
2.199463f, 2.474731f, 2.718262f, 2.919922f,
|
|
1.960083f, 2.175415f, 2.608032f, 2.888794f,
|
|
1.953735f, 2.185181f, 2.428223f, 2.809570f,
|
|
1.615234f, 2.036499f, 2.576538f, 2.834595f,
|
|
1.621094f, 2.028198f, 2.431030f, 2.664673f,
|
|
1.824951f, 2.267456f, 2.514526f, 2.747925f,
|
|
1.994263f, 2.229126f, 2.475220f, 2.833984f,
|
|
1.746338f, 2.011353f, 2.588257f, 2.826904f,
|
|
1.562866f, 2.135986f, 2.471680f, 2.687256f,
|
|
1.748901f, 2.083496f, 2.460938f, 2.686279f,
|
|
1.758057f, 2.131470f, 2.636597f, 2.891602f,
|
|
2.071289f, 2.299072f, 2.550781f, 2.814331f,
|
|
1.839600f, 2.094360f, 2.496460f, 2.723999f,
|
|
1.882202f, 2.088257f, 2.636841f, 2.923096f,
|
|
1.957886f, 2.153198f, 2.384399f, 2.615234f,
|
|
1.992920f, 2.351196f, 2.654419f, 2.889771f,
|
|
2.012817f, 2.262451f, 2.643799f, 2.903076f,
|
|
2.025635f, 2.254761f, 2.508423f, 2.784058f,
|
|
2.316040f, 2.589355f, 2.794189f, 2.963623f,
|
|
1.741211f, 2.279541f, 2.578491f, 2.816284f,
|
|
1.845337f, 2.055786f, 2.348511f, 2.822021f,
|
|
1.679932f, 1.926514f, 2.499756f, 2.835693f,
|
|
1.722534f, 1.946899f, 2.448486f, 2.728760f,
|
|
1.829834f, 2.043213f, 2.580444f, 2.867676f,
|
|
1.676636f, 2.071655f, 2.322510f, 2.704834f,
|
|
1.791504f, 2.113525f, 2.469727f, 2.784058f,
|
|
1.977051f, 2.215088f, 2.497437f, 2.726929f,
|
|
1.800171f, 2.106689f, 2.357788f, 2.738892f,
|
|
1.827759f, 2.170166f, 2.525879f, 2.852417f,
|
|
1.918335f, 2.132813f, 2.488403f, 2.728149f,
|
|
1.916748f, 2.225098f, 2.542603f, 2.857666f,
|
|
1.761230f, 1.976074f, 2.507446f, 2.884521f,
|
|
2.053711f, 2.367432f, 2.608032f, 2.837646f,
|
|
1.595337f, 2.000977f, 2.307129f, 2.578247f,
|
|
1.470581f, 2.031250f, 2.375854f, 2.647583f,
|
|
1.801392f, 2.128052f, 2.399780f, 2.822876f,
|
|
1.853638f, 2.066650f, 2.429199f, 2.751465f,
|
|
1.956299f, 2.163696f, 2.394775f, 2.734253f,
|
|
1.963623f, 2.275757f, 2.585327f, 2.865234f,
|
|
1.887451f, 2.105469f, 2.331787f, 2.587402f,
|
|
2.120117f, 2.443359f, 2.733887f, 2.941406f,
|
|
1.506348f, 1.766968f, 2.400513f, 2.851807f,
|
|
1.664551f, 1.981079f, 2.375732f, 2.774414f,
|
|
1.720703f, 1.978882f, 2.391479f, 2.640991f,
|
|
1.483398f, 1.814819f, 2.434448f, 2.722290f,
|
|
1.769043f, 2.136597f, 2.563721f, 2.774414f,
|
|
1.810791f, 2.049316f, 2.373901f, 2.613647f,
|
|
1.788330f, 2.005981f, 2.359131f, 2.723145f,
|
|
1.785156f, 1.993164f, 2.399780f, 2.832520f,
|
|
1.695313f, 2.022949f, 2.522583f, 2.745117f,
|
|
1.584106f, 1.965576f, 2.299927f, 2.715576f,
|
|
1.894897f, 2.249878f, 2.655884f, 2.897705f,
|
|
1.720581f, 1.995728f, 2.299438f, 2.557007f,
|
|
1.619385f, 2.173950f, 2.574219f, 2.787964f,
|
|
1.883179f, 2.220459f, 2.474365f, 2.825073f,
|
|
1.447632f, 2.045044f, 2.555542f, 2.744873f,
|
|
1.502686f, 2.156616f, 2.653320f, 2.846558f,
|
|
1.711548f, 1.944092f, 2.282959f, 2.685791f,
|
|
1.499756f, 1.867554f, 2.341064f, 2.578857f,
|
|
1.916870f, 2.135132f, 2.568237f, 2.826050f,
|
|
1.498047f, 1.711182f, 2.223267f, 2.755127f,
|
|
1.808716f, 1.997559f, 2.256470f, 2.758545f,
|
|
2.088501f, 2.402710f, 2.667358f, 2.890259f,
|
|
1.545044f, 1.819214f, 2.324097f, 2.692993f,
|
|
1.796021f, 2.012573f, 2.505737f, 2.784912f,
|
|
1.786499f, 2.041748f, 2.290405f, 2.650757f,
|
|
1.938232f, 2.264404f, 2.529053f, 2.796143f
|
|
};
|