idnits 2.17.1 draft-andersen-ilbc-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. == There are 7 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 3052 has weird spacing: '...ern int dim_...' == Line 3053 has weird spacing: '...ern int size...' == Line 3054 has weird spacing: '...ern int dim_...' == Line 3055 has weird spacing: '...ern int size...' == Line 9021 has weird spacing: '... float sum;...' == (13 more instances...) == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date () is 739382 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Experimental ---------------------------------------------------------------------------- == Missing Reference: '0' is mentioned on line 11080, but not defined -- Looks like a reference, but probably isn't: 'FILTERORDER' on line 10962 -- Looks like a reference, but probably isn't: 'BLOCKL' on line 10040 -- Looks like a reference, but probably isn't: 'MEML' on line 8735 -- Looks like a reference, but probably isn't: 'NSTAGES' on line 9620 -- Looks like a reference, but probably isn't: 'MEML-1-k' on line 2592 == Missing Reference: '4' is mentioned on line 10341, but not defined == Missing Reference: '5' is mentioned on line 2694, but not defined -- Looks like a reference, but probably isn't: 'NCBFILTERS' on line 3256 -- Looks like a reference, but probably isn't: 'CBFILTLEN' on line 3256 == Missing Reference: '8' is mentioned on line 3126, but not defined == Missing Reference: '256' is mentioned on line 3134, but not defined == Missing Reference: '64' is mentioned on line 3225, but not defined == Missing Reference: '6' is mentioned on line 3348, but not defined -- Looks like a reference, but probably isn't: '-orderCoef' on line 8346 -- Looks like a reference, but probably isn't: '-1' on line 8346 -- Looks like a reference, but probably isn't: '-k' on line 8325 -- Looks like a reference, but probably isn't: 'NSUB' on line 8401 -- Looks like a reference, but probably isn't: 'SUBL' on line 9622 == Missing Reference: '512' is mentioned on line 9625, but not defined -- Looks like a reference, but probably isn't: 'HALFORDER' on line 10485 -- Looks like a reference, but probably isn't: 'HALFORDER-1' on line 10415 -- Looks like a reference, but probably isn't: 'BBL' on line 10678 -- Looks like a reference, but probably isn't: 'FILTERORDER-k' on line 10958 Summary: 3 errors (**), 0 flaws (~~), 16 warnings (==), 19 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 S. V. Andersen 3 A. Duric 4 R. Hagen 5 W. B. Kleijn 6 J. Linden 7 M. N. Murthi 8 J. Skoglund 9 J. Spittka 10 Internet Draft 11 Document: draft-andersen-ilbc-01.txt Global IP Sound 12 Category: Experimental 13 July 1st 2002 14 Expires: Jan. 1st 2003 16 Internet Low Bit Rate Codec 18 Status of this Memo 20 This document is an Internet-Draft and is in full conformance 21 with all provisions of Section 10 of RFC2026. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF), its areas, and its working groups. Note that 25 other groups may also distribute working documents as Internet- 26 Drafts. 28 Internet-Drafts are draft documents valid for a maximum of six 29 months and may be updated, replaced, or obsoleted by other documents 30 at any time. It is inappropriate to use Internet-Drafts as 31 reference material or to cite them other than as "work in progress." 33 The list of current Internet-Drafts can be accessed at 34 http://www.ietf.org/ietf/1id-abstracts.txt 35 The list of Internet-Draft Shadow Directories can be accessed at 36 http://www.ietf.org/shadow.html. 38 Abstract 40 This document specifies a speech codec suitable for robust voice 41 communication over IP. The codec is developed by Global IP Sound 42 (GIPS) and is designed for narrow band speech and results in a 43 payload bit rate of 13.867 kbit/s with an encoding frame length of 44 30 ms. The codec enables graceful speech quality degradation in the 45 case of lost frames, which occurs in connection with lost or delayed 46 IP packets. 48 Andersen et. al. 1 49 Table of Contents 51 Status of this Memo................................................1 52 Abstract...........................................................1 53 Table of Contents..................................................2 54 1. INTRODUCTION....................................................5 55 2. OUTLINE OF THE CODEC............................................5 56 2.1 Encoder........................................................5 57 2.2 Decoder........................................................7 58 3. ENCODER PRINCIPLES..............................................8 59 3.1 LPC Analysis and Quantization..................................8 60 3.1.1 Computation of Autocorrelation Coefficients..................8 61 3.1.2 Computation of LPC Coefficients..............................9 62 3.1.3 Computation of LSF Coefficients from LPC Coefficients.......10 63 3.1.4 Quantization of LSF Coefficients............................10 64 3.1.5 Stability Check of LSF Coefficients.........................12 65 3.1.6 Interpolation of LSF Coefficients...........................12 66 3.2 Calculation of the Residual...................................12 67 3.3 Perceptual Weighting Filter...................................13 68 3.4 Start State Encoder...........................................13 69 3.4.1 Start State Estimation......................................13 70 3.4.1 All-Pass Filtering and Scale Quantization...................13 71 3.4.2 Scalar Quantization.........................................14 72 3.5 Codebook Encoding.............................................14 73 3.5.1 Perceptual Weighting of Codebook Memory and Target..........14 74 3.5.2 Codebook Creation...........................................15 75 3.5.2.1 Creation of a Base Codebook...............................15 76 3.5.2.2 Codebook Augmentation.....................................15 77 3.5.2.3 Codebook Expansion........................................16 78 3.5.3 Codebook Search.............................................17 79 3.5.3.1 The Codebook Search at Each Stage.........................17 80 3.5.3.2 The Gain Quantization at Each Stage.......................18 81 3.5.3.3 Preparation of Target for Next Stage......................18 82 3.6 Gain Correction Encoding......................................18 83 3.7 Bitstream Definition..........................................18 84 4. DECODER PRINCIPLES.............................................18 85 4.1 LPC Filter Reconstruction.....................................18 86 4.2 Start State Reconstruction....................................18 87 4.3 Excitation Decoding Loop......................................18 88 4.4 Multistage Adaptive Codebook Decoding.........................18 89 4.4.1 Construction of the Decoded Excitation Signal...............18 90 4.5 Packet Loss Concealment.......................................18 91 4.5.1 Block Received Correctly and Previous Block also Received...18 92 4.5.2 Block Not Received..........................................18 93 4.5.3 Block Received Correctly When Previous Block Not Received...18 94 4.6 Enhancement...................................................18 96 Andersen et. al. Experimental - Expires Jan. 1st, 2003 2 97 4.6.1 Outline of the Enhancement Unit.............................18 98 4.6.2 Determination of the Pitch-Synchronous Sequences............18 99 4.6.3 Re-estimation of the Current Sample-Sequence................18 100 4.7 Synthesis Filtering...........................................18 101 5. SECURITY CONSIDERATIONS........................................18 102 6. REFERENCES.....................................................18 103 7. ACKNOWLEDGEMENTS...............................................18 104 8. AUTHOR'S ADDRESSES.............................................18 105 APPENDIX A REFERENCE IMPLEMENTATION...............................18 106 A.1 iLBC_test.c...................................................18 107 A.2 iLBC_encode.h.................................................18 108 A.3 iLBC_encode.c.................................................18 109 A.4 iLBC_decode.h.................................................18 110 A.5 iLBC_decode.c.................................................18 111 A.6 iLBC_define.h.................................................18 112 A.7 constants.h...................................................18 113 A.8 constants.c...................................................18 114 A.9 anaFilter.h...................................................18 115 A.10 anaFilter.c..................................................18 116 A.11 createCB.h...................................................18 117 A.12 createCB.c...................................................18 118 A.13 doCPLC.h.....................................................18 119 A.14 doCPLC.c.....................................................18 120 A.15 enhancer.h...................................................18 121 A.16 enhancer.c...................................................18 122 A.17 filter.h.....................................................18 123 A.18 filter.c.....................................................18 124 A.19 FrameClassify.h..............................................18 125 A.20 FrameClassify.c..............................................18 126 A.21 gaincorr_Encode.h............................................18 127 A.22 gaincorr_Encode.c............................................18 128 A.23 gainquant.h..................................................18 129 A.24 gainquant.c..................................................18 130 A.25 getCBvec.h...................................................18 131 A.26 getCBvec.c...................................................18 132 A.27 helpfun.h....................................................18 133 A.28 helpfun.c....................................................18 134 A.29 hpInput.h....................................................18 135 A.30 hpInput.c....................................................18 136 A.31 hpOutput.h...................................................18 137 A.32 hpOutput.c...................................................18 138 A.33 iCBConstruct.h...............................................18 139 A.34 iCBConstruct.c...............................................18 140 A.35 iCBSearch.h..................................................18 141 A.36 iCBSearch.c..................................................18 142 A.37 LPCdecode.h..................................................18 144 Andersen et. al. Experimental - Expires Jan. 1st, 2003 3 145 A.38 LPCdecode.c..................................................18 146 A.39 LPCencode.h..................................................18 147 A.40 LPCencode.c..................................................18 148 A.41 lsf.h........................................................18 149 A.42 lsf.c........................................................18 150 A.43 packing.h....................................................18 151 A.44 packing.c....................................................18 152 A.45 StateConstructW.h............................................18 153 A.46 StateConstructW.c............................................18 154 A.47 StateSearchW.h...............................................18 155 A.48 StateSearchW.c...............................................18 156 A.49 syntFilter.h.................................................18 157 A.50 syntFilter.c.................................................18 159 Andersen et. al. Experimental - Expires Jan. 1st, 2003 4 160 1. INTRODUCTION 162 This document contains the description of an algorithm for the 163 coding of speech signals sampled at 8 kHz. The iLBC codec has a bit 164 rate of 13.867 kbit/s using a block-independent linear-predictive 165 coding (LPC) algorithm. The codec operates at block lengths of 30 ms 166 and produces 416 bits per block which can be packetized in 52 bytes. 167 The described algorithm results in a speech coding system with a 168 controlled response to packet losses similar to what is known from 169 pulse code modulation (PCM) with packet loss concealment (PLC), such 170 as the ITU-T G.711 standard [3] which operates at a fixed bit rate 171 of 64 kbit/s. At the same time, the described algorithm enables 172 fixed bit rate coding with a quality-versus-bit rate tradeoff close 173 to what is known from code-excited linear prediction (CELP). A 174 suitable RTP payload format for this codec is specified in [1]. 176 Some of the applications for which this coder is suitable are: real 177 time communications such as telephony and videoconferencing, 178 streaming audio, archival and messaging. 180 This document is organized as follows. In Section 2 a brief outline 181 of the codec is given. The specific encoder and decoder algorithms 182 are explained in Sections 3 and 4, respectively. A c-code reference 183 implementation is provided in Appendix A. 185 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 186 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in 187 this document are to be interpreted as described in RFC 2119 [2]. 189 2. OUTLINE OF THE CODEC 191 The codec consists of an encoder and a decoder described in Section 192 2.1 and 2.2, respectively. 194 The essence of the codec is LPC and block based coding of the LPC 195 residual signal. For each 240 sample block, the following major 196 steps are done. An LPC filter is computed to produce the residual 197 signal. The codec uses DPCM coding of the dominant part, in terms of 198 energy, of the residual signal for the block. The dominant state is 199 of length 58 samples and forms a start state for dynamic codebooks 200 constructed from the already coded parts of the residual signal. 201 These dynamic codebooks are used to code the remaining parts of the 202 residual signal. By this method, coding independence between blocks 203 is achieved, resulting in elimination of propagation of perceptual 204 degradations due to packet loss. The method facilitates high-quality 205 packet loss concealment (PLC). 207 2.1 Encoder 209 The input to the encoder is 16 bit uniform PCM sampled at 8 kHz. 210 The input is partitioned into blocks of BLOCKL=240 samples. Each 212 Andersen et. al. Experimental - Expires Jan. 1st, 2003 5 213 block is divided into NSUB=6 consecutive sub-blocks of SUBL=40 214 samples each. 216 For each input block, the encoder performs two FILTERORDER=10 217 linear-predictive coding (LPC) analyses. The first analysis applies 218 a smooth window centered over the 2nd sub-block and extending to the 219 end of the 6'th sub-block. The second LPC analysis applies a smooth 220 window centered over the 5'th sub-block and extending to the end of 221 the 6'th sub-block. For both LPC analyses, sets of line-spectral 222 frequencies(LSF)'s are obtained, quantized and interpolated to 223 obtain LSF coefficients for each sub-block. 225 Subsequently, the LPC residual is computed using the quantized and 226 interpolated LPC analysis filters. The two consecutive sub-blocks of 227 residual exhibiting the maximal energy are identified. Within these 228 2 sub-blocks, the start state (segment) is selected from two 229 choices: the first 57 samples or the last 57 samples of the 2 230 consecutive sub-blocks. The selected segment is the one of higher 231 energy. The start state is encoded with a DPCM method. 233 For encoding of the remaining 23 samples of the 2 sub-blocks 234 containing the start state and the remaining four sub-blocks, 235 gain-shape coding is performed using a codebook generated from the 236 available already coded samples. The codebook is used in NSTAGES=3 237 stages in a successive refinement approach. The resulting 3 gain 238 factors are encoded with 4, 3, and 3 bit scalar quantization, 239 respectively. The codebook search method employs noise 240 shaping derived from the LPC filters and minimization of the squared 241 error between the target vector and the code vectors. Each code 242 vector in this codebook comes from one of NSECTION=4 codebook 243 sections. The first section is filled with delayed, already encoded 244 residual vectors. The code vectors of the remaining 3 codebook 245 sections are constructed by predefined linear combinations of 246 vectors in the first section of the codebook. The linear combination 247 coefficients differ from one section to the next. 249 The codebook encoding is done in 3 steps: 251 1. The remaining 23 samples of the 2 sub-blocks containing the start 252 state are encoded using a codebook of size 256 constructed from the 253 57 samples of the encoded start state. 255 2. If the block contains sub-blocks later in time than the ones 256 containing the start state, each of these sub-blocks are 257 subsequently encoded using a codebook encoding method. A new 258 codebook is constructed for each sub-block since the available 259 encoded residual signal samples increases. 261 3. If the block contains sub-blocks earlier in time than the ones 262 encoded for the start state then a procedure equal to the one 263 applied for sub-blocks later in time is applied, but with time- 264 reversed signals since encoding is now performed backwards in time. 266 Andersen et. al. Experimental - Expires Jan. 1st, 2003 6 267 Within steps 2. and 3. above, 4 sub-blocks are encoded. The 268 codebooks have code vector dimension 40 and construction of the 269 codebook for the 4 coding instances is performed as follows: 1) A 270 codebook of size 256 is created from the 80 samples of the already 271 coded residual signal; 2) A codebook of size 512 is created from the 272 120 samples of the already coded residual signal; 3) A codebook of 273 size 512 is created from the 147 samples of the already coded 274 residual signal closest to the sub-blocks to be encoded; 4) A 275 codebook of size 512 is created from the 147 samples of the already 276 coded residual signal closest to the sub-blocks to be encoded. The 277 only difference between step 2. and 3. is that the 40 sample signal 278 to be encoded, as well as the already coded signal for codebook 279 construction, is time-reversed before encoding in step 3. 281 Since codebook encoding with squared-error matching is known to 282 produce a coded signal of less power than the scalar DPCM coded 283 signal, a gain correction factor is calculated by comparing the 284 power loss in the codebook encoding to the power loss in the scalar 285 DPCM coding. The gain correction factor is quantized with 4 bits and 286 is used to scale down the start state to produce a signal with a 287 smooth power contour over the block. 289 2.2 Decoder 291 For packet communications, typically a jitter buffer placed at the 292 receiving end decides whether packet containing an encoded signal 293 block has been received or lost. This logic is not part of the codec 294 described here. For each received encoded signal block the decoder 295 performs a decoding. For each lost signal block the decoder performs 296 a PLC operation. 298 The decoding for each block starts by a decoding and interpolation 299 of the LPC coefficients. Subsequently the start state is decoded. 301 For codebook encoded segments, each segment is decoded by 302 constructing the 3 code vectors given by the received codebook 303 indices in the same way as the code vectors were constructed in the 304 encoder. The 3 gain factors are also decoded and the resulting 305 decoded signal is given by the sum of the 3 codebook vectors scaled 306 with respective gain. 308 An enhancement algorithm is applied on the reconstructed excitation 309 signal. This enhancement augments the periodicity of voiced speech 310 regions. The enhancement is optimized under the constraint that the 311 enhancement signal (defined as the difference between the enhanced 312 excitation and the excitation signal prior to enhancement) has a 313 short-time energy that does not exceed a preset fraction of the 314 short-time energy of the speech signal. 316 A packet loss concealment (PLC) operation is easily embedded in the 317 decoder. The PLC operation can, e.g., be based on repetition of LPC 318 filters and obtaining the LPC residual signal using a long term 319 prediction estimate from previous residual blocks. 321 Andersen et. al. Experimental - Expires Jan. 1st, 2003 7 322 3. ENCODER PRINCIPLES 324 This section describes the principles of each component of the 325 encoder algorithm. 327 3.1 LPC Analysis and Quantization 329 The input to the LPC analysis module is a high-pass filtered speech 330 buffer, speech_hp, that contains 300 (LOOKBACK + BLOCKL = 60 + 240 331 =300) speech samples, where samples 0 through 59 are from the 332 previous block and samples 60 through 299 are from the current 333 block. No look-ahead into the next block is used. For the very first 334 block processed, the look back samples are assumed to be zeros. 336 For each input block, the LPC analysis calculates two sets of 337 FILTERORDER=10 LPC filter coefficients using the autocorrelation 338 method and the Levinson-Durbin recursion. The first set, lsf1, 339 represents the spectral properties of the input signal at the center 340 of the second subblock while the other set, lsf2, represents the 341 spectral characteristics as measured at the center of the fifth 342 subblock. The details of the computation shall be executed as 343 described in 3.1.1 through 3.1.6. 345 3.1.1 Computation of Autocorrelation Coefficients 347 The first step in the LPC analysis procedure is to calculate 348 autocorrelation coefficients using windowed speech samples. This 349 windowing is the only difference in the LPC analysis procedure for 350 the two sets of coefficients. For the first set, a 240 sample long 351 standard symmetric Hanning window is applied to samples 0 through 352 239 of the input data. In c-like pseudo code, the first window, 353 win1, is hence calculated as: 355 win1[i] = 0.5 * (1.0 - cos((2 * PI * (i + 1))/(BLOCKL + 1))); 356 i=0,...,119 357 win1[BLOCKL - i - 1] = win1[i]; i=120,...,239 359 The windowed speech speech_hp_win1 is then obtained by multiplying 360 the 240 first samples of the input speech buffer with the window 361 coefficients: 363 speech_hp_win1[i] = speech_hp[i] * win1[i]; i=0,...,BLOCKL-1 365 From these 240 windowed speech samples, 11 (FILTERORDER + 1) 366 autocorrelation coefficients, acf1, are calculated: 368 acf1[lag] += speech_hp_win1[n] * speech_hp_win1[n + lag]; 369 lag=0,...,FILTERORDER; n=0,...,BLOCKL-lag 371 In order to make the analysis more robust against numerical 372 precision problems, a spectral smoothing procedure is applied by 374 Andersen et. al. Experimental - Expires Jan. 1st, 2003 8 375 windowing the autocorrelation coefficients with a Gaussian window 376 before the LPC coefficients are computed. Also, a white noise floor 377 is added to the autocorrelation function by multiplying coefficient 378 zero by 1.0001 (40dB below the energy of the windowed speech 379 signal). These two steps are implemented by multiplying the 380 autocorrelation coefficients with the following window: 382 win3[0] = 1.0001; 383 win3[i] = exp(-0.5 * ((2 * PI * 60.0 * i) /FS)^2); 384 i=1,...,FILTERORDER 386 Then, the windowed acf function acf1_win is obtained by: 388 acf1_win1[i] = acf1[i] * win3[i]; i=0,...,FILTERORDER 390 The second set of autocorrelation coefficients, acf2_win are 391 obtained in a similar manner. The window, win2, is applied to 392 samples 60 through 299, i.e., the entire current block. The window 393 consists of two segments; The first (samples 0 to 220) being half a 394 Hanning window with length 440 and the second being a quarter of a 395 cycle of a cosine wave. By using this asymmetric window, an LPC 396 analysis centered in the fifth subblock is obtained without the need 397 for any look-ahead, which would have added delay. The asymmetric 398 window is defined as: 400 win2[i] = (sin(PI * (i + 1) / 441))^2; i=0,...,219 401 win2[i] = cos((i - 220) * PI / 10); i=220,...,239 403 and the windowed speech is computed by: 405 speech_hp_win2[i] = speech_hp[i + LOOKBACK] * win2[i]; 406 i=0,....BLOCKL-1 408 The windowed autocorrelation coefficients are then obtained in 409 exactly the same way as for the first analysis instance. 411 The generation of the windows win1, win2, and win3 are typically 412 done in advance and the arrays are stored in ROM rather than 413 repeating the calculation for every block. 415 3.1.2 Computation of LPC Coefficients 417 From the 11 smoothed autocorrelation coefficients, acf1_win and 418 acf2_win, the 11 LPC coefficients, lp1 and lp2, are calculated in 419 the same way for both analysis locations using the well known 420 Levinson-Durbin recursion. The first LPC coefficient is always 1.0, 421 resulting in 10 unique coefficients. 423 After determining the LPC coefficients, a bandwidth expansion 424 procedure is applied in order to smooth the spectral peaks in the 425 short-term spectrum. The bandwidth addition is obtained by the 426 following modification of the LPC coefficients: 428 Andersen et. al. Experimental - Expires Jan. 1st, 2003 9 429 lp1_bw[i] = lp1[i] * chirp^i; i=0,...,FILTERORDER 430 lp2_bw[i] = lp2[i] * chirp^i; i=0,...,FILTERORDER 432 where "chirp" is a real number between 0 and 1 that typically has a 433 value of around 0.8. 435 3.1.3 Computation of LSF Coefficients from LPC Coefficients 437 Thusfar, two sets of LPC coefficients that represent the short-term 438 spectral characteristics of the speech signal for two different time 439 locations within the current block have been determined. These 440 coefficients should be quantized and interpolated. Before 441 doing so, it is advantageous to convert the LPC parameters into 442 another type of representation called the Line Spectral Frequencies 443 (LSF). The LSF parameters are used because they are better suited 444 for quantization and interpolation than the regular LPC 445 coefficients. Many computationally efficient methods for calculating 446 the LSFs from the LPC coefficients have been proposed in the 447 literature. The detailed implementation of one applicable method can 448 be found in Appendix A.42. The two arrays of LSF coefficients 449 obtained, lsf1 and lsf2, are of dimension 10 (FILTERORDER). 451 3.1.4 Quantization of LSF Coefficients 453 Since the LPC filters defined by the two sets of LSFs are needed 454 also in the decoder, the LSF parameters need to be quantized and 455 transmitted as side information. The total number of bits required 456 to represent the quantization of the two LSF representations for one 457 block of speech is 52 with 24 and 28 bits for lsf1 and lsf2, 458 respectively. For computational reasons, both LSF vectors are 459 quantized using 3-split vector quantization (VQ). That is, the LSF 460 vectors are split into three subvectors which are each quantized 461 with a regular VQ. First, the quantized version of lsf2, qlsf2, is 462 obtained by memoryless split VQ. Then qlsf1 is obtained by 463 predictive split VQ of lsf1. The prediction of the (mean-removed) 464 lsf1 is calculated by multiplying qlsf2 by a set of predictor 465 coefficients (one for each of the 10 components of the vector). 466 After subtracting the resulting prediction from lsf1 the resulting 467 prediction error is quantized with a second 3-split VQ. 469 The following c-like definitions explain how each LSF vector (lsf1 470 and lsf2) is split by defining the position of the first coefficient 471 for each split vector (for added clarity, we additionally provide 472 the corresponding dimension for each split vector): 474 lsf1_splitfirst[LSF_NSPLIT] = {0, 3, 6}; 475 lsf1_splitdim[LSF_NSPLIT] = {3, 3, 4}; 476 lsf2_splitfirst[LSF_NSPLIT] = {0, 4, 7}; 477 lsf2_splitdim[LSF_NSPLIT] = {4, 3, 3}; 479 For each of the split vectors, a separate codebook of quantized 480 values has been designed using a standard VQ training method for a 481 large database containing speech from a large number of speakers 483 Andersen et. al. Experimental - Expires Jan. 1st, 2003 10 484 recorded under various conditions. The size of each of the six 485 codebooks associated with the split definitions above is: 487 int lsf1_cbsize[LSF_NSPLIT] = {256, 256, 256}; 488 int lsf2_cbsize[LSF_NSPLIT] = {512, 512, 1024}; 490 The second set of LSF coefficients, lsf2, are quantized with a 491 standard memoryless split vector quantization (VQ) structure using 492 the squared error criterion in the LSF domain. The split VQ 493 quantization consists of the following steps: 495 1) Quantize the first 4 LSF coefficients with a VQ codebook of size 496 512. 497 2) Quantize the LSF coefficient 5, 6, and 6 with VQ a codebook of 498 size 512. 499 3) Quantize the last 3 LSF coefficients with a VQ codebook of size 500 1024. 502 This procedure gives 3 quantization indices and the quantized second 503 set of LSF coefficients qlsf2. 505 The quantization of the first set of LSF coefficients is done on the 506 prediction error obtained by predicting the first set of LSF 507 coefficients from the quantized second set of LSF coefficients. The 508 prediction error, e, is obtained by: 510 lsfhat[i] = lsfpred[i] * (qlsf2[i] - lsfmean[i]); 511 i=0,...,FILTERORDER-1 512 e[i] = lsf1[i] - lsfmean[i] - lsfhat[i]; i=0,...,FILTERORDER-1 514 where lsfhat is the predicted, mean-removed first set of LSF 515 coefficients. The prediction coefficients, lsfpred, and the mean 516 vector, lsfmean, are pre-computed and stored values. 518 The prediction error e is quantized with a standard memoryless split 519 vector quantization (VQ) structure using the squared error criterion 520 in the LSF domain. The split VQ quantization consists of the 521 following steps: 523 1) Quantize the first 3 prediction error values with a VQ codebook 524 of size 256. 525 2) Quantize the prediction error values 4, 5 and 6 with VQ a 526 codebook of size 256. 527 3) Quantize the last 4 prediction error values with a VQ codebook of 528 size 256. 530 This procedure gives 3 quantization indices and the quantized 531 prediction error values qe. The first set of LSF coefficients qlsf1 532 is given by: 534 qlsf1[i] = qe[i] + lsfmean[i] + lsfhat[i]; 535 i=0,...,FILTERORDER-1 537 Andersen et. al. Experimental - Expires Jan. 1st, 2003 11 538 The result of the quantization of each of the two LSF coefficient 539 sets is a set of 3 indices. A first set of indices represents qlsf1 540 and is encoded with 8+8+8=24 bits. A second set of indices 541 represents qlsf2 is encoded with 9+9+10=28 bits. The total number of 542 bits used for LSF quantization in a block is thus 52 bits. 544 3.1.5 Stability Check of LSF Coefficients 546 The LSF representation of the LPC filter has the nice property that 547 the coefficients are ordered by increasing value, i.e., lsf(n) > 548 lsf(n-1), 0 < n < 10, if the corresponding synthesis filter is 549 stable. Since we are employing a split VQ scheme it is possible that 550 at the split boundaries the LSF coefficients are not ordered 551 correctly and hence the corresponding LP filter is unstable. To 552 ensure that the filter used is stable, a stability check is 553 performed for the quantized LSF vectors. If it turns out that the 554 coefficients are not ordered appropriately (with a safety margin of 555 50 Hz to ensure that formant peaks are not too narrow) they will be 556 moved apart. The detailed method for this can be found in Appendix 557 A.42. The same procedure is performed in the decoder. This ensures 558 that exactly the same LSF representations are used in both encoder 559 and decoder. 561 3.1.6 Interpolation of LSF Coefficients 563 From the two sets of LSF coefficients that are computed for each 564 block of speech, different LSFs are obtained for each subblock by 565 means of interpolation. This procedure is performed for the original 566 LSFs, lsf1 and lsf2 as well as the quantized versions qlsf1 and 567 qlsf2 since both versions are used in the encoder. Here follows a 568 brief summary of the interpolation scheme while the details are 569 found in the c-code of Annex B. In the first sub-block, the average 570 of the second LSF vector from the previous block and the first LSF 571 vector in the current block is used. For sub-blocks two through five 572 the LSFs used are obtained by linear interpolation from lsf1 (and 573 qlsf1) to lsf2 (and qlsf2) with lsf1 used in subblock two and lsf2 574 in subblock five. In the last subblock, lsf2 is used. For the very 575 first block it is assumed that the previous block has the same LSF 576 vectors as the current one. 578 The interpolation method is standard linear interpolation in the LSF 579 domain. The interpolated LSF values are converted to lpc 580 coefficients for each sub-block. 582 A reference implementation of the lsf encoding is given in Appendix 583 A.40. A reference implementation of the corresponding decoding can 584 be found in Appendix A.38. 586 3.2 Calculation of the Residual 588 The block of speech samples is filtered by the quantized and 589 interpolated LPC filters to yield the residual signal. In 590 particular, the corresponding LPC analysis filter for each subblock 592 Andersen et. al. Experimental - Expires Jan. 1st, 2003 12 593 is used to filter the speech samples for the same subblock. The 594 filter memory at the end of each subblock is carried over to the LPC 595 filter of the next subblock. The signal at the output of each LP 596 analysis filter constitutes the residual signal for the 597 corresponding subblock. 599 A reference implementation of the residual calculating filter is 600 found in Appendix A.10. 602 3.3 Perceptual Weighting Filter 604 In principle any good design of perceptual weighting filter can be 605 applied in the encoder without compromising this codec definition. 607 A simplified design with low complexity is to apply the filter 608 1/A(z/0.4) in the LPC residual domain. Here A(z) is the filter 609 obtained from unquantized but interpolated LSF coefficients. 611 3.4 Start State Encoder 613 The start state containing STATE_SHORT_LEN=57 maximum energy 614 residual samples is quantized using a common 6-bit scale quantizer 615 for the block and a 3-bit scalar quantizer operating on the scaled 616 samples in the weighted speech domain. Now we describe the state 617 encoding in greater detail. 619 3.4.1 Start State Estimation 621 The two sub-blocks containing the start state are determined by 622 finding the two consecutive sub-blocks in the block having the 623 highest power, i.e., the following measure is computed: 625 nsub=1,...,NSUB-1 626 ssqn[nsub] = 0.0; 627 for (i=(nsub-1)*SUBL; imax_measure){ 861 best_index = cb_index; 862 max_measure = measure; 863 gain = crossDot*invDot; 864 } 866 Andersen et. al. Experimental - Expires Jan. 1st, 2003 17 867 Upon search in the base codebook, the iterative search loop is 868 continued into the 3 expanded sections of the adaptive codebook. 869 This can be done as a full search. However, to save computations 870 this part of the search can be constrained to indexes in restricted 871 range RESRANGE around the best_index identified in the base 872 codebook. This is obtained by identifying a start index sInd and an 873 end index eInd as: 875 base_index = best_index; 876 sInd=base_index-RESRANGE/2; 877 if (sInd < 0) sInd=0; 878 eInd = sInd+RESRANGE; 879 if (eInd>=base_size) { 880 eInd=base_size-1; 881 sInd=eInd-RESRANGE; 882 } 884 With these definitions, the iterative search can be continued over 885 the following 3 intervals: 886 1) cb_index=sInd+base_size to cb_index=eInd+base_size; 887 2) cb_index=sInd+2*base_size to cb_index=eInd+2*base_size; 888 3) cb_index=sInd+2*base_size to cb_index=eInd+2*base_size; 890 After these iterations the best codebook index, best_index, has been 891 distilled. A good compromise between computational complexity and 892 speech quality is obtained by choosing RESRANGE=33. 894 3.5.3.2 The Gain Quantization at Each Stage 896 The gain follows as a result of the registration 898 gain = crossDot*invDot; 900 each time the max_measure is surpassed in the search procedure 901 outlined in section 3.5.3.1. 903 In the first stage, the gain is limited to the range 0.0 to 1.0. 905 if (gain<0.0) gain = 0.0; 906 if (gain>1.0) gain = 1.0; 908 Subsequently this gain is quantized by finding the nearest 909 representation value in the quantization table gain_sq4. The 910 resulting gain index is the index to this representation value in 911 the quantization table. 913 The gains of subsequent stages are quantized using a quantization 914 table which is obtained by multiplication of the values in the table 915 gain_sq3 with a scale value. This value equates 0.1 or the absolute 916 value of the quantized gain representation value obtained in the 917 previous stage, whichever is the larger. Again, the resulting gain 918 index is the index to the nearest representation value in the 920 Andersen et. al. Experimental - Expires Jan. 1st, 2003 18 921 quantization table. 923 3.5.3.3 Preparation of Target for Next Stage 925 Before redoing the search for the next stage the target vector is 926 updated by subtracting from it the selected shape vector times the 927 corresponding quantized gain. 929 A reference implementation of the codebook encoding is found in 930 Appendix A.36. 932 3.6 Gain Correction Encoding 934 The start state is quantized in a relatively model independent 935 manner using 3 bits per sample. Different form this, the remaining 936 parts of the block is encoded using an adaptive codebook. This 937 codebook will produce high matching accuracy whenever there is a 938 high correlation between the target and a segment found in the buf 939 variable. For unvoiced speech segments, this is not necessarily so. 940 The result becomes a signal block for which the start state is 941 encoded with much higher accuracy than the remaining block. 942 Perceptually, the main problem with this is that the time envelope 943 of the signal energy becomes unsteady. To overcome this problem, the 944 start state is scaled down with a factor that approximates the 945 energy loss in the remaining parts of the signal block. The 946 determination of this scale factor is the last step in the encoding 947 process. 949 First the energy per sample in the start state target, Esst, in the 950 decoded start state, Ess, in the remaining parts of the excitation 951 signal target, Eet, and in the remaining part of the decoded 952 excitation signal, Ee are determined. 954 If the ratio sqrt(Eet/Esst) is larger than or equal to 0.25, a 955 correction factor is determined as 957 correction_factor = sqrt( (Ee/Eet) / (Ess/Esst) ); 959 The correction factor is uniformly quantized in the range from 0.0 960 to 1.0 using 4 bit quantization as obtained, e.g., by the following 961 lines of c-code: 963 if(correction_factor > 1) correction_factor = 1; 964 index=(int)(correction_factor*16)-1; 965 if (index<0) index=0; 967 However, if the ratio sqrt(Eet/Esst) is less than 0.25, it is taken 968 as an indication that even the original signal energy did not have a 969 steady time envelope. In this case the correction factor is forced 970 to 1.0 by selecting the index equal to 15. 972 A reference implementation of the gain correction encoding is listed 973 in Appendix A.22. 975 Andersen et. al. Experimental - Expires Jan. 1st, 2003 19 976 3.7 Bitstream Definition 978 The total number of bits used to describe one block of 30 ms speech 979 is 416, which is equal to 52 bytes and results in a bit rate of 980 13.867 kbit/s. In the bitstream definition the bits are distributed 981 into three classes according to their bit error or loss sensitivity. 982 The most sensitive bits (class 1) is placed first in the bitstream 983 for each frame. The less sensitive bits (class 2) is placed after 984 the class 1 bits. The least sensitive bits (class 3) are placed at 985 the end of the bitstream for each frame. The class 1 bits occupy a 986 total of 8 bytes (64 bits), the class 2 bits occupy 12 bytes (96 987 bits), and the class 3 bits occupy 32 bytes (256 bits). This 988 distribution of the bits enable the use of uneaven level protection 989 (ULP) as is exploited in the payload format definition for iLBC [1]. 990 The detailed bit allocation is shown in the table below. When a 991 quantization index is distributed between more classes the more 992 significant bits belong to the lowest class. 994 Bitstream structure: 996 Parameter Bits Class 1,2,3 998 ------------------------------------------------------------------- 999 Split 1 8 8,0,0 1000 LSF 1 Split 2 8 8,0,0 1001 LSF Split 3 8 8,0,0 1002 ---------------------------------------------------- 1003 Split 1 9 9,0,0 1004 LSF 2 Split 2 9 9,0,0 1005 Split 3 10 10,0,0 1006 ---------------------------------------------------- 1007 Sum 52 1008 ------------------------------------------------------------------- 1009 Block Class. 3 3,0,0 1010 ------------------------------------------------------------------- 1011 Scale Factor State Coder 6 6,0,0 1012 ------------------------------------------------------------------- 1013 Sample 0 3 0,1,2 1014 Quantized Sample 1 3 0,1,2 1015 Residual : : : 1016 State : : : 1017 Samples : : : 1018 Sample 55 3 0,1,2 1019 Sample 56 3 0,1,2 1020 ---------------------------------------------------- 1021 Sum 174 1022 ------------------------------------------------------------------- 1023 Stage 1 8 0,6,2 1024 Indices sub-block 1 Stage 2 8 0,0,8 1025 Stage 3 8 0,0,8 1027 Andersen et. al. Experimental - Expires Jan. 1st, 2003 20 1028 ---------------------------------------------------- 1029 Stage 1 9 0,7,2 1030 Indices sub-block 2 Stage 2 9 0,0,9 1031 Stage 3 9 0,0,9 1032 CB sub-blocks ---------------------------------------------------- 1033 Stage 1 9 0,7,2 1034 Indices sub-block 3 Stage 2 9 0,0,9 1035 Stage 3 9 0,0,9 1036 ---------------------------------------------------- 1037 Stage 1 9 0,7,2 1038 Indices sub-block 4 Stage 2 9 0,0,9 1039 Stage 3 9 0,0,9 1040 ---------------------------------------------------- 1041 Sum 105 1042 ------------------------------------------------------------------- 1043 Stage 1 4 0,1,3 1044 Gains sub-block 1 Stage 2 3 0,0,3 1045 Stage 3 3 0,0,3 1046 ---------------------------------------------------- 1047 Stage 1 4 0,1,3 1048 Gains sub-block 2 Stage 2 3 0,0,3 1049 Stage 3 3 0,0,3 1050 Gain sub-blocks --------------------------------------------------- 1051 Stage 1 4 0,1,3 1052 Gains sub-block 3 Stage 2 3 0,0,3 1053 Stage 3 3 0,0,3 1054 ---------------------------------------------------- 1055 Stage 1 4 0,1,3 1056 Gains sub-block 4 Stage 2 3 0,0,3 1057 Stage 3 3 0,0,3 1058 ---------------------------------------------------- 1059 Sum 40 1060 ------------------------------------------------------------------- 1061 Stage 1 8 2,5,1 1062 CB for 23 samples in start state Stage 2 8 0,0,8 1063 Stage 3 8 0,0,8 1064 ---------------------------------------------------- 1065 Sum 24 1066 ------------------------------------------------------------------- 1067 Stage 1 4 0,1,3 1068 Gain for 23 samples in start state Stage 2 3 0,0,3 1069 Stage 3 3 0,0,3 1070 ---------------------------------------------------- 1071 Sum 10 1072 ------------------------------------------------------------------- 1073 Position 23 sample segment 1 1,0,0 1074 ------------------------------------------------------------------- 1075 Gain correction factor 4 0,2,2 1076 ------------------------------------------------------------------- 1077 SUM 416 1079 Andersen et. al. Experimental - Expires Jan. 1st, 2003 21 1080 4. DECODER PRINCIPLES 1082 This section describes the principles of each component of the 1083 decoder algorithm. 1085 4.1 LPC Filter Reconstruction 1087 The decoding of the LP filter parameters is very straightforward. 1088 For a set of six indices the corresponding LSF vectors are found by 1089 simple table look up. The three split vectors are concatenated to 1090 obtain qlsf2 and the quantized prediction error vector for the first 1091 LSF. The prediction vector is calculated from qlsf2 and added 1092 together with the LSF mean vector to the decoded prediction error 1093 vector to obtain qlsf1 in the same way as was described for the 1094 encoder in Section 3.1.4. The next step is the stability check 1095 described in Section 3.1.5 followed by the interpolation scheme 1096 described in Section 3.1.6. The only difference is that only the 1097 quantized LSFs are known at the decoder and hence the unquantized 1098 LSFs are not processed. 1100 A reference implementation of the LPC filter reconstruction is given 1101 in Appendix A.38. 1103 4.2 Start State Reconstruction 1105 The scalar encoded SCLEN state samples are reconstructed by first 1106 forming a set of samples from the index stream SINDEX[n], 1107 multiplying the set with 1/SCAL=10^QMAX/4.5, and then filtering the 1108 block with the inverse dispersion (all-pass) filter used in the 1109 encoder (as described in section 3.4). 1111 The remaining STATE_ACBLEN samples in the state are reconstructed by 1112 the same adaptive codebook technique as described in section 4.3. 1113 The location bit determines whether these are the first or the last 1114 STATE_ACBLEN samples of the state vector. If the remaining 1115 STATE_ACBLEN are the first samples of the state vector, then the 1116 scalar encoded SCLEN state samples are time-reversed before 1117 initialization of the adaptive codebook memory vector. 1119 A reference implementation of the start state reconstruction is 1120 given in Appendix A.46. 1122 4.3 Excitation Decoding Loop 1124 The decoding of the LPC excitation vector proceeds in the same order 1125 in which the residual was encoded at the encoder. That is, after the 1126 decoding of the entire state vector, the forward subblocks 1127 (corresponding to samples occurring after the state vector samples) 1128 are decoded, and then the backward subblocks (corresponding to 1129 samples occurring before the state vector) are decoded, resulting in 1130 a fully decoded block of excitation signal samples. 1132 Andersen et. al. Experimental - Expires Jan. 1st, 2003 22 1133 In particular, each subblock is decoded using the multistage 1134 adaptive codebook decoding module which is described in section 4.4. 1135 This module relies upon an adaptive codebook memory that is 1136 constructed before each run of the adaptive codebook decoding. The 1137 construction of the adaptive codebook memory in the decoder is 1138 identical to the method outlined in section 3.5.2. Therefore for the 1139 initial forward subblock, the last STATLEN=80 samples of the length 1140 LMEM=147 adaptive codebook memory are filled with the samples of the 1141 state vector. For subsequent forward subblocks, the first SUBL=40 1142 samples of the adaptive codebook memory are discarded, the remaining 1143 samples are shifted by SUBL samples towards the beginning of the 1144 vector, while the newly decoded SUBL=40 samples are placed at the 1145 end of the adaptive codebook memory. For backward subblocks, the 1146 construction is similar except that every vector of samples involved 1147 is first time-reversed. 1149 A reference implementation of the excitation decoding loop is found 1150 in Appendix A.5. 1152 4.4 Multistage Adaptive Codebook Decoding 1154 The Multistage Adaptive Codebook Decoding module is used at both the 1155 sender (encoder) and the receiver (decoder) ends to produce a 1156 synthetic signal in the residual domain that is eventually used to 1157 produce synthetic speech. The module takes the index values used to 1158 construct vectors that are scaled and summed together to produce a 1159 synthetic signal that is the output of the module. 1161 4.4.1 Construction of the Decoded Excitation Signal 1163 The unpacked index values provided at the input to the module are 1164 references to extended codebooks, which are constructed as described 1165 in Section 3.5.2 with the only difference that it is based on the 1166 codebook memory without the perceptual weighting. The unpacked 3 1167 indexes are used to look up 3 codebook vectors. The unpacked 3 gain 1168 indexes are used to decode the corresponding 3 gains. In this 1169 decoding the successive rescaling described in Section 3.5.3.2. 1171 A reference implementation of the adaptive codebook decoding is 1172 listed in Appendix A.34. 1174 4.5 Packet Loss Concealment 1176 If packet loss occurs, the decoder receives a signal saying that 1177 information regarding a block is lost. For such blocks a Packet Loss 1178 Concealment (PLC) unit can be used to create a decoded signal which 1179 mask the effect of that packet loss. In the following we will 1180 describe an example of a PLC unit that can be used with the iLBC 1181 codec. As the PLC unit is used only at the decoder, the PLC unit 1182 does not affect interoperability between implementations. Other PLC 1183 implementations can therefore be used. 1185 Andersen et. al. Experimental - Expires Jan. 1st, 2003 23 1186 The example PLC described operates on the LP filters and the 1187 excitation signals and is based on the following principles: 1189 4.5.1 Block Received Correctly and Previous Block also Received 1191 If the block is received correctly, the PLC only records state 1192 information of the current block that can be used in case the next 1193 block is lost. The LP filters for each subblock, each first stage 1194 adaptive codebook lag (which can be construed as pitch) for each 1195 subblock that runs the adaptive codebook decoding, and the entire 1196 decoded excitation signal are all saved in the PLCState structure. 1197 All this information will be needed if the following block is lost. 1199 4.5.2 Block Not Received 1201 If the block is not received, the block substitution is based on 1202 doing a pitch synchronous repetition of the excitation signal which 1203 is filtered by modified versions of the previous block's LP filters. 1204 The previous block's information is stored in the structure 1205 PLCState. 1207 First, the previous block's LP filters are bandwidth expanded (the 1208 effect of which is to pull the roots away from the unit circle to 1209 mute the resonance of the filters) to produce the LP filters that 1210 are used in the synthesis of the substituted block. 1212 A correlation analysis is performed on the previous block's 1213 excitation signal in order to detect the amount of pitch periodicity 1214 and a pitch value. The correlation measure is also used to decide on 1215 the voicing level (the degree to which the previous block's 1216 excitation was a voiced or roughly periodic signal). The excitation 1217 in the previous block is used to create an excitation for the block 1218 to be substituted such that the pitch of the previous block is 1219 maintained. Therefore, the new excitation is constructed in a pitch 1220 synchronous manner. In order to avoid a buzzy sounding substituted 1221 block, a random excitation is mixed with the new pitch periodic 1222 excitation and the relative use of the two components is computed 1223 from the correlation measure (voicing level). 1225 For the block to be substituted, the newly constructed excitation 1226 signal is then passed through the newly constructed LP filters to 1227 produce the speech that will be substituted for the lost block. 1229 For several consecutive lost blocks, the packet loss concealment 1230 continues in a similar manner. The correlation measure of the last 1231 received block is still used along with the same pitch value. The LP 1232 filters of the last received block are also used again, but the 1233 bandwidth expansion is increased for consecutive lost blocks (as the 1234 length in time from the last received block increases). This 1235 increases the muting of the resonance of the spectral envelope. The 1236 energy of the substituted excitation for consecutive lost blocks is 1237 decreased, leading to a dampened excitation, and therefore dampened 1238 speech. 1240 Andersen et. al. Experimental - Expires Jan. 1st, 2003 24 1241 4.5.3 Block Received Correctly When Previous Block Not Received 1243 For the case in which a block is received correctly when the 1244 previous block was not received, the correctly received block's 1245 directly decoded speech (based solely on the received block) is not 1246 used as the actual output. The reason for this is that the directly 1247 decoded speech does not necessarily smoothly merge into the 1248 synthetic speech generated for the previous lost block. If the two 1249 signals are not smoothly merged, an audible discontinuity is 1250 accidentally produced. Therefore, a correlation analysis between the 1251 two blocks of excitation signal (the excitation of the previous 1252 concealed block and the excitation of the current received block) is 1253 performed to find the best phase match. Then a simple overlap-add 1254 procedure is performed to smoothly merge the previous excitation 1255 into the current block's excitation. 1257 The exact implementation of the packet loss concealment does not 1258 influence interoperability of the codec. 1260 A reference implementation of the packet loss concealment is 1261 suggested in Appendix A.34. Exact compliance with this suggested 1262 algorithm is not needed for a reference implementation to be fully 1263 compatible with the overall codec specification. 1265 4.6 Enhancement 1267 The decoder contains an enhancement unit that operates on the 1268 reconstructed excitation signal. The enhancement unit increases the 1269 perceptual quality of the reconstructed signal by reducing the 1270 speech-correlated noise (more accurately: speech-dependent noise) 1271 in the voiced speech segments. The enhancement unit has advantages 1272 over the postfilters that are conventionally used to a similar 1273 purpose. 1275 To understand the motivation for the enhancement unit, it is useful 1276 to define an enhancement signal that is the subtraction of the 1277 distorted input signal from the enhanced output signal. In 1278 conventional postfiltering operators, the relative power of the 1279 enhancement signal will vary strongly as a function of time. In 1280 certain time intervals the enhancement signal has (too) much energy, 1281 and in others it has (too) little. The enhancement operation 1282 settings usually form a heuristic compromise between such time 1283 regions. The need for a compromise results from the postfiltering 1284 operation being based on the input signal only, except for signal 1285 power conservation. In other words, the conventionally used 1286 postfilters operate in open-loop fashion. 1288 4.6.1 Outline of the Enhancement Unit 1290 The enhancement unit of iLBC introduces a second constraint on the 1291 enhanced signal, in addition to the first constraint that conserves 1293 Andersen et. al. Experimental - Expires Jan. 1st, 2003 25 1294 the short-term power between the input and output of the enhancer. 1295 The second constraint is that the enhancement signal (which is 1296 defined as a difference signal resulting from subtracting the 1297 distorted signal from the enhanced signal) is constrained to have a 1298 power that is less than or equal to a certain fraction of the power 1299 of the distorted speech signal. The second constraint prevents the 1300 common artifacts resulting from "over-enhancement" during some time 1301 intervals that are common to conventional postfilters. Yet, the 1302 second constraint does not significantly affect the effectiveness of 1303 the enhancement in sustained voiced regions environments, where 1304 enhancement of speech signals corrupted by speech-correlated noise 1305 is typically most needed. 1307 The speech enhancement unit includes two basic steps, each performed 1308 for each current time sample of the signal. The pitch track or delay 1309 track that is determined and used in the iLBC coder is an input to 1310 the first step. The first step consists of refining the pitch track 1311 so as to allow a sampling of the distorted input signal using 1312 sampling intervals of precisely one pitch period, starting from the 1313 current sample, to obtain a pitch-period-synchronous sequence. Thus, 1314 the procedure creates such a pitch-period-synchronous sequence for 1315 each sample of the coded excitation (the sample of the distorted 1316 speech signal being also a sample of the corresponding 1317 pitch-period-synchronous sequence). 1319 To simplify processing, the pitch-period-synchronous sequence is 1320 determined simultaneously for a set of consecutive samples of the 1321 distorted input signal (i.e., for a block of that signal). We refer 1322 to such a set of consecutive excitation-signal samples (block) as a 1323 sample-sequence. Our simultaneous determination of pitch-period- 1324 synchronous sequences for an entire sample-sequence results in a 1325 pitch-period-synchronous sequence of sample-sequences. 1327 The second step of our enhancement operator includes re-estimating 1328 each sample based on the corresponding pitch-period-synchronous 1329 sequence, the first signal-power constraint, and the second 1330 constraint operating on the enhancement signal. The sequence of re- 1331 estimated samples (the re-estimated signal block) forms the enhanced 1332 excitation signal. The enhanced speech signal is more periodic than 1333 the distorted speech signal, when the signal is voiced (and the 1334 pitch-period-synchronous sequence corresponds to a nearly periodic 1335 sampling of the distorted signal). To simplify the processing, the 1336 re-estimation procedure is also performed simultaneously for a 1337 sample-sequence, rather than for each sample individually. 1338 Concatenation of the re-estimated sample sequences (excitation 1339 signal blocks) results in the reconstructed excitation signal. 1341 It is noted that in regions where the speech signal is not 1342 nearly-periodic, the speech enhancement system does not change the 1343 distorted signal significantly because of the second constraint. 1344 However, whenever the distorted speech signal is nearly periodic, 1345 the speech enhancement system effectively removes or reduces the 1346 audible distortion. It is also noted that the second constraint not 1348 Andersen et. al. Experimental - Expires Jan. 1st, 2003 26 1349 only results in a reduction of artifacts, but that it also results 1350 in an insensitivity to lack of robustness of determination of pitch- 1351 period-synchronous sequences. 1353 In the following two subsections, we first discuss the determination 1354 of the pitch-synchronous sequence of sample-sequences for the 1355 current 1356 sample-sequence and then the re-estimation of the sample-sequence. 1357 Concatenation of the re-estimated sample-sequences forms the 1358 reconstructed excitation signal of the iLBC coder. 1360 4.6.2 Determination of the Pitch-Synchronous Sequences 1362 Upon receiving the pitch track, the enhancer refines this for a 1363 particular block (sample sequence), to obtain a pitch-period- 1364 synchronous sequence of sample-sequences. Such a pitch-period- 1365 synchronous sequence of sample-sequences is determined for each 1366 consecutive block of samples (each block forms a sample-sequence). 1367 The pitch-period-synchronous sequence of sample-sequences is 1368 determined recursively, both forward- and backward-in-time. 1370 We describe the procedure to determine the pitch-synchronous- 1371 sequence determiner in more detail for the backward iterative 1372 procedure. The forward iterative procedure is analogous. The 1373 sequence of sample-sequences is determined in a computationally 1374 efficient, recursive manner. 1376 The reference sample-sequence of an iteration step is initially, 1377 i.e., for the first iteration step) defined as the current block of 1378 samples. Each subsequent reference sample-sequence is found 1379 recursively in the following steps. In a first step, a signal 1380 segment is up-sampled to create a set of polyphase signals that have 1381 identical sampling rate as the original signal. Each polyphase 1382 signal is offset by a different fractional sampling interval. In a 1383 second step, a subset of sample-sequences of the various polyphase 1384 signals is then identified as candidate sample-sequences. This 1385 subset of sample sequences falls within a certain range of time 1386 delays that is close to the pitch period obtained from the iLBC 1387 decoder. In a third step, one sample sequence is selected from the 1388 set of candidate sample sequences. The selected sample-sequence is 1389 the sample-sequence that has the highest correlation coefficient 1390 with the reference sample-sequence. In the final step of each 1391 iteration, the selected sample-sequence replaces the reference 1392 sample-sequence to prepare for the next iteration. The procedure is 1393 repeated until the required number of sample-sequences backward-in- 1394 time is found, which depends on the parameter settings used for the 1395 iLBC coder. 1397 The forward-in-time part of the pitch-period-synchronous sequence 1398 process is determined in a manner analogous to the backward-in-time 1399 part of the pitch-period-synchronous sequence. The number of sample- 1400 sequences forward-in-time and the number of sample-sequences 1401 backward-in-time can be varied individually, to obtain the desired 1403 Andersen et. al. Experimental - Expires Jan. 1st, 2003 27 1404 delay and performance characteristics. 1406 4.6.3 Re-estimation of the Current Sample-Sequence 1408 For each successive sample-sequence (i.e., each successive block of 1409 the excitation signal), a re-estimation of the sample-sequence is 1410 performed. This re-estimation is determined from the current pitch- 1411 synchronous sequence of sample-sequences, through a constrained 1412 optimization procedure. 1414 Let x_m be a vector representing a sample-sequence with index m 1415 within the current pitch-synchronous sequence of sample-sequences. 1416 The determination of this pitch-synchronous sample sequence was 1417 described in section X.1. Furthermore, let z be the re-estimated 1418 current sample sequence. We then define the following cross- 1419 correlation based periodicity criterion that defines a measure of 1420 periodicity for the pitch-period-synchronous sequence: 1422 e = sum_{m=-W, m!=0}^{m=W} a_m z^T x_m, (1) 1424 where T indicates conjugate transpose, != indicates not equal, and 1425 the set of coefficients a_m form a weighting window that specifies 1426 the weightings of the respective inner product between the re- 1427 estimated sample-sequence and the sample-sequences. We use a 1428 centered Hanning weighting modified so as to set a_0 to 0. 1430 The objective of the re-estimation procedure is to find the modified 1431 current sample-sequence z that maximizes the periodicity criterion 1432 (1) under two constraints. The first constraint is the constraint 1433 that the modified vector have the same energy as the original vector 1435 z^T z= x_0^T x_0 . (2) 1437 The second constraint is that the difference vector, i.e., the 1438 modification, have relative low energy: 1440 (z-x_0)^T (z-x_0) <= b x_0^T x_0 , (3) 1442 where the value selected for b is positive and less than unity, with 1443 a larger value resulting generally in stronger enhancement of the 1444 signal periodicity. It is clear that, for small b, non-periodic 1445 signals cannot generally be converted into nearly-periodic signals. 1446 The purpose of the second constraint is to prevent production of an 1447 enhanced signal that is significantly different from the original 1448 signal. This also means that the second constraint limits the 1449 numerical size of the errors that the enhancement procedure can 1450 make. 1452 To achieve constrained optimization, the Lagrange multiplier 1453 technique can be used. We distinguish two solution regions for the 1454 optimization: 1) the region where the second constraint is not 1455 activated (in this solution region inequality (3) is a true 1456 inequality) and 2) the region where the second constraint is 1458 Andersen et. al. Experimental - Expires Jan. 1st, 2003 28 1459 activated (in this solution region (3) is an equality constraint). 1460 Let us define 1462 y = sum_{m=-W, m!=0}^{m=W} a_m x_m, (4) 1464 Then, in the first case, where the second constraint is not 1465 activated, the optimized re-estimated vector is simply a scaled 1466 version of y: 1468 z = y sqrt( x_0^T x_0 / (y^T y)). (5) 1470 In the second case, where the second constraint is activated and 1471 becomes an equality constraint, we have that 1473 z= Ay + B x_0 (6) 1475 where 1477 A = sqrt((b-b^2/4) x_0^T x_0/(y^Ty - (y^T x_0)^2/(x_0^T x_0))) (7) 1479 and 1481 B = 1 - b/2 - A (y^T x_0)/(x_0^T x_0). (8) 1483 It is now seen that the entire re-estimation of the current sample- 1484 sequence, from a given pitch-synchronous sequence of sample- 1485 sequences, can be performed in three simple steps. In a first step, 1486 we find the determine that optimizes the periodicity with only the 1487 first constraint activated. The resulting trial solution is given by 1488 equation (5). In a second step, we check if this trial solution 1489 satisfies the second constraint given by inequality (3). If it does, 1490 this trial solution for is used and the third step is omitted. If 1491 this is not the case, then we determine solution (6) of the 1492 optimization, where both the first and the second constraint are 1493 considered as equality constraints. 1495 As was mentioned before, the reconstructed excitation signal 1496 consists of the concatenation of the re-estimated current sample- 1497 sequences. 1499 Appendix A.16 contains a listing of a reference implementation for 1500 the enhancement method. 1502 4.7 Synthesis Filtering 1504 Upon decoding or PLC of the LP excitation block, the decoded speech 1505 block is obtained by running the decoded LP synthesis filter over 1506 the block. For decoded signal blocks the LP coefficients are changed 1507 at the first sample of every sub block. For PLC blocks, one solution 1508 is to apply the last LP coefficients of the last decoded speech 1509 block for all sub blocks. 1511 Andersen et. al. Experimental - Expires Jan. 1st, 2003 29 1512 The reference implementation for the synthesis filtering can be 1513 found in appendix A.50. 1515 5. SECURITY CONSIDERATIONS 1517 This algorithm for the coding of speech signals is not subject of 1518 any known security consideration; however, its RTP payload format 1519 [1] is subject of several considerations which are addressed there. 1521 6. REFERENCES 1523 [1] A. Duric and S. V. Andersen, "RTP Payload Format for iLBC 1524 Speech", draft-duric-rtp-ilbc-01.txt, July 2002. 1526 [2] S. Bradner, "Key words for use in RFCs to Indicate requirement 1527 Levels", BCP 14, RFC 2119, March 1997. 1529 [3] ITU-T Recommendation G.711, available online from the ITU 1530 bookstore at http://www.itu.int. 1532 7. ACKNOWLEDGEMENTS 1534 The authors wish to thank Henry Sinnreich and Patrik Faltstrom for 1535 great support of the iLBC initiative and for the valuable feedback 1536 and comments. 1538 Andersen et. al. Experimental - Expires Jan. 1st, 2003 30 1539 8. AUTHOR'S ADDRESSES 1541 Soren Vang Andersen 1542 Global IP Sound AB 1543 Rosenlundsgatan 54 1544 Stockholm, S-11863 1545 Sweden 1546 Phone: +46 8 54553040 1547 Email: soren.andersen@globalipsound.com 1549 Alan Duric 1550 Global IP Sound AB 1551 Rosenlundsgatan 54 1552 Stockholm, S-11863 1553 Sweden 1554 Phone: +46 8 54553040 1555 Email: alan.duric@globalipsound.com 1557 Roar Hagen 1558 Global IP Sound AB 1559 Rosenlundsgatan 54 1560 Stockholm, S-11863 1561 Sweden 1562 Phone: +46 8 54553040 1563 Email: roar.hagen@globalipsound.com 1565 W. Bastiaan Kleijn 1566 Global IP Sound AB 1567 Rosenlundsgatan 54 1568 Stockholm, S-11863 1569 Sweden 1570 Phone: +46 8 54553040 1571 Email: bastiaan.kleijn@globalipsound.com 1573 Jan Linden 1574 Global IP Sound Inc. 1575 900 Kearny Street, suite 500 1576 San Francisco, CA-94133 1577 USA 1578 Phone: +1 415 397 2555 1579 Email: jan.linden@globalipsound.com 1581 Manohar N. Murthi 1582 1630 Eagle Dr. 1583 Sunnyvale, CA-94087 1584 USA 1585 Phone: +1 408 749 8160 1586 Email: mnmurthi@yahoo.com 1588 Jan Skoglund 1589 Global IP Sound Inc. 1590 900 Kearny Street, suite 500 1591 San Francisco, CA-94133 1593 Andersen et. al. Experimental - Expires Jan. 1st, 2003 31 1594 USA 1595 Phone: +1 415 397 2555 1596 Email: jan.skoglund@globalipsound.com 1598 Julian Spittka 1599 Global IP Sound Inc. 1600 900 Kearny Street, suite 500 1601 San Francisco, CA-94133 1602 USA 1603 Phone: +1 415 397 2555 1604 Email: julian.spittka@globalipsound.com 1606 Andersen et. al. Experimental - Expires Jan. 1st, 2003 32 1607 APPENDIX A REFERENCE IMPLEMENTATION 1609 This appendix contains the complete c-code for a reference 1610 implementation of encoder and decoder for the specified codec. 1612 The c-code consists of the following files with highest level 1613 functions: 1615 iLBC_test.c: main function for evaluation purpose 1616 iLBC_encode.h: encoder header 1617 iLBC_encode.c: encoder function 1618 iLBC_decode.h: decoder header 1619 iLBC_decode.c: decoder function 1621 the following files containing global defines and constants: 1623 iLBC_define.h: global defines 1624 constants.h: global constants header 1625 constants.c: global constants memory allocations 1627 and the following files containing subroutines: 1629 anaFilter.h: lpc analysis filter header 1630 anaFilter.c: lpc analysis filter function 1631 createCB.h: codebook construction header 1632 createCB.c: codebook construction function 1633 doCPLC.h: packet loss concealment header 1634 doCPLC.c: packet loss concealment function 1635 enhancer.h: signal enhancement header 1636 enhancer.c: signal enhancement function 1637 filter.h: general filter header 1638 filter.c: general filter functions 1639 FrameClassify.h: start state classification header 1640 FrameClassify.c: start state classification function 1641 gaincorr_Encode.h: gain correction encoder header 1642 gaincorr_Encode.c: gain correction encoder function 1643 gainquant.h: gain quantization header 1644 gainquant.c: gain quantization function 1645 getCBvec.h: codebook vector construction header 1646 getCBvec.c: codebook vector construction function 1647 helpfun.h: general purpose header 1648 helpfun.c: general purpose functions 1649 hpInput.h: input high pass filter header 1650 hpInput.c: input high pass filter function 1651 hpOutput.h: output high pass filter header 1652 hpOutput.c: output high pass filter function 1653 iCBConstruct.h: excitation decoding header 1654 iCBConstruct.c: excitation decoding function 1655 iCBSearch.h: excitation encoding header 1656 iCBSearch.c: excitation encoding function 1658 Andersen et. al. Experimental - Expires Jan. 1st, 2003 33 1659 LPCdecode.h: lpc decoding header 1660 LPCdecode.c: lpc decoding function 1661 LPCencode.h: lpc encoding header 1662 LPCencode.c: lpc encoding function 1663 lsf.h: line spectral frequencies header 1664 lsf.c: line spectral frequencies functions 1665 packing.h: bitstream packetization header 1666 packing.c: bitstream packetization functions 1667 StateConstructW.h: state decoding header 1668 StateConstructW.c: state decoding functions 1669 StateSearchW.h: state encoding header 1670 StateSearchW.c: state encoding function 1671 syntFilter.h: lpc synthesis filter header 1672 syntFilter.c: lpc synthesis filter function 1674 The implementation is portable and should work on many different 1675 platforms. However, it is not difficult to optimize the 1676 implementation on particular platforms, an exercise left to the 1677 reader. 1679 A.1 iLBC_test.c 1681 /****************************************************************** 1683 iLBC Speech Coder ANSI-C Source Code 1685 iLBC_test.c 1687 Copyright (c) 2001, 1688 Global IP Sound AB. 1689 All rights reserved. 1691 ******************************************************************/ 1693 #include 1694 #include 1695 #include 1696 #include 1698 #include "iLBC_define.h" 1699 #include "iLBC_encode.h" 1700 #include "iLBC_decode.h" 1702 #include "constants.h" 1704 //#include "iLBCInterface.h" 1705 #define ILBCNOOFWORDS ILBCFLOAT_GIPS_NOOFBYTES/2 1707 /* Runtime statistics */ 1708 #include 1709 /* #define CLOCKS_PER_SEC 1000 */ 1710 #define TIME_PER_FRAME 30 1712 Andersen et. al. Experimental - Expires Jan. 1st, 2003 34 1713 /*----------------------------------------------------------------* 1714 * Initiation of encoder instance. 1715 *---------------------------------------------------------------*/ 1717 short initEncode( /* (o) Number of bytes encoded */ 1718 iLBC_Enc_Inst_t *iLBCenc_inst /* (i/o) Encoder instance */ 1719 ){ 1720 int i; 1722 memset((*iLBCenc_inst).anaMem, 0, 1723 ILBCFLOAT_GIPS_FILTERORDER*sizeof(float)); 1725 for (i=0; iprev_enh_pl; 1801 return (short)ILBCFLOAT_GIPS_BLOCKL; 1802 } 1804 /*----------------------------------------------------------------* 1805 * Decoder interface function 1806 *---------------------------------------------------------------*/ 1808 short decode( /* (o) Number of decoded samples */ 1809 iLBC_Dec_Inst_t *iLBCdec_inst, /* (i/o) Decoder instance */ 1810 short *decoded_data, /* (o) Decoded signal block */ 1811 short *encoded_data, /* (i) Encoded bytes */ 1812 short mode /* (i) 0=PL, 1=Normal */ 1813 ){ 1814 int k; 1815 float decblock[BLOCKL], dtmp; 1817 /* check if mode is valid */ 1819 Andersen et. al. Experimental - Expires Jan. 1st, 2003 36 1820 if (mode<0 || mode>1) { 1821 printf("\nERROR - Wrong mode - 0, 1 allowed\n"); exit(3);} 1823 /* do actual decoding of block */ 1825 iLBC_decode(decblock, (unsigned char *)encoded_data, 1826 iLBCdec_inst, mode); 1828 /* convert to short */ 1830 for(k=0;kMAX_SAMPLE) 1835 dtmp=MAX_SAMPLE; 1836 decoded_data[k] = (short) dtmp; 1837 } 1839 return (short)ILBCFLOAT_GIPS_BLOCKL; 1840 } 1842 /*----------------------------------------------------------------* 1843 * Main program to test iLBC encoding and decoding 1844 * 1845 * Usage: 1846 * exefile_name.exe 1847 * 1848 *---------------------------------------------------------------*/ 1850 int main(int argc, char* argv[]) 1851 { 1853 /* Runtime statistics */ 1855 float starttime; 1856 float runtime; 1857 float outtime; 1859 FILE *ifileid,*efileid,*ofileid; 1860 short encoded_data[ILBCNOOFWORDS+1], data[ILBCFLOAT_GIPS_BLOCKL]; 1861 int blockcount = 0; 1863 iLBC_Enc_Inst_t Enc_Inst; 1864 iLBC_Dec_Inst_t Dec_Inst; 1866 /* get arguments and open files */ 1868 if(argc != 4 ){ 1869 fprintf(stderr, "%s inputfile channelfile outputfile\n", 1870 argv[0]); exit(1);} 1871 if( (ifileid=fopen(argv[1],"rb")) == NULL){ 1872 fprintf(stderr,"Cannot open input file %s\n", argv[1]); 1874 Andersen et. al. Experimental - Expires Jan. 1st, 2003 37 1875 exit(2);} 1876 if( (efileid=fopen(argv[2],"wb")) == NULL){ 1877 fprintf(stderr, "Cannot open channelfile file %s\n", 1878 argv[2]); exit(3);} 1879 if( (ofileid=fopen(argv[3],"wb")) == NULL){ 1880 fprintf(stderr, "Cannot open output file %s\n", 1881 argv[2]); exit(3);} 1883 /* print info */ 1885 fprintf(stderr, "\n"); 1886 fprintf(stderr, 1887 "*---------------------------------------------------*\n"); 1888 fprintf(stderr, 1889 "* *\n"); 1890 fprintf(stderr, 1891 "* ilbclibtest *\n"); 1892 fprintf(stderr, 1893 "* *\n"); 1894 fprintf(stderr, 1895 "* *\n"); 1896 fprintf(stderr, 1897 "*---------------------------------------------------*\n"); 1898 fprintf(stderr, "\nInput file : %s\n", argv[1]); 1899 fprintf(stderr,"Channel file : %s\n", argv[2]); 1900 fprintf(stderr,"Output file : %s\n\n", argv[3]); 1902 /* Initialization */ 1904 initEncode(&Enc_Inst); 1905 initDecode(&Dec_Inst); 1907 /* Runtime statistics */ 1909 starttime=clock()/(float)CLOCKS_PER_SEC; 1911 /* loop over input blocks */ 1913 while( fread(data,sizeof(short), 1914 ILBCFLOAT_GIPS_BLOCKL,ifileid)==ILBCFLOAT_GIPS_BLOCKL){ 1916 blockcount++; 1918 /* encoding */ 1920 fprintf(stderr, "--- Encoding block %i --- ",blockcount); 1921 encode(&Enc_Inst, encoded_data, data); 1922 fprintf(stderr, "\r"); 1924 /* write byte file */ 1926 fwrite(encoded_data,sizeof(short),ILBCNOOFWORDS,efileid); 1928 Andersen et. al. Experimental - Expires Jan. 1st, 2003 38 1929 /* decoding */ 1931 fprintf(stderr, "--- Decoding block %i --- ",blockcount); 1932 decode(&Dec_Inst, data, encoded_data, 1); 1933 fprintf(stderr, "\r"); 1935 /* write output file */ 1937 fwrite(data,sizeof(short),ILBCFLOAT_GIPS_BLOCKL,ofileid); 1938 } 1940 /* Runtime statistics */ 1942 runtime = (float)(clock()/(float)CLOCKS_PER_SEC-starttime); 1943 outtime = (float)((float)blockcount* 1944 (float)TIME_PER_FRAME/1000.0); 1945 printf("\nLength of speech file: %.1f s\n", outtime); 1946 printf("Time to run iLBC_encode+iLBC_decode:"); 1947 printf(" %.1f s (%.1f %% of realtime)\n", runtime, 1948 (100*runtime/outtime)); 1950 /* close files */ 1952 fclose(ifileid); fclose(efileid); fclose(ofileid); 1953 } 1955 A.2 iLBC_encode.h 1957 /****************************************************************** 1959 iLBC Speech Coder ANSI-C Source Code 1961 iLBC_encode.h 1963 Copyright (c) 2001, 1964 Global IP Sound AB. 1965 All rights reserved. 1967 ******************************************************************/ 1969 #ifndef __iLBC_ILBCENCODE_H 1970 #define __iLBC_ILBCENCODE_H 1972 #include "iLBC_define.h" 1974 void iLBC_encode( 1975 unsigned char *bytes, /* (o) encoded data bits iLBC */ 1976 float *block, /* (o) speech vector to encode */ 1977 iLBC_Enc_Inst_t *iLBCenc_inst /* (i/o) the general encoder 1978 state */ 1979 ); 1981 Andersen et. al. Experimental - Expires Jan. 1st, 2003 39 1982 #endif 1984 A.3 iLBC_encode.c 1986 /****************************************************************** 1988 iLBC Speech Coder ANSI-C Source Code 1990 iLBC_encode.c 1992 Copyright (c) 2001, 1993 Global IP Sound AB. 1994 All rights reserved. 1996 ******************************************************************/ 1998 #include 1999 #include 2001 #include "iLBC_define.h" 2002 #include "LPCencode.h" 2003 #include "FrameClassify.h" 2004 #include "StateSearchW.h" 2005 #include "StateConstructW.h" 2006 #include "helpfun.h" 2007 #include "constants.h" 2008 #include "packing.h" 2009 #include "iCBSearch.h" 2010 #include "iCBConstruct.h" 2011 #include "hpInput.h" 2012 #include "anaFilter.h" 2013 #include "syntFilter.h" 2014 #include "gaincorr_Encode.h" 2016 #include 2018 /*----------------------------------------------------------------* 2019 * main encoder function 2020 *---------------------------------------------------------------*/ 2022 void iLBC_encode( 2023 unsigned char *bytes, /* (o) encoded data bits iLBC */ 2024 float *block, /* (o) speech vector to encode */ 2025 iLBC_Enc_Inst_t *iLBCenc_inst /* (i/o) the general encoder 2026 state */ 2027 ){ 2029 float data[BLOCKL]; 2030 float residual[BLOCKL], reverseResidual[BLOCKL]; 2032 int start, idxForMax, idxVec[STATE_LEN]; 2033 float reverseDecresidual[BLOCKL], mem[MEML]; 2035 Andersen et. al. Experimental - Expires Jan. 1st, 2003 40 2036 int n, k, kk, meml_gotten, Nfor, Nback, i; 2037 int dummy=0; 2038 int gain_index[NSTAGES*NASUB], extra_gain_index[NSTAGES]; 2039 int cb_index[NSTAGES*NASUB],extra_cb_index[NSTAGES] ; 2040 int lsf_i[LSF_NSPLIT*LPC_N]; 2041 unsigned char *pbytes; 2042 int diff, start_pos, state_first; 2043 float en1, en2; 2044 int index, gc_index; 2045 int subcount, subframe; 2046 float gainadjusttarget[BLOCKL]; 2047 float weightState[FILTERORDER]; 2048 float syntdenum[NSUB*(FILTERORDER+1)]; 2049 float weightnum[NSUB*(FILTERORDER+1)]; 2050 float weightdenum[NSUB*(FILTERORDER+1)]; 2051 float decresidual[BLOCKL]; 2052 int firstpart, rest; 2054 /* high pass filtering of input signal if such is not done 2055 prior to calling this function */ 2057 //hpInput(block, BLOCKL, data, (*iLBCenc_inst).hpimem); 2059 /* otherwise simply copy */ 2061 memcpy(data,block,BLOCKL*sizeof(float)); 2063 /* LPC of hp filtered input data */ 2065 LPCencode(syntdenum, weightnum, weightdenum, lsf_i, data, 2066 iLBCenc_inst); 2068 /* inverse filter to get residual */ 2070 for (n=0; n en2) { 2096 state_first = 1; 2097 start_pos = (start-1)*SUBL; 2098 } else { 2099 state_first = 0; 2100 start_pos = (start-1)*SUBL + diff; 2101 } 2103 /* scalar quantization of state */ 2105 StateSearchW(&residual[start_pos], 2106 &syntdenum[(start-1)*(FILTERORDER+1)], 2107 &weightnum[(start-1)*(FILTERORDER+1)], 2108 &weightdenum[(start-1)*(FILTERORDER+1)], &idxForMax, 2109 idxVec, STATE_SHORT_LEN); 2111 StateConstructW(idxForMax, idxVec, 2112 &syntdenum[(start-1)*(FILTERORDER+1)], 2113 &decresidual[start_pos], STATE_SHORT_LEN); 2115 /* predictive quantization in state */ 2117 if (state_first) { /* put adaptive part in the end */ 2119 /* setup memory */ 2121 memset(mem, 0, (MEML-STATE_SHORT_LEN)*sizeof(float)); 2122 memcpy(mem+MEML-STATE_SHORT_LEN, decresidual+start_pos, 2123 STATE_SHORT_LEN*sizeof(float)); 2124 memset(weightState, 0, FILTERORDER*sizeof(float)); 2126 /* encode subframes */ 2128 iCBSearch(extra_cb_index, extra_gain_index, 2129 &residual[start_pos+STATE_SHORT_LEN], mem+MEML-stMemL, 2130 stMemL, diff, NSTAGES, 2131 &weightdenum[(start-1)*(FILTERORDER+1)], weightState); 2133 /* construct decoded vector */ 2135 iCBConstruct(&decresidual[start_pos+STATE_SHORT_LEN], 2136 extra_cb_index, extra_gain_index, mem+MEML-stMemL, 2137 stMemL, diff, NSTAGES); 2139 } 2140 else { /* put adaptive part in the beginning */ 2142 /* create reversed vectors for prediction */ 2144 Andersen et. al. Experimental - Expires Jan. 1st, 2003 42 2145 for(k=0; k 0 ){ 2189 /* setup memory */ 2191 memset(mem, 0, (MEML-STATE_LEN)*sizeof(float)); 2192 memcpy(mem+MEML-STATE_LEN, decresidual+(start-1)*SUBL, 2193 STATE_LEN*sizeof(float)); 2194 memset(weightState, 0, FILTERORDER*sizeof(float)); 2196 /* loop over subframes to encode */ 2198 Andersen et. al. Experimental - Expires Jan. 1st, 2003 43 2199 for (subframe=0; subframe 0 ){ 2235 /* create reverse order vectors */ 2237 for( n=0; n MEML ){ meml_gotten=MEML; } 2250 for( k=0; k 2426 #include 2427 #include 2429 #include "iLBC_define.h" 2430 #include "StateConstructW.h" 2431 #include "LPCdecode.h" 2432 #include "iCBConstruct.h" 2433 #include "doCPLC.h" 2434 #include "helpfun.h" 2435 #include "constants.h" 2436 #include "packing.h" 2437 #include "string.h" 2438 #include "enhancer.h" 2439 #include "hpOutput.h" 2440 #include "syntFilter.h" 2442 /*----------------------------------------------------------------* 2443 * frame residual decoder function (subrutine to iLBC_decode) 2444 *---------------------------------------------------------------*/ 2446 void Decode( 2447 float *decresidual, /* (o) decoded residual frame */ 2448 int start, /* (i) location of start state */ 2449 int idxForMax, /* (i) codebook index for the maximum value */ 2450 int *idxVec, /* (i) codebook indexes for the samples in the 2451 start state*/ 2452 float *syntdenum, /* (i) the decoded synthesis filter 2453 coefficients */ 2454 int *cb_index, /* (i) the indexes for the adaptive codebook */ 2455 int *gain_index, /* (i) the indexes for the corresponding 2456 gains */ 2457 int *extra_cb_index, /* (i) the indexes for the adaptive 2458 codebook part of start state */ 2459 int *extra_gain_index, /* (i) the indexes for the corresponding 2460 gains */ 2461 int state_first, /* (i) 1 if non adaptive part of start state 2462 comes first 0 if that part comes last */ 2463 int gc_index /* (i) the index for the gain correction factor */ 2465 Andersen et. al. Experimental - Expires Jan. 1st, 2003 48 2466 ){ 2467 float reverseDecresidual[BLOCKL], mem[MEML]; 2468 int n, k, meml_gotten, Nfor, Nback, i; 2469 int diff, start_pos; 2470 int subcount, subframe; 2471 float factor; 2472 float std_decresidual, one_minus_factor_scaled; 2473 int gaussstart; 2475 diff = STATE_LEN - STATE_SHORT_LEN; 2476 if(state_first == 1) start_pos = (start-1)*SUBL; 2477 else start_pos = (start-1)*SUBL + diff; 2479 /* decode scalar part of start state */ 2481 StateConstructW(idxForMax, idxVec, 2482 &syntdenum[(start-1)*(FILTERORDER+1)], 2483 &decresidual[start_pos], STATE_SHORT_LEN); 2485 if (state_first) { /* put adaptive part in the end */ 2487 /* setup memory */ 2489 memset(mem, 0, (MEML-STATE_SHORT_LEN)*sizeof(float)); 2490 memcpy(mem+MEML-STATE_SHORT_LEN, decresidual+start_pos, 2491 STATE_SHORT_LEN*sizeof(float)); 2493 /* construct decoded vector */ 2495 iCBConstruct(&decresidual[start_pos+STATE_SHORT_LEN], 2496 extra_cb_index, extra_gain_index, mem+MEML-stMemL, 2497 stMemL, diff, NSTAGES); 2499 } 2500 else {/* put adaptive part in the beginning */ 2502 /* create reversed vectors for prediction */ 2504 for(k=0; k 0 ){ 2540 /* setup memory */ 2542 memset(mem, 0, (MEML-STATE_LEN)*sizeof(float)); 2543 memcpy(mem+MEML-STATE_LEN, decresidual+(start-1)*SUBL, 2544 STATE_LEN*sizeof(float)); 2546 /* loop over subframes to encode */ 2548 for (subframe=0; subframe 0 ){ 2578 /* create reverse order vectors */ 2580 for( n=0; n MEML ){ meml_gotten=MEML; } 2591 for( k=0; k0) { /* the data are good */ 2682 /* decode data */ 2684 Andersen et. al. Experimental - Expires Jan. 1st, 2003 52 2685 pbytes=bytes; 2687 /* 1st level bits */ 2689 unpack( &pbytes,lsf_i+0,lsf_bits[0]); 2690 unpack( &pbytes,lsf_i+1,lsf_bits[1]); 2691 unpack( &pbytes,lsf_i+2,lsf_bits[2]); 2692 unpack( &pbytes,lsf_i+3,lsf_bits[3]); 2693 unpack( &pbytes,lsf_i+4,lsf_bits[4]); 2694 unpack( &pbytes,lsf_i+5,lsf_bits[5]); 2695 unpack( &pbytes,&start,start_bits); 2696 unpack( &pbytes,&idxForMax,scale_bits); 2697 unpack( &pbytes, &state_first,1); 2698 unpack( &pbytes, extra_cb_index, 2); 2700 /* 2nd level bits */ 2702 for(k=0;kprev_enh_pl=0; 2828 if (mode==0) iLBCdec_inst->prev_enh_pl=1; 2829 } 2831 A.6 iLBC_define.h 2833 /****************************************************************** 2835 iLBC Speech Coder ANSI-C Source Code 2837 iLBC_define.h 2839 Copyright (c) 2001, 2840 Global IP Sound AB. 2841 All rights reserved. 2843 ******************************************************************/ 2845 Andersen et. al. Experimental - Expires Jan. 1st, 2003 55 2846 #ifndef __iLBC_ILBCDEFINE_H 2847 #define __iLBC_ILBCDEFINE_H 2849 /* general codec settings */ 2851 #define FS (float)8000.0 2852 #define BLOCKL 240 2853 #define NSUB 6 2854 #define NASUB 4 2855 #define SUBL 40 2856 #define STATE_LEN 80 2857 #define STATE_SHORT_LEN 57 2859 /* LPC settings */ 2861 #define FILTERORDER 10 2862 #define CHIRP_SYNTDENUM (float)0.95 2863 #define CHIRP_WEIGHTNUM (float)0.95 2864 #define CHIRP_WEIGHTDENUM (float)0.4 2865 #define LPC_AHEADL 60 2866 #define LPC_N 2 2867 #define LPC_ASYMDIFF 20 2868 #define LPC_BW (float)60.0 2869 #define LPC_WN (float)1.0001 2870 #define LSF_NSPLIT 3 2871 #define NUMBER_OF_STEPS 4 2872 #define HALFORDER FILTERORDER/2 2874 /* cb settings */ 2876 #define NSTAGES 3 2877 #define CBEXPAND 4 2878 #define MEML 147 2879 #define NCBFILTERS CBEXPAND-1 2880 #define CBFILTLEN 2*10 2881 #define CBHALFFILT 10 2882 #define RESRANGE 33 2884 /* enhancer */ 2886 #define ENH_BLOCKL 80 /* block length */ 2887 #define ENH_HL 3 /* 2*ENH_HL+1 is number blocks 2888 in said second sequence */ 2889 #define ENH_SLOP 20 /* max difference estimated and 2890 correct pitch period */ 2891 #define ENH_PLOCSL 20 /* pitch-estimates and 2892 pitch-locations buffer length */ 2893 #define ENH_OVERHANG 5 2894 #define ENH_UPS0 8 /* upsampling rate */ 2895 #define ENH_FL0 3 /* 2*FLO+1 is the length 2896 of each filter */ 2897 #define ENH_VECTL (ENH_BLOCKL+2*ENH_FL0) 2898 #define ENH_CORRDIM (2*ENH_SLOP+1) 2900 Andersen et. al. Experimental - Expires Jan. 1st, 2003 56 2901 #define ENH_NBLOCKS (BLOCKL/ENH_BLOCKL) 2902 #define ENH_NBLOCKS_EXTRA 5 2903 #define ENH_NBLOCKS_TOT 8 /* ENH_NBLOCKS+ENH_NBLOCKS_EXTRA */ 2904 #define ENH_BUFL (ENH_NBLOCKS_TOT)*ENH_BLOCKL 2905 #define ENH_ALPHA0 (float)0.05 2907 /* PLC */ 2909 #define BFIATTENUATE (float)0.9 2910 #define GAINTHRESHOLD (float)0.5 2911 #define BWEXPAND (float)0.99 2912 #define XT_MIX (float)1.0 2913 #define XB_MIX (float)0.0 2914 #define YT_MIX (float)0.95 2915 #define YB_MIX (float)0.0 2917 /* bit stream defs */ 2919 #define NO_OF_BYTES 52 2920 #define STATE_BITS 3 2921 #define BYTE_LEN 8 2923 /* help parameters */ 2925 #define FLOAT_MAX (float)1.0e37 2926 #define EPS (float)2.220446049250313e-016 2927 #define PI (float)3.14159265358979323846 2928 #define MIN_SAMPLE -32768 2929 #define MAX_SAMPLE 32767 2930 #define TWO_PI (float)6.283185307 2931 #define PI2 (float)0.159154943 2933 /* Gaussian noise sequence */ 2935 #define GAUSS_NOISE_L 1240 2937 /* Temporarily this is coppied in from iLBCInterface.h which will 2938 disappear */ 2940 /* must be defined to same values as in iLBC_define.h */ 2941 #define ILBCFLOAT_GIPS_BLOCKL 240 2942 #define ILBCFLOAT_GIPS_NOOFBYTES 52 2943 #define ILBCFLOAT_GIPS_FILTERORDER 10 2944 #define ILBCFLOAT_GIPS_BLOCKL 240 2945 #define ILBCFLOAT_GIPS_LPC_AHEADL 60 2946 #define ILBCFLOAT_GIPS_NSUB 6 2947 #define ILBCFLOAT_GIPS_SUBL 40 2948 #define ILBCFLOAT_GIPS_ENH_BLOCKL 80 2949 #define ILBCFLOAT_GIPS_ENH_NBLOCKS_TOT 8 2950 #define ILBCFLOAT_GIPS_ENH_BUFL 2951 ILBCFLOAT_GIPS_ENH_NBLOCKS_TOT*ILBCFLOAT_GIPS_ENH_BLOCKL 2953 /* type definition encoder instance */ 2955 Andersen et. al. Experimental - Expires Jan. 1st, 2003 57 2956 typedef struct iLBC_Enc_Inst_t_ { 2958 /* analysis filter state */ 2959 float anaMem[ILBCFLOAT_GIPS_FILTERORDER]; 2961 /* old lsf parameters for interpolation */ 2962 float lsfold[ILBCFLOAT_GIPS_FILTERORDER]; 2963 float lsfqold[ILBCFLOAT_GIPS_FILTERORDER]; 2965 /* signal buffer for LP analysis */ 2966 float lpc_buffer[ILBCFLOAT_GIPS_LPC_AHEADL + 2967 ILBCFLOAT_GIPS_BLOCKL]; 2969 /* state of input HP filter */ 2970 float hpimem[4]; 2972 } iLBC_Enc_Inst_t; 2974 /* type definition decoder instance */ 2975 typedef struct iLBC_Dec_Inst_t_ { 2976 /* synthesis filter state */ 2977 float syntMem[ILBCFLOAT_GIPS_FILTERORDER]; 2979 /* old LSF for interpolation */ 2980 float lsfunqold[ILBCFLOAT_GIPS_FILTERORDER]; 2982 /* pitch lag estimated in enhancer and used in PLC */ 2983 int last_lag; 2985 /* PLC state information */ 2986 int prevLag, consPLICount, prevPLI, prev_enh_pl; 2987 float prevGain, prevLpc[ILBCFLOAT_GIPS_FILTERORDER+1]; 2988 float prevResidual[ILBCFLOAT_GIPS_NSUB*ILBCFLOAT_GIPS_SUBL]; 2989 float energy; 2990 unsigned long seed; 2992 /* previous synthesis filter parameters */ 2993 float old_syntdenum[(ILBCFLOAT_GIPS_FILTERORDER + 2994 1)*ILBCFLOAT_GIPS_NSUB]; 2996 /* state of output HP filter */ 2997 float hpomem[4]; 2999 /* enhancer state information */ 3000 float enh_buf[ILBCFLOAT_GIPS_ENH_BUFL]; 3001 float enh_period[ILBCFLOAT_GIPS_ENH_NBLOCKS_TOT]; 3003 } iLBC_Dec_Inst_t; 3005 #endif 3007 Andersen et. al. Experimental - Expires Jan. 1st, 2003 58 3008 A.7 constants.h 3010 /****************************************************************** 3012 iLBC Speech Coder ANSI-C Source Code 3014 constants.h 3016 Copyright (c) 2001, 3017 Global IP Sound AB. 3018 All rights reserved. 3020 ******************************************************************/ 3022 #ifndef __iLBC_CONSTANTS_H 3023 #define __iLBC_CONSTANTS_H 3025 #include "iLBC_define.h" 3027 /* bit allocation */ 3029 extern int lsf_bits[]; 3030 extern int start_bits; 3031 extern int scale_bits; 3032 extern int state_bits; 3033 extern int cb_bits[]; 3034 extern int gain_bits[]; 3036 /* high pass filters */ 3038 extern float hpi_zero_coefs[]; 3039 extern float hpi_pole_coefs[]; 3040 extern float hpo_zero_coefs[]; 3041 extern float hpo_pole_coefs[]; 3043 /* LPC analysis and quantization */ 3045 extern float lpc_win[]; 3046 extern float lpc_asymwin[]; 3047 extern float lpc_lagwin[]; 3048 extern float cb_ml[]; 3049 extern float cb_p[]; 3050 extern float lsfmean[]; 3051 extern float lsfpred[]; 3052 extern int dim_ml[]; 3053 extern int size_ml[]; 3054 extern int dim_p[]; 3055 extern int size_p[]; 3056 extern float coef[]; 3058 /* state quantization tables */ 3060 Andersen et. al. Experimental - Expires Jan. 1st, 2003 59 3061 extern float state_sq3[]; 3062 extern float state_frgq[]; 3064 /* gain quantization tables */ 3066 extern float gain_sq3[]; 3067 extern float gain_sq4[]; 3069 /* adaptive codebook definitions */ 3071 extern int memLf[]; 3072 extern int stMemL; 3073 extern float cbfilters[NCBFILTERS][CBFILTLEN]; 3075 /* enhancer definitions */ 3077 extern float polyphaser[]; 3078 extern float enh_plocs[]; 3080 /* Gaussian noise vector for gain compensation unit */ 3082 extern float gaussnoise[]; 3084 #endif 3086 A.8 constants.c 3088 /****************************************************************** 3090 iLBC Speech Coder ANSI-C Source Code 3092 constants.c 3094 Copyright (c) 2001, 3095 Global IP Sound AB. 3096 All rights reserved. 3098 ******************************************************************/ 3100 #include "iLBC_define.h" 3102 /* bit allocation */ 3104 int lsf_bits[6]={8,8,8,9,9,10}; 3105 int start_bits=3; 3106 int scale_bits=6; 3107 int state_bits=3; 3108 int cb_bits[5]={8,8,9,9,9}; 3109 int gain_bits[3]={4,3,3}; 3111 /* HP Filters */ 3113 float hpi_zero_coefs[3] = {(float)0.92727436, (float)-1.8544941, 3115 Andersen et. al. Experimental - Expires Jan. 1st, 2003 60 3116 (float)0.92727436}; 3117 float hpi_pole_coefs[3] = {(float)1.0, (float)-1.9059465, 3118 (float)0.9114024}; 3119 float hpo_zero_coefs[3] = {(float)0.93980581, (float)-1.8795834, 3120 (float)0.93980581}; 3121 float hpo_pole_coefs[3] = {(float)1.0, (float)-1.9330735, 3122 (float)0.93589199}; 3124 /* State quantization tables */ 3126 float state_sq3[8] = { 3127 (float)-3.7198, (float)-2.1775, (float)-1.13001, 3128 (float)-0.309649, (float)0.444187, (float)1.32969, 3129 (float)2.43632,(float)3.98386 3130 }; 3132 /* 8 bit quantizer for debugging only */ 3134 float state_sq8[256] = { (float)-4.000000, (float)-3.968627, 3135 (float)-3.937255, (float)-3.905882, (float)-3.874510, 3136 (float)-3.843137, (float)-3.811765, (float)-3.780392, 3137 (float)-3.749020, (float)-3.717647, (float)-3.686275, 3138 (float)-3.654902, (float)-3.623529, (float)-3.592157, 3139 (float)-3.560784, (float)-3.529412, (float)-3.498039, 3140 (float)-3.466667, (float)-3.435294, (float)-3.403922, 3141 (float)-3.372549, (float)-3.341176, (float)-3.309804, 3142 (float)-3.278431, (float)-3.247059, (float)-3.215686, 3143 (float)-3.184314, (float)-3.152941, (float)-3.121569, 3144 (float)-3.090196, (float)-3.058824, (float)-3.027451, 3145 (float)-2.996078, (float)-2.964706, (float)-2.933333, 3146 (float)-2.901961, (float)-2.870588, (float)-2.839216, 3147 (float)-2.807843, (float)-2.776471, (float)-2.745098, 3148 (float)-2.713725, (float)-2.682353, (float)-2.650980, 3149 (float)-2.619608, (float)-2.588235, (float)-2.556863, 3150 (float)-2.525490, (float)-2.494118, (float)-2.462745, 3151 (float)-2.431373, (float)-2.400000, (float)-2.368627, 3152 (float)-2.337255, (float)-2.305882, (float)-2.274510, 3153 (float)-2.243137, (float)-2.211765, (float)-2.180392, 3154 (float)-2.149020, (float)-2.117647, (float)-2.086275, 3155 (float)-2.054902, (float)-2.023529, (float)-1.992157, 3156 (float)-1.960784, (float)-1.929412, (float)-1.898039, 3157 (float)-1.866667, (float)-1.835294, (float)-1.803922, 3158 (float)-1.772549, (float)-1.741176, (float)-1.709804, 3159 (float)-1.678431, (float)-1.647059, (float)-1.615686, 3160 (float)-1.584314, (float)-1.552941, (float)-1.521569, 3161 (float)-1.490196, (float)-1.458824, (float)-1.427451, 3162 (float)-1.396078, (float)-1.364706, (float)-1.333333, 3163 (float)-1.301961, (float)-1.270588, (float)-1.239216, 3164 (float)-1.207843, (float)-1.176471, (float)-1.145098, 3165 (float)-1.113725, (float)-1.082353, (float)-1.050980, 3166 (float)-1.019608, (float)-0.988235, (float)-0.956863, 3167 (float)-0.925490, (float)-0.894118, (float)-0.862745, 3168 (float)-0.831373, (float)-0.800000, (float)-0.768627, 3170 Andersen et. al. Experimental - Expires Jan. 1st, 2003 61 3171 (float)-0.737255, (float)-0.705882, (float)-0.674510, 3172 (float)-0.643137, (float)-0.611765, (float)-0.580392, 3173 (float)-0.549020, (float)-0.517647, (float)-0.486275, 3174 (float)-0.454902, (float)-0.423529, (float)-0.392157, 3175 (float)-0.360784, (float)-0.329412, (float)-0.298039, 3176 (float)-0.266667, (float)-0.235294, (float)-0.203922, 3177 (float)-0.172549, (float)-0.141176, (float)-0.109804, 3178 (float)-0.078431, (float)-0.047059, (float)-0.015686, 3179 (float)0.015686, (float)0.047059, (float)0.078431, 3180 (float)0.109804, (float)0.141176, (float)0.172549, 3181 (float)0.203922, (float)0.235294, (float)0.266667, 3182 (float)0.298039, (float)0.329412, (float)0.360784, 3183 (float)0.392157, (float)0.423529, (float)0.454902, 3184 (float)0.486275, (float)0.517647, (float)0.549020, 3185 (float)0.580392, (float)0.611765, (float)0.643137, 3186 (float)0.674510, (float)0.705882, (float)0.737255, 3187 (float)0.768627, (float)0.800000, (float)0.831373, 3188 (float)0.862745, (float)0.894118, (float)0.925490, 3189 (float)0.956863, (float)0.988235, (float)1.019608, 3190 (float)1.050980, (float)1.082353, (float)1.113725, 3191 (float)1.145098, (float)1.176471, (float)1.207843, 3192 (float)1.239216, (float)1.270588, (float)1.301961, 3193 (float)1.333333, (float)1.364706, (float)1.396078, 3194 (float)1.427451, (float)1.458824, (float)1.490196, 3195 (float)1.521569, (float)1.552941, (float)1.584314, 3196 (float)1.615686, (float)1.647059, (float)1.678431, 3197 (float)1.709804, (float)1.741176, (float)1.772549, 3198 (float)1.803922, (float)1.835294, (float)1.866667, 3199 (float)1.898039, (float)1.929412, (float)1.960784, 3200 (float)1.992157, (float)2.023529, (float)2.054902, 3201 (float)2.086275, (float)2.117647, (float)2.149020, 3202 (float)2.180392, (float)2.211765, (float)2.243137, 3203 (float)2.274510, (float)2.305882, (float)2.337255, 3204 (float)2.368627, (float)2.400000, (float)2.431373, 3205 (float)2.462745, (float)2.494118, (float)2.525490, 3206 (float)2.556863, (float)2.588235, (float)2.619608, 3207 (float)2.650980, (float)2.682353, (float)2.713725, 3208 (float)2.745098, (float)2.776471, (float)2.807843, 3209 (float)2.839216, (float)2.870588, (float)2.901961, 3210 (float)2.933333, (float)2.964706, (float)2.996078, 3211 (float)3.027451, (float)3.058824, (float)3.090196, 3212 (float)3.121569, (float)3.152941, (float)3.184314, 3213 (float)3.215686, (float)3.247059, (float)3.278431, 3214 (float)3.309804, (float)3.341176, (float)3.372549, 3215 (float)3.403922, (float)3.435294, (float)3.466667, 3216 (float)3.498039, (float)3.529412, (float)3.560784, 3217 (float)3.592157, (float)3.623529, (float)3.654902, 3218 (float)3.686275, (float)3.717647, (float)3.749020, 3219 (float)3.780392, (float)3.811765, (float)3.843137, 3220 (float)3.874510, (float)3.905882, (float)3.937255, 3221 (float)3.968627, (float)4.000000 3222 }; 3224 Andersen et. al. Experimental - Expires Jan. 1st, 2003 62 3225 float state_frgq[64] = { 3226 (float)1.00000, (float)1.07140, (float)1.14047, 3227 (float)1.20708, (float)1.27736, (float)1.35160, 3228 (float)1.42927, (float)1.50075, (float)1.56908, 3229 (float)1.63954, (float)1.70702, (float)1.78155, 3230 (float)1.84076, (float)1.90159, (float)1.95667, 3231 (float)2.00676, (float)2.05545, (float)2.10280, 3232 (float)2.14281, (float)2.18361, (float)2.21796, 3233 (float)2.25716, (float)2.29575, (float)2.33295, 3234 (float)2.36925, (float)2.40278, (float)2.43509, 3235 (float)2.46861, (float)2.50339, (float)2.53928, 3236 (float)2.57295, (float)2.60511, (float)2.63639, 3237 (float)2.66896, (float)2.69880, (float)2.72910, 3238 (float)2.75978, (float)2.78981, (float)2.81865, 3239 (float)2.84806, (float)2.87744, (float)2.90690, 3240 (float)2.93664, (float)2.96778, (float)3.00013, 3241 (float)3.03335, (float)3.06634, (float)3.10425, 3242 (float)3.14152, (float)3.18303, (float)3.22295, 3243 (float)3.26544, (float)3.30843, (float)3.35083, 3244 (float)3.39527, (float)3.44305, (float)3.49076, 3245 (float)3.54275, (float)3.60404, (float)3.66598, 3246 (float)3.74116, (float)3.83076, (float)3.93884, 3247 (float)4.10181}; 3249 /* CB tables */ 3251 int stMemL=83; 3252 int memLf[NASUB]={83,147,147,147}; 3254 /* expansion filters */ 3256 float cbfilters[NCBFILTERS][CBFILTLEN]={ 3257 {(float)0.007916, (float)-0.004987, (float)-0.009541, 3258 (float)-0.005369, (float)0.029305, (float)-0.010403, 3259 (float)-0.004300, (float)0.068878, (float)-0.109181, 3260 (float)0.989641, (float)0.451250, (float)-0.175949, 3261 (float)0.109738, (float)-0.079871, (float)0.066588, 3262 (float)-0.051698, (float)0.023170, (float)-0.006126, 3263 (float)0.004376, (float)0.000656}, 3264 {(float)0.006767, (float)0.003344, (float)-0.007619, 3265 (float)0.007441, (float)0.001723, (float)0.032700, 3266 (float)-0.033607, (float)0.083848, (float)-0.144158, 3267 (float)0.713497, (float)0.806185, (float)-0.184297, 3268 (float)0.108923, (float)-0.034185, (float)0.030117, 3269 (float)-0.003972, (float)-0.016221, (float)0.029459, 3270 (float)-0.010498, (float)0.002580}, 3271 {(float)-0.003295, (float)0.022873, (float)-0.007255, 3272 (float)0.024805, (float)-0.038453, (float)0.052848, 3273 (float)-0.076813, (float)0.072530, (float)-0.146709, 3274 (float)0.420806, (float)1.056026, (float)-0.099396, 3275 (float)0.048542, (float)-0.035595, (float)-0.001294, 3276 (float)0.023138, (float)-0.018206, (float)0.003883, 3277 (float)-0.008020, (float)0.015925} 3279 Andersen et. al. Experimental - Expires Jan. 1st, 2003 63 3280 }; 3282 /* Gain Quantization */ 3284 float gain_sq3[8]={ 3285 (float)-1.0,(float)-0.66,(float)-0.33,(float)0.00, 3286 (float)0.25,(float)0.50,(float)0.75,(float)1.00}; 3288 float gain_sq4[16]={ 3289 (float)0.0, (float)(1.0/15.0), (float)(2.0/15.0), 3290 (float)(3.0/15.0), (float)(4.0/15.0), (float)(5.0/15.0), 3291 (float)(6.0/15.0), (float)(7.0/15.0), (float)(8.0/15.0), 3292 (float)(9.0/15.0), (float)(10.0/15.0), (float)(11.0/15.0), 3293 (float)(12.0/15.0), (float)(13.0/15.0), (float)(14.0/15.0), 3294 (float)1.0}; 3296 /* Enhancer */ 3297 float polyphaser[ENH_UPS0*(2*ENH_FL0+1)]={ 3298 0.000000, 0.000000, 0.000000, 1.000000, 3299 0.000000, 0.000000, 0.000000, 3300 (float)0.008301,(float)-0.039711, (float)0.136423, 3301 (float)0.949948, (float)-0.065108, (float)0.010896, 3302 (float)-0.008301, 3303 (float)0.015658, (float)-0.076946, (float)0.288367, 3304 (float)0.862072, (float)-0.106553, (float)0.018756, 3305 (float)-0.015658, 3306 (float)0.021087, (float)-0.106767, (float)0.446681, 3307 (float)0.743165, (float)-0.125492, (float)0.023074, 3308 (float)-0.021087, 3309 (float)0.023757, (float)-0.124387, (float)0.601572, 3310 (float)0.601572, (float)-0.124387, (float)0.023757, 3311 (float)-0.023757, 3312 (float)0.023074, (float)-0.125492, (float)0.743165, 3313 (float)0.446681, (float)-0.106767, (float)0.021087, 3314 (float)-0.023074, 3315 (float)0.018756, (float)-0.106553, (float)0.862072, 3316 (float)0.288367, (float)-0.076946, (float)0.015658, 3317 (float)-0.018756, 3318 (float)0.010896, (float)-0.065108, (float)0.949948, 3319 (float)0.136423, (float)-0.039711, (float)0.008301, 3320 (float)-0.010896}; 3322 float enh_plocs[ENH_NBLOCKS_TOT] = { 40.0, 120.0, 200.0, 280.0, 3323 360.0, 440.0, 520.0, 600.0}; 3325 /* LPC analysis and quantization */ 3327 int dim_ml[LSF_NSPLIT] = {4, 3, 3}; 3328 int size_ml[LSF_NSPLIT] = {512, 512, 1024}; 3330 int dim_p[LSF_NSPLIT] = {3, 3, 4}; 3331 int size_p[LSF_NSPLIT] = {256, 256, 256}; 3333 Andersen et. al. Experimental - Expires Jan. 1st, 2003 64 3334 float lsfmean[FILTERORDER] = { 3335 (float)0.281784, (float)0.445744, (float)0.663369, 3336 (float)0.962542, (float)1.251890, (float)1.533030, 3337 (float)1.850570, (float)2.137790, (float)2.481480, 3338 (float)2.777340 3339 }; 3341 float lsfpred[FILTERORDER] = { 3342 (float)0.372699, (float)0.502681, (float)0.579187, 3343 (float)0.770586, (float)0.700041, (float)0.675133, 3344 (float)0.767325, (float)0.703143, (float)0.647042, 3345 (float)0.672195 3346 }; 3348 float coef[6] = {(float)(1.0/2.0), (float)1.0, (float)(2.0/3.0), 3349 (float)(1.0/3.0), (float)0.0, (float)0.0}; 3351 /* Hanning LPC window */ 3352 float lpc_win[BLOCKL]={ 3353 (float)0.000170, (float)0.000680, (float)0.001529, 3354 (float)0.002716, (float)0.004242, 3355 (float)0.006105, (float)0.008303, (float)0.010836, 3356 (float)0.013701, (float)0.016897, 3357 (float)0.020421, (float)0.024271, (float)0.028444, 3358 (float)0.032938, (float)0.037749, 3359 (float)0.042874, (float)0.048311, (float)0.054054, 3360 (float)0.060100, (float)0.066445, 3361 (float)0.073085, (float)0.080015, (float)0.087231, 3362 (float)0.094727, (float)0.102498, 3363 (float)0.110540, (float)0.118846, (float)0.127412, 3364 (float)0.136230, (float)0.145296, 3365 (float)0.154603, (float)0.164145, (float)0.173915, 3366 (float)0.183907, (float)0.194113, 3367 (float)0.204528, (float)0.215143, (float)0.225952, 3368 (float)0.236947, (float)0.248121, 3369 (float)0.259466, (float)0.270975, (float)0.282639, 3370 (float)0.294451, (float)0.306402, 3371 (float)0.318486, (float)0.330692, (float)0.343014, 3372 (float)0.355443, (float)0.367969, 3373 (float)0.380586, (float)0.393283, (float)0.406053, 3374 (float)0.418887, (float)0.431776, 3375 (float)0.444712, (float)0.457685, (float)0.470687, 3376 (float)0.483708, (float)0.496741, 3377 (float)0.509776, (float)0.522804, (float)0.535817, 3378 (float)0.548806, (float)0.561761, 3379 (float)0.574675, (float)0.587537, (float)0.600340, 3380 (float)0.613075, (float)0.625733, 3381 (float)0.638306, (float)0.650785, (float)0.663161, 3382 (float)0.675426, (float)0.687572, 3383 (float)0.699590, (float)0.711473, (float)0.723212, 3384 (float)0.734800, (float)0.746228, 3385 (float)0.757488, (float)0.768573, (float)0.779476, 3386 (float)0.790189, (float)0.800705, 3388 Andersen et. al. Experimental - Expires Jan. 1st, 2003 65 3389 (float)0.811016, (float)0.821116, (float)0.830998, 3390 (float)0.840655, (float)0.850080, 3391 (float)0.859267, (float)0.868210, (float)0.876903, 3392 (float)0.885340, (float)0.893514, 3393 (float)0.901422, (float)0.909056, (float)0.916413, 3394 (float)0.923486, (float)0.930271, 3395 (float)0.936765, (float)0.942961, (float)0.948856, 3396 (float)0.954446, (float)0.959727, 3397 (float)0.964696, (float)0.969349, (float)0.973683, 3398 (float)0.977695, (float)0.981382, 3399 (float)0.984742, (float)0.987773, (float)0.990472, 3400 (float)0.992838, (float)0.994868, 3401 (float)0.996563, (float)0.997920, (float)0.998938, 3402 (float)0.999618, (float)0.999958, 3403 (float)0.999958, (float)0.999618, (float)0.998938, 3404 (float)0.997920, (float)0.996563, 3405 (float)0.994868, (float)0.992838, (float)0.990472, 3406 (float)0.987773, (float)0.984742, 3407 (float)0.981382, (float)0.977695, (float)0.973683, 3408 (float)0.969349, (float)0.964696, 3409 (float)0.959727, (float)0.954446, (float)0.948856, 3410 (float)0.942961, (float)0.936765, 3411 (float)0.930271, (float)0.923486, (float)0.916413, 3412 (float)0.909056, (float)0.901422, 3413 (float)0.893514, (float)0.885340, (float)0.876903, 3414 (float)0.868210, (float)0.859267, 3415 (float)0.850080, (float)0.840655, (float)0.830998, 3416 (float)0.821116, (float)0.811016, 3417 (float)0.800705, (float)0.790189, (float)0.779476, 3418 (float)0.768573, (float)0.757488, 3419 (float)0.746228, (float)0.734800, (float)0.723212, 3420 (float)0.711473, (float)0.699590, 3421 (float)0.687572, (float)0.675426, (float)0.663161, 3422 (float)0.650785, (float)0.638306, 3423 (float)0.625733, (float)0.613075, (float)0.600340, 3424 (float)0.587537, (float)0.574675, 3425 (float)0.561761, (float)0.548806, (float)0.535817, 3426 (float)0.522804, (float)0.509776, 3427 (float)0.496741, (float)0.483708, (float)0.470687, 3428 (float)0.457685, (float)0.444712, 3429 (float)0.431776, (float)0.418887, (float)0.406053, 3430 (float)0.393283, (float)0.380586, 3431 (float)0.367969, (float)0.355443, (float)0.343014, 3432 (float)0.330692, (float)0.318486, 3433 (float)0.306402, (float)0.294451, (float)0.282639, 3434 (float)0.270975, (float)0.259466, 3435 (float)0.248121, (float)0.236947, (float)0.225952, 3436 (float)0.215143, (float)0.204528, 3437 (float)0.194113, (float)0.183907, (float)0.173915, 3438 (float)0.164145, (float)0.154603, 3439 (float)0.145296, (float)0.136230, (float)0.127412, 3440 (float)0.118846, (float)0.110540, 3441 (float)0.102498, (float)0.094727, (float)0.087231, 3443 Andersen et. al. Experimental - Expires Jan. 1st, 2003 66 3444 (float)0.080015, (float)0.073085, 3445 (float)0.066445, (float)0.060100, (float)0.054054, 3446 (float)0.048311, (float)0.042874, 3447 (float)0.037749, (float)0.032938, (float)0.028444, 3448 (float)0.024271, (float)0.020421, 3449 (float)0.016897, (float)0.013701, (float)0.010836, 3450 (float)0.008303, (float)0.006105, 3451 (float)0.004242, (float)0.002716, (float)0.001529, 3452 (float)0.000680, (float)0.000170}; 3454 /* Asymmetric LPC window */ 3455 float lpc_asymwin[BLOCKL]={ 3456 (float)0.000051, (float)0.000203, (float)0.000457, 3457 (float)0.000812, (float)0.001268, 3458 (float)0.001826, (float)0.002485, (float)0.003244, 3459 (float)0.004105, (float)0.005066, 3460 (float)0.006128, (float)0.007290, (float)0.008552, 3461 (float)0.009914, (float)0.011375, 3462 (float)0.012935, (float)0.014595, (float)0.016353, 3463 (float)0.018209, (float)0.020162, 3464 (float)0.022214, (float)0.024362, (float)0.026607, 3465 (float)0.028947, (float)0.031384, 3466 (float)0.033915, (float)0.036542, (float)0.039262, 3467 (float)0.042076, (float)0.044982, 3468 (float)0.047982, (float)0.051072, (float)0.054254, 3469 (float)0.057527, (float)0.060889, 3470 (float)0.064341, (float)0.067881, (float)0.071508, 3471 (float)0.075223, (float)0.079023, 3472 (float)0.082910, (float)0.086881, (float)0.090935, 3473 (float)0.095073, (float)0.099293, 3474 (float)0.103595, (float)0.107976, (float)0.112438, 3475 (float)0.116978, (float)0.121596, 3476 (float)0.126290, (float)0.131061, (float)0.135906, 3477 (float)0.140825, (float)0.145818, 3478 (float)0.150882, (float)0.156017, (float)0.161221, 3479 (float)0.166495, (float)0.171836, 3480 (float)0.177244, (float)0.182717, (float)0.188255, 3481 (float)0.193856, (float)0.199519, 3482 (float)0.205244, (float)0.211028, (float)0.216870, 3483 (float)0.222770, (float)0.228727, 3484 (float)0.234738, (float)0.240804, (float)0.246922, 3485 (float)0.253091, (float)0.259310, 3486 (float)0.265579, (float)0.271895, (float)0.278257, 3487 (float)0.284664, (float)0.291115, 3488 (float)0.297608, (float)0.304143, (float)0.310717, 3489 (float)0.317330, (float)0.323979, 3490 (float)0.330665, (float)0.337384, (float)0.344137, 3491 (float)0.350922, (float)0.357736, 3492 (float)0.364580, (float)0.371451, (float)0.378348, 3493 (float)0.385270, (float)0.392215, 3494 (float)0.399182, (float)0.406169, (float)0.413176, 3495 (float)0.420200, (float)0.427240, 3496 (float)0.434296, (float)0.441364, (float)0.448444, 3498 Andersen et. al. Experimental - Expires Jan. 1st, 2003 67 3499 (float)0.455535, (float)0.462635, 3500 (float)0.469742, (float)0.476856, (float)0.483974, 3501 (float)0.491096, (float)0.498219, 3502 (float)0.505343, (float)0.512465, (float)0.519585, 3503 (float)0.526702, (float)0.533812, 3504 (float)0.540916, (float)0.548012, (float)0.555097, 3505 (float)0.562172, (float)0.569234, 3506 (float)0.576282, (float)0.583314, (float)0.590330, 3507 (float)0.597327, (float)0.604304, 3508 (float)0.611260, (float)0.618194, (float)0.625104, 3509 (float)0.631988, (float)0.638846, 3510 (float)0.645675, (float)0.652475, (float)0.659243, 3511 (float)0.665980, (float)0.672683, 3512 (float)0.679350, (float)0.685982, (float)0.692575, 3513 (float)0.699130, (float)0.705644, 3514 (float)0.712116, (float)0.718545, (float)0.724930, 3515 (float)0.731269, (float)0.737561, 3516 (float)0.743805, (float)0.750000, (float)0.756144, 3517 (float)0.762236, (float)0.768274, 3518 (float)0.774258, (float)0.780187, (float)0.786058, 3519 (float)0.791872, (float)0.797626, 3520 (float)0.803320, (float)0.808952, (float)0.814522, 3521 (float)0.820028, (float)0.825468, 3522 (float)0.830843, (float)0.836150, (float)0.841390, 3523 (float)0.846560, (float)0.851659, 3524 (float)0.856688, (float)0.861644, (float)0.866526, 3525 (float)0.871334, (float)0.876067, 3526 (float)0.880723, (float)0.885302, (float)0.889803, 3527 (float)0.894225, (float)0.898566, 3528 (float)0.902827, (float)0.907006, (float)0.911102, 3529 (float)0.915115, (float)0.919044, 3530 (float)0.922888, (float)0.926645, (float)0.930317, 3531 (float)0.933900, (float)0.937396, 3532 (float)0.940803, (float)0.944121, (float)0.947348, 3533 (float)0.950484, (float)0.953530, 3534 (float)0.956483, (float)0.959343, (float)0.962110, 3535 (float)0.964783, (float)0.967362, 3536 (float)0.969846, (float)0.972235, (float)0.974528, 3537 (float)0.976724, (float)0.978824, 3538 (float)0.980827, (float)0.982732, (float)0.984539, 3539 (float)0.986247, (float)0.987857, 3540 (float)0.989368, (float)0.990780, (float)0.992091, 3541 (float)0.993304, (float)0.994415, 3542 (float)0.995427, (float)0.996338, (float)0.997148, 3543 (float)0.997857, (float)0.998466, 3544 (float)0.998973, (float)0.999378, (float)0.999683, 3545 (float)0.999886, (float)0.999987, 3546 (float)1.000000, (float)0.996917, (float)0.987688, 3547 (float)0.972370, (float)0.951057, 3548 (float)0.923880, (float)0.891007, (float)0.852640, 3549 (float)0.809017, (float)0.760406, 3550 (float)0.707107, (float)0.649448, (float)0.587785, 3551 (float)0.522499, (float)0.453990, 3553 Andersen et. al. Experimental - Expires Jan. 1st, 2003 68 3554 (float)0.382683, (float)0.309017, (float)0.233445, 3555 (float)0.156434, (float)0.078459}; 3557 /* Lag window for LPC */ 3558 float lpc_lagwin[FILTERORDER + 1]={ 3559 (float)1.000100, (float)0.998890, (float)0.995569, 3560 (float)0.990057, (float)0.982392, 3561 (float)0.972623, (float)0.960816, (float)0.947047, 3562 (float)0.931405, (float)0.913989, (float)0.894909}; 3564 /* LSF quantization*/ 3565 float cb_ml[6656 /* 4*512+3*512+3*1024 */] = { 3566 (float)0.206933, (float)0.455663, (float)0.955837, (float)1.299660, 3567 (float)0.202792, (float)0.356753, (float)0.743137, (float)1.214410, 3568 (float)0.355617, (float)0.598165, (float)0.806726, (float)1.059390, 3569 (float)0.418513, (float)0.647836, (float)0.919659, (float)1.135480, 3570 (float)0.205102, (float)0.426497, (float)0.662197, (float)0.883389, 3571 (float)0.250592, (float)0.390764, (float)0.685526, (float)1.024520, 3572 (float)0.196187, (float)0.333121, (float)0.637290, (float)1.127270, 3573 (float)0.322202, (float)0.479293, (float)0.695495, (float)0.893460, 3574 (float)0.291288, (float)0.431841, (float)0.578687, (float)0.717291, 3575 (float)0.212346, (float)0.345768, (float)0.522280, (float)0.826818, 3576 (float)0.251688, (float)0.409343, (float)0.565408, (float)0.790632, 3577 (float)0.254165, (float)0.377965, (float)0.510518, (float)0.627703, 3578 (float)0.249504, (float)0.389814, (float)0.539574, (float)0.743256, 3579 (float)0.301781, (float)0.438247, (float)0.620486, (float)0.790321, 3580 (float)0.240948, (float)0.428665, (float)0.605272, (float)0.825745, 3581 (float)0.397944, (float)0.556508, (float)0.715519, (float)0.971234, 3582 (float)0.190679, (float)0.308678, (float)0.571321, (float)1.216330, 3583 (float)0.211559, (float)0.340887, (float)0.674030, (float)1.277110, 3584 (float)0.401099, (float)0.701593, (float)1.160500, (float)1.418240, 3585 (float)0.276824, (float)0.404371, (float)0.555723, (float)0.900151, 3586 (float)0.150359, (float)0.248988, (float)0.411909, (float)0.758344, 3587 (float)0.249751, (float)0.375904, (float)0.552816, (float)0.970742, 3588 (float)0.430819, (float)0.628004, (float)0.782706, (float)0.957149, 3589 (float)0.199637, (float)0.331259, (float)0.556478, (float)0.999661, 3590 (float)0.255622, (float)0.387289, (float)0.628543, (float)1.019650, 3591 (float)0.284787, (float)0.422220, (float)0.656567, (float)0.920121, 3592 (float)0.236115, (float)0.357059, (float)0.529438, (float)0.954573, 3593 (float)0.196231, (float)0.315403, (float)0.500168, (float)0.963807, 3594 (float)0.325583, (float)0.475101, (float)0.620301, (float)0.880271, 3595 (float)0.283059, (float)0.418332, (float)0.665176, (float)0.957521, 3596 (float)0.327780, (float)0.540742, (float)0.880357, (float)1.227730, 3597 (float)0.433262, (float)0.614190, (float)0.753060, (float)0.900360, 3598 (float)0.376967, (float)0.525007, (float)0.691743, (float)0.999182, 3599 (float)0.371164, (float)0.638640, (float)0.896293, (float)1.167020, 3600 (float)0.359366, (float)0.549215, (float)0.798128, (float)1.032450, 3601 (float)0.250956, (float)0.392867, (float)0.660014, (float)0.966218, 3602 (float)0.262539, (float)0.390030, (float)0.599576, (float)0.976636, 3603 (float)0.308276, (float)0.595959, (float)0.875203, (float)1.249180, 3604 (float)0.163708, (float)0.284216, (float)0.499091, (float)0.732796, 3605 (float)0.263808, (float)0.405520, (float)0.637971, (float)0.820948, 3606 (float)0.241168, (float)0.380081, (float)0.609850, (float)0.798614, 3608 Andersen et. al. Experimental - Expires Jan. 1st, 2003 69 3609 (float)0.201620, (float)0.346418, (float)0.561644, (float)0.855359, 3610 (float)0.222618, (float)0.342412, (float)0.543624, (float)1.039120, 3611 (float)0.284347, (float)0.648234, (float)0.920407, (float)1.126410, 3612 (float)0.309242, (float)0.498135, (float)0.644306, (float)0.792955, 3613 (float)0.308826, (float)0.488657, (float)0.631147, (float)0.832511, 3614 (float)0.229581, (float)0.364052, (float)0.582565, (float)0.843034, 3615 (float)0.306376, (float)0.443014, (float)0.660325, (float)0.990600, 3616 (float)0.427497, (float)0.643168, (float)0.922725, (float)1.241580, 3617 (float)0.298044, (float)0.430277, (float)0.607738, (float)0.750928, 3618 (float)0.332320, (float)0.561192, (float)0.744724, (float)1.053190, 3619 (float)0.307157, (float)0.443988, (float)0.596517, (float)0.932760, 3620 (float)0.277528, (float)0.405929, (float)0.595628, (float)1.024960, 3621 (float)0.359816, (float)0.581988, (float)0.927519, (float)1.217100, 3622 (float)0.284677, (float)0.584359, (float)0.977913, (float)1.380510, 3623 (float)0.191169, (float)0.308496, (float)0.512356, (float)1.031300, 3624 (float)0.203906, (float)0.330416, (float)0.460630, (float)0.693662, 3625 (float)0.340520, (float)0.483882, (float)0.618109, (float)0.846814, 3626 (float)0.280481, (float)0.408779, (float)0.618951, (float)1.077530, 3627 (float)0.303040, (float)0.481995, (float)0.783944, (float)1.063320, 3628 (float)0.342708, (float)0.481457, (float)0.685364, (float)0.938355, 3629 (float)0.340202, (float)0.590310, (float)0.838427, (float)1.168920, 3630 (float)0.310902, (float)0.448606, (float)0.667931, (float)0.890985, 3631 (float)0.262601, (float)0.562894, (float)1.031910, (float)1.307970, 3632 (float)0.239203, (float)0.377848, (float)0.623432, (float)0.932536, 3633 (float)0.253330, (float)0.448197, (float)0.627795, (float)0.789560, 3634 (float)0.327799, (float)0.467668, (float)0.616599, (float)0.757124, 3635 (float)0.201911, (float)0.449148, (float)0.731607, (float)1.037540, 3636 (float)0.379221, (float)0.537097, (float)0.677468, (float)0.947819, 3637 (float)0.263989, (float)0.457763, (float)0.680018, (float)0.972581, 3638 (float)0.217480, (float)0.433561, (float)0.882985, (float)1.215600, 3639 (float)0.238562, (float)0.374681, (float)0.636551, (float)1.056640, 3640 (float)0.441700, (float)0.645610, (float)0.862572, (float)1.157670, 3641 (float)0.178761, (float)0.297639, (float)0.439222, (float)0.650521, 3642 (float)0.262891, (float)0.401952, (float)0.620997, (float)0.896739, 3643 (float)0.256420, (float)0.473430, (float)0.744731, (float)1.049380, 3644 (float)0.302715, (float)0.458463, (float)0.604989, (float)0.754193, 3645 (float)0.187032, (float)0.323747, (float)0.538013, (float)0.783889, 3646 (float)0.298480, (float)0.432778, (float)0.624635, (float)0.957047, 3647 (float)0.404371, (float)0.570355, (float)0.708369, (float)0.848144, 3648 (float)0.224390, (float)0.557947, (float)0.848633, (float)1.035020, 3649 (float)0.254468, (float)0.379288, (float)0.504763, (float)0.676969, 3650 (float)0.405076, (float)0.572401, (float)0.767510, (float)1.079840, 3651 (float)0.139747, (float)0.235839, (float)0.428417, (float)0.849254, 3652 (float)0.353466, (float)0.586264, (float)0.982179, (float)1.326280, 3653 (float)0.162889, (float)0.284958, (float)0.529735, (float)0.780525, 3654 (float)0.225858, (float)0.359835, (float)0.553006, (float)0.917149, 3655 (float)0.276174, (float)0.408405, (float)0.595794, (float)0.807894, 3656 (float)0.213655, (float)0.459370, (float)0.781106, (float)0.984319, 3657 (float)0.341577, (float)0.505690, (float)0.737120, (float)1.010750, 3658 (float)0.230815, (float)0.349761, (float)0.499635, (float)0.854998, 3659 (float)0.375468, (float)0.586106, (float)0.892330, (float)1.265600, 3660 (float)0.340917, (float)0.541775, (float)0.868464, (float)1.178640, 3661 (float)0.214251, (float)0.401698, (float)0.751275, (float)0.945303, 3663 Andersen et. al. Experimental - Expires Jan. 1st, 2003 70 3664 (float)0.318297, (float)0.461550, (float)0.624405, (float)0.965207, 3665 (float)0.330411, (float)0.608841, (float)0.885787, (float)1.195930, 3666 (float)0.420904, (float)0.679290, (float)1.061520, (float)1.312820, 3667 (float)0.364143, (float)0.502151, (float)0.687144, (float)0.880715, 3668 (float)0.222131, (float)0.489341, (float)1.025960, (float)1.407590, 3669 (float)0.216172, (float)0.395467, (float)0.618222, (float)0.886179, 3670 (float)0.156797, (float)0.268405, (float)0.494347, (float)1.025800, 3671 (float)0.290165, (float)0.540947, (float)0.754936, (float)1.103130, 3672 (float)0.336982, (float)0.525151, (float)0.671778, (float)0.850908, 3673 (float)0.389502, (float)0.623596, (float)0.868492, (float)1.044360, 3674 (float)0.171629, (float)0.321360, (float)0.651249, (float)1.037040, 3675 (float)0.240856, (float)0.429186, (float)0.714678, (float)0.986568, 3676 (float)0.213356, (float)0.339740, (float)0.536275, (float)0.944777, 3677 (float)0.347269, (float)0.577713, (float)0.870800, (float)1.082050, 3678 (float)0.358390, (float)0.640341, (float)0.912859, (float)1.229890, 3679 (float)0.326776, (float)0.463485, (float)0.636537, (float)0.836388, 3680 (float)0.239327, (float)0.378665, (float)0.730313, (float)1.251510, 3681 (float)0.303163, (float)0.441023, (float)0.567133, (float)0.693247, 3682 (float)0.234711, (float)0.353461, (float)0.484919, (float)0.607039, 3683 (float)0.219006, (float)0.365181, (float)0.717377, (float)1.126620, 3684 (float)0.312014, (float)0.451185, (float)0.591014, (float)0.727283, 3685 (float)0.303521, (float)0.433622, (float)0.615099, (float)1.002870, 3686 (float)0.196287, (float)0.325632, (float)0.636523, (float)1.197740, 3687 (float)0.189011, (float)0.420425, (float)0.685496, (float)0.963788, 3688 (float)0.365341, (float)0.509911, (float)0.672201, (float)0.837834, 3689 (float)0.333245, (float)0.556044, (float)0.948560, (float)1.271730, 3690 (float)0.286279, (float)0.416961, (float)0.643587, (float)1.033660, 3691 (float)0.226492, (float)0.378806, (float)0.697384, (float)0.965845, 3692 (float)0.389593, (float)0.535020, (float)0.662239, (float)0.808759, 3693 (float)0.242533, (float)0.416135, (float)0.804135, (float)1.112300, 3694 (float)0.193007, (float)0.356747, (float)0.659253, (float)0.849928, 3695 (float)0.243324, (float)0.608667, (float)1.121790, (float)1.420140, 3696 (float)0.197100, (float)0.327295, (float)0.503280, (float)0.809764, 3697 (float)0.369361, (float)0.515280, (float)0.701348, (float)1.050250, 3698 (float)0.219162, (float)0.400224, (float)0.855218, (float)1.359300, 3699 (float)0.207632, (float)0.342219, (float)0.594206, (float)1.041440, 3700 (float)0.286057, (float)0.520728, (float)0.739637, (float)1.033800, 3701 (float)0.255809, (float)0.380159, (float)0.544559, (float)0.922066, 3702 (float)0.214194, (float)0.334422, (float)0.585562, (float)1.165210, 3703 (float)0.265322, (float)0.500274, (float)0.712655, (float)0.913819, 3704 (float)0.347389, (float)0.601879, (float)1.012220, (float)1.241140, 3705 (float)0.326150, (float)0.512333, (float)0.671930, (float)0.986512, 3706 (float)0.231284, (float)0.368866, (float)0.571408, (float)0.786042, 3707 (float)0.370262, (float)0.618920, (float)0.957463, (float)1.179380, 3708 (float)0.174556, (float)0.296531, (float)0.539447, (float)0.961525, 3709 (float)0.330525, (float)0.475142, (float)0.650717, (float)0.903287, 3710 (float)0.398920, (float)0.728732, (float)1.128350, (float)1.338470, 3711 (float)0.210286, (float)0.394299, (float)0.587481, (float)0.816856, 3712 (float)0.268455, (float)0.426244, (float)0.690094, (float)0.885235, 3713 (float)0.343199, (float)0.494280, (float)0.653055, (float)0.821172, 3714 (float)0.340848, (float)0.613051, (float)0.804317, (float)0.971781, 3715 (float)0.365841, (float)0.510391, (float)0.656847, (float)0.918768, 3716 (float)0.182871, (float)0.320719, (float)0.556960, (float)0.830897, 3718 Andersen et. al. Experimental - Expires Jan. 1st, 2003 71 3719 (float)0.192157, (float)0.323892, (float)0.593340, (float)1.090270, 3720 (float)0.316047, (float)0.461775, (float)0.666747, (float)1.102020, 3721 (float)0.274769, (float)0.455781, (float)0.621990, (float)0.945367, 3722 (float)0.232954, (float)0.365772, (float)0.518524, (float)0.711962, 3723 (float)0.430497, (float)0.844289, (float)1.175420, (float)1.395880, 3724 (float)0.153803, (float)0.257842, (float)0.418431, (float)0.673880, 3725 (float)0.248894, (float)0.539098, (float)0.815990, (float)1.152300, 3726 (float)0.207032, (float)0.322973, (float)0.464295, (float)0.809865, 3727 (float)0.324109, (float)0.489619, (float)0.742501, (float)1.196440, 3728 (float)0.394760, (float)0.550367, (float)0.704703, (float)0.881266, 3729 (float)0.335755, (float)0.618882, (float)0.863661, (float)1.127360, 3730 (float)0.180492, (float)0.526135, (float)0.866043, (float)1.169740, 3731 (float)0.298658, (float)0.429803, (float)0.570495, (float)0.857534, 3732 (float)0.363553, (float)0.507554, (float)0.635745, (float)0.841498, 3733 (float)0.235157, (float)0.439663, (float)0.651361, (float)0.935221, 3734 (float)0.291226, (float)0.491461, (float)0.659996, (float)0.918398, 3735 (float)0.236740, (float)0.395367, (float)0.674901, (float)0.855046, 3736 (float)0.287777, (float)0.498321, (float)0.788467, (float)1.147270, 3737 (float)0.279308, (float)0.493396, (float)0.782574, (float)0.999829, 3738 (float)0.168626, (float)0.296703, (float)0.549084, (float)0.872414, 3739 (float)0.220117, (float)0.358472, (float)0.676794, (float)1.171870, 3740 (float)0.236842, (float)0.434423, (float)0.645094, (float)0.994987, 3741 (float)0.235011, (float)0.380783, (float)0.534380, (float)0.779898, 3742 (float)0.413243, (float)0.592852, (float)0.754238, (float)0.991629, 3743 (float)0.357762, (float)0.498955, (float)0.624656, (float)0.757438, 3744 (float)0.303722, (float)0.549172, (float)0.823579, (float)1.125640, 3745 (float)0.278814, (float)0.410877, (float)0.681239, (float)1.000850, 3746 (float)0.235431, (float)0.409220, (float)0.585171, (float)0.865259, 3747 (float)0.356276, (float)0.548544, (float)0.815733, (float)1.081120, 3748 (float)0.459003, (float)0.735247, (float)0.987476, (float)1.183130, 3749 (float)0.279634, (float)0.412160, (float)0.642378, (float)1.165470, 3750 (float)0.369887, (float)0.545649, (float)0.689093, (float)0.826306, 3751 (float)0.292721, (float)0.487894, (float)0.684772, (float)1.040450, 3752 (float)0.235243, (float)0.369773, (float)0.591741, (float)1.028860, 3753 (float)0.169572, (float)0.351648, (float)0.731368, (float)1.002940, 3754 (float)0.214564, (float)0.382838, (float)0.705176, (float)0.899864, 3755 (float)0.203687, (float)0.357303, (float)0.601798, (float)0.914289, 3756 (float)0.296053, (float)0.523345, (float)0.700954, (float)0.861043, 3757 (float)0.274250, (float)0.438848, (float)0.590019, (float)0.866812, 3758 (float)0.274446, (float)0.402620, (float)0.538540, (float)0.773852, 3759 (float)0.260588, (float)0.391095, (float)0.545049, (float)0.813018, 3760 (float)0.480416, (float)0.714486, (float)0.918442, (float)1.112870, 3761 (float)0.222831, (float)0.373589, (float)0.658921, (float)0.998617, 3762 (float)0.344190, (float)0.482138, (float)0.642066, (float)0.971454, 3763 (float)0.335713, (float)0.501011, (float)0.645197, (float)0.933129, 3764 (float)0.167494, (float)0.333958, (float)0.712547, (float)1.107550, 3765 (float)0.220369, (float)0.406229, (float)0.614829, (float)0.954064, 3766 (float)0.149118, (float)0.252971, (float)0.454397, (float)0.914931, 3767 (float)0.323658, (float)0.722583, (float)1.170140, (float)1.443540, 3768 (float)0.328686, (float)0.545416, (float)0.791088, (float)0.980105, 3769 (float)0.391514, (float)0.591311, (float)0.820624, (float)1.002620, 3770 (float)0.207910, (float)0.339036, (float)0.515390, (float)0.674919, 3771 (float)0.179169, (float)0.302505, (float)0.487262, (float)0.778221, 3773 Andersen et. al. Experimental - Expires Jan. 1st, 2003 72 3774 (float)0.222055, (float)0.451269, (float)0.758407, (float)1.206270, 3775 (float)0.255333, (float)0.388189, (float)0.628263, (float)1.113140, 3776 (float)0.367870, (float)0.519560, (float)0.747148, (float)1.063370, 3777 (float)0.217900, (float)0.337936, (float)0.521737, (float)0.990719, 3778 (float)0.210495, (float)0.400579, (float)0.642128, (float)0.820393, 3779 (float)0.334211, (float)0.471753, (float)0.668969, (float)1.055730, 3780 (float)0.250058, (float)0.370644, (float)0.494859, (float)0.749112, 3781 (float)0.320330, (float)0.561230, (float)0.925942, (float)1.182820, 3782 (float)0.198633, (float)0.347785, (float)0.569319, (float)0.807747, 3783 (float)0.249865, (float)0.531859, (float)0.850131, (float)1.210870, 3784 (float)0.277925, (float)0.413295, (float)0.562005, (float)0.696588, 3785 (float)0.335722, (float)0.479799, (float)0.606456, (float)0.733290, 3786 (float)0.396565, (float)0.614120, (float)0.872767, (float)1.118290, 3787 (float)0.206999, (float)0.331911, (float)0.485677, (float)0.630634, 3788 (float)0.254592, (float)0.388101, (float)0.563905, (float)0.709699, 3789 (float)0.254443, (float)0.386146, (float)0.658742, (float)1.212610, 3790 (float)0.239462, (float)0.375070, (float)0.582570, (float)0.953764, 3791 (float)0.197275, (float)0.397554, (float)0.801396, (float)1.154100, 3792 (float)0.211812, (float)0.326665, (float)0.457081, (float)0.587858, 3793 (float)0.315437, (float)0.451907, (float)0.578710, (float)0.805470, 3794 (float)0.209226, (float)0.327713, (float)0.482734, (float)0.861480, 3795 (float)0.197045, (float)0.353566, (float)0.622777, (float)0.806449, 3796 (float)0.247217, (float)0.484871, (float)0.679994, (float)0.866096, 3797 (float)0.328801, (float)0.557117, (float)0.822305, (float)1.228800, 3798 (float)0.280873, (float)0.416483, (float)0.589530, (float)0.891804, 3799 (float)0.367417, (float)0.513164, (float)0.708923, (float)0.923606, 3800 (float)0.426862, (float)0.627360, (float)0.828262, (float)1.094490, 3801 (float)0.421861, (float)0.666309, (float)0.933314, (float)1.194170, 3802 (float)0.228439, (float)0.394585, (float)0.578143, (float)0.913689, 3803 (float)0.267719, (float)0.413802, (float)0.737879, (float)1.053990, 3804 (float)0.331373, (float)0.478375, (float)0.705013, (float)1.142460, 3805 (float)0.233649, (float)0.494393, (float)0.694361, (float)1.045190, 3806 (float)0.197325, (float)0.331154, (float)0.538610, (float)0.904850, 3807 (float)0.276231, (float)0.408872, (float)0.583310, (float)0.731593, 3808 (float)0.197768, (float)0.388368, (float)0.766956, (float)1.075340, 3809 (float)0.372822, (float)0.520313, (float)0.658839, (float)0.875358, 3810 (float)0.228229, (float)0.382444, (float)0.717114, (float)1.064530, 3811 (float)0.208859, (float)0.428062, (float)0.678643, (float)1.027470, 3812 (float)0.270264, (float)0.448117, (float)0.597090, (float)0.793611, 3813 (float)0.213061, (float)0.489593, (float)0.784955, (float)1.149960, 3814 (float)0.342783, (float)0.546397, (float)0.788863, (float)1.112640, 3815 (float)0.224208, (float)0.367683, (float)0.556746, (float)0.737038, 3816 (float)0.279169, (float)0.405289, (float)0.545581, (float)0.849039, 3817 (float)0.228358, (float)0.408701, (float)0.702459, (float)1.183810, 3818 (float)0.211521, (float)0.355323, (float)0.640079, (float)0.954630, 3819 (float)0.341786, (float)0.531844, (float)0.719021, (float)0.970006, 3820 (float)0.246758, (float)0.421869, (float)0.638845, (float)1.059600, 3821 (float)0.324171, (float)0.463447, (float)0.643114, (float)1.015480, 3822 (float)0.244773, (float)0.382437, (float)0.596621, (float)0.750520, 3823 (float)0.417907, (float)0.857541, (float)1.260850, (float)1.524600, 3824 (float)0.189006, (float)0.329748, (float)0.571715, (float)0.936269, 3825 (float)0.356885, (float)0.633695, (float)1.125660, (float)1.466910, 3826 (float)0.453555, (float)0.691535, (float)0.987716, (float)1.261890, 3828 Andersen et. al. Experimental - Expires Jan. 1st, 2003 73 3829 (float)0.200734, (float)0.360249, (float)0.690715, (float)1.040650, 3830 (float)0.213237, (float)0.352028, (float)0.522801, (float)0.773476, 3831 (float)0.344412, (float)0.653943, (float)0.978223, (float)1.323750, 3832 (float)0.324543, (float)0.479443, (float)0.749721, (float)0.938893, 3833 (float)0.203184, (float)0.389597, (float)0.622969, (float)1.019380, 3834 (float)0.289249, (float)0.577998, (float)0.854882, (float)1.176310, 3835 (float)0.182823, (float)0.333322, (float)0.638624, (float)0.910735, 3836 (float)0.260228, (float)0.395189, (float)0.532943, (float)0.702746, 3837 (float)0.282052, (float)0.465408, (float)0.619780, (float)0.889118, 3838 (float)0.272236, (float)0.497232, (float)0.723696, (float)1.114210, 3839 (float)0.270798, (float)0.463554, (float)0.620515, (float)0.837657, 3840 (float)0.228654, (float)0.348950, (float)0.481395, (float)0.786428, 3841 (float)0.244944, (float)0.379241, (float)0.670333, (float)1.299900, 3842 (float)0.290868, (float)0.422739, (float)0.582471, (float)0.924767, 3843 (float)0.243928, (float)0.412803, (float)0.596282, (float)0.993266, 3844 (float)0.441424, (float)0.666813, (float)0.869153, (float)1.061790, 3845 (float)0.215572, (float)0.350030, (float)0.495820, (float)0.736499, 3846 (float)0.322354, (float)0.510465, (float)0.663282, (float)0.880182, 3847 (float)0.171525, (float)0.294439, (float)0.519191, (float)0.828746, 3848 (float)0.387417, (float)0.539294, (float)0.686027, (float)0.903281, 3849 (float)0.273241, (float)0.405943, (float)0.687374, (float)1.245560, 3850 (float)0.309821, (float)0.445707, (float)0.593281, (float)0.888831, 3851 (float)0.301391, (float)0.437622, (float)0.648710, (float)0.825115, 3852 (float)0.268029, (float)0.448081, (float)0.593752, (float)0.740914, 3853 (float)0.290098, (float)0.428281, (float)0.695540, (float)1.198940, 3854 (float)0.306895, (float)0.451955, (float)0.724292, (float)1.095510, 3855 (float)0.386610, (float)0.670501, (float)0.961258, (float)1.253040, 3856 (float)0.259236, (float)0.410738, (float)0.707426, (float)0.934194, 3857 (float)0.347218, (float)0.534486, (float)0.681936, (float)0.904320, 3858 (float)0.291524, (float)0.425825, (float)0.548190, (float)0.667930, 3859 (float)0.384840, (float)0.666135, (float)1.040360, (float)1.475370, 3860 (float)0.310877, (float)0.455544, (float)0.623884, (float)0.919199, 3861 (float)0.292490, (float)0.677005, (float)1.036410, (float)1.271390, 3862 (float)0.289542, (float)0.475043, (float)0.624304, (float)0.778945, 3863 (float)0.156969, (float)0.267335, (float)0.466354, (float)0.799595, 3864 (float)0.274135, (float)0.408537, (float)0.616194, (float)0.776118, 3865 (float)0.251981, (float)0.389727, (float)0.570594, (float)0.832260, 3866 (float)0.236658, (float)0.357024, (float)0.475591, (float)0.687801, 3867 (float)0.414333, (float)0.651317, (float)0.968328, (float)1.326590, 3868 (float)0.338001, (float)0.583657, (float)0.899938, (float)1.329100, 3869 (float)0.235380, (float)0.419633, (float)0.574793, (float)0.725040, 3870 (float)0.335061, (float)0.472130, (float)0.618476, (float)0.923847, 3871 (float)0.306820, (float)0.448593, (float)0.633808, (float)0.868368, 3872 (float)0.262447, (float)0.448778, (float)0.679349, (float)1.036100, 3873 (float)0.263333, (float)0.397535, (float)0.670473, (float)1.071350, 3874 (float)0.407434, (float)0.648132, (float)0.993253, (float)1.212680, 3875 (float)0.382877, (float)0.599699, (float)0.769050, (float)0.927727, 3876 (float)0.390412, (float)0.538531, (float)0.680946, (float)0.852162, 3877 (float)0.307607, (float)0.441901, (float)0.687919, (float)1.032430, 3878 (float)0.177520, (float)0.323100, (float)0.547255, (float)0.735511, 3879 (float)0.368019, (float)0.586839, (float)0.823260, (float)1.121690, 3880 (float)0.241973, (float)0.366597, (float)0.588033, (float)1.127480, 3881 (float)0.177302, (float)0.308446, (float)0.490785, (float)0.681439, 3883 Andersen et. al. Experimental - Expires Jan. 1st, 2003 74 3884 (float)0.334658, (float)0.547315, (float)0.864226, (float)1.290620, 3885 (float)0.319257, (float)0.466209, (float)0.596699, (float)0.778564, 3886 (float)0.391427, (float)0.608427, (float)0.848551, (float)1.168710, 3887 (float)0.239682, (float)0.369492, (float)0.602720, (float)0.884657, 3888 (float)0.273618, (float)0.402770, (float)0.527267, (float)0.647278, 3889 (float)0.364448, (float)0.621716, (float)1.055650, (float)1.317340, 3890 (float)0.233624, (float)0.360941, (float)0.560580, (float)0.998745, 3891 (float)0.260847, (float)0.392224, (float)0.586763, (float)0.921338, 3892 (float)0.241352, (float)0.547927, (float)0.810391, (float)1.094270, 3893 (float)0.178568, (float)0.318679, (float)0.594942, (float)0.801519, 3894 (float)0.298461, (float)0.446901, (float)0.680209, (float)1.150460, 3895 (float)0.258215, (float)0.399730, (float)0.727028, (float)1.112710, 3896 (float)0.397843, (float)0.635496, (float)1.013350, (float)1.277570, 3897 (float)0.185221, (float)0.316416, (float)0.507163, (float)0.732293, 3898 (float)0.354876, (float)0.494767, (float)0.667361, (float)1.018970, 3899 (float)0.291951, (float)0.486143, (float)0.653101, (float)0.870568, 3900 (float)0.293706, (float)0.509001, (float)0.846668, (float)1.094110, 3901 (float)0.291342, (float)0.442579, (float)0.744129, (float)1.279610, 3902 (float)0.272456, (float)0.407997, (float)0.631174, (float)0.987083, 3903 (float)0.352611, (float)0.538293, (float)0.697080, (float)0.866501, 3904 (float)0.241964, (float)0.527318, (float)0.770160, (float)1.048130, 3905 (float)0.314787, (float)0.524371, (float)0.693928, (float)0.935755, 3906 (float)0.300869, (float)0.550315, (float)0.894378, (float)1.129460, 3907 (float)0.291527, (float)0.498051, (float)0.717754, (float)0.978110, 3908 (float)0.265995, (float)0.508245, (float)0.779386, (float)1.222120, 3909 (float)0.252261, (float)0.378007, (float)0.626046, (float)1.163140, 3910 (float)0.417044, (float)0.721984, (float)1.128590, (float)1.486670, 3911 (float)0.353369, (float)0.705701, (float)0.976913, (float)1.165060, 3912 (float)0.271864, (float)0.392841, (float)0.510938, (float)0.745883, 3913 (float)0.274596, (float)0.406086, (float)0.601831, (float)0.853509, 3914 (float)0.376406, (float)0.682243, (float)0.912717, (float)1.085710, 3915 (float)0.225794, (float)0.397059, (float)0.755320, (float)1.011200, 3916 (float)0.281786, (float)0.417292, (float)0.551166, (float)0.739330, 3917 (float)0.299725, (float)0.593917, (float)0.826779, (float)1.090990, 3918 (float)0.292800, (float)0.431433, (float)0.618210, (float)0.903658, 3919 (float)0.230575, (float)0.580719, (float)0.871743, (float)1.114390, 3920 (float)0.267864, (float)0.450254, (float)0.751591, (float)1.153090, 3921 (float)0.227979, (float)0.354904, (float)0.630262, (float)1.137810, 3922 (float)0.294058, (float)0.429207, (float)0.684007, (float)1.079250, 3923 (float)0.248220, (float)0.394220, (float)0.659739, (float)0.908493, 3924 (float)0.215981, (float)0.334948, (float)0.500529, (float)0.913263, 3925 (float)0.181791, (float)0.298269, (float)0.469913, (float)0.846965, 3926 (float)0.203908, (float)0.327592, (float)0.470698, (float)0.757392, 3927 (float)0.196003, (float)0.315044, (float)0.554691, (float)1.143190, 3928 (float)0.260415, (float)0.393965, (float)0.684793, (float)1.144150, 3929 (float)0.226013, (float)0.355166, (float)0.664777, (float)1.224800, 3930 (float)0.341351, (float)0.615218, (float)0.936893, (float)1.272030, 3931 (float)0.252247, (float)0.393730, (float)0.570960, (float)0.758005, 3932 (float)0.278654, (float)0.531480, (float)0.901021, (float)1.363700, 3933 (float)0.261767, (float)0.398730, (float)0.548140, (float)0.675737, 3934 (float)0.301735, (float)0.440731, (float)0.576080, (float)0.761129, 3935 (float)0.390980, (float)0.588271, (float)0.842845, (float)1.078730, 3936 (float)0.350982, (float)0.543640, (float)0.845990, (float)1.130100, 3938 Andersen et. al. Experimental - Expires Jan. 1st, 2003 75 3939 (float)0.396864, (float)0.547775, (float)0.721625, (float)1.030950, 3940 (float)0.268612, (float)0.397836, (float)0.565284, (float)0.955155, 3941 (float)0.303378, (float)0.506892, (float)0.666309, (float)0.837350, 3942 (float)0.347443, (float)0.492402, (float)0.687826, (float)1.091790, 3943 (float)0.273813, (float)0.407262, (float)0.618277, (float)0.941319, 3944 (float)0.293662, (float)0.436250, (float)0.579946, (float)0.817583, 3945 (float)0.352712, (float)0.565204, (float)0.757741, (float)0.943316, 3946 (float)0.256268, (float)0.384554, (float)0.598044, (float)1.070950, 3947 (float)0.416329, (float)0.576227, (float)0.722358, (float)0.896904, 3948 (float)0.242291, (float)0.383518, (float)0.751799, (float)1.178820, 3949 (float)0.249773, (float)0.428614, (float)0.599990, (float)0.920567, 3950 (float)0.219702, (float)0.339245, (float)0.568626, (float)1.104180, 3951 (float)0.390685, (float)0.626539, (float)0.911688, (float)1.308600, 3952 (float)0.333765, (float)0.474123, (float)0.696616, (float)0.992239, 3953 (float)0.370265, (float)0.573662, (float)0.732385, (float)0.884617, 3954 (float)0.327641, (float)0.483696, (float)0.725390, (float)1.052730, 3955 (float)0.282109, (float)0.577007, (float)0.785801, (float)1.004680, 3956 (float)0.140767, (float)0.443917, (float)0.794887, (float)1.086690, 3957 (float)0.206239, (float)0.335066, (float)0.745318, (float)1.417410, 3958 (float)0.274522, (float)0.480329, (float)0.651926, (float)0.816929, 3959 (float)0.350204, (float)0.496322, (float)0.636791, (float)0.885560, 3960 (float)0.330776, (float)0.466553, (float)0.583557, (float)0.697490, 3961 (float)0.237715, (float)0.362728, (float)0.567326, (float)1.069130, 3962 (float)0.362405, (float)0.550058, (float)0.759607, (float)1.000590, 3963 (float)0.290359, (float)0.442314, (float)0.741368, (float)0.994651, 3964 (float)0.240579, (float)0.374307, (float)0.528460, (float)0.667139, 3965 (float)0.234118, (float)0.445188, (float)0.830313, (float)1.176900, 3966 (float)0.378160, (float)0.528863, (float)0.730298, (float)1.123500, 3967 (float)0.247956, (float)0.445345, (float)0.685440, (float)1.106480, 3968 (float)0.432718, (float)0.744013, (float)1.077080, (float)1.414300, 3969 (float)0.337779, (float)0.596588, (float)1.016300, (float)1.460950, 3970 (float)0.364708, (float)0.512622, (float)0.650087, (float)0.784056, 3971 (float)0.364291, (float)0.693579, (float)1.209610, (float)1.533230, 3972 (float)0.151261, (float)0.261040, (float)0.499646, (float)0.865944, 3973 (float)0.350846, (float)0.601512, (float)0.925081, (float)1.114450, 3974 (float)0.289558, (float)0.511687, (float)0.836803, (float)1.284560, 3975 (float)0.233228, (float)0.368894, (float)0.609766, (float)0.989328, 3976 (float)0.442610, (float)0.622621, (float)0.782216, (float)1.032520, 3977 (float)0.356632, (float)0.592695, (float)0.933429, (float)1.393480, 3978 (float)0.265703, (float)0.534104, (float)0.907613, (float)1.260480, 3979 (float)0.261117, (float)0.396453, (float)0.571838, (float)0.876124, 3980 (float)0.223984, (float)0.362642, (float)0.548252, (float)0.696006, 3981 (float)0.317838, (float)0.458345, (float)0.595784, (float)0.852669, 3982 (float)0.221694, (float)0.482719, (float)0.694519, (float)0.960166, 3983 (float)0.352454, (float)0.495550, (float)0.633071, (float)0.800032, 3984 (float)0.265361, (float)0.384416, (float)0.514781, (float)0.807679, 3985 (float)0.395351, (float)0.623072, (float)0.869142, (float)1.230800, 3986 (float)0.217981, (float)0.352494, (float)0.740091, (float)1.318740, 3987 (float)0.211968, (float)0.350316, (float)0.583658, (float)0.960925, 3988 (float)0.223580, (float)0.449412, (float)0.819841, (float)1.051100, 3989 (float)0.225638, (float)0.355323, (float)0.507619, (float)0.647657, 3990 (float)0.416412, (float)0.584351, (float)0.734927, (float)0.939428, 3991 (float)0.295102, (float)0.430837, (float)0.609901, (float)0.841384, 3993 Andersen et. al. Experimental - Expires Jan. 1st, 2003 76 3994 (float)0.171453, (float)0.512209, (float)0.825464, (float)1.107900, 3995 (float)0.180176, (float)0.508256, (float)0.786524, (float)1.065700, 3996 (float)0.361125, (float)0.641436, (float)1.123030, (float)1.361410, 3997 (float)0.278154, (float)0.414153, (float)0.644463, (float)0.867737, 3998 (float)0.286774, (float)0.417920, (float)0.588005, (float)0.973405, 3999 (float)0.448011, (float)0.663086, (float)0.829084, (float)0.987429, 4000 (float)0.393621, (float)0.719941, (float)1.057670, (float)1.241950, 4001 (float)0.220710, (float)0.377698, (float)0.552393, (float)0.823030, 4002 (float)0.340693, (float)0.598259, (float)1.057340, (float)1.394240, 4003 (float)0.215992, (float)0.333914, (float)0.610878, (float)1.246830, 4004 (float)0.194584, (float)0.348828, (float)0.566256, (float)0.761554, 4005 (float)0.307794, (float)0.461764, (float)0.606802, (float)0.817532, 4006 (float)0.213036, (float)0.349854, (float)0.640137, (float)1.028570, 4007 (float)0.310428, (float)0.535932, (float)0.836986, (float)1.032430, 4008 (float)0.276045, (float)0.449816, (float)0.632854, (float)1.000380, 4009 (float)0.395426, (float)0.672081, (float)1.075380, (float)1.398740, 4010 (float)0.240515, (float)0.493541, (float)0.782142, (float)1.096500, 4011 (float)0.260876, (float)0.384111, (float)0.570481, (float)1.015690, 4012 (float)0.230396, (float)0.353937, (float)0.614675, (float)1.195460, 4013 (float)0.337235, (float)0.478936, (float)0.605436, (float)0.806775, 4014 (float)0.332199, (float)0.484704, (float)0.631721, (float)0.770580, 4015 (float)0.294924, (float)0.486475, (float)0.656571, (float)0.981506, 4016 (float)0.216990, (float)0.457037, (float)0.722512, (float)0.902017, 4017 (float)0.284226, (float)0.422374, (float)0.648519, (float)1.113270, 4018 (float)0.253116, (float)0.414147, (float)0.809672, (float)1.233420, 4019 (float)0.300220, (float)0.450924, (float)0.679319, (float)0.849148, 4020 (float)0.305775, (float)0.540062, (float)0.792073, (float)1.068460, 4021 (float)0.404279, (float)0.616651, (float)0.907758, (float)1.190180, 4022 (float)0.443350, (float)0.804287, (float)1.085120, (float)1.276400, 4023 (float)0.162614, (float)0.274802, (float)0.456885, (float)0.716746, 4024 (float)0.238674, (float)0.438004, (float)0.624117, (float)0.873535, 4025 (float)0.376114, (float)0.581688, (float)0.868368, (float)1.211090, 4026 (float)0.287190, (float)0.621898, (float)0.963364, (float)1.221660, 4027 (float)0.207698, (float)0.367431, (float)0.572169, (float)0.883986, 4028 (float)0.383737, (float)0.561236, (float)0.713456, (float)0.925771, 4029 (float)0.377351, (float)0.562596, (float)0.813943, (float)1.172740, 4030 (float)0.241371, (float)0.379564, (float)0.553394, (float)0.879274, 4031 (float)0.193761, (float)0.322787, (float)0.518543, (float)0.864487, 4032 (float)0.237419, (float)0.486870, (float)0.869993, (float)1.131770, 4033 (float)0.412182, (float)0.761583, (float)1.221660, (float)1.480230, 4034 (float)0.278553, (float)0.420023, (float)0.582928, (float)0.767932, 4035 (float)0.225913, (float)0.513020, (float)0.952287, (float)1.201890, 4036 (float)0.345653, (float)0.524101, (float)0.664950, (float)0.805983, 4037 (float)0.302893, (float)0.503915, (float)0.838085, (float)1.192750, 4038 (float)0.208819, (float)0.378940, (float)0.593233, (float)0.759625, 4039 (float)0.288905, (float)0.419523, (float)0.552045, (float)0.798286, 4040 (float)0.163483, (float)0.287461, (float)0.574985, (float)1.028030, 4041 (float)0.205764, (float)0.382652, (float)0.815303, (float)1.275570, 4042 (float)0.177181, (float)0.317777, (float)0.613485, (float)0.852938, 4043 (float)0.238768, (float)0.358592, (float)0.519032, (float)0.900033, 4044 (float)0.419025, (float)0.690666, (float)1.009890, (float)1.373610, 4045 (float)0.331661, (float)0.505046, (float)0.766129, (float)1.106780, 4046 (float)0.203885, (float)0.326858, (float)0.669715, (float)1.353620, 4048 Andersen et. al. Experimental - Expires Jan. 1st, 2003 77 4049 (float)0.313537, (float)0.624041, (float)0.863969, (float)1.033760, 4050 (float)0.285077, (float)0.548300, (float)0.753999, (float)0.933963, 4051 (float)0.207852, (float)0.364360, (float)0.652846, (float)0.898249, 4052 (float)0.186344, (float)0.325463, (float)0.577631, (float)0.886636, 4053 (float)0.197167, (float)0.351888, (float)0.606579, (float)0.859715, 4054 (float)0.182318, (float)0.298750, (float)0.448484, (float)0.752458, 4055 (float)0.379122, (float)0.633034, (float)1.000010, (float)1.389500, 4056 (float)0.326422, (float)0.465367, (float)0.633202, (float)0.794926, 4057 (float)0.238341, (float)0.378895, (float)0.625214, (float)0.848103, 4058 (float)0.228674, (float)0.365911, (float)0.669809, (float)1.091540, 4059 (float)0.240136, (float)0.363765, (float)0.507761, (float)0.810138, 4060 (float)0.230204, (float)0.476376, (float)0.845270, (float)1.276780, 4061 (float)0.305111, (float)0.443126, (float)0.636449, (float)1.060780, 4062 (float)0.222737, (float)0.357285, (float)0.533485, (float)0.871052, 4063 (float)0.252152, (float)0.460703, (float)0.658246, (float)0.903143, 4064 (float)0.373276, (float)0.578358, (float)0.881072, (float)1.153370, 4065 (float)0.269512, (float)0.417899, (float)0.568729, (float)0.834819, 4066 (float)0.243124, (float)0.594945, (float)0.894623, (float)1.195720, 4067 (float)0.190975, (float)0.337767, (float)0.609678, (float)0.992139, 4068 (float)0.186931, (float)0.348042, (float)0.686939, (float)0.954866, 4069 (float)0.205108, (float)0.339660, (float)0.530568, (float)0.721792, 4070 (float)0.224848, (float)0.356705, (float)0.611404, (float)1.086950, 4071 (float)0.309997, (float)0.705889, (float)1.058540, (float)1.375030, 4072 (float)0.171360, (float)0.285328, (float)0.522052, (float)1.124250, 4073 (float)0.255357, (float)0.595823, (float)0.936216, (float)1.294790, 4074 (float)0.293221, (float)0.567021, (float)0.795158, (float)1.163280, 4075 (float)0.196983, (float)0.315855, (float)0.613166, (float)1.294320, 4076 (float)0.240770, (float)0.448439, (float)0.652459, (float)0.836251, 4077 (float)0.333000, (float)0.527299, (float)0.802583, (float)1.169380, 4078 (float)0.391111, (float)0.607495, (float)0.952656, (float)1.251230, 4079 (float)0.304561, (float)0.442813, (float)0.703306, (float)0.946841, 4080 (float)0.165375, (float)0.287408, (float)0.559972, (float)0.915385, 4081 (float)0.333372, (float)0.547454, (float)0.732493, (float)0.904448, 4082 (float)0.206904, (float)0.391644, (float)0.653542, (float)0.938004, 4083 (float)0.211758, (float)0.450511, (float)0.733287, (float)1.105820, 4084 (float)0.173767, (float)0.307308, (float)0.609107, (float)0.959360, 4085 (float)0.148573, (float)0.257316, (float)0.501376, (float)0.948902, 4086 (float)0.261661, (float)0.386298, (float)0.530837, (float)0.867728, 4087 (float)0.198589, (float)0.320144, (float)0.545287, (float)1.072570, 4088 (float)0.183157, (float)0.300205, (float)0.485251, (float)0.911155, 4089 (float)0.362790, (float)0.503869, (float)0.670039, (float)0.966991, 4090 (float)0.232049, (float)0.421937, (float)0.599018, (float)0.778884, 4091 (float)0.229985, (float)0.519527, (float)0.743088, (float)0.980934, 4092 (float)0.243341, (float)0.375008, (float)0.529225, (float)0.840748, 4093 (float)0.337687, (float)0.479483, (float)0.665032, (float)0.856526, 4094 (float)0.316251, (float)0.456972, (float)0.658311, (float)0.942116, 4095 (float)0.196493, (float)0.399757, (float)0.665578, (float)1.095230, 4096 (float)1.713300, (float)1.998430, (float)2.168780, 4097 (float)1.609200, (float)1.965220, (float)2.298960, 4098 (float)1.160660, (float)1.629370, (float)1.835390, 4099 (float)1.487750, (float)1.834220, (float)2.010250, 4100 (float)1.724300, (float)1.924400, (float)2.187320, 4101 (float)0.954788, (float)1.306160, (float)1.928130, 4103 Andersen et. al. Experimental - Expires Jan. 1st, 2003 78 4104 (float)1.498380, (float)1.740500, (float)1.919960, 4105 (float)1.563320, (float)2.003460, (float)2.238800, 4106 (float)1.196470, (float)1.541940, (float)2.005960, 4107 (float)0.863912, (float)1.434970, (float)1.946670, 4108 (float)1.086720, (float)1.377400, (float)1.572100, 4109 (float)1.175780, (float)1.907540, (float)2.197730, 4110 (float)1.098250, (float)1.537270, (float)1.873990, 4111 (float)1.596120, (float)1.766580, (float)1.967860, 4112 (float)1.574540, (float)1.883560, (float)2.185270, 4113 (float)0.899967, (float)1.462110, (float)1.881880, 4114 (float)1.458890, (float)1.795750, (float)2.085350, 4115 (float)1.026730, (float)1.405800, (float)1.871120, 4116 (float)0.974725, (float)1.500000, (float)1.870040, 4117 (float)1.312790, (float)1.529380, (float)1.892850, 4118 (float)1.495670, (float)1.664300, (float)1.873930, 4119 (float)0.866774, (float)1.245980, (float)1.844460, 4120 (float)1.010130, (float)1.215840, (float)1.797480, 4121 (float)1.107850, (float)1.415060, (float)1.687180, 4122 (float)1.510570, (float)1.680220, (float)1.911870, 4123 (float)1.423590, (float)1.594710, (float)1.857830, 4124 (float)1.243230, (float)1.459150, (float)1.794510, 4125 (float)1.589730, (float)1.769560, (float)2.017390, 4126 (float)1.130030, (float)1.272470, (float)1.425640, 4127 (float)1.290910, (float)1.576890, (float)1.888680, 4128 (float)1.550860, (float)2.010780, (float)2.346330, 4129 (float)1.008340, (float)1.286160, (float)1.692730, 4130 (float)1.454790, (float)1.667270, (float)2.104170, 4131 (float)1.442660, (float)1.908350, (float)2.231940, 4132 (float)1.402480, (float)1.673070, (float)2.008240, 4133 (float)0.859212, (float)1.345480, (float)1.736730, 4134 (float)1.293190, (float)1.467450, (float)1.884070, 4135 (float)1.325600, (float)1.497820, (float)1.932780, 4136 (float)1.029290, (float)1.439160, (float)1.946450, 4137 (float)1.234560, (float)1.771860, (float)1.995480, 4138 (float)1.088830, (float)1.330520, (float)1.649160, 4139 (float)1.158780, (float)1.299590, (float)1.446230, 4140 (float)1.704930, (float)1.983170, (float)2.291760, 4141 (float)0.908817, (float)1.561420, (float)1.896080, 4142 (float)1.427650, (float)1.715650, (float)1.973060, 4143 (float)1.139540, (float)1.315880, (float)1.795210, 4144 (float)1.333700, (float)1.570930, (float)1.806840, 4145 (float)1.360340, (float)1.725530, (float)2.049290, 4146 (float)1.060760, (float)1.439910, (float)1.725370, 4147 (float)1.428680, (float)1.667300, (float)1.967870, 4148 (float)1.277390, (float)1.571840, (float)1.745770, 4149 (float)1.094340, (float)1.493560, (float)1.691460, 4150 (float)1.572780, (float)1.812180, (float)1.984310, 4151 (float)1.255840, (float)1.419970, (float)1.776750, 4152 (float)1.161430, (float)1.512400, (float)1.777710, 4153 (float)1.476060, (float)1.854230, (float)2.173240, 4154 (float)0.956615, (float)1.470850, (float)1.939230, 4155 (float)0.968590, (float)1.395650, (float)1.910210, 4156 (float)1.391550, (float)1.661880, (float)1.933670, 4158 Andersen et. al. Experimental - Expires Jan. 1st, 2003 79 4159 (float)1.497500, (float)1.872320, (float)2.051620, 4160 (float)1.390960, (float)1.562000, (float)1.777980, 4161 (float)0.996004, (float)1.302020, (float)1.502360, 4162 (float)1.310250, (float)1.482710, (float)1.784940, 4163 (float)0.898902, (float)1.166880, (float)1.847150, 4164 (float)1.149620, (float)1.349650, (float)1.934780, 4165 (float)1.281240, (float)1.586270, (float)1.839050, 4166 (float)1.099360, (float)1.382880, (float)1.811380, 4167 (float)1.268980, (float)1.617590, (float)1.907970, 4168 (float)1.410420, (float)1.591060, (float)1.897540, 4169 (float)1.431680, (float)1.588880, (float)1.760780, 4170 (float)0.945238, (float)1.215640, (float)1.898120, 4171 (float)0.805674, (float)1.118850, (float)1.762360, 4172 (float)0.965613, (float)1.439480, (float)1.842700, 4173 (float)0.865688, (float)1.214250, (float)1.926520, 4174 (float)0.989231, (float)1.365260, (float)1.979580, 4175 (float)1.459860, (float)1.766590, (float)1.946220, 4176 (float)1.130590, (float)1.563860, (float)1.755620, 4177 (float)1.297250, (float)1.678910, (float)1.920780, 4178 (float)1.423430, (float)1.588110, (float)1.811490, 4179 (float)1.147040, (float)1.315200, (float)1.612370, 4180 (float)1.391870, (float)1.869830, (float)2.161210, 4181 (float)1.049640, (float)1.313200, (float)2.001230, 4182 (float)0.870711, (float)1.118620, (float)1.778760, 4183 (float)0.980549, (float)1.497050, (float)1.803160, 4184 (float)1.427950, (float)1.694210, (float)2.049600, 4185 (float)1.038450, (float)1.211830, (float)1.404320, 4186 (float)1.139220, (float)1.338950, (float)1.857920, 4187 (float)0.995399, (float)1.161580, (float)1.449670, 4188 (float)1.120350, (float)1.302790, (float)1.732800, 4189 (float)1.250180, (float)1.723040, (float)1.925280, 4190 (float)1.369660, (float)1.538260, (float)1.737700, 4191 (float)1.342040, (float)1.588740, (float)1.764170, 4192 (float)1.188920, (float)1.473920, (float)1.704040, 4193 (float)1.440080, (float)1.752010, (float)2.116130, 4194 (float)1.164430, (float)1.475100, (float)1.956180, 4195 (float)1.644780, (float)1.860170, (float)2.195380, 4196 (float)1.243230, (float)1.478480, (float)1.851430, 4197 (float)1.186760, (float)1.659760, (float)1.888320, 4198 (float)1.150280, (float)1.417270, (float)1.606190, 4199 (float)1.275630, (float)1.726020, (float)2.073170, 4200 (float)1.185380, (float)1.791580, (float)2.052510, 4201 (float)1.451660, (float)1.751920, (float)1.997990, 4202 (float)1.406650, (float)1.631160, (float)1.841560, 4203 (float)1.135290, (float)1.301540, (float)1.486120, 4204 (float)1.720630, (float)2.096020, (float)2.390570, 4205 (float)1.245470, (float)1.388700, (float)1.542840, 4206 (float)1.551700, (float)1.724820, (float)2.043780, 4207 (float)1.650390, (float)2.031990, (float)2.272790, 4208 (float)1.393470, (float)1.563380, (float)1.822930, 4209 (float)0.953729, (float)1.124510, (float)1.538800, 4210 (float)0.873221, (float)1.435970, (float)2.043180, 4211 (float)1.010550, (float)1.385640, (float)1.688060, 4213 Andersen et. al. Experimental - Expires Jan. 1st, 2003 80 4214 (float)1.679850, (float)1.840340, (float)2.012720, 4215 (float)1.153360, (float)1.412120, (float)1.812540, 4216 (float)1.293720, (float)1.620780, (float)1.956670, 4217 (float)1.537200, (float)1.768520, (float)1.948260, 4218 (float)1.438970, (float)1.686500, (float)1.922450, 4219 (float)1.479910, (float)1.857410, (float)2.276440, 4220 (float)1.233140, (float)1.649090, (float)1.951670, 4221 (float)1.280280, (float)1.443250, (float)1.829440, 4222 (float)1.377640, (float)1.608860, (float)1.928580, 4223 (float)1.070250, (float)1.246770, (float)1.428620, 4224 (float)0.860154, (float)1.427810, (float)1.821160, 4225 (float)1.212420, (float)1.429980, (float)1.676490, 4226 (float)1.136270, (float)1.310490, (float)1.673930, 4227 (float)0.999922, (float)1.191970, (float)1.381040, 4228 (float)1.569610, (float)1.820850, (float)2.067630, 4229 (float)1.143710, (float)1.484610, (float)1.885850, 4230 (float)1.095910, (float)1.377020, (float)1.883880, 4231 (float)1.559660, (float)1.731720, (float)1.985110, 4232 (float)0.922973, (float)1.180780, (float)1.633810, 4233 (float)1.057990, (float)1.309350, (float)1.713630, 4234 (float)1.222060, (float)1.538890, (float)1.720320, 4235 (float)1.171970, (float)1.340140, (float)1.667620, 4236 (float)1.557260, (float)1.752540, (float)2.111950, 4237 (float)1.283260, (float)1.519050, (float)1.696730, 4238 (float)1.556110, (float)1.723500, (float)1.937230, 4239 (float)1.516620, (float)1.821930, (float)2.203970, 4240 (float)1.339510, (float)1.618250, (float)1.827910, 4241 (float)1.470830, (float)1.653290, (float)2.015930, 4242 (float)1.364270, (float)1.533720, (float)1.835590, 4243 (float)1.140270, (float)1.365580, (float)1.564840, 4244 (float)1.755860, (float)1.947830, (float)2.124390, 4245 (float)0.930625, (float)1.426890, (float)1.782660, 4246 (float)1.551960, (float)1.845230, (float)2.018480, 4247 (float)1.216670, (float)1.599880, (float)2.077320, 4248 (float)1.398250, (float)1.697300, (float)1.886650, 4249 (float)1.721920, (float)1.893790, (float)2.060440, 4250 (float)1.569720, (float)1.877540, (float)2.276330, 4251 (float)0.952989, (float)1.326960, (float)1.677790, 4252 (float)1.329340, (float)1.496330, (float)1.868850, 4253 (float)1.017970, (float)1.556880, (float)1.769450, 4254 (float)1.316210, (float)1.480590, (float)1.676510, 4255 (float)1.412110, (float)1.564200, (float)1.723480, 4256 (float)0.948852, (float)1.389670, (float)2.062760, 4257 (float)1.104020, (float)1.246490, (float)1.399290, 4258 (float)1.501460, (float)1.692570, (float)2.049170, 4259 (float)1.327360, (float)1.559960, (float)1.853210, 4260 (float)1.547360, (float)1.714840, (float)1.892890, 4261 (float)1.381870, (float)1.633500, (float)1.978170, 4262 (float)1.601150, (float)1.874140, (float)2.117910, 4263 (float)1.160450, (float)1.334510, (float)1.513380, 4264 (float)1.004480, (float)1.701300, (float)1.961240, 4265 (float)1.207670, (float)1.520580, (float)1.938630, 4266 (float)1.088940, (float)1.463350, (float)1.925130, 4268 Andersen et. al. Experimental - Expires Jan. 1st, 2003 81 4269 (float)1.026220, (float)1.558010, (float)1.848390, 4270 (float)1.689060, (float)1.930320, (float)2.093670, 4271 (float)1.151270, (float)1.419760, (float)1.921540, 4272 (float)0.954364, (float)1.183940, (float)1.820380, 4273 (float)1.316190, (float)1.689080, (float)1.874560, 4274 (float)1.329200, (float)1.572260, (float)2.076720, 4275 (float)1.219420, (float)1.398380, (float)1.798360, 4276 (float)0.942349, (float)1.204700, (float)1.432660, 4277 (float)1.501120, (float)1.754650, (float)2.060490, 4278 (float)1.402560, (float)1.732220, (float)2.086180, 4279 (float)1.248970, (float)1.420720, (float)1.705530, 4280 (float)1.438460, (float)1.623050, (float)1.989700, 4281 (float)1.632930, (float)1.808050, (float)2.037740, 4282 (float)1.738600, (float)2.040990, (float)2.242500, 4283 (float)1.206870, (float)1.487230, (float)1.759340, 4284 (float)1.036770, (float)1.181130, (float)1.343220, 4285 (float)1.056890, (float)1.250210, (float)1.745300, 4286 (float)1.578920, (float)1.938800, (float)2.230170, 4287 (float)1.093800, (float)1.278370, (float)1.687500, 4288 (float)1.459150, (float)1.707370, (float)2.010630, 4289 (float)0.856362, (float)1.315540, (float)2.103710, 4290 (float)1.015340, (float)1.181760, (float)1.534780, 4291 (float)1.379600, (float)1.897290, (float)2.089630, 4292 (float)1.269070, (float)1.466400, (float)1.704310, 4293 (float)1.016500, (float)1.221470, (float)1.470800, 4294 (float)1.658050, (float)1.931380, (float)2.250970, 4295 (float)1.071290, (float)1.216180, (float)1.375920, 4296 (float)1.842960, (float)2.080430, (float)2.281200, 4297 (float)1.058520, (float)1.732610, (float)2.034590, 4298 (float)0.993163, (float)1.581590, (float)1.970320, 4299 (float)1.068340, (float)1.397730, (float)1.624700, 4300 (float)1.101080, (float)1.681660, (float)1.904070, 4301 (float)0.857539, (float)1.197350, (float)1.635640, 4302 (float)1.165190, (float)1.564020, (float)1.851300, 4303 (float)1.233670, (float)1.397810, (float)1.740240, 4304 (float)1.217740, (float)1.548220, (float)1.764960, 4305 (float)1.128060, (float)1.410960, (float)1.751330, 4306 (float)1.034230, (float)1.343940, (float)1.899620, 4307 (float)1.091990, (float)1.518030, (float)1.762130, 4308 (float)1.163660, (float)1.541450, (float)1.908740, 4309 (float)1.501620, (float)1.738260, (float)1.994550, 4310 (float)1.119250, (float)1.844110, (float)2.120050, 4311 (float)0.856926, (float)1.250270, (float)1.722770, 4312 (float)1.230560, (float)1.493700, (float)1.684990, 4313 (float)1.394560, (float)1.560240, (float)1.870010, 4314 (float)1.278990, (float)1.699720, (float)1.988560, 4315 (float)1.354770, (float)1.766770, (float)2.146370, 4316 (float)1.704680, (float)1.885760, (float)2.134360, 4317 (float)1.142140, (float)1.384680, (float)2.004530, 4318 (float)1.217610, (float)1.506740, (float)1.811920, 4319 (float)1.788990, (float)1.989260, (float)2.175380, 4320 (float)1.217360, (float)1.391280, (float)1.850580, 4321 (float)1.032830, (float)1.268430, (float)1.455970, 4323 Andersen et. al. Experimental - Expires Jan. 1st, 2003 82 4324 (float)1.430290, (float)1.806250, (float)1.988070, 4325 (float)1.059280, (float)1.386370, (float)1.760250, 4326 (float)1.047310, (float)1.432770, (float)1.818960, 4327 (float)0.956135, (float)1.585090, (float)1.828480, 4328 (float)1.667630, (float)1.958110, (float)2.140520, 4329 (float)1.498480, (float)1.970390, (float)2.180540, 4330 (float)1.093790, (float)1.282070, (float)1.790480, 4331 (float)1.321460, (float)1.539200, (float)1.773840, 4332 (float)1.634160, (float)1.922470, (float)2.182770, 4333 (float)1.647930, (float)1.887580, (float)2.053070, 4334 (float)0.943701, (float)1.426850, (float)1.666640, 4335 (float)1.471400, (float)1.788120, (float)2.035900, 4336 (float)1.063100, (float)1.564970, (float)1.916000, 4337 (float)1.176270, (float)1.338640, (float)1.559550, 4338 (float)1.284350, (float)1.648910, (float)1.840620, 4339 (float)0.901137, (float)1.294360, (float)1.876860, 4340 (float)1.269700, (float)1.506080, (float)1.804700, 4341 (float)1.316520, (float)1.670080, (float)2.113500, 4342 (float)1.091030, (float)1.444660, (float)1.631130, 4343 (float)1.417390, (float)1.642850, (float)1.896980, 4344 (float)1.266060, (float)1.529530, (float)1.906050, 4345 (float)1.276910, (float)1.496340, (float)2.043080, 4346 (float)1.184780, (float)1.363900, (float)1.607130, 4347 (float)1.349070, (float)1.491150, (float)1.641000, 4348 (float)1.121060, (float)1.486290, (float)1.836440, 4349 (float)1.274620, (float)1.526700, (float)1.855410, 4350 (float)1.492900, (float)1.805690, (float)2.125490, 4351 (float)1.382850, (float)1.694760, (float)1.965370, 4352 (float)1.397510, (float)1.702250, (float)2.145220, 4353 (float)1.103180, (float)1.346690, (float)1.758730, 4354 (float)1.101240, (float)1.432240, (float)1.856460, 4355 (float)1.135430, (float)1.463660, (float)1.736780, 4356 (float)1.512080, (float)1.806650, (float)2.067890, 4357 (float)0.900379, (float)1.512730, (float)1.829310, 4358 (float)0.926214, (float)1.270950, (float)1.622950, 4359 (float)1.385210, (float)1.527470, (float)1.681390, 4360 (float)1.530060, (float)1.776840, (float)2.016640, 4361 (float)0.989253, (float)1.237080, (float)1.643390, 4362 (float)0.922444, (float)1.142890, (float)1.743210, 4363 (float)1.257620, (float)1.467760, (float)1.648640, 4364 (float)1.042470, (float)1.524210, (float)2.015950, 4365 (float)1.367450, (float)1.664590, (float)1.837290, 4366 (float)1.367070, (float)1.800720, (float)2.003030, 4367 (float)0.995690, (float)1.295550, (float)1.770390, 4368 (float)1.523770, (float)1.852460, (float)2.102790, 4369 (float)1.017500, (float)1.207030, (float)1.699550, 4370 (float)1.063900, (float)1.511100, (float)1.815800, 4371 (float)1.248540, (float)1.668610, (float)1.882100, 4372 (float)1.387520, (float)1.763570, (float)1.953420, 4373 (float)0.811853, (float)1.206810, (float)1.788600, 4374 (float)0.994768, (float)1.235730, (float)1.418800, 4375 (float)1.419980, (float)1.737110, (float)1.916380, 4376 (float)1.367380, (float)1.662820, (float)1.886500, 4378 Andersen et. al. Experimental - Expires Jan. 1st, 2003 83 4379 (float)1.098490, (float)1.274380, (float)1.534140, 4380 (float)1.458020, (float)1.738350, (float)2.053830, 4381 (float)1.408830, (float)1.726640, (float)2.017050, 4382 (float)1.188500, (float)1.429330, (float)1.777620, 4383 (float)1.486770, (float)1.657140, (float)1.955830, 4384 (float)0.968657, (float)1.192200, (float)1.579680, 4385 (float)1.211260, (float)1.357450, (float)1.514190, 4386 (float)1.273620, (float)1.571890, (float)1.998610, 4387 (float)1.475030, (float)1.710170, (float)1.953680, 4388 (float)0.951772, (float)1.110700, (float)1.330720, 4389 (float)1.173150, (float)1.577460, (float)1.807060, 4390 (float)1.114170, (float)1.519680, (float)2.090900, 4391 (float)1.077310, (float)1.589490, (float)1.808030, 4392 (float)0.910319, (float)1.202470, (float)1.958470, 4393 (float)0.917247, (float)1.582350, (float)2.144790, 4394 (float)1.058230, (float)1.238800, (float)1.569680, 4395 (float)1.233400, (float)1.461090, (float)1.989260, 4396 (float)1.025470, (float)1.616190, (float)2.089000, 4397 (float)1.207120, (float)1.376650, (float)1.702510, 4398 (float)1.414110, (float)1.852470, (float)2.043770, 4399 (float)0.914873, (float)1.379470, (float)1.979860, 4400 (float)1.289230, (float)1.615090, (float)1.797370, 4401 (float)1.089230, (float)1.314120, (float)1.844980, 4402 (float)1.253740, (float)1.423270, (float)1.893360, 4403 (float)1.312780, (float)1.625640, (float)1.872630, 4404 (float)1.351240, (float)1.706820, (float)2.003320, 4405 (float)1.657070, (float)2.035420, (float)2.347300, 4406 (float)0.899850, (float)1.203740, (float)1.533730, 4407 (float)0.889645, (float)1.072140, (float)1.538460, 4408 (float)1.139200, (float)1.356790, (float)1.705030, 4409 (float)1.188680, (float)1.603720, (float)1.973270, 4410 (float)0.973071, (float)1.174970, (float)1.739750, 4411 (float)1.549670, (float)1.834330, (float)2.143580, 4412 (float)1.237470, (float)1.581330, (float)1.933350, 4413 (float)1.192010, (float)1.596220, (float)1.894840, 4414 (float)0.934669, (float)1.233160, (float)1.693710, 4415 (float)0.837551, (float)1.149310, (float)1.863980, 4416 (float)1.278200, (float)1.421200, (float)1.576520, 4417 (float)1.194700, (float)1.376720, (float)1.557260, 4418 (float)0.872668, (float)1.305270, (float)1.661970, 4419 (float)1.228670, (float)1.627300, (float)1.834980, 4420 (float)1.154300, (float)1.410050, (float)1.860000, 4421 (float)1.215420, (float)1.527560, (float)1.875180, 4422 (float)1.371880, (float)1.618420, (float)1.878120, 4423 (float)0.920164, (float)1.371570, (float)1.620020, 4424 (float)1.343840, (float)1.507450, (float)1.702820, 4425 (float)1.367480, (float)1.583650, (float)1.842990, 4426 (float)0.923765, (float)1.115510, (float)1.644000, 4427 (float)1.461150, (float)1.861050, (float)2.100960, 4428 (float)1.407330, (float)1.606230, (float)2.044290, 4429 (float)0.963449, (float)1.744540, (float)2.090700, 4430 (float)1.005530, (float)1.400330, (float)1.598740, 4431 (float)1.082730, (float)1.300170, (float)1.913850, 4433 Andersen et. al. Experimental - Expires Jan. 1st, 2003 84 4434 (float)1.349930, (float)1.575400, (float)1.891760, 4435 (float)1.334630, (float)1.662080, (float)1.973860, 4436 (float)1.310010, (float)1.480390, (float)1.731310, 4437 (float)1.516630, (float)1.891260, (float)2.219580, 4438 (float)1.113490, (float)1.736190, (float)1.978320, 4439 (float)1.674320, (float)1.848230, (float)2.084450, 4440 (float)1.322240, (float)1.542030, (float)1.724000, 4441 (float)1.374630, (float)1.546690, (float)1.930370, 4442 (float)0.927607, (float)1.641730, (float)1.967470, 4443 (float)1.164050, (float)1.400400, (float)1.666850, 4444 (float)1.038950, (float)1.354820, (float)1.820580, 4445 (float)0.835815, (float)1.300620, (float)1.799790, 4446 (float)1.052590, (float)1.311090, (float)1.781860, 4447 (float)0.965226, (float)1.346400, (float)1.553040, 4448 (float)1.191040, (float)1.376290, (float)1.893440, 4449 (float)0.932579, (float)1.128760, (float)1.431540, 4450 (float)1.341100, (float)1.501940, (float)1.816750, 4451 (float)1.344680, (float)1.640830, (float)2.025350, 4452 (float)0.942496, (float)1.359020, (float)1.744210, 4453 (float)1.110670, (float)1.606860, (float)1.871710, 4454 (float)1.189140, (float)1.466450, (float)1.642710, 4455 (float)1.282350, (float)1.522810, (float)1.754560, 4456 (float)1.503720, (float)1.795240, (float)1.972470, 4457 (float)0.843195, (float)1.316650, (float)2.002630, 4458 (float)1.257110, (float)1.490980, (float)1.746620, 4459 (float)0.953531, (float)1.261140, (float)1.476750, 4460 (float)1.215620, (float)1.403780, (float)1.947220, 4461 (float)0.940465, (float)1.269250, (float)1.816700, 4462 (float)1.306490, (float)1.833730, (float)2.208340, 4463 (float)1.022170, (float)1.273230, (float)1.917560, 4464 (float)0.836897, (float)1.351360, (float)1.870650, 4465 (float)1.594230, (float)1.755330, (float)1.925050, 4466 (float)1.375910, (float)1.664220, (float)2.070260, 4467 (float)1.108180, (float)1.618000, (float)2.017860, 4468 (float)1.432490, (float)1.807780, (float)2.141390, 4469 (float)0.968169, (float)1.491750, (float)1.720090, 4470 (float)1.152080, (float)1.371880, (float)1.770970, 4471 (float)1.314590, (float)1.766490, (float)1.967330, 4472 (float)0.903361, (float)1.564580, (float)2.061490, 4473 (float)1.025670, (float)1.345810, (float)1.642650, 4474 (float)1.047190, (float)1.481020, (float)1.866350, 4475 (float)1.246740, (float)1.423530, (float)1.834480, 4476 (float)1.416580, (float)1.772830, (float)2.048010, 4477 (float)1.481150, (float)1.765090, (float)2.169520, 4478 (float)0.971060, (float)1.474020, (float)2.009750, 4479 (float)1.274320, (float)1.436560, (float)1.734520, 4480 (float)1.269490, (float)1.555970, (float)1.792390, 4481 (float)1.174460, (float)1.339430, (float)1.735480, 4482 (float)1.195620, (float)1.455400, (float)1.883650, 4483 (float)0.961471, (float)1.659130, (float)2.035140, 4484 (float)0.862112, (float)1.167900, (float)1.715370, 4485 (float)1.727030, (float)1.977630, (float)2.233360, 4486 (float)1.107920, (float)1.476890, (float)2.003820, 4488 Andersen et. al. Experimental - Expires Jan. 1st, 2003 85 4489 (float)1.140570, (float)1.466090, (float)1.666980, 4490 (float)0.974254, (float)1.635430, (float)1.898170, 4491 (float)1.335570, (float)1.505850, (float)1.760070, 4492 (float)1.062830, (float)1.230500, (float)1.492350, 4493 (float)0.838003, (float)1.201550, (float)2.010510, 4494 (float)1.002010, (float)1.530100, (float)1.912670, 4495 (float)1.465640, (float)1.634720, (float)1.859480, 4496 (float)0.859433, (float)1.082070, (float)1.675250, 4497 (float)0.916879, (float)1.297520, (float)1.743140, 4498 (float)1.831510, (float)2.136670, (float)2.362780, 4499 (float)1.060400, (float)1.636130, (float)1.947960, 4500 (float)1.057040, (float)1.301630, (float)1.502360, 4501 (float)1.207690, (float)1.374960, (float)1.651790, 4502 (float)1.188870, (float)1.436060, (float)2.050280, 4503 (float)1.628560, (float)1.810320, (float)2.114100, 4504 (float)1.642270, (float)1.989170, (float)2.206450, 4505 (float)1.327970, (float)1.607950, (float)1.914560, 4506 (float)0.859655, (float)1.322800, (float)1.934300, 4507 (float)0.902344, (float)1.346090, (float)1.808110, 4508 (float)1.026910, (float)1.453460, (float)1.665640, 4509 (float)1.336420, (float)1.598920, (float)1.969740, 4510 (float)1.620610, (float)1.925410, (float)2.105720, 4511 (float)1.812060, (float)2.020100, (float)2.233460, 4512 (float)1.041350, (float)1.636020, (float)1.860820, 4513 (float)1.575540, (float)1.961290, (float)2.146850, 4514 (float)1.522740, (float)1.697010, (float)1.946440, 4515 (float)1.584310, (float)1.788870, (float)2.183180, 4516 (float)1.169440, (float)1.703480, (float)1.934130, 4517 (float)1.469060, (float)1.617360, (float)1.775930, 4518 (float)1.229640, (float)1.552460, (float)1.828420, 4519 (float)1.151050, (float)1.706680, (float)2.128580, 4520 (float)1.286520, (float)1.456160, (float)1.772170, 4521 (float)1.422780, (float)1.797460, (float)2.223560, 4522 (float)0.902610, (float)1.215380, (float)1.773280, 4523 (float)1.362020, (float)1.532790, (float)1.789620, 4524 (float)1.123760, (float)1.538750, (float)1.813570, 4525 (float)1.260440, (float)1.863340, (float)2.115610, 4526 (float)1.241310, (float)1.474700, (float)1.911100, 4527 (float)0.998321, (float)1.477200, (float)2.095140, 4528 (float)1.310860, (float)1.456070, (float)1.615460, 4529 (float)0.909781, (float)1.067590, (float)1.385890, 4530 (float)1.450790, (float)1.613170, (float)1.889390, 4531 (float)1.001860, (float)1.427500, (float)1.781650, 4532 (float)1.343080, (float)1.647250, (float)1.931230, 4533 (float)1.137480, (float)1.610540, (float)1.927670, 4534 (float)1.047410, (float)1.259320, (float)1.843240, 4535 (float)1.335000, (float)1.519920, (float)1.998130, 4536 (float)1.218640, (float)1.600500, (float)1.783180, 4537 (float)1.097100, (float)1.447780, (float)1.785570, 4538 (float)1.098600, (float)1.276740, (float)1.464330, 4539 (float)1.362150, (float)1.528600, (float)1.883980, 4540 (float)1.380760, (float)1.800930, (float)2.086540, 4541 (float)1.047910, (float)1.286860, (float)1.613890, 4543 Andersen et. al. Experimental - Expires Jan. 1st, 2003 86 4544 (float)1.499050, (float)1.728040, (float)2.108360, 4545 (float)0.976651, (float)1.247040, (float)1.984070, 4546 (float)1.245550, (float)1.410090, (float)1.656720, 4547 (float)0.911724, (float)1.286890, (float)1.549410, 4548 (float)1.283570, (float)1.643190, (float)2.021900, 4549 (float)1.176740, (float)1.507100, (float)1.838960, 4550 (float)1.035830, (float)1.345620, (float)1.553100, 4551 (float)1.149910, (float)1.466220, (float)1.795700, 4552 (float)1.134790, (float)1.364970, (float)1.632110, 4553 (float)0.949203, (float)1.712470, (float)2.178390, 4554 (float)1.495320, (float)1.649100, (float)1.814480, 4555 (float)1.531570, (float)1.924360, (float)2.095370, 4556 (float)1.231020, (float)1.394880, (float)1.589590, 4557 (float)0.992442, (float)1.306710, (float)1.605320, 4558 (float)1.001820, (float)1.146640, (float)1.331970, 4559 (float)1.770680, (float)2.051410, (float)2.316820, 4560 (float)1.449130, (float)1.932870, (float)2.123150, 4561 (float)1.108040, (float)1.335060, (float)1.519530, 4562 (float)0.976739, (float)1.157220, (float)1.650110, 4563 (float)1.238720, (float)1.582470, (float)1.874480, 4564 (float)1.037830, (float)1.485620, (float)1.775870, 4565 (float)0.911659, (float)1.276230, (float)2.022320, 4566 (float)1.022030, (float)1.198830, (float)1.612590, 4567 (float)1.204380, (float)1.416020, (float)1.620360, 4568 (float)1.528180, (float)1.893420, (float)2.148660, 4569 (float)0.989976, (float)1.313620, (float)1.849610, 4570 (float)0.918476, (float)1.516110, (float)1.764470, 4571 (float)1.134120, (float)1.302690, (float)1.552910, 4572 (float)1.301460, (float)1.474780, (float)1.832370, 4573 (float)1.260040, (float)1.432240, (float)1.615240, 4574 (float)1.445520, (float)1.628490, (float)1.936130, 4575 (float)1.175560, (float)1.412760, (float)1.722310, 4576 (float)0.981896, (float)1.419650, (float)1.727550, 4577 (float)1.309430, (float)1.526470, (float)1.823820, 4578 (float)1.184930, (float)1.682080, (float)2.021690, 4579 (float)1.040300, (float)1.515900, (float)1.716020, 4580 (float)1.616730, (float)1.852160, (float)2.022600, 4581 (float)1.056700, (float)1.240020, (float)1.651870, 4582 (float)1.268860, (float)1.520170, (float)1.958740, 4583 (float)0.904110, (float)1.527760, (float)1.975210, 4584 (float)1.634390, (float)1.799750, (float)1.983190, 4585 (float)1.475920, (float)1.705330, (float)1.887010, 4586 (float)1.121020, (float)1.545300, (float)1.962460, 4587 (float)1.104370, (float)1.273180, (float)1.618900, 4588 (float)1.439880, (float)1.673720, (float)1.856610, 4589 (float)1.195690, (float)1.451350, (float)1.826930, 4590 (float)0.987342, (float)1.299250, (float)2.068300, 4591 (float)0.908923, (float)1.381180, (float)1.883460, 4592 (float)0.890647, (float)1.429670, (float)2.142660, 4593 (float)1.449730, (float)1.623490, (float)1.817510, 4594 (float)1.476460, (float)1.648340, (float)1.907590, 4595 (float)1.504180, (float)1.947650, (float)2.295200, 4596 (float)1.351340, (float)1.950100, (float)2.181630, 4598 Andersen et. al. Experimental - Expires Jan. 1st, 2003 87 4599 (float)1.079070, (float)1.362750, (float)1.698160, 4600 (float)1.187380, (float)1.328510, (float)1.478130, 4601 (float)1.068350, (float)1.404310, (float)2.039640, 4602 (float)1.001050, (float)1.255360, (float)1.550960, 4603 (float)1.283670, (float)1.441150, (float)1.666960, 4604 (float)1.285240, (float)1.463980, (float)1.951390, 4605 (float)1.162880, (float)1.519630, (float)1.713690, 4606 (float)1.519560, (float)1.689350, (float)1.994250, 4607 (float)1.347650, (float)1.721880, (float)1.922580, 4608 (float)1.416470, (float)1.581530, (float)1.951260, 4609 (float)0.973371, (float)1.368730, (float)1.816110, 4610 (float)1.091590, (float)1.318260, (float)1.582450, 4611 (float)0.799570, (float)1.236180, (float)1.899990, 4612 (float)1.527850, (float)1.684070, (float)1.843270, 4613 (float)0.992345, (float)1.234810, (float)1.867960, 4614 (float)1.222080, (float)1.447700, (float)1.737300, 4615 (float)1.381850, (float)1.613190, (float)1.795770, 4616 (float)0.890015, (float)1.426970, (float)1.721260, 4617 (float)1.380950, (float)1.565940, (float)1.997290, 4618 (float)1.310580, (float)1.563050, (float)1.938460, 4619 (float)1.181220, (float)1.356800, (float)1.817120, 4620 (float)1.006150, (float)1.347790, (float)1.745380, 4621 (float)0.958344, (float)1.168210, (float)1.366660, 4622 (float)1.202570, (float)1.373220, (float)1.759570, 4623 (float)1.304280, (float)1.831980, (float)2.040180, 4624 (float)1.085310, (float)1.375100, (float)1.947600, 4625 (float)0.977713, (float)1.242690, (float)1.749780, 4626 (float)1.594710, (float)1.768890, (float)2.069240, 4627 (float)1.579890, (float)1.883650, (float)2.060110, 4628 (float)2.048740, (float)2.317250, (float)2.757380, 4629 (float)2.288730, (float)2.586400, (float)2.888420, 4630 (float)1.846720, (float)2.319680, (float)2.525740, 4631 (float)2.471690, (float)2.752060, (float)2.970940, 4632 (float)2.136280, (float)2.511420, (float)2.824350, 4633 (float)2.055690, (float)2.239950, (float)2.780970, 4634 (float)2.555180, (float)2.790630, (float)2.973970, 4635 (float)2.202410, (float)2.428230, (float)2.826010, 4636 (float)2.011800, (float)2.321110, (float)2.654610, 4637 (float)2.038740, (float)2.386320, (float)2.615310, 4638 (float)2.116180, (float)2.662030, (float)2.853910, 4639 (float)2.274410, (float)2.599980, (float)2.854350, 4640 (float)2.176560, (float)2.610170, (float)2.820310, 4641 (float)2.130470, (float)2.381430, (float)2.588130, 4642 (float)2.112730, (float)2.356270, (float)2.544780, 4643 (float)2.167710, (float)2.360950, (float)2.589930, 4644 (float)1.936240, (float)2.473290, (float)2.850710, 4645 (float)2.271670, (float)2.469430, (float)2.798690, 4646 (float)2.346330, (float)2.547250, (float)2.753840, 4647 (float)2.389410, (float)2.636230, (float)2.936520, 4648 (float)2.166610, (float)2.614520, (float)2.900820, 4649 (float)2.170660, (float)2.576670, (float)2.914810, 4650 (float)2.107370, (float)2.459800, (float)2.696750, 4651 (float)1.880490, (float)2.322590, (float)2.791430, 4653 Andersen et. al. Experimental - Expires Jan. 1st, 2003 88 4654 (float)2.196350, (float)2.730150, (float)2.926580, 4655 (float)2.197010, (float)2.631490, (float)2.802310, 4656 (float)1.960110, (float)2.517140, (float)2.834140, 4657 (float)2.304210, (float)2.563540, (float)2.742980, 4658 (float)2.486560, (float)2.704420, (float)2.959300, 4659 (float)2.310940, (float)2.484510, (float)2.821620, 4660 (float)1.953090, (float)2.137000, (float)2.534380, 4661 (float)2.127800, (float)2.433450, (float)2.627970, 4662 (float)2.214660, (float)2.381430, (float)2.745480, 4663 (float)1.829100, (float)2.498540, (float)2.709740, 4664 (float)2.022960, (float)2.376500, (float)2.722270, 4665 (float)2.004270, (float)2.675110, (float)2.882470, 4666 (float)1.963970, (float)2.450510, (float)2.682420, 4667 (float)2.304010, (float)2.699830, (float)2.961110, 4668 (float)2.232580, (float)2.461240, (float)2.750910, 4669 (float)2.025740, (float)2.432370, (float)2.824530, 4670 (float)2.040340, (float)2.542110, (float)2.702480, 4671 (float)1.805300, (float)2.188470, (float)2.753600, 4672 (float)1.987530, (float)2.356350, (float)2.688610, 4673 (float)2.549080, (float)2.716240, (float)2.876320, 4674 (float)2.338330, (float)2.575760, (float)2.734070, 4675 (float)2.144900, (float)2.326640, (float)2.772780, 4676 (float)2.157690, (float)2.679940, (float)2.864320, 4677 (float)2.070120, (float)2.510310, (float)2.668680, 4678 (float)2.482800, (float)2.738810, (float)2.934070, 4679 (float)2.206690, (float)2.629930, (float)2.919160, 4680 (float)1.968590, (float)2.254850, (float)2.799770, 4681 (float)2.096980, (float)2.427470, (float)2.713450, 4682 (float)2.242970, (float)2.524580, (float)2.813130, 4683 (float)2.134920, (float)2.463380, (float)2.669410, 4684 (float)2.164510, (float)2.338010, (float)2.543150, 4685 (float)2.061460, (float)2.237180, (float)2.451660, 4686 (float)1.813670, (float)2.309490, (float)2.614940, 4687 (float)2.298020, (float)2.516410, (float)2.830220, 4688 (float)2.205550, (float)2.487640, (float)2.874280, 4689 (float)2.293120, (float)2.753430, (float)2.972160, 4690 (float)2.435340, (float)2.578350, (float)2.763500, 4691 (float)2.340920, (float)2.683620, (float)2.900330, 4692 (float)2.139700, (float)2.431030, (float)2.777060, 4693 (float)2.007180, (float)2.260490, (float)2.456850, 4694 (float)2.228800, (float)2.610510, (float)2.794320, 4695 (float)2.225190, (float)2.486860, (float)2.848270, 4696 (float)2.348610, (float)2.727330, (float)2.903150, 4697 (float)2.147150, (float)2.412460, (float)2.902080, 4698 (float)2.114190, (float)2.528350, (float)2.730980, 4699 (float)2.306260, (float)2.533200, (float)2.750790, 4700 (float)2.281200, (float)2.658500, (float)2.889540, 4701 (float)2.155980, (float)2.424650, (float)2.821640, 4702 (float)2.071870, (float)2.361590, (float)2.587220, 4703 (float)2.262740, (float)2.523840, (float)2.880870, 4704 (float)2.094550, (float)2.448660, (float)2.625300, 4705 (float)2.167680, (float)2.331510, (float)2.615650, 4706 (float)2.223820, (float)2.575580, (float)2.799280, 4708 Andersen et. al. Experimental - Expires Jan. 1st, 2003 89 4709 (float)2.067650, (float)2.647290, (float)2.848600, 4710 (float)2.086560, (float)2.468600, (float)2.757330, 4711 (float)2.225200, (float)2.551430, (float)2.891560, 4712 (float)2.278900, (float)2.666240, (float)2.857610, 4713 (float)2.260770, (float)2.617670, (float)2.827060, 4714 (float)2.012750, (float)2.504070, (float)2.743240, 4715 (float)2.005320, (float)2.353590, (float)2.568660, 4716 (float)2.038950, (float)2.320210, (float)2.692700, 4717 (float)2.212380, (float)2.370030, (float)2.619720, 4718 (float)2.123460, (float)2.403540, (float)2.801330, 4719 (float)2.395850, (float)2.662610, (float)2.865960, 4720 (float)2.424860, (float)2.633920, (float)2.801250, 4721 (float)1.918430, (float)2.174590, (float)2.586400, 4722 (float)2.311380, (float)2.537890, (float)2.711010, 4723 (float)1.871640, (float)2.331600, (float)2.851460, 4724 (float)2.577430, (float)2.752470, (float)2.903360, 4725 (float)2.130370, (float)2.579770, (float)2.908140, 4726 (float)2.131180, (float)2.708840, (float)2.956390, 4727 (float)2.049920, (float)2.581050, (float)2.912140, 4728 (float)2.045610, (float)2.512850, (float)2.802380, 4729 (float)2.550800, (float)2.746390, (float)2.949920, 4730 (float)2.098570, (float)2.682270, (float)2.923480, 4731 (float)2.144070, (float)2.374860, (float)2.622270, 4732 (float)1.987600, (float)2.216910, (float)2.506850, 4733 (float)2.378370, (float)2.716700, (float)2.936940, 4734 (float)2.005570, (float)2.297840, (float)2.604860, 4735 (float)2.324160, (float)2.543650, (float)2.839660, 4736 (float)1.975010, (float)2.454380, (float)2.645140, 4737 (float)2.202830, (float)2.696980, (float)2.874960, 4738 (float)2.155220, (float)2.409440, (float)2.629570, 4739 (float)2.118170, (float)2.403200, (float)2.631310, 4740 (float)2.444540, (float)2.634210, (float)2.924450, 4741 (float)2.081960, (float)2.529830, (float)2.739070, 4742 (float)1.998050, (float)2.472820, (float)2.847670, 4743 (float)2.234440, (float)2.611360, (float)2.856570, 4744 (float)1.956690, (float)2.619800, (float)2.915950, 4745 (float)1.830570, (float)2.238770, (float)2.606930, 4746 (float)1.701180, (float)2.462970, (float)2.753250, 4747 (float)2.361940, (float)2.584710, (float)2.877430, 4748 (float)2.264230, (float)2.619120, (float)2.792350, 4749 (float)2.138720, (float)2.578190, (float)2.952350, 4750 (float)2.189900, (float)2.662080, (float)2.829470, 4751 (float)2.207790, (float)2.658210, (float)2.864340, 4752 (float)2.069170, (float)2.284860, (float)2.773650, 4753 (float)2.154460, (float)2.461280, (float)2.810120, 4754 (float)2.121920, (float)2.619390, (float)2.923930, 4755 (float)2.100880, (float)2.310800, (float)2.754890, 4756 (float)2.175740, (float)2.378320, (float)2.799060, 4757 (float)2.097940, (float)2.424090, (float)2.816840, 4758 (float)2.051670, (float)2.316600, (float)2.804780, 4759 (float)2.230740, (float)2.571790, (float)2.736590, 4760 (float)1.899370, (float)2.581420, (float)2.783640, 4761 (float)2.241390, (float)2.484530, (float)2.692370, 4763 Andersen et. al. Experimental - Expires Jan. 1st, 2003 90 4764 (float)2.061510, (float)2.250270, (float)2.516610, 4765 (float)2.053260, (float)2.232850, (float)2.682800, 4766 (float)2.243820, (float)2.540750, (float)2.734390, 4767 (float)2.101790, (float)2.514200, (float)2.878770, 4768 (float)1.994920, (float)2.311890, (float)2.698270, 4769 (float)2.083570, (float)2.519380, (float)2.934810, 4770 (float)2.055340, (float)2.382550, (float)2.856880, 4771 (float)2.051490, (float)2.573120, (float)2.735850, 4772 (float)1.996840, (float)2.466550, (float)2.761990, 4773 (float)1.725720, (float)2.171470, (float)2.749080, 4774 (float)2.192760, (float)2.619800, (float)2.843750, 4775 (float)2.256950, (float)2.489730, (float)2.853380, 4776 (float)2.105650, (float)2.528790, (float)2.770720, 4777 (float)1.975530, (float)2.255920, (float)2.593580, 4778 (float)1.948970, (float)2.479980, (float)2.900250, 4779 (float)2.129700, (float)2.577130, (float)2.829810, 4780 (float)2.072230, (float)2.519000, (float)2.706250, 4781 (float)2.370530, (float)2.649580, (float)2.844360, 4782 (float)1.941100, (float)2.523150, (float)2.694560, 4783 (float)2.209110, (float)2.617650, (float)2.766630, 4784 (float)2.069450, (float)2.509980, (float)2.769520, 4785 (float)2.358310, (float)2.537970, (float)2.697980, 4786 (float)1.828510, (float)2.366970, (float)2.645440, 4787 (float)2.190790, (float)2.352830, (float)2.660590, 4788 (float)2.127830, (float)2.324500, (float)2.875890, 4789 (float)2.175690, (float)2.430640, (float)2.719930, 4790 (float)2.393420, (float)2.570670, (float)2.845540, 4791 (float)2.132610, (float)2.481780, (float)2.862760, 4792 (float)2.130800, (float)2.499350, (float)2.732160, 4793 (float)1.980390, (float)2.172490, (float)2.642710, 4794 (float)2.090350, (float)2.330090, (float)2.797400, 4795 (float)2.190050, (float)2.538080, (float)2.800380, 4796 (float)2.127150, (float)2.442270, (float)2.805610, 4797 (float)2.290190, (float)2.460880, (float)2.820430, 4798 (float)1.998260, (float)2.530360, (float)2.713390, 4799 (float)2.534240, (float)2.779070, (float)2.934970, 4800 (float)2.189160, (float)2.396030, (float)2.770140, 4801 (float)2.510930, (float)2.753740, (float)2.963870, 4802 (float)2.232470, (float)2.520800, (float)2.866850, 4803 (float)2.579490, (float)2.776390, (float)2.936780, 4804 (float)2.127660, (float)2.417180, (float)2.838860, 4805 (float)2.345410, (float)2.560840, (float)2.825630, 4806 (float)1.760920, (float)2.060870, (float)2.662840, 4807 (float)2.069310, (float)2.483940, (float)2.832420, 4808 (float)2.131440, (float)2.444880, (float)2.884400, 4809 (float)2.234290, (float)2.509370, (float)2.830600, 4810 (float)2.079620, (float)2.332740, (float)2.516680, 4811 (float)2.637040, (float)2.782400, (float)2.911730, 4812 (float)1.937800, (float)2.402920, (float)2.751620, 4813 (float)2.112690, (float)2.530840, (float)2.835370, 4814 (float)2.009060, (float)2.194690, (float)2.706250, 4815 (float)2.162280, (float)2.543990, (float)2.854650, 4816 (float)1.952350, (float)2.565720, (float)2.798240, 4818 Andersen et. al. Experimental - Expires Jan. 1st, 2003 91 4819 (float)2.291270, (float)2.500730, (float)2.714230, 4820 (float)2.120480, (float)2.378480, (float)2.838870, 4821 (float)2.506980, (float)2.723970, (float)2.891340, 4822 (float)2.129840, (float)2.614510, (float)2.794890, 4823 (float)1.893930, (float)2.630220, (float)2.877650, 4824 (float)2.287900, (float)2.554680, (float)2.893630, 4825 (float)1.933940, (float)2.577530, (float)2.837830, 4826 (float)1.928510, (float)2.128140, (float)2.419080, 4827 (float)2.103420, (float)2.536970, (float)2.688000, 4828 (float)1.920530, (float)2.570760, (float)2.894760, 4829 (float)2.289110, (float)2.628810, (float)2.854990, 4830 (float)2.333580, (float)2.496520, (float)2.707430, 4831 (float)1.978600, (float)2.359290, (float)2.536720, 4832 (float)1.763160, (float)2.461970, (float)2.707400, 4833 (float)1.793170, (float)2.272810, (float)2.516600, 4834 (float)2.494240, (float)2.670350, (float)2.913760, 4835 (float)1.935560, (float)2.293610, (float)2.813380, 4836 (float)1.916210, (float)2.625620, (float)2.827450, 4837 (float)1.720300, (float)2.370480, (float)2.749520, 4838 (float)2.047480, (float)2.532800, (float)2.741200, 4839 (float)2.150940, (float)2.398130, (float)2.786920, 4840 (float)2.113150, (float)2.469940, (float)2.732080, 4841 (float)1.651190, (float)2.287820, (float)2.846120, 4842 (float)1.960130, (float)2.249240, (float)2.712060, 4843 (float)1.933890, (float)2.408250, (float)2.642530, 4844 (float)2.010840, (float)2.440730, (float)2.917350, 4845 (float)2.037110, (float)2.365700, (float)2.679720, 4846 (float)1.863570, (float)2.555260, (float)2.858030, 4847 (float)2.100850, (float)2.273150, (float)2.754400, 4848 (float)1.871680, (float)2.172250, (float)2.627210, 4849 (float)2.127580, (float)2.414450, (float)2.748960, 4850 (float)2.187730, (float)2.485050, (float)2.847440, 4851 (float)2.174860, (float)2.393540, (float)2.666200, 4852 (float)2.518020, (float)2.753310, (float)2.918060, 4853 (float)2.313470, (float)2.556780, (float)2.777150, 4854 (float)2.068350, (float)2.282420, (float)2.675170, 4855 (float)2.191670, (float)2.367210, (float)2.831230, 4856 (float)2.307050, (float)2.595800, (float)2.855470, 4857 (float)1.960400, (float)2.435690, (float)2.784700, 4858 (float)2.201480, (float)2.435830, (float)2.704300, 4859 (float)2.042490, (float)2.371620, (float)2.768570, 4860 (float)2.037700, (float)2.490350, (float)2.653020, 4861 (float)2.147170, (float)2.382410, (float)2.697780, 4862 (float)2.182570, (float)2.493020, (float)2.816750, 4863 (float)1.987270, (float)2.162200, (float)2.480690, 4864 (float)1.912520, (float)2.196390, (float)2.677240, 4865 (float)2.165590, (float)2.363920, (float)2.690460, 4866 (float)2.126310, (float)2.365200, (float)2.796650, 4867 (float)2.032710, (float)2.411460, (float)2.686550, 4868 (float)2.256350, (float)2.722750, (float)2.912670, 4869 (float)2.188020, (float)2.595940, (float)2.793570, 4870 (float)2.150080, (float)2.374800, (float)2.829260, 4871 (float)1.713320, (float)2.475420, (float)2.883860, 4873 Andersen et. al. Experimental - Expires Jan. 1st, 2003 92 4874 (float)2.110010, (float)2.367920, (float)2.650010, 4875 (float)2.105430, (float)2.330800, (float)2.625790, 4876 (float)2.097680, (float)2.604630, (float)2.777830, 4877 (float)2.030290, (float)2.348270, (float)2.522960, 4878 (float)2.184530, (float)2.471090, (float)2.623380, 4879 (float)2.112610, (float)2.575100, (float)2.854970, 4880 (float)2.072430, (float)2.238830, (float)2.580140, 4881 (float)2.178510, (float)2.403690, (float)2.830760, 4882 (float)2.002600, (float)2.224150, (float)2.669590, 4883 (float)1.771730, (float)2.383770, (float)2.632800, 4884 (float)1.925550, (float)2.415680, (float)2.704440, 4885 (float)1.737800, (float)2.351420, (float)2.807040, 4886 (float)2.060170, (float)2.283270, (float)2.868400, 4887 (float)2.181890, (float)2.434500, (float)2.631860, 4888 (float)2.215720, (float)2.499410, (float)2.697390, 4889 (float)2.417270, (float)2.573080, (float)2.814330, 4890 (float)2.397870, (float)2.600700, (float)2.829790, 4891 (float)1.957940, (float)2.378580, (float)2.808630, 4892 (float)2.161760, (float)2.505590, (float)2.934000, 4893 (float)2.099450, (float)2.501310, (float)2.819460, 4894 (float)1.913220, (float)2.424670, (float)2.871860, 4895 (float)1.824690, (float)2.269670, (float)2.817580, 4896 (float)1.815740, (float)2.448210, (float)2.799940, 4897 (float)2.067800, (float)2.425860, (float)2.806280, 4898 (float)2.043550, (float)2.389360, (float)2.817120, 4899 (float)2.073260, (float)2.437720, (float)2.912230, 4900 (float)2.137390, (float)2.515670, (float)2.859440, 4901 (float)2.259500, (float)2.586120, (float)2.741880, 4902 (float)2.158920, (float)2.325450, (float)2.697090, 4903 (float)2.211250, (float)2.455300, (float)2.843830, 4904 (float)1.762570, (float)2.306720, (float)2.681320, 4905 (float)2.040940, (float)2.447900, (float)2.691960, 4906 (float)2.343080, (float)2.614510, (float)2.863540, 4907 (float)2.235920, (float)2.459920, (float)2.678630, 4908 (float)2.226880, (float)2.638570, (float)2.831750, 4909 (float)2.294430, (float)2.605800, (float)2.792040, 4910 (float)2.089770, (float)2.582840, (float)2.942390, 4911 (float)2.518640, (float)2.714670, (float)2.936130, 4912 (float)2.165760, (float)2.342320, (float)2.806590, 4913 (float)2.026240, (float)2.274400, (float)2.770510, 4914 (float)2.454500, (float)2.670710, (float)2.943930, 4915 (float)2.006460, (float)2.266080, (float)2.532030, 4916 (float)2.254850, (float)2.506730, (float)2.911910, 4917 (float)2.320720, (float)2.628590, (float)2.947530, 4918 (float)2.068360, (float)2.291180, (float)2.560180, 4919 (float)1.978230, (float)2.205220, (float)2.758730, 4920 (float)2.219570, (float)2.426810, (float)2.675360, 4921 (float)2.039920, (float)2.272530, (float)2.823210, 4922 (float)1.638960, (float)2.194860, (float)2.749980, 4923 (float)2.123310, (float)2.483630, (float)2.780580, 4924 (float)2.059750, (float)2.435900, (float)2.742800, 4925 (float)2.017980, (float)2.209490, (float)2.798770, 4926 (float)2.321400, (float)2.591730, (float)2.878050, 4928 Andersen et. al. Experimental - Expires Jan. 1st, 2003 93 4929 (float)1.869040, (float)2.470400, (float)2.871210, 4930 (float)2.069800, (float)2.576390, (float)2.803600, 4931 (float)2.224870, (float)2.519080, (float)2.721590, 4932 (float)2.471130, (float)2.666760, (float)2.831910, 4933 (float)2.061940, (float)2.481910, (float)2.788130, 4934 (float)2.066360, (float)2.348260, (float)2.711530, 4935 (float)2.262760, (float)2.542610, (float)2.704600, 4936 (float)1.725780, (float)2.316300, (float)2.873900, 4937 (float)2.160030, (float)2.653490, (float)2.936830, 4938 (float)1.646820, (float)2.401750, (float)2.717360, 4939 (float)2.321960, (float)2.498120, (float)2.860240, 4940 (float)1.973970, (float)2.306280, (float)2.856460, 4941 (float)2.204020, (float)2.527920, (float)2.741380, 4942 (float)2.115370, (float)2.462960, (float)2.929780, 4943 (float)2.334360, (float)2.514090, (float)2.826120, 4944 (float)1.802840, (float)2.295510, (float)2.881040, 4945 (float)2.078880, (float)2.413070, (float)2.625620, 4946 (float)2.027540, (float)2.635280, (float)2.901230, 4947 (float)2.153350, (float)2.496310, (float)2.799630, 4948 (float)2.191640, (float)2.592810, (float)2.737780, 4949 (float)2.591790, (float)2.809100, (float)2.958260, 4950 (float)2.228480, (float)2.566360, (float)2.828660, 4951 (float)2.275350, (float)2.654600, (float)2.955230, 4952 (float)2.151240, (float)2.406510, (float)2.718820, 4953 (float)2.261760, (float)2.469480, (float)2.721200, 4954 (float)2.414520, (float)2.706840, (float)2.927450, 4955 (float)2.111090, (float)2.389340, (float)2.766370, 4956 (float)1.803840, (float)2.157280, (float)2.660590, 4957 (float)2.345160, (float)2.662290, (float)2.817970, 4958 (float)1.775040, (float)2.385550, (float)2.900340, 4959 (float)2.430630, (float)2.601890, (float)2.891940, 4960 (float)2.341270, (float)2.707430, (float)2.938600, 4961 (float)2.006640, (float)2.470370, (float)2.630700, 4962 (float)2.280690, (float)2.584320, (float)2.819020, 4963 (float)1.976660, (float)2.607440, (float)2.819140, 4964 (float)1.999030, (float)2.359560, (float)2.820050, 4965 (float)2.243520, (float)2.614960, (float)2.893510, 4966 (float)1.820620, (float)2.366430, (float)2.580840, 4967 (float)2.064190, (float)2.357980, (float)2.803410, 4968 (float)2.036330, (float)2.257560, (float)2.581400, 4969 (float)2.166400, (float)2.541010, (float)2.682560, 4970 (float)2.364160, (float)2.670420, (float)2.926520, 4971 (float)2.036430, (float)2.207520, (float)2.626570, 4972 (float)2.214870, (float)2.434990, (float)2.613290, 4973 (float)1.756340, (float)2.246470, (float)2.832310, 4974 (float)1.939450, (float)2.263400, (float)2.542840, 4975 (float)2.375060, (float)2.613060, (float)2.857430, 4976 (float)1.971200, (float)2.515080, (float)2.738810, 4977 (float)2.033060, (float)2.409490, (float)2.791180, 4978 (float)2.168570, (float)2.515650, (float)2.784360, 4979 (float)1.834060, (float)2.530500, (float)2.908630, 4980 (float)1.827270, (float)2.420940, (float)2.865740, 4981 (float)2.128880, (float)2.513670, (float)2.667950, 4983 Andersen et. al. Experimental - Expires Jan. 1st, 2003 94 4984 (float)2.004800, (float)2.392470, (float)2.597820, 4985 (float)2.150780, (float)2.445210, (float)2.598960, 4986 (float)2.012040, (float)2.372340, (float)2.642430, 4987 (float)2.069650, (float)2.419140, (float)2.842270, 4988 (float)2.216490, (float)2.529180, (float)2.785940, 4989 (float)2.191340, (float)2.605340, (float)2.947980, 4990 (float)2.273790, (float)2.471220, (float)2.758910, 4991 (float)2.098100, (float)2.373250, (float)2.604420, 4992 (float)2.030010, (float)2.536550, (float)2.768290, 4993 (float)1.880050, (float)2.203280, (float)2.752050, 4994 (float)2.011760, (float)2.366250, (float)2.867380, 4995 (float)1.854290, (float)2.526400, (float)2.810090, 4996 (float)2.068580, (float)2.480290, (float)2.698870, 4997 (float)2.148420, (float)2.697940, (float)2.906770, 4998 (float)2.250040, (float)2.539140, (float)2.838570, 4999 (float)1.693720, (float)2.329360, (float)2.689660, 5000 (float)2.388240, (float)2.712690, (float)2.882490, 5001 (float)2.151900, (float)2.404100, (float)2.859370, 5002 (float)2.481590, (float)2.775840, (float)2.941590, 5003 (float)2.379180, (float)2.623610, (float)2.895280, 5004 (float)2.110910, (float)2.440820, (float)2.659540, 5005 (float)1.855140, (float)2.388550, (float)2.776820, 5006 (float)2.037240, (float)2.688040, (float)2.927410, 5007 (float)2.232910, (float)2.398420, (float)2.778220, 5008 (float)2.125680, (float)2.535140, (float)2.924120, 5009 (float)2.126830, (float)2.540690, (float)2.796170, 5010 (float)1.866840, (float)2.551500, (float)2.743770, 5011 (float)2.317050, (float)2.622090, (float)2.856340, 5012 (float)2.110700, (float)2.364380, (float)2.691400, 5013 (float)2.365920, (float)2.728520, (float)2.973010, 5014 (float)2.089070, (float)2.266560, (float)2.701080, 5015 (float)2.297810, (float)2.645920, (float)2.788520, 5016 (float)1.842430, (float)2.447220, (float)2.921220, 5017 (float)2.173480, (float)2.447530, (float)2.770820, 5018 (float)1.951360, (float)2.198690, (float)2.708430, 5019 (float)2.027100, (float)2.569420, (float)2.789300, 5020 (float)2.084500, (float)2.406730, (float)2.745120, 5021 (float)2.238050, (float)2.443200, (float)2.650840, 5022 (float)2.105300, (float)2.320190, (float)2.710880, 5023 (float)2.104750, (float)2.499740, (float)2.753420, 5024 (float)2.361890, (float)2.596950, (float)2.766470, 5025 (float)2.275480, (float)2.562820, (float)2.797100, 5026 (float)2.189370, (float)2.399350, (float)2.698030, 5027 (float)2.154010, (float)2.583530, (float)2.800600, 5028 (float)2.068890, (float)2.334320, (float)2.845660, 5029 (float)2.054520, (float)2.585870, (float)2.767920, 5030 (float)2.232370, (float)2.433090, (float)2.730020, 5031 (float)2.386460, (float)2.637000, (float)2.812210, 5032 (float)2.030080, (float)2.473240, (float)2.816960, 5033 (float)1.935110, (float)2.139370, (float)2.648500, 5034 (float)2.097090, (float)2.458320, (float)2.794030, 5035 (float)2.201130, (float)2.412960, (float)2.731230, 5036 (float)2.129360, (float)2.436760, (float)2.720660, 5038 Andersen et. al. Experimental - Expires Jan. 1st, 2003 95 5039 (float)2.317210, (float)2.501160, (float)2.672090, 5040 (float)1.933560, (float)2.219210, (float)2.779500, 5041 (float)2.150730, (float)2.576010, (float)2.741880, 5042 (float)2.090840, (float)2.282790, (float)2.601830, 5043 (float)1.900690, (float)2.318600, (float)2.723750, 5044 (float)2.356830, (float)2.677600, (float)2.958470, 5045 (float)2.325280, (float)2.498130, (float)2.786350, 5046 (float)2.130340, (float)2.368790, (float)2.880800, 5047 (float)1.967760, (float)2.549010, (float)2.896020, 5048 (float)2.047370, (float)2.522070, (float)2.906250, 5049 (float)1.997000, (float)2.502760, (float)2.933240, 5050 (float)2.220570, (float)2.547020, (float)2.805440, 5051 (float)2.177240, (float)2.383350, (float)2.730130, 5052 (float)2.143360, (float)2.378510, (float)2.661600, 5053 (float)2.049420, (float)2.464900, (float)2.756200, 5054 (float)2.300300, (float)2.649110, (float)2.912820, 5055 (float)1.737650, (float)2.577700, (float)2.916710, 5056 (float)2.301620, (float)2.464930, (float)2.774690, 5057 (float)2.227550, (float)2.502670, (float)2.796500, 5058 (float)2.220380, (float)2.551290, (float)2.760530, 5059 (float)1.896490, (float)2.171960, (float)2.483510, 5060 (float)2.063210, (float)2.597700, (float)2.840080, 5061 (float)2.318750, (float)2.630010, (float)2.819240, 5062 (float)2.119320, (float)2.454040, (float)2.768940, 5063 (float)1.999310, (float)2.318310, (float)2.903440, 5064 (float)2.247260, (float)2.677320, (float)2.836300, 5065 (float)2.407810, (float)2.739740, (float)2.951580, 5066 (float)1.872610, (float)2.326710, (float)2.659000, 5067 (float)1.715530, (float)2.417070, (float)2.676050, 5068 (float)1.818020, (float)2.168320, (float)2.537510, 5069 (float)2.226880, (float)2.466840, (float)2.623660, 5070 (float)2.272820, (float)2.489180, (float)2.675940, 5071 (float)2.208000, (float)2.679740, (float)2.911990, 5072 (float)2.295910, (float)2.469510, (float)2.637510, 5073 (float)2.051190, (float)2.477030, (float)2.921170, 5074 (float)1.952180, (float)2.317870, (float)2.515360, 5075 (float)2.350640, (float)2.565660, (float)2.784420, 5076 (float)2.100150, (float)2.301770, (float)2.659270, 5077 (float)2.532200, (float)2.818850, (float)2.992860, 5078 (float)2.202350, (float)2.453610, (float)2.881170, 5079 (float)2.235420, (float)2.491380, (float)2.724960, 5080 (float)1.990530, (float)2.593810, (float)2.779950, 5081 (float)2.031900, (float)2.202370, (float)2.533000, 5082 (float)2.170810, (float)2.428980, (float)2.795020, 5083 (float)2.207420, (float)2.518200, (float)2.817360, 5084 (float)1.807190, (float)2.372170, (float)2.766840, 5085 (float)2.144760, (float)2.493540, (float)2.649890, 5086 (float)2.104240, (float)2.599350, (float)2.890080, 5087 (float)2.046810, (float)2.454000, (float)2.846520, 5088 (float)2.286810, (float)2.575300, (float)2.857850, 5089 (float)1.809340, (float)2.441170, (float)2.665070, 5090 (float)2.336820, (float)2.521770, (float)2.734530, 5091 (float)2.110050, (float)2.399170, (float)2.913700, 5093 Andersen et. al. Experimental - Expires Jan. 1st, 2003 96 5094 (float)1.779550, (float)2.254900, (float)2.735180, 5095 (float)1.904110, (float)2.302900, (float)2.501960, 5096 (float)2.189960, (float)2.559740, (float)2.746960, 5097 (float)2.204710, (float)2.523430, (float)2.678360, 5098 (float)1.998990, (float)2.434160, (float)2.600750, 5099 (float)2.048330, (float)2.393470, (float)2.915230, 5100 (float)2.354940, (float)2.531160, (float)2.798480, 5101 (float)2.076050, (float)2.453440, (float)2.869880, 5102 (float)2.019820, (float)2.296560, (float)2.731870, 5103 (float)2.212150, (float)2.381470, (float)2.669610, 5104 (float)1.756590, (float)2.420090, (float)2.764200, 5105 (float)2.069500, (float)2.635220, (float)2.920840, 5106 (float)1.930180, (float)2.444810, (float)2.756920, 5107 (float)2.319620, (float)2.745430, (float)2.936240, 5108 (float)1.921950, (float)2.347380, (float)2.625080, 5109 (float)1.918380, (float)2.265250, (float)2.679840, 5110 (float)2.237510, (float)2.505760, (float)2.655880, 5111 (float)2.264260, (float)2.675860, (float)2.920370, 5112 (float)1.979590, (float)2.438850, (float)2.880510, 5113 (float)2.089070, (float)2.382200, (float)2.817440, 5114 (float)1.919830, (float)2.528900, (float)2.860350, 5115 (float)2.464520, (float)2.630170, (float)2.834610, 5116 (float)1.853660, (float)2.340580, (float)2.739840, 5117 (float)2.107400, (float)2.404060, (float)2.867350, 5118 (float)2.187100, (float)2.739420, (float)2.974780, 5119 (float)2.522510, (float)2.648430, (float)2.821420, 5120 (float)2.312650, (float)2.624230, (float)2.888670, 5121 (float)2.272930, (float)2.540990, (float)2.815630, 5122 (float)2.020730, (float)2.343750, (float)2.608850, 5123 (float)2.247880, (float)2.431360, (float)2.697310, 5124 (float)2.132230, (float)2.467940, (float)2.622330, 5125 (float)1.825410, (float)2.439090, (float)2.738710, 5126 (float)1.883380, (float)2.303930, (float)2.579420, 5127 (float)2.319920, (float)2.495240, (float)2.748130, 5128 (float)2.370430, (float)2.598700, (float)2.810490, 5129 (float)2.048690, (float)2.398390, (float)2.654000, 5130 (float)2.120450, (float)2.307220, (float)2.793400, 5131 (float)2.469930, (float)2.738620, (float)2.896240, 5132 (float)2.301350, (float)2.605110, (float)2.754250, 5133 (float)1.919300, (float)2.478620, (float)2.796980, 5134 (float)2.179850, (float)2.504740, (float)2.655770, 5135 (float)2.061420, (float)2.433770, (float)2.654180, 5136 (float)2.042790, (float)2.624130, (float)2.960960, 5137 (float)2.231390, (float)2.543720, (float)2.930360, 5138 (float)2.338470, (float)2.646330, (float)2.856110, 5139 (float)2.012830, (float)2.544550, (float)2.897650, 5140 (float)2.075890, (float)2.409570, (float)2.883460, 5141 (float)1.941100, (float)2.348420, (float)2.886790, 5142 (float)2.179800, (float)2.497670, (float)2.898620, 5143 (float)2.340140, (float)2.525970, (float)2.866060, 5144 (float)2.050740, (float)2.456430, (float)2.617570, 5145 (float)2.197230, (float)2.537490, (float)2.865670, 5146 (float)2.243100, (float)2.417240, (float)2.810580, 5148 Andersen et. al. Experimental - Expires Jan. 1st, 2003 97 5149 (float)2.079450, (float)2.366310, (float)2.670300, 5150 (float)2.474220, (float)2.700250, (float)2.870700, 5151 (float)2.095440, (float)2.259480, (float)2.647720, 5152 (float)1.919190, (float)2.464130, (float)2.641960, 5153 (float)2.388170, (float)2.581400, (float)2.916040, 5154 (float)2.242850, (float)2.650490, (float)2.801560, 5155 (float)2.056470, (float)2.260180, (float)2.733090, 5156 (float)2.185200, (float)2.416350, (float)2.889410, 5157 (float)1.842490, (float)2.274490, (float)2.756780, 5158 (float)1.976270, (float)2.396580, (float)2.564700, 5159 (float)1.884120, (float)2.432680, (float)2.779360, 5160 (float)1.938450, (float)2.357290, (float)2.719650, 5161 (float)2.028980, (float)2.503390, (float)2.838550, 5162 (float)2.116230, (float)2.572140, (float)2.800020, 5163 (float)1.924870, (float)2.421290, (float)2.811340, 5164 (float)2.176820, (float)2.435630, (float)2.860100, 5165 (float)1.794610, (float)2.505220, (float)2.851570, 5166 (float)1.843340, (float)2.588860, (float)2.828330, 5167 (float)2.124550, (float)2.478030, (float)2.816140, 5168 (float)2.319580, (float)2.659720, (float)2.878040, 5169 (float)1.895040, (float)2.514930, (float)2.717030, 5170 (float)2.245470, (float)2.398920, (float)2.690140, 5171 (float)1.987240, (float)2.536160, (float)2.773840, 5172 (float)1.672390, (float)2.392740, (float)2.833630, 5173 (float)2.028750, (float)2.503320, (float)2.689480, 5174 (float)2.525860, (float)2.689080, (float)2.893940, 5175 (float)2.138600, (float)2.616690, (float)2.829870, 5176 (float)2.640050, (float)2.826290, (float)2.961280, 5177 (float)1.949810, (float)2.203940, (float)2.442330, 5178 (float)2.329550, (float)2.592110, (float)2.829680, 5179 (float)2.226680, (float)2.431940, (float)2.892530, 5180 (float)1.623790, (float)2.279820, (float)2.738880, 5181 (float)2.093020, (float)2.407790, (float)2.665040, 5182 (float)2.150660, (float)2.404880, (float)2.579520, 5183 (float)2.093280, (float)2.490500, (float)2.792540, 5184 (float)1.980750, (float)2.647560, (float)2.966020, 5185 (float)2.095350, (float)2.562180, (float)2.781240, 5186 (float)2.606450, (float)2.735590, (float)2.871350, 5187 (float)2.125050, (float)2.546290, (float)2.876840, 5188 (float)2.178530, (float)2.464170, (float)2.716190, 5189 (float)1.862500, (float)2.264840, (float)2.878230, 5190 (float)2.073820, (float)2.399870, (float)2.785250, 5191 (float)1.993410, (float)2.409490, (float)2.800740, 5192 (float)2.248080, (float)2.708580, (float)2.955870, 5193 (float)2.188950, (float)2.533030, (float)2.766940, 5194 (float)2.069120, (float)2.581430, (float)2.877120, 5195 (float)2.287770, (float)2.481800, (float)2.739190, 5196 (float)2.004900, (float)2.590300, (float)2.916050, 5197 (float)2.479030, (float)2.626360, (float)2.795540, 5198 (float)2.117430, (float)2.587570, (float)2.745650, 5199 (float)2.091880, (float)2.640270, (float)2.817550, 5200 (float)2.162470, (float)2.493250, (float)2.724560, 5201 (float)2.430450, (float)2.653680, (float)2.842900, 5203 Andersen et. al. Experimental - Expires Jan. 1st, 2003 98 5204 (float)2.160710, (float)2.638920, (float)2.850730, 5205 (float)2.405560, (float)2.690540, (float)2.960160, 5206 (float)2.339710, (float)2.609040, (float)2.898930, 5207 (float)2.272910, (float)2.436020, (float)2.793150, 5208 (float)2.103290, (float)2.488530, (float)2.853680, 5209 (float)2.434520, (float)2.607750, (float)2.841990, 5210 (float)2.108030, (float)2.486030, (float)2.644280, 5211 (float)2.201920, (float)2.433990, (float)2.784830, 5212 (float)2.184280, (float)2.492770, (float)2.699960, 5213 (float)2.281660, (float)2.574430, (float)2.772350, 5214 (float)2.226460, (float)2.500610, (float)2.749740, 5215 (float)2.121000, (float)2.314220, (float)2.519080, 5216 (float)2.203340, (float)2.514580, (float)2.845480, 5217 (float)2.225320, (float)2.549950, (float)2.704210, 5218 (float)2.040230, (float)2.428130, (float)2.596970, 5219 (float)1.950040, (float)2.489350, (float)2.661720, 5220 (float)1.769040, (float)2.521160, (float)2.743320, 5221 (float)2.332320, (float)2.552550, (float)2.892480, 5222 (float)2.194670, (float)2.375930, (float)2.559450, 5223 (float)2.012910, (float)2.260560, (float)2.636340, 5224 (float)2.168220, (float)2.456100, (float)2.911280, 5225 (float)1.881550, (float)2.233230, (float)2.546330, 5226 (float)2.117970, (float)2.510900, (float)2.706530, 5227 (float)2.031600, (float)2.309960, (float)2.559550, 5228 (float)2.041020, (float)2.340170, (float)2.890440, 5229 (float)2.403130, (float)2.753540, (float)2.920710, 5230 (float)2.096010, (float)2.461180, (float)2.828610, 5231 (float)1.944590, (float)2.408720, (float)2.919000, 5232 (float)2.283520, (float)2.529950, (float)2.729870, 5233 (float)2.237620, (float)2.479860, (float)2.884930, 5234 (float)2.167040, (float)2.415110, (float)2.756440, 5235 (float)2.123220, (float)2.332950, (float)2.678470, 5236 (float)2.037510, (float)2.468120, (float)2.719240, 5237 (float)2.011340, (float)2.468160, (float)2.675540, 5238 (float)2.003020, (float)2.506660, (float)2.799520, 5239 (float)2.091590, (float)2.558080, (float)2.721850, 5240 (float)2.054590, (float)2.341720, (float)2.638800, 5241 (float)2.002890, (float)2.257500, (float)2.821960, 5242 (float)2.290380, (float)2.546260, (float)2.837110, 5243 (float)1.819140, (float)2.320120, (float)2.705720, 5244 (float)1.878430, (float)2.372950, (float)2.614910, 5245 (float)2.274760, (float)2.494080, (float)2.823500, 5246 (float)2.030830, (float)2.492710, (float)2.772380, 5247 (float)2.203040, (float)2.464890, (float)2.690880, 5248 (float)1.909870, (float)2.374890, (float)2.772650, 5249 (float)2.253750, (float)2.601970, (float)2.767410, 5250 (float)1.767820, (float)2.113720, (float)2.757050, 5251 (float)1.779390, (float)2.384160, (float)2.705150, 5252 (float)2.267230, (float)2.566180, (float)2.834860, 5253 (float)2.152250, (float)2.439060, (float)2.742910, 5254 (float)2.221750, (float)2.402100, (float)2.588350, 5255 (float)1.990780, (float)2.390220, (float)2.728480, 5256 (float)2.150420, (float)2.521260, (float)2.708040, 5258 Andersen et. al. Experimental - Expires Jan. 1st, 2003 99 5259 (float)2.192460, (float)2.559380, (float)2.715150, 5260 (float)2.244110, (float)2.443540, (float)2.860530, 5261 (float)1.977830, (float)2.414760, (float)2.660520, 5262 (float)2.212580, (float)2.572320, (float)2.852470, 5263 (float)1.922510, (float)2.469430, (float)2.698810, 5264 (float)2.142520, (float)2.614810, (float)2.869180, 5265 (float)2.168040, (float)2.562100, (float)2.816920, 5266 (float)2.065210, (float)2.492190, (float)2.875570, 5267 (float)2.139260, (float)2.523030, (float)2.760250, 5268 (float)1.948580, (float)2.684050, (float)2.918130, 5269 (float)2.240660, (float)2.657560, (float)2.887210, 5270 (float)2.061070, (float)2.253340, (float)2.634030, 5271 (float)2.206180, (float)2.399670, (float)2.807220, 5272 (float)2.243520, (float)2.406810, (float)2.733680, 5273 (float)2.173690, (float)2.518700, (float)2.825170, 5274 (float)2.200680, (float)2.498680, (float)2.729350, 5275 (float)2.212200, (float)2.484710, (float)2.662210, 5276 (float)1.933670, (float)2.476240, (float)2.944380, 5277 (float)2.138010, (float)2.336420, (float)2.827970, 5278 (float)2.449400, (float)2.665290, (float)2.888460, 5279 (float)2.201770, (float)2.447050, (float)2.742620, 5280 (float)1.933990, (float)2.489250, (float)2.739340, 5281 (float)1.951330, (float)2.371030, (float)2.666670, 5282 (float)2.322460, (float)2.668200, (float)2.934420, 5283 (float)2.069020, (float)2.456890, (float)2.811640, 5284 (float)2.412580, (float)2.683230, (float)2.891070, 5285 (float)1.952230, (float)2.430100, (float)2.604040, 5286 (float)2.303690, (float)2.521380, (float)2.803540, 5287 (float)1.719960, (float)2.221220, (float)2.671910, 5288 (float)2.128620, (float)2.550720, (float)2.748430, 5289 (float)2.078630, (float)2.280000, (float)2.818630, 5290 (float)2.153930, (float)2.591770, (float)2.839890, 5291 (float)1.979030, (float)2.302590, (float)2.755940, 5292 (float)2.489460, (float)2.658540, (float)2.869650, 5293 (float)1.972990, (float)2.387010, (float)2.620950, 5294 (float)2.077640, (float)2.327720, (float)2.675070, 5295 (float)2.082000, (float)2.439220, (float)2.590480, 5296 (float)1.878160, (float)2.402890, (float)2.828260, 5297 (float)2.210030, (float)2.484850, (float)2.818540, 5298 (float)2.011310, (float)2.201570, (float)2.435170, 5299 (float)2.024680, (float)2.619480, (float)2.860570, 5300 (float)2.055120, (float)2.697150, (float)2.971950, 5301 (float)2.166450, (float)2.417210, (float)2.682750, 5302 (float)2.177920, (float)2.483150, (float)2.783500, 5303 (float)2.266470, (float)2.533130, (float)2.760250, 5304 (float)2.150760, (float)2.494570, (float)2.763640, 5305 (float)2.437260, (float)2.690270, (float)2.854470, 5306 (float)1.991080, (float)2.546950, (float)2.816620, 5307 (float)1.864560, (float)2.436020, (float)2.698850, 5308 (float)2.073380, (float)2.300970, (float)2.722310, 5309 (float)2.172140, (float)2.475080, (float)2.670220, 5310 (float)2.089010, (float)2.370850, (float)2.730880, 5311 (float)2.328100, (float)2.542420, (float)2.803250, 5313 Andersen et. al. Experimental - Expires Jan. 1st, 2003 100 5314 (float)2.220320, (float)2.400620, (float)2.704800, 5315 (float)2.014850, (float)2.447420, (float)2.788830, 5316 (float)2.131500, (float)2.553570, (float)2.708210, 5317 (float)2.012700, (float)2.344430, (float)2.776130, 5318 (float)2.192140, (float)2.546730, (float)2.831340, 5319 (float)2.072720, (float)2.480580, (float)2.636940, 5320 (float)1.964060, (float)2.452520, (float)2.725030, 5321 (float)2.139670, (float)2.480830, (float)2.698140, 5322 (float)2.252490, (float)2.577270, (float)2.898290, 5323 (float)2.277850, (float)2.567290, (float)2.712410, 5324 (float)2.014630, (float)2.419530, (float)2.640900, 5325 (float)2.228100, (float)2.587740, (float)2.876270, 5326 (float)2.361370, (float)2.644920, (float)2.877190, 5327 (float)2.151410, (float)2.455580, (float)2.704840, 5328 (float)2.191960, (float)2.568890, (float)2.883960, 5329 (float)1.803180, (float)2.595410, (float)2.877820, 5330 (float)2.339770, (float)2.569850, (float)2.857230, 5331 (float)1.966980, (float)2.347120, (float)2.590980, 5332 (float)2.166440, (float)2.509040, (float)2.686040, 5333 (float)2.225340, (float)2.446350, (float)2.811620, 5334 (float)2.105590, (float)2.438110, (float)2.743790, 5335 (float)2.067280, (float)2.633870, (float)2.882630, 5336 (float)2.248630, (float)2.457120, (float)2.784930, 5337 (float)1.898060, (float)2.261300, (float)2.819320, 5338 (float)2.253240, (float)2.587410, (float)2.803360, 5339 (float)2.133640, (float)2.570650, (float)2.774690, 5340 (float)2.198230, (float)2.416460, (float)2.658230, 5341 (float)1.764980, (float)2.418300, (float)2.835440, 5342 (float)1.895130, (float)2.420770, (float)2.594320, 5343 (float)2.459610, (float)2.629040, (float)2.872360, 5344 (float)2.306910, (float)2.572410, (float)2.836180, 5345 (float)2.372050, (float)2.534180, (float)2.830920, 5346 (float)1.673040, (float)2.086800, (float)2.714020, 5347 (float)2.028500, (float)2.550970, (float)2.950520, 5348 (float)2.160280, (float)2.348250, (float)2.735660, 5349 (float)2.340380, (float)2.646970, (float)2.904440, 5350 (float)2.181990, (float)2.430030, (float)2.589780, 5351 (float)2.157600, (float)2.610310, (float)2.770190, 5352 (float)1.910060, (float)2.302330, (float)2.885500, 5353 (float)2.546980, (float)2.728000, (float)2.907450, 5354 (float)2.132290, (float)2.345490, (float)2.715660, 5355 (float)2.249760, (float)2.494010, (float)2.806340, 5356 (float)2.430570, (float)2.780490, (float)2.958720, 5357 (float)2.278870, (float)2.464320, (float)2.852230, 5358 (float)1.802940, (float)2.176650, (float)2.828620, 5359 (float)1.966200, (float)2.633210, (float)2.864910, 5360 (float)2.125950, (float)2.379850, (float)2.732030, 5361 (float)2.126350, (float)2.509740, (float)2.793870, 5362 (float)2.234620, (float)2.403180, (float)2.642620, 5363 (float)2.163840, (float)2.540050, (float)2.891030, 5364 (float)1.957640, (float)2.505040, (float)2.800300, 5365 (float)1.894590, (float)2.256470, (float)2.728340, 5366 (float)2.402890, (float)2.633530, (float)2.847250, 5368 Andersen et. al. Experimental - Expires Jan. 1st, 2003 101 5369 (float)2.020810, (float)2.308380, (float)2.854380, 5370 (float)2.183290, (float)2.348070, (float)2.708960, 5371 (float)2.215010, (float)2.586180, (float)2.914050, 5372 (float)2.049750, (float)2.446250, (float)2.784110, 5373 (float)1.984780, (float)2.466870, (float)2.807180, 5374 (float)1.994340, (float)2.385770, (float)2.902940, 5375 (float)2.060870, (float)2.402100, (float)2.583290, 5376 (float)2.106630, (float)2.273030, (float)2.549190, 5377 (float)2.262650, (float)2.506030, (float)2.744280, 5378 (float)2.445750, (float)2.695680, (float)2.914720, 5379 (float)1.966420, (float)2.484020, (float)2.768870, 5380 (float)1.961990, (float)2.398990, (float)2.702600, 5381 (float)1.984150, (float)2.162410, (float)2.575820, 5382 (float)2.262370, (float)2.505790, (float)2.711050, 5383 (float)2.143300, (float)2.466710, (float)2.744710, 5384 (float)2.168920, (float)2.509470, (float)2.858990, 5385 (float)2.160260, (float)2.551220, (float)2.768490, 5386 (float)2.320220, (float)2.525160, (float)2.774610, 5387 (float)2.076680, (float)2.375090, (float)2.540270, 5388 (float)2.188330, (float)2.527100, (float)2.710610, 5389 (float)2.277580, (float)2.644210, (float)2.822840, 5390 (float)2.305780, (float)2.465980, (float)2.697270, 5391 (float)2.360480, (float)2.590150, (float)2.842140, 5392 (float)1.908140, (float)2.179760, (float)2.852010, 5393 (float)2.013060, (float)2.451370, (float)2.733990, 5394 (float)2.237990, (float)2.559460, (float)2.857830, 5395 (float)2.051540, (float)2.410120, (float)2.761820, 5396 (float)1.984200, (float)2.526170, (float)2.857070, 5397 (float)2.248600, (float)2.565490, (float)2.772840, 5398 (float)2.326130, (float)2.567380, (float)2.927670, 5399 (float)2.103010, (float)2.279020, (float)2.474930, 5400 (float)2.026390, (float)2.573680, (float)2.872630, 5401 (float)2.212920, (float)2.480200, (float)2.923040, 5402 (float)2.183360, (float)2.353470, (float)2.758960, 5403 (float)2.026230, (float)2.585020, (float)2.823770, 5404 (float)2.062360, (float)2.558540, (float)2.833380, 5405 (float)2.352070, (float)2.621020, (float)2.828770, 5406 (float)1.968120, (float)2.437030, (float)2.830960, 5407 (float)2.033570, (float)2.271850, (float)2.693860, 5408 (float)2.151990, (float)2.380370, (float)2.752880, 5409 (float)2.328430, (float)2.612450, (float)2.792340, 5410 (float)2.222840, (float)2.605660, (float)2.823070, 5411 (float)1.966210, (float)2.283730, (float)2.649920, 5412 (float)2.203550, (float)2.454160, (float)2.657140, 5413 (float)2.276580, (float)2.438620, (float)2.724130, 5414 (float)2.275280, (float)2.618120, (float)2.886970, 5415 (float)2.103550, (float)2.344050, (float)2.834310, 5416 (float)2.235410, (float)2.411900, (float)2.846400, 5417 (float)2.134560, (float)2.430880, (float)2.691750, 5418 (float)2.040790, (float)2.504470, (float)2.719010, 5419 (float)1.959500, (float)2.221560, (float)2.645250, 5420 (float)2.282590, (float)2.521470, (float)2.678180, 5421 (float)2.289690, (float)2.541190, (float)2.782360, 5423 Andersen et. al. Experimental - Expires Jan. 1st, 2003 102 5424 (float)2.042620, (float)2.526590, (float)2.870810, 5425 (float)1.837030, (float)2.092670, (float)2.713560, 5426 (float)2.196750, (float)2.506470, (float)2.793980, 5427 (float)2.178330, (float)2.569910, (float)2.849270, 5428 (float)2.163150, (float)2.455100, (float)2.643860, 5429 (float)1.991370, (float)2.272020, (float)2.688290, 5430 (float)2.083130, (float)2.529450, (float)2.800840, 5431 (float)2.174230, (float)2.446550, (float)2.680860, 5432 (float)1.701970, (float)2.273270, (float)2.757510, 5433 (float)2.098680, (float)2.599580, (float)2.817400, 5434 (float)2.027220, (float)2.389290, (float)2.559080, 5435 (float)2.511590, (float)2.684890, (float)2.852080, 5436 (float)2.431390, (float)2.716400, (float)2.889990, 5437 (float)1.933550, (float)2.331020, (float)2.762140, 5438 (float)2.190310, (float)2.543480, (float)2.931020, 5439 (float)2.230580, (float)2.458230, (float)2.711530, 5440 (float)2.028340, (float)2.339130, (float)2.731930, 5441 (float)2.374000, (float)2.544300, (float)2.881240, 5442 (float)2.205430, (float)2.625170, (float)2.881390, 5443 (float)2.205720, (float)2.473380, (float)2.724120, 5444 (float)1.771310, (float)2.321130, (float)2.759390, 5445 (float)1.655130, (float)2.338470, (float)2.768180, 5446 (float)2.203850, (float)2.473670, (float)2.765590, 5447 (float)2.269680, (float)2.461130, (float)2.893890, 5448 (float)2.077030, (float)2.457060, (float)2.723830, 5449 (float)2.036840, (float)2.543990, (float)2.807880, 5450 (float)1.998150, (float)2.436410, (float)2.699190, 5451 (float)2.006380, (float)2.310460, (float)2.502630, 5452 (float)2.154980, (float)2.488660, (float)2.833880, 5453 (float)2.261040, (float)2.441480, (float)2.831830, 5454 (float)2.135570, (float)2.309270, (float)2.733720, 5455 (float)2.308900, (float)2.579070, (float)2.799520, 5456 (float)2.205400, (float)2.371430, (float)2.786970, 5457 (float)2.075930, (float)2.688430, (float)2.887030, 5458 (float)2.175060, (float)2.472720, (float)2.750600, 5459 (float)1.824110, (float)2.419420, (float)2.612970, 5460 (float)2.205630, (float)2.398620, (float)2.856090, 5461 (float)1.982820, (float)2.305520, (float)2.560670, 5462 (float)2.366350, (float)2.769580, (float)2.963770, 5463 (float)2.088530, (float)2.466250, (float)2.666540, 5464 (float)1.726170, (float)2.341780, (float)2.613580, 5465 (float)2.150690, (float)2.577290, (float)2.873890, 5466 (float)2.177220, (float)2.457070, (float)2.828170, 5467 (float)1.911600, (float)2.427710, (float)2.668400, 5468 (float)2.165590, (float)2.468450, (float)2.869740, 5469 (float)1.996150, (float)2.492590, (float)2.889090, 5470 (float)1.853730, (float)2.273160, (float)2.665760, 5471 (float)2.113690, (float)2.402650, (float)2.707790, 5472 (float)1.985190, (float)2.582560, (float)2.863270, 5473 (float)2.271120, (float)2.523040, (float)2.797830, 5474 (float)1.999320, (float)2.214930, (float)2.591560, 5475 (float)2.066260, (float)2.318320, (float)2.602790, 5476 (float)2.198340, (float)2.579570, (float)2.823260, 5478 Andersen et. al. Experimental - Expires Jan. 1st, 2003 103 5479 (float)1.807430, (float)2.541320, (float)2.783810, 5480 (float)2.008590, (float)2.307590, (float)2.805360, 5481 (float)2.174550, (float)2.371900, (float)2.633280, 5482 (float)2.007280, (float)2.389960, (float)2.769570, 5483 (float)1.955160, (float)2.305770, (float)2.716010, 5484 (float)2.024370, (float)2.429860, (float)2.761040, 5485 (float)1.701510, (float)2.185780, (float)2.831130, 5486 (float)1.814970, (float)2.356010, (float)2.832640, 5487 (float)1.767200, (float)2.479720, (float)2.928960, 5488 (float)2.256130, (float)2.428210, (float)2.605760, 5489 (float)2.259960, (float)2.507170, (float)2.777560, 5490 (float)2.390370, (float)2.554350, (float)2.775460, 5491 (float)2.233680, (float)2.433940, (float)2.774540, 5492 (float)2.066350, (float)2.493770, (float)2.741600, 5493 (float)2.411980, (float)2.669540, (float)2.924090, 5494 (float)1.944010, (float)2.250960, (float)2.866450, 5495 (float)2.104620, (float)2.615970, (float)2.856070, 5496 (float)1.874170, (float)2.482700, (float)2.670070, 5497 (float)2.449120, (float)2.600910, (float)2.796480, 5498 (float)2.274920, (float)2.556840, (float)2.747970, 5499 (float)1.948850, (float)2.554120, (float)2.943690, 5500 (float)2.255390, (float)2.471180, (float)2.648030, 5501 (float)2.103090, (float)2.399510, (float)2.567590, 5502 (float)2.117480, (float)2.424500, (float)2.591710, 5503 (float)2.143630, (float)2.549290, (float)2.832370, 5504 (float)2.360880, (float)2.630190, (float)2.781750, 5505 (float)1.967140, (float)2.158000, (float)2.722380, 5506 (float)2.033080, (float)2.449830, (float)2.650260, 5507 (float)2.380130, (float)2.566670, (float)2.741390, 5508 (float)2.090190, (float)2.563890, (float)2.752500, 5509 (float)2.004060, (float)2.240760, (float)2.881430, 5510 (float)2.308140, (float)2.513260, (float)2.904190, 5511 (float)2.087460, (float)2.369800, (float)2.771750, 5512 (float)2.267250, (float)2.518290, (float)2.843900, 5513 (float)2.001500, (float)2.395570, (float)2.676630, 5514 (float)1.974940, (float)2.339330, (float)2.638890, 5515 (float)2.142290, (float)2.313250, (float)2.579750, 5516 (float)2.352710, (float)2.686260, (float)2.862100, 5517 (float)2.250080, (float)2.555570, (float)2.813970, 5518 (float)2.183170, (float)2.501720, (float)2.758350, 5519 (float)1.873300, (float)2.245220, (float)2.469790, 5520 (float)2.022040, (float)2.547280, (float)2.844150, 5521 (float)2.128560, (float)2.347570, (float)2.590270, 5522 (float)2.150450, (float)2.344990, (float)2.653930, 5523 (float)2.026660, (float)2.415530, (float)2.725740, 5524 (float)2.146880, (float)2.645750, (float)2.809070, 5525 (float)2.100000, (float)2.325320, (float)2.574360, 5526 (float)2.301230, (float)2.702560, (float)2.917030, 5527 (float)2.195100, (float)2.562890, (float)2.783790, 5528 (float)2.343280, (float)2.587450, (float)2.802560, 5529 (float)2.241570, (float)2.470470, (float)2.823590, 5530 (float)2.289090, (float)2.495780, (float)2.868720, 5531 (float)2.086380, (float)2.545950, (float)2.863510, 5533 Andersen et. al. Experimental - Expires Jan. 1st, 2003 104 5534 (float)2.218100, (float)2.472300, (float)2.791840, 5535 (float)1.950460, (float)2.210150, (float)2.552640, 5536 (float)2.049760, (float)2.296650, (float)2.638160, 5537 (float)1.920110, (float)2.527780, (float)2.769270, 5538 (float)2.146670, (float)2.375150, (float)2.544960, 5539 (float)2.190600, (float)2.460720, (float)2.798770, 5540 (float)2.680100, (float)2.887240, (float)3.002990, 5541 (float)2.411910, (float)2.644390, (float)2.890630, 5542 (float)1.866870, (float)2.077040, (float)2.443610, 5543 (float)1.910120, (float)2.535170, (float)2.814260, 5544 (float)1.898560, (float)2.498140, (float)2.903470, 5545 (float)2.156150, (float)2.537270, (float)2.802370, 5546 (float)1.880630, (float)2.151000, (float)2.705900, 5547 (float)2.093260, (float)2.490530, (float)2.720270, 5548 (float)2.032210, (float)2.420600, (float)2.870740, 5549 (float)1.910890, (float)2.241340, (float)2.613090, 5550 (float)2.233760, (float)2.524730, (float)2.765020, 5551 (float)2.157230, (float)2.358980, (float)2.775480, 5552 (float)2.297950, (float)2.604340, (float)2.828720, 5553 (float)2.246010, (float)2.588310, (float)2.838210, 5554 (float)2.052850, (float)2.472450, (float)2.677480, 5555 (float)2.164720, (float)2.521440, (float)2.739500, 5556 (float)1.713850, (float)2.463560, (float)2.810580, 5557 (float)1.863720, (float)2.488290, (float)2.760520, 5558 (float)2.070470, (float)2.375180, (float)2.628990, 5559 (float)2.138700, (float)2.313710, (float)2.642600, 5560 (float)2.445450, (float)2.744550, (float)2.929370, 5561 (float)1.947740, (float)2.262370, (float)2.475130, 5562 (float)1.842390, (float)2.064040, (float)2.599480, 5563 (float)2.022200, (float)2.229490, (float)2.727610, 5564 (float)2.326520, (float)2.585080, (float)2.768660, 5565 (float)1.965040, (float)2.192690, (float)2.823220, 5566 (float)2.058620, (float)2.421430, (float)2.709630, 5567 (float)2.244320, (float)2.485080, (float)2.766460, 5568 (float)2.031890, (float)2.468680, (float)2.884770, 5569 (float)2.105980, (float)2.422350, (float)2.776430, 5570 (float)2.058700, (float)2.289550, (float)2.497330, 5571 (float)2.241020, (float)2.520110, (float)2.692480, 5572 (float)1.873030, (float)2.475220, (float)2.826350, 5573 (float)2.210150, (float)2.502630, (float)2.770710, 5574 (float)1.876570, (float)2.367460, (float)2.554550, 5575 (float)1.921140, (float)2.350850, (float)2.832840, 5576 (float)2.308780, (float)2.562610, (float)2.866320, 5577 (float)1.938650, (float)2.321650, (float)2.675600, 5578 (float)2.308790, (float)2.672380, (float)2.839370, 5579 (float)1.981940, (float)2.420940, (float)2.751800, 5580 (float)2.194160, (float)2.404660, (float)2.631180, 5581 (float)2.053480, (float)2.345380, (float)2.564620, 5582 (float)2.218350, (float)2.583280, (float)2.770760, 5583 (float)2.123750, (float)2.289100, (float)2.619680, 5584 (float)2.249610, (float)2.537930, (float)2.788770, 5585 (float)2.446040, (float)2.718780, (float)2.951970, 5586 (float)2.214150, (float)2.415050, (float)2.759140, 5588 Andersen et. al. Experimental - Expires Jan. 1st, 2003 105 5589 (float)2.068340, (float)2.545790, (float)2.775190, 5590 (float)1.957550, (float)2.388070, (float)2.856890, 5591 (float)2.141740, (float)2.452770, (float)2.843510, 5592 (float)1.917800, (float)2.153790, (float)2.753100, 5593 (float)2.173980, (float)2.581870, (float)2.769000, 5594 (float)2.349220, (float)2.619020, (float)2.925620, 5595 (float)2.303370, (float)2.701370, (float)2.875970, 5596 (float)2.048630, (float)2.617890, (float)2.801390, 5597 (float)2.084180, (float)2.326870, (float)2.894660, 5598 (float)2.079710, (float)2.438010, (float)2.774780, 5599 (float)1.968350, (float)2.487610, (float)2.704400, 5600 (float)2.379020, (float)2.695920, (float)2.908560, 5601 (float)2.150100, (float)2.432030, (float)2.652690, 5602 (float)2.035560, (float)2.348390, (float)2.833790, 5603 (float)1.999450, (float)2.403860, (float)2.845350, 5604 (float)2.290030, (float)2.510270, (float)2.761520, 5605 (float)2.096240, (float)2.476860, (float)2.896500, 5606 (float)1.993280, (float)2.252560, (float)2.752190, 5607 (float)1.993860, (float)2.503120, (float)2.671780, 5608 (float)2.424390, (float)2.746290, (float)2.983050, 5609 (float)2.380030, (float)2.664890, (float)2.897730, 5610 (float)1.872070, (float)2.381920, (float)2.897900, 5611 (float)2.018260, (float)2.643610, (float)2.832430, 5612 (float)2.258020, (float)2.579200, (float)2.867550, 5613 (float)1.921100, (float)2.296120, (float)2.638820, 5614 (float)2.150370, (float)2.465230, (float)2.781220, 5615 (float)2.128290, (float)2.405830, (float)2.668410, 5616 (float)2.291090, (float)2.494960, (float)2.788120, 5617 (float)2.402320, (float)2.599660, (float)2.869800, 5618 (float)2.252990, (float)2.694960, (float)2.880680, 5619 (float)1.940740, (float)2.303210, (float)2.590610, 5620 (float)2.375540, (float)2.564330, (float)2.807250, 5621 (float)2.005860, (float)2.560720, (float)2.743150, 5622 (float)2.001200, (float)2.482310, (float)2.714330, 5623 (float)1.743750, (float)2.261840, (float)2.584190, 5624 (float)2.389370, (float)2.682530, (float)2.838070, 5625 (float)2.171230, (float)2.657970, (float)2.892300, 5626 (float)2.253600, (float)2.637660, (float)2.857920, 5627 (float)1.849170, (float)2.617290, (float)2.935950, 5628 (float)1.681310, (float)2.386730, (float)2.906460, 5629 (float)1.888920, (float)2.388230, (float)2.733020, 5630 (float)2.224080, (float)2.537730, (float)2.838060, 5631 (float)2.080750, (float)2.438290, (float)2.684050, 5632 (float)1.872130, (float)2.427660, (float)2.646610, 5633 (float)2.477170, (float)2.705410, (float)2.914960, 5634 (float)2.077930, (float)2.340400, (float)2.755770, 5635 (float)2.203670, (float)2.370770, (float)2.713520, 5636 (float)2.214910, (float)2.663530, (float)2.952690, 5637 (float)2.069540, (float)2.519070, (float)2.838930, 5638 (float)1.860770, (float)2.216800, (float)2.817630, 5639 (float)1.890790, (float)2.451300, (float)2.728940, 5640 (float)1.839840, (float)2.220670, (float)2.693530, 5641 (float)2.268020, (float)2.552860, (float)2.922190, 5643 Andersen et. al. Experimental - Expires Jan. 1st, 2003 106 5644 (float)2.269600, (float)2.429580, (float)2.668750, 5645 (float)2.118850, (float)2.652060, (float)2.893860, 5646 (float)1.841480, (float)2.383480, (float)2.697920, 5647 (float)2.269800, (float)2.548940, (float)2.861990, 5648 (float)2.299820, (float)2.531190, (float)2.862890, 5649 (float)1.739600, (float)2.552450, (float)2.827300, 5650 (float)2.169810, (float)2.370490, (float)2.878280, 5651 (float)1.867880, (float)2.136400, (float)2.793280, 5652 (float)2.556050, (float)2.690150, (float)2.840260, 5653 (float)1.938970, (float)2.273450, (float)2.754060, 5654 (float)1.885520, (float)2.107860, (float)2.646160, 5655 (float)2.251450, (float)2.595480, (float)2.945790, 5656 (float)1.900300, (float)2.371110, (float)2.677690, 5657 (float)2.108350, (float)2.445140, (float)2.853380, 5658 (float)2.190440, (float)2.598150, (float)2.861790, 5659 (float)2.509770, (float)2.791770, (float)2.968800, 5660 (float)1.985090, (float)2.349710, (float)2.737810, 5661 (float)2.125270, (float)2.289290, (float)2.688570, 5662 (float)2.260920, (float)2.436370, (float)2.755680, 5663 (float)2.207560, (float)2.520560, (float)2.897020, 5664 (float)2.054190, (float)2.383410, (float)2.726900, 5665 (float)2.105080, (float)2.300330, (float)2.840270, 5666 (float)2.182340, (float)2.399140, (float)2.597160, 5667 (float)2.273920, (float)2.461050, (float)2.689370, 5668 (float)2.301830, (float)2.554910, (float)2.813420, 5669 (float)2.102100, (float)2.493660, (float)2.683060, 5670 (float)1.930800, (float)2.382020, (float)2.581070, 5671 (float)2.254140, (float)2.630600, (float)2.922210, 5672 (float)2.112060, (float)2.645620, (float)2.965330, 5673 (float)2.136560, (float)2.502050, (float)2.898870, 5674 (float)2.086240, (float)2.365490, (float)2.876920, 5675 (float)2.401630, (float)2.598880, (float)2.789160, 5676 (float)1.969400, (float)2.329650, (float)2.800620, 5677 (float)2.293010, (float)2.602260, (float)2.921450, 5678 (float)2.161660, (float)2.549650, (float)2.725830, 5679 (float)1.961870, (float)2.373990, (float)2.761780, 5680 (float)2.118120, (float)2.348770, (float)2.754720, 5681 (float)2.585270, (float)2.845940, (float)3.000520, 5682 (float)2.363640, (float)2.517190, (float)2.763120, 5683 (float)2.468590, (float)2.797610, (float)2.989710, 5684 (float)2.098240, (float)2.560260, (float)2.826160, 5685 (float)2.073830, (float)2.392810, (float)2.697610, 5686 (float)1.925520, (float)2.352590, (float)2.538430, 5687 (float)1.947980, (float)2.556690, (float)2.743530, 5688 (float)2.091020, (float)2.550930, (float)2.903430, 5689 (float)1.902840, (float)2.103000, (float)2.553420 5690 }; 5692 float cb_p[2560 /* 3*256+3*256+4*256 */] = { 5693 (float)0.101647, (float)0.156603, (float)0.307874, 5694 (float)-0.114286, (float)-0.160408, (float)-0.185633, 5695 (float)0.075633, (float)0.094218, (float)0.183959, 5697 Andersen et. al. Experimental - Expires Jan. 1st, 2003 107 5698 (float)0.182714, (float)0.287816, (float)0.403346, 5699 (float)0.070746, (float)0.044887, (float)0.020379, 5700 (float)0.171241, (float)0.270833, (float)0.323869, 5701 (float)0.018956, (float)-0.001815, (float)0.007225, 5702 (float)0.042353, (float)0.078204, (float)0.024678, 5703 (float)0.009607, (float)-0.014651, (float)0.000050, 5704 (float)-0.077005, (float)-0.016956, (float)-0.061427, 5705 (float)-0.037397, (float)-0.032935, (float)0.096784, 5706 (float)-0.068801, (float)0.014445, (float)0.042025, 5707 (float)0.020967, (float)0.053571, (float)0.013193, 5708 (float)-0.024031, (float)-0.031318, (float)-0.056380, 5709 (float)0.011791, (float)-0.015763, (float)-0.094265, 5710 (float)0.045741, (float)0.021312, (float)0.002401, 5711 (float)-0.203243, (float)-0.312359, (float)-0.410453, 5712 (float)-0.037462, (float)0.057288, (float)0.107064, 5713 (float)0.029352, (float)0.144392, (float)0.307770, 5714 (float)0.023353, (float)-0.002541, (float)-0.014058, 5715 (float)-0.197553, (float)-0.284905, (float)-0.276384, 5716 (float)-0.021971, (float)-0.060975, (float)-0.148511, 5717 (float)0.116669, (float)0.239525, (float)0.226046, 5718 (float)-0.121842, (float)-0.208437, (float)-0.331073, 5719 (float)-0.033337, (float)-0.025620, (float)0.024912, 5720 (float)-0.023547, (float)0.118135, (float)0.133541, 5721 (float)0.043934, (float)0.203278, (float)0.343411, 5722 (float)-0.143077, (float)-0.213751, (float)-0.267076, 5723 (float)0.064124, (float)0.058813, (float)0.078549, 5724 (float)-0.040669, (float)-0.022956, (float)-0.041996, 5725 (float)0.090611, (float)0.080789, (float)0.116521, 5726 (float)0.084032, (float)0.096174, (float)0.070863, 5727 (float)-0.010794, (float)-0.036720, (float)-0.023205, 5728 (float)0.017456, (float)0.033152, (float)0.141670, 5729 (float)0.121615, (float)0.117136, (float)0.080990, 5730 (float)-0.072810, (float)-0.098362, (float)-0.079238, 5731 (float)0.082268, (float)0.163590, (float)0.237963, 5732 (float)-0.058318, (float)0.143227, (float)0.259539, 5733 (float)-0.104645, (float)-0.166031, (float)-0.232272, 5734 (float)0.089506, (float)0.074099, (float)0.048033, 5735 (float)-0.066507, (float)-0.051851, (float)-0.006128, 5736 (float)-0.113373, (float)-0.181634, (float)-0.270446, 5737 (float)-0.067385, (float)-0.100718, (float)-0.113891, 5738 (float)-0.002710, (float)0.035500, (float)0.102843, 5739 (float)0.003005, (float)0.010807, (float)0.031245, 5740 (float)-0.028003, (float)-0.040993, (float)-0.040093, 5741 (float)-0.056629, (float)-0.069395, (float)-0.061594, 5742 (float)-0.019843, (float)0.013355, (float)-0.005757, 5743 (float)-0.005916, (float)0.104663, (float)0.184308, 5744 (float)0.015343, (float)-0.006399, (float)0.050178, 5745 (float)0.078914, (float)0.180649, (float)0.139430, 5746 (float)-0.026850, (float)-0.008017, (float)-0.022200, 5747 (float)0.008070, (float)0.001275, (float)-0.038135, 5748 (float)0.085065, (float)0.206562, (float)0.283845, 5749 (float)-0.082069, (float)0.084999, (float)0.130248, 5750 (float)-0.144281, (float)-0.183606, (float)-0.146812, 5752 Andersen et. al. Experimental - Expires Jan. 1st, 2003 108 5753 (float)-0.045514, (float)-0.081468, (float)-0.091192, 5754 (float)0.075238, (float)0.126354, (float)0.111271, 5755 (float)-0.082980, (float)0.069267, (float)0.054482, 5756 (float)0.031538, (float)0.022801, (float)-0.010558, 5757 (float)-0.002734, (float)0.028099, (float)0.183280, 5758 (float)-0.043275, (float)-0.045616, (float)-0.059342, 5759 (float)-0.026252, (float)-0.017238, (float)-0.001124, 5760 (float)0.136014, (float)0.225648, (float)0.356492, 5761 (float)-0.090912, (float)-0.135988, (float)-0.167528, 5762 (float)-0.056471, (float)-0.053362, (float)-0.097824, 5763 (float)-0.039067, (float)-0.035066, (float)-0.002459, 5764 (float)0.184879, (float)0.237139, (float)0.158367, 5765 (float)0.032432, (float)0.046175, (float)0.033395, 5766 (float)0.001227, (float)0.019113, (float)0.005833, 5767 (float)-0.000656, (float)0.157718, (float)0.193270, 5768 (float)-0.188550, (float)-0.118638, (float)0.014324, 5769 (float)0.143732, (float)0.191741, (float)0.169144, 5770 (float)0.029864, (float)0.045912, (float)-0.019104, 5771 (float)-0.007910, (float)0.041061, (float)0.002476, 5772 (float)-0.053623, (float)0.035341, (float)0.081782, 5773 (float)-0.083612, (float)-0.053587, (float)-0.040111, 5774 (float)-0.126216, (float)0.010859, (float)0.043341, 5775 (float)-0.139990, (float)-0.155418, (float)-0.063780, 5776 (float)0.034234, (float)0.081943, (float)0.219530, 5777 (float)-0.029038, (float)-0.047427, (float)0.016433, 5778 (float)0.001795, (float)0.050245, (float)0.038111, 5779 (float)0.163893, (float)0.211998, (float)0.225083, 5780 (float)-0.006519, (float)-0.002726, (float)0.125967, 5781 (float)0.032342, (float)0.119929, (float)0.180382, 5782 (float)-0.008032, (float)-0.055284, (float)-0.188150, 5783 (float)0.028078, (float)0.022309, (float)0.047304, 5784 (float)0.070188, (float)0.145892, (float)0.076101, 5785 (float)0.082942, (float)0.069966, (float)0.019008, 5786 (float)0.064357, (float)0.061715, (float)0.037541, 5787 (float)-0.049850, (float)-0.046458, (float)-0.031598, 5788 (float)0.070595, (float)0.285006, (float)0.378438, 5789 (float)0.087088, (float)0.126236, (float)0.155122, 5790 (float)-0.078782, (float)-0.005303, (float)0.088694, 5791 (float)0.063978, (float)0.033399, (float)-0.053112, 5792 (float)0.057796, (float)0.033509, (float)0.008543, 5793 (float)0.114180, (float)0.153806, (float)0.194225, 5794 (float)0.017506, (float)0.007438, (float)0.085335, 5795 (float)-0.019630, (float)0.207068, (float)0.292366, 5796 (float)-0.027217, (float)-0.048151, (float)-0.022808, 5797 (float)-0.080388, (float)-0.086189, (float)-0.154391, 5798 (float)0.029251, (float)0.063250, (float)0.180188, 5799 (float)-0.023623, (float)0.065619, (float)0.162705, 5800 (float)-0.010235, (float)0.065837, (float)0.077293, 5801 (float)-0.039484, (float)-0.059381, (float)-0.008757, 5802 (float)0.020153, (float)0.112159, (float)0.097077, 5803 (float)-0.008189, (float)-0.025467, (float)-0.052820, 5804 (float)0.014910, (float)0.095016, (float)0.145495, 5805 (float)0.194843, (float)0.272630, (float)0.250678, 5807 Andersen et. al. Experimental - Expires Jan. 1st, 2003 109 5808 (float)0.050782, (float)0.061650, (float)0.136016, 5809 (float)-0.126186, (float)-0.116646, (float)0.014980, 5810 (float)-0.059720, (float)-0.111839, (float)-0.204028, 5811 (float)-0.027048, (float)-0.030219, (float)-0.021549, 5812 (float)-0.034771, (float)-0.061116, (float)-0.074599, 5813 (float)0.017573, (float)0.031722, (float)0.000350, 5814 (float)-0.018716, (float)-0.024178, (float)-0.036583, 5815 (float)0.036492, (float)0.010432, (float)-0.015344, 5816 (float)-0.156398, (float)-0.054309, (float)0.091330, 5817 (float)0.106879, (float)0.107703, (float)0.028268, 5818 (float)0.061406, (float)0.149828, (float)0.191568, 5819 (float)0.060886, (float)0.049794, (float)-0.004897, 5820 (float)0.031060, (float)0.002888, (float)-0.061189, 5821 (float)-0.091467, (float)0.001323, (float)-0.009446, 5822 (float)0.035162, (float)0.007471, (float)0.002001, 5823 (float)-0.029675, (float)-0.060260, (float)-0.110740, 5824 (float)0.099151, (float)0.291079, (float)0.491465, 5825 (float)-0.017336, (float)-0.006304, (float)-0.047077, 5826 (float)0.025685, (float)0.018155, (float)0.007351, 5827 (float)0.000276, (float)-0.013918, (float)-0.039593, 5828 (float)-0.054070, (float)-0.076297, (float)-0.025764, 5829 (float)0.036003, (float)0.061728, (float)0.053931, 5830 (float)0.007584, (float)0.026570, (float)-0.049862, 5831 (float)0.006014, (float)-0.022121, (float)-0.022297, 5832 (float)-0.020100, (float)0.074827, (float)0.225360, 5833 (float)-0.036903, (float)0.032407, (float)0.264711, 5834 (float)-0.030832, (float)0.110708, (float)0.079370, 5835 (float)-0.139392, (float)-0.188680, (float)-0.210632, 5836 (float)0.060132, (float)0.036904, (float)0.042170, 5837 (float)-0.098378, (float)0.056928, (float)0.199476, 5838 (float)0.038701, (float)0.016479, (float)-0.034712, 5839 (float)0.004073, (float)0.070340, (float)0.121869, 5840 (float)-0.020931, (float)0.026977, (float)0.020896, 5841 (float)-0.008362, (float)-0.016828, (float)0.074275, 5842 (float)0.055662, (float)0.090454, (float)0.097236, 5843 (float)0.007885, (float)0.083095, (float)0.288056, 5844 (float)0.014080, (float)-0.011090, (float)-0.028803, 5845 (float)-0.110319, (float)-0.045462, (float)0.018523, 5846 (float)-0.130917, (float)0.028812, (float)0.117188, 5847 (float)-0.022307, (float)-0.021386, (float)-0.075937, 5848 (float)0.050554, (float)0.101466, (float)0.138214, 5849 (float)-0.018707, (float)-0.036518, (float)-0.004777, 5850 (float)0.216755, (float)0.316245, (float)0.324474, 5851 (float)-0.165692, (float)-0.255478, (float)-0.323505, 5852 (float)-0.010701, (float)-0.036093, (float)-0.125848, 5853 (float)-0.036576, (float)-0.084140, (float)-0.180415, 5854 (float)-0.196124, (float)-0.119466, (float)-0.083410, 5855 (float)-0.025286, (float)0.006269, (float)0.092609, 5856 (float)0.191695, (float)0.377873, (float)0.415567, 5857 (float)0.083991, (float)0.196256, (float)0.192680, 5858 (float)-0.023709, (float)-0.048567, (float)-0.057384, 5859 (float)0.010199, (float)0.003688, (float)-0.021775, 5860 (float)-0.134984, (float)-0.114662, (float)-0.129098, 5862 Andersen et. al. Experimental - Expires Jan. 1st, 2003 110 5863 (float)-0.015590, (float)-0.035942, (float)0.042045, 5864 (float)0.017605, (float)0.045250, (float)0.071923, 5865 (float)-0.003447, (float)-0.026744, (float)-0.036069, 5866 (float)0.008608, (float)-0.007730, (float)-0.061013, 5867 (float)-0.005505, (float)-0.007352, (float)-0.025937, 5868 (float)0.039266, (float)0.188570, (float)0.242694, 5869 (float)-0.064454, (float)0.121666, (float)0.187051, 5870 (float)-0.030473, (float)-0.000669, (float)0.020900, 5871 (float)0.126888, (float)0.148515, (float)0.131469, 5872 (float)0.154986, (float)0.172110, (float)0.085410, 5873 (float)-0.084400, (float)-0.053391, (float)0.142586, 5874 (float)-0.102964, (float)-0.066747, (float)-0.093577, 5875 (float)-0.027015, (float)-0.044126, (float)-0.080523, 5876 (float)-0.034945, (float)0.054678, (float)0.047600, 5877 (float)0.027695, (float)0.174781, (float)0.421081, 5878 (float)0.007116, (float)-0.022779, (float)-0.048390, 5879 (float)-0.009213, (float)-0.039053, (float)-0.092195, 5880 (float)0.026542, (float)0.148812, (float)0.130779, 5881 (float)-0.055235, (float)-0.062783, (float)0.022333, 5882 (float)0.012747, (float)0.031666, (float)0.021672, 5883 (float)-0.025531, (float)0.014182, (float)0.052679, 5884 (float)-0.094533, (float)-0.125736, (float)-0.040327, 5885 (float)0.034204, (float)0.034178, (float)0.014467, 5886 (float)0.010758, (float)0.086917, (float)0.060563, 5887 (float)-0.059326, (float)-0.118513, (float)-0.164752, 5888 (float)-0.095704, (float)-0.125914, (float)-0.085722, 5889 (float)-0.081798, (float)-0.075503, (float)0.068908, 5890 (float)0.002459, (float)0.004455, (float)-0.006626, 5891 (float)0.038998, (float)0.036684, (float)0.106465, 5892 (float)-0.009146, (float)-0.010151, (float)-0.007517, 5893 (float)-0.049033, (float)-0.000535, (float)0.137529, 5894 (float)0.021830, (float)0.015265, (float)-0.024020, 5895 (float)-0.037049, (float)-0.060368, (float)-0.043476, 5896 (float)0.042905, (float)0.265228, (float)0.257688, 5897 (float)-0.010067, (float)-0.038476, (float)-0.065380, 5898 (float)0.039914, (float)0.036286, (float)-0.001860, 5899 (float)-0.042375, (float)-0.013551, (float)0.055903, 5900 (float)-0.168232, (float)-0.235276, (float)-0.210167, 5901 (float)-0.045604, (float)-0.045519, (float)0.053357, 5902 (float)-0.053472, (float)-0.021750, (float)-0.018801, 5903 (float)-0.048637, (float)0.020410, (float)-0.035803, 5904 (float)-0.039800, (float)-0.100674, (float)-0.242474, 5905 (float)0.007381, (float)-0.015628, (float)0.021387, 5906 (float)-0.052622, (float)0.044024, (float)0.012394, 5907 (float)-0.047222, (float)-0.084756, (float)-0.134810, 5908 (float)-0.004639, (float)0.024037, (float)0.064967, 5909 (float)-0.073421, (float)-0.137455, (float)-0.249802, 5910 (float)0.048224, (float)0.049422, (float)0.017136, 5911 (float)0.019854, (float)-0.026154, (float)-0.140485, 5912 (float)-0.008495, (float)-0.001529, (float)0.011282, 5913 (float)-0.012424, (float)-0.027151, (float)0.013677, 5914 (float)-0.013136, (float)-0.037900, (float)-0.043875, 5915 (float)0.092597, (float)0.074982, (float)-0.022129, 5917 Andersen et. al. Experimental - Expires Jan. 1st, 2003 111 5918 (float)-0.039894, (float)0.004283, (float)0.190252, 5919 (float)0.019715, (float)0.207759, (float)0.165885, 5920 (float)-0.010286, (float)0.009299, (float)-0.024232, 5921 (float)0.002655, (float)-0.025374, (float)-0.069129, 5922 (float)-0.010032, (float)-0.021499, (float)-0.020474, 5923 (float)-0.149002, (float)-0.252620, (float)-0.394962, 5924 (float)-0.072276, (float)-0.091690, (float)-0.045376, 5925 (float)0.018562, (float)-0.010640, (float)-0.042950, 5926 (float)0.044609, (float)0.025528, (float)0.067743, 5927 (float)0.048105, (float)0.097391, (float)0.057379, 5928 (float)0.053803, (float)0.026458, (float)-0.015385, 5929 (float)0.153209, (float)0.221891, (float)0.283713, 5930 (float)0.028053, (float)0.069853, (float)0.095519, 5931 (float)-0.084833, (float)-0.139260, (float)-0.206422, 5932 (float)0.045989, (float)0.008434, (float)-0.102625, 5933 (float)-0.087123, (float)-0.122195, (float)-0.128159, 5934 (float)0.064114, (float)0.116348, (float)0.241050, 5935 (float)-0.019013, (float)0.096385, (float)0.367378, 5936 (float)0.025787, (float)0.001488, (float)-0.031029, 5937 (float)0.049313, (float)0.022534, (float)0.023737, 5938 (float)0.009696, (float)0.135889, (float)0.245375, 5939 (float)0.179217, (float)0.431035, (float)0.582647, 5940 (float)-0.047342, (float)0.003777, (float)-0.001497, 5941 (float)-0.080549, (float)-0.152492, (float)-0.303481, 5942 (float)-0.122496, (float)-0.090577, (float)-0.052154, 5943 (float)0.029398, (float)0.005204, (float)0.025625, 5944 (float)-0.025821, (float)0.032411, (float)0.138528, 5945 (float)0.004573, (float)0.022412, (float)-0.012475, 5946 (float)-0.002749, (float)-0.026395, (float)-0.002159, 5947 (float)0.019963, (float)0.010501, (float)-0.007393, 5948 (float)-0.011260, (float)-0.012239, (float)0.040555, 5949 (float)0.008411, (float)-0.009018, (float)-0.014164, 5950 (float)-0.147156, (float)-0.044502, (float)-0.023256, 5951 (float)-0.081528, (float)-0.091503, (float)0.001629, 5952 (float)-0.013890, (float)0.287522, (float)0.427420, 5953 (float)-0.186380, (float)-0.217917, (float)-0.104858, 5954 (float)0.127015, (float)0.185857, (float)0.244742, 5955 (float)-0.065164, (float)-0.023989, (float)0.022565, 5956 (float)-0.004134, (float)0.089638, (float)0.017688, 5957 (float)-0.105806, (float)-0.160214, (float)-0.124350, 5958 (float)0.098733, (float)0.258890, (float)0.303078, 5959 (float)-0.002922, (float)-0.147373, (float)-0.061136, 5960 (float)-0.027317, (float)0.116500, (float)0.079213, 5961 (float)0.051246, (float)-0.009354, (float)0.089225, 5962 (float)-0.056256, (float)-0.118489, (float)0.001152, 5963 (float)-0.031552, (float)-0.043076, (float)-0.103002, 5964 (float)0.051502, (float)0.019425, (float)-0.030664, 5965 (float)-0.237829, (float)-0.044380, (float)-0.061874, 5966 (float)-0.099386, (float)-0.087550, (float)-0.083973, 5967 (float)-0.329966, (float)-0.252288, (float)-0.321328, 5968 (float)0.157618, (float)0.031950, (float)-0.055430, 5969 (float)-0.051217, (float)0.025064, (float)-0.025659, 5970 (float)-0.062184, (float)-0.039902, (float)-0.080501, 5972 Andersen et. al. Experimental - Expires Jan. 1st, 2003 112 5973 (float)-0.072291, (float)-0.044789, (float)0.054084, 5974 (float)-0.190696, (float)-0.329295, (float)-0.429805, 5975 (float)-0.141164, (float)-0.206095, (float)-0.156032, 5976 (float)0.007329, (float)0.007942, (float)-0.046255, 5977 (float)-0.080762, (float)-0.079559, (float)-0.000018, 5978 (float)0.208131, (float)0.222627, (float)0.322905, 5979 (float)0.044003, (float)0.080884, (float)0.130427, 5980 (float)-0.003964, (float)-0.017547, (float)-0.040533, 5981 (float)-0.109941, (float)-0.230645, (float)-0.354087, 5982 (float)0.027584, (float)0.009669, (float)-0.020229, 5983 (float)-0.025228, (float)-0.092245, (float)-0.057674, 5984 (float)-0.077466, (float)-0.066493, (float)0.102980, 5985 (float)0.091702, (float)-0.150504, (float)-0.208143, 5986 (float)0.011956, (float)-0.239224, (float)-0.302488, 5987 (float)-0.084151, (float)-0.241800, (float)-0.215889, 5988 (float)0.197823, (float)0.241373, (float)0.168617, 5989 (float)-0.064814, (float)-0.038343, (float)0.172973, 5990 (float)0.290103, (float)0.309703, (float)0.155201, 5991 (float)-0.183672, (float)0.037789, (float)0.031083, 5992 (float)0.072471, (float)0.044525, (float)0.188654, 5993 (float)-0.224078, (float)-0.237094, (float)-0.030795, 5994 (float)-0.173997, (float)-0.173473, (float)0.041141, 5995 (float)-0.187269, (float)-0.132552, (float)-0.050729, 5996 (float)0.083230, (float)0.109884, (float)0.067945, 5997 (float)0.155764, (float)0.143772, (float)0.274798, 5998 (float)-0.325825, (float)-0.185942, (float)0.061861, 5999 (float)0.044108, (float)0.143792, (float)0.159857, 6000 (float)0.071511, (float)0.052406, (float)-0.004564, 6001 (float)0.190623, (float)-0.000137, (float)0.006562, 6002 (float)0.080492, (float)0.048738, (float)0.112595, 6003 (float)0.274439, (float)0.225704, (float)0.192074, 6004 (float)-0.155751, (float)-0.142430, (float)-0.214018, 6005 (float)-0.213905, (float)-0.293654, (float)-0.340117, 6006 (float)-0.038314, (float)-0.056052, (float)-0.051140, 6007 (float)-0.331388, (float)-0.380922, (float)-0.216378, 6008 (float)-0.014596, (float)0.168776, (float)0.119557, 6009 (float)0.247930, (float)0.215622, (float)0.094155, 6010 (float)-0.045285, (float)-0.153285, (float)-0.129308, 6011 (float)0.257543, (float)0.170753, (float)-0.009628, 6012 (float)-0.104630, (float)-0.180423, (float)-0.268239, 6013 (float)-0.024809, (float)-0.056644, (float)-0.009843, 6014 (float)-0.047003, (float)0.059877, (float)0.086661, 6015 (float)-0.372728, (float)-0.204993, (float)-0.196632, 6016 (float)0.005879, (float)-0.012847, (float)0.020206, 6017 (float)0.090534, (float)-0.012162, (float)-0.053793, 6018 (float)-0.049855, (float)0.049773, (float)0.039971, 6019 (float)0.119973, (float)0.209777, (float)0.305545, 6020 (float)-0.086203, (float)0.015587, (float)0.118761, 6021 (float)-0.040239, (float)0.082160, (float)0.003576, 6022 (float)0.002462, (float)-0.001138, (float)-0.019923, 6023 (float)0.199879, (float)0.231740, (float)0.246034, 6024 (float)0.062803, (float)-0.083368, (float)-0.027502, 6025 (float)-0.026761, (float)0.030339, (float)-0.055666, 6027 Andersen et. al. Experimental - Expires Jan. 1st, 2003 113 6028 (float)-0.005631, (float)0.007546, (float)0.095696, 6029 (float)-0.029613, (float)-0.066512, (float)-0.086799, 6030 (float)0.357528, (float)0.229341, (float)0.134697, 6031 (float)-0.101458, (float)-0.108007, (float)0.043901, 6032 (float)-0.102034, (float)0.041409, (float)0.003990, 6033 (float)-0.015058, (float)-0.015983, (float)0.052442, 6034 (float)-0.037479, (float)-0.102625, (float)-0.099912, 6035 (float)-0.021791, (float)-0.041924, (float)-0.071286, 6036 (float)-0.008137, (float)-0.061575, (float)-0.042142, 6037 (float)0.389406, (float)0.436496, (float)0.426934, 6038 (float)0.279856, (float)0.142775, (float)0.121829, 6039 (float)0.482664, (float)0.428100, (float)0.283485, 6040 (float)0.262737, (float)0.155761, (float)0.244966, 6041 (float)-0.054330, (float)-0.079428, (float)-0.071692, 6042 (float)0.049271, (float)-0.034606, (float)-0.100922, 6043 (float)-0.008634, (float)0.050189, (float)0.022422, 6044 (float)-0.001060, (float)-0.035318, (float)-0.091661, 6045 (float)-0.009416, (float)-0.091219, (float)-0.202970, 6046 (float)-0.116997, (float)-0.096726, (float)-0.148842, 6047 (float)0.025167, (float)0.025121, (float)0.033181, 6048 (float)0.023439, (float)0.023302, (float)-0.091961, 6049 (float)0.037462, (float)0.006365, (float)0.009463, 6050 (float)0.098743, (float)0.168459, (float)0.134782, 6051 (float)-0.326847, (float)-0.146533, (float)-0.068851, 6052 (float)-0.110194, (float)-0.035229, (float)-0.110360, 6053 (float)0.105827, (float)0.078590, (float)0.013856, 6054 (float)-0.365999, (float)-0.390519, (float)-0.360565, 6055 (float)0.049178, (float)0.079518, (float)0.023420, 6056 (float)-0.022779, (float)0.080616, (float)0.048381, 6057 (float)0.184572, (float)0.168003, (float)0.118680, 6058 (float)-0.026428, (float)-0.001468, (float)-0.036151, 6059 (float)0.072791, (float)0.016364, (float)-0.001912, 6060 (float)-0.168656, (float)-0.223794, (float)-0.223778, 6061 (float)0.141245, (float)0.130730, (float)0.147051, 6062 (float)-0.195176, (float)-0.159967, (float)-0.127011, 6063 (float)-0.075405, (float)-0.004863, (float)-0.016829, 6064 (float)0.338733, (float)0.248516, (float)0.246625, 6065 (float)0.173359, (float)0.074217, (float)0.011036, 6066 (float)-0.055015, (float)-0.073762, (float)-0.116171, 6067 (float)0.062420, (float)0.003818, (float)0.039012, 6068 (float)0.014745, (float)0.082840, (float)0.191838, 6069 (float)-0.000152, (float)-0.048068, (float)0.025851, 6070 (float)0.007260, (float)0.090426, (float)0.023487, 6071 (float)0.116632, (float)0.031707, (float)-0.010842, 6072 (float)0.148176, (float)0.174229, (float)0.037239, 6073 (float)-0.091135, (float)-0.046301, (float)-0.044599, 6074 (float)-0.109844, (float)0.062566, (float)0.266820, 6075 (float)0.099804, (float)0.008037, (float)-0.130432, 6076 (float)0.138324, (float)0.183545, (float)0.196940, 6077 (float)0.153627, (float)0.314946, (float)0.304854, 6078 (float)0.281727, (float)0.083295, (float)0.043573, 6079 (float)-0.007664, (float)0.053085, (float)-0.008300, 6080 (float)-0.034603, (float)0.000197, (float)-0.095557, 6082 Andersen et. al. Experimental - Expires Jan. 1st, 2003 114 6083 (float)0.041646, (float)-0.001363, (float)-0.056964, 6084 (float)-0.142500, (float)-0.076992, (float)-0.028286, 6085 (float)-0.093217, (float)0.022766, (float)0.056199, 6086 (float)0.389996, (float)0.327565, (float)0.332503, 6087 (float)0.012267, (float)-0.069951, (float)-0.084740, 6088 (float)-0.029000, (float)0.043944, (float)0.132488, 6089 (float)-0.172241, (float)-0.281603, (float)-0.117031, 6090 (float)-0.079467, (float)-0.111642, (float)-0.212284, 6091 (float)-0.033227, (float)-0.052185, (float)0.059494, 6092 (float)-0.036467, (float)-0.040205, (float)0.112118, 6093 (float)-0.288124, (float)-0.296569, (float)-0.098710, 6094 (float)0.131964, (float)-0.082882, (float)-0.114379, 6095 (float)0.033875, (float)-0.038051, (float)-0.059338, 6096 (float)-0.013638, (float)0.033421, (float)0.056818, 6097 (float)0.273643, (float)0.401475, (float)0.498271, 6098 (float)0.214226, (float)0.331382, (float)0.213331, 6099 (float)-0.185555, (float)-0.203774, (float)-0.308272, 6100 (float)0.417448, (float)0.558544, (float)0.564183, 6101 (float)-0.149665, (float)-0.296913, (float)-0.267622, 6102 (float)0.167244, (float)0.101322, (float)0.205946, 6103 (float)0.372599, (float)0.186194, (float)0.027106, 6104 (float)0.077913, (float)0.041261, (float)-0.053545, 6105 (float)-0.018411, (float)-0.016188, (float)-0.063478, 6106 (float)0.173103, (float)0.283436, (float)0.406889, 6107 (float)-0.011926, (float)0.022695, (float)-0.019483, 6108 (float)-0.016587, (float)-0.073412, (float)-0.124829, 6109 (float)-0.128873, (float)-0.124025, (float)0.143507, 6110 (float)0.005048, (float)-0.009988, (float)0.151611, 6111 (float)0.020831, (float)-0.099635, (float)-0.133662, 6112 (float)-0.159369, (float)-0.011440, (float)-0.028336, 6113 (float)-0.043884, (float)0.034133, (float)0.005377, 6114 (float)-0.088351, (float)0.095988, (float)0.059708, 6115 (float)0.206010, (float)0.124303, (float)0.060140, 6116 (float)0.024569, (float)0.055734, (float)0.009367, 6117 (float)0.504129, (float)0.531876, (float)0.443218, 6118 (float)-0.055036, (float)-0.004250, (float)0.028011, 6119 (float)-0.014233, (float)0.015105, (float)0.022364, 6120 (float)0.135297, (float)0.063048, (float)0.148979, 6121 (float)-0.150041, (float)-0.202729, (float)-0.062824, 6122 (float)0.040212, (float)0.095548, (float)0.287722, 6123 (float)0.262125, (float)0.397363, (float)0.370188, 6124 (float)-0.050157, (float)0.002393, (float)0.078004, 6125 (float)-0.024095, (float)-0.169140, (float)-0.195090, 6126 (float)0.029141, (float)0.032337, (float)0.079035, 6127 (float)0.212340, (float)0.093282, (float)0.123318, 6128 (float)-0.245203, (float)-0.226260, (float)-0.160457, 6129 (float)0.417481, (float)0.321441, (float)0.179777, 6130 (float)0.270377, (float)0.295371, (float)0.277090, 6131 (float)-0.038503, (float)0.157504, (float)0.194870, 6132 (float)-0.406878, (float)-0.345830, (float)-0.077838, 6133 (float)-0.151586, (float)-0.050811, (float)0.065830, 6134 (float)-0.438365, (float)-0.545321, (float)-0.508286, 6135 (float)0.081580, (float)0.122913, (float)0.023967, 6137 Andersen et. al. Experimental - Expires Jan. 1st, 2003 115 6138 (float)0.330869, (float)0.397232, (float)0.270918, 6139 (float)-0.005851, (float)-0.028318, (float)-0.010222, 6140 (float)-0.169129, (float)-0.070055, (float)-0.097200, 6141 (float)0.060881, (float)0.175568, (float)0.238490, 6142 (float)-0.244182, (float)-0.163779, (float)-0.232775, 6143 (float)-0.057262, (float)-0.041989, (float)-0.010891, 6144 (float)-0.110610, (float)-0.028284, (float)0.015677, 6145 (float)-0.010819, (float)-0.092129, (float)0.000825, 6146 (float)0.038489, (float)0.034075, (float)-0.003789, 6147 (float)-0.054297, (float)-0.016035, (float)-0.054255, 6148 (float)-0.183093, (float)-0.087467, (float)-0.169302, 6149 (float)-0.073592, (float)-0.147007, (float)-0.074979, 6150 (float)0.025410, (float)0.101676, (float)0.060540, 6151 (float)0.021173, (float)-0.016304, (float)-0.003041, 6152 (float)-0.456864, (float)-0.474140, (float)-0.269654, 6153 (float)0.006725, (float)-0.030154, (float)-0.138263, 6154 (float)0.104290, (float)-0.018637, (float)0.013075, 6155 (float)0.068343, (float)0.036516, (float)0.065745, 6156 (float)0.042537, (float)-0.040778, (float)0.026005, 6157 (float)0.007379, (float)-0.044031, (float)0.085539, 6158 (float)-0.025893, (float)-0.033359, (float)-0.034674, 6159 (float)-0.024846, (float)0.026495, (float)0.208398, 6160 (float)0.137611, (float)0.094333, (float)0.097806, 6161 (float)0.034403, (float)0.027634, (float)0.131637, 6162 (float)0.611482, (float)0.699476, (float)0.625270, 6163 (float)-0.272692, (float)-0.114492, (float)-0.149079, 6164 (float)0.135743, (float)0.109393, (float)-0.042790, 6165 (float)-0.250773, (float)-0.262219, (float)-0.256142, 6166 (float)0.055674, (float)0.074512, (float)0.080377, 6167 (float)-0.293857, (float)-0.439265, (float)-0.481425, 6168 (float)0.107672, (float)0.069199, (float)0.067083, 6169 (float)0.054344, (float)-0.017308, (float)-0.020041, 6170 (float)0.057625, (float)0.041118, (float)0.026264, 6171 (float)-0.048073, (float)-0.070619, (float)0.024466, 6172 (float)0.041420, (float)0.087133, (float)-0.027562, 6173 (float)0.281114, (float)0.284102, (float)0.381146, 6174 (float)-0.086611, (float)-0.182965, (float)0.002136, 6175 (float)0.073908, (float)0.175515, (float)0.076929, 6176 (float)-0.100085, (float)0.006705, (float)-0.058559, 6177 (float)-0.047726, (float)-0.078704, (float)-0.023374, 6178 (float)-0.000315, (float)0.242118, (float)0.330054, 6179 (float)-0.073520, (float)-0.113324, (float)-0.117121, 6180 (float)0.009714, (float)0.024022, (float)-0.000092, 6181 (float)-0.030012, (float)-0.130854, (float)-0.273529, 6182 (float)0.274260, (float)0.079299, (float)-0.066549, 6183 (float)0.017385, (float)0.039419, (float)-0.032639, 6184 (float)-0.000660, (float)-0.036182, (float)-0.056361, 6185 (float)0.093705, (float)0.111815, (float)0.197515, 6186 (float)-0.254449, (float)-0.061267, (float)0.020106, 6187 (float)-0.012949, (float)0.106749, (float)0.125325, 6188 (float)-0.082361, (float)-0.237584, (float)-0.101400, 6189 (float)0.087013, (float)0.108656, (float)0.119311, 6190 (float)0.130680, (float)0.138713, (float)0.090182, 6192 Andersen et. al. Experimental - Expires Jan. 1st, 2003 116 6193 (float)0.212072, (float)0.156738, (float)0.174103, 6194 (float)-0.049350, (float)-0.107280, (float)-0.157766, 6195 (float)0.140367, (float)0.230809, (float)0.114500, 6196 (float)0.116183, (float)0.011284, (float)0.089604, 6197 (float)-0.051406, (float)-0.096667, (float)0.068657, 6198 (float)-0.195316, (float)0.039495, (float)0.127515, 6199 (float)0.015098, (float)-0.047317, (float)-0.020644, 6200 (float)0.135230, (float)0.104913, (float)0.047088, 6201 (float)0.034968, (float)0.131745, (float)0.095055, 6202 (float)0.009959, (float)-0.014947, (float)-0.070821, 6203 (float)0.223978, (float)-0.007398, (float)-0.166985, 6204 (float)0.047219, (float)0.223558, (float)0.154105, 6205 (float)-0.259246, (float)-0.385490, (float)-0.344447, 6206 (float)0.044620, (float)-0.047977, (float)-0.189986, 6207 (float)0.106057, (float)0.039685, (float)0.033318, 6208 (float)-0.114759, (float)-0.150116, (float)-0.112920, 6209 (float)0.172362, (float)0.055369, (float)0.068639, 6210 (float)-0.088916, (float)-0.167303, (float)-0.180761, 6211 (float)-0.109497, (float)-0.130142, (float)-0.031125, 6212 (float)0.023023, (float)0.063934, (float)0.047228, 6213 (float)-0.028208, (float)-0.004917, (float)-0.003599, 6214 (float)0.022885, (float)-0.007659, (float)0.053246, 6215 (float)-0.029192, (float)-0.036486, (float)0.018157, 6216 (float)0.097317, (float)0.273316, (float)0.215175, 6217 (float)-0.076356, (float)0.098769, (float)0.144888, 6218 (float)0.013931, (float)0.142398, (float)0.038400, 6219 (float)-0.052115, (float)-0.054792, (float)-0.160158, 6220 (float)-0.068091, (float)-0.105723, (float)-0.049007, 6221 (float)0.020139, (float)-0.015368, (float)-0.037300, 6222 (float)0.074089, (float)0.068589, (float)0.040823, 6223 (float)-0.241743, (float)-0.342435, (float)-0.208325, 6224 (float)-0.000682, (float)0.070770, (float)0.088546, 6225 (float)0.047325, (float)-0.006978, (float)0.002644, 6226 (float)0.115786, (float)0.167659, (float)0.145532, 6227 (float)0.125269, (float)0.048056, (float)-0.042945, 6228 (float)-0.023479, (float)-0.069857, (float)0.046446, 6229 (float)0.031597, (float)0.043535, (float)0.054694, 6230 (float)0.000198, (float)0.024241, (float)0.024003, 6231 (float)0.054837, (float)0.040984, (float)-0.092373, 6232 (float)-0.028649, (float)-0.051995, (float)-0.032866, 6233 (float)0.391557, (float)0.198290, (float)-0.015891, 6234 (float)-0.040287, (float)-0.029169, (float)0.003571, 6235 (float)0.039823, (float)0.035104, (float)-0.004200, 6236 (float)-0.044559, (float)0.039039, (float)0.014894, 6237 (float)0.247807, (float)0.111033, (float)0.038195, 6238 (float)0.029950, (float)0.021416, (float)-0.102171, 6239 (float)-0.073460, (float)0.005240, (float)-0.077134, 6240 (float)-0.025827, (float)-0.114741, (float)-0.014864, 6241 (float)-0.148630, (float)-0.035463, (float)-0.080250, 6242 (float)-0.004164, (float)0.029383, (float)-0.025587, 6243 (float)-0.162516, (float)-0.160870, (float)0.118620, 6244 (float)0.041626, (float)-0.028426, (float)0.074201, 6245 (float)-0.051565, (float)-0.039931, (float)-0.022328, 6247 Andersen et. al. Experimental - Expires Jan. 1st, 2003 117 6248 (float)-0.003898, (float)0.331095, (float)0.321639, 6249 (float)0.171372, (float)0.075956, (float)-0.227299, 6250 (float)-0.246122, (float)-0.061456, (float)-0.065147, 6251 (float)-0.025381, (float)-0.023135, (float)-0.010056, 6252 (float)0.095102, (float)0.106510, (float)0.063172, 6253 (float)-0.072783, (float)-0.009204, (float)-0.178741, 6254 (float)-0.012860, (float)0.016247, (float)0.020345, 6255 (float)0.022732, (float)0.069584, (float)0.032504, 6256 (float)0.037788, (float)0.071568, (float)0.025887, 6257 (float)0.032061, (float)-0.032940, (float)-0.004162, 6258 (float)0.016303, (float)-0.121347, (float)-0.082735, 6259 (float)0.042385, (float)0.014474, (float)0.013345, 6260 (float)0.018750, (float)0.087155, (float)0.056183, 6261 (float)-0.002594, (float)-0.020950, (float)-0.277457, 6262 (float)-0.136817, (float)-0.157510, (float)-0.176577, 6263 (float)-0.016505, (float)-0.061642, (float)-0.111150, 6264 (float)0.020322, (float)-0.219744, (float)-0.257735, 6265 (float)-0.168417, (float)-0.143344, (float)0.026535, 6266 (float)-0.030622, (float)-0.093800, (float)-0.044823, 6267 (float)0.658938, (float)0.511415, (float)0.313435, 6268 (float)0.173884, (float)-0.008819, (float)-0.065020, 6269 (float)-0.010099, (float)-0.066660, (float)0.135962, 6270 (float)0.129001, (float)-0.057246, (float)-0.105488, 6271 (float)0.243590, (float)0.290395, (float)0.317612, 6272 (float)0.205758, (float)0.095985, (float)0.060438, 6273 (float)0.069637, (float)-0.001664, (float)0.065476, 6274 (float)0.062588, (float)0.028658, (float)0.012043, 6275 (float)-0.127287, (float)-0.100084, (float)-0.063234, 6276 (float)-0.027546, (float)-0.020793, (float)-0.106356, 6277 (float)-0.185491, (float)0.008873, (float)0.243609, 6278 (float)0.171475, (float)-0.002765, (float)-0.048275, 6279 (float)-0.060382, (float)-0.031108, (float)0.031384, 6280 (float)0.012246, (float)-0.445061, (float)-0.462158, 6281 (float)-0.301877, (float)-0.135007, (float)-0.475060, 6282 (float)-0.371571, (float)-0.106039, (float)-0.010444, 6283 (float)0.221429, (float)0.183528, (float)0.213540, 6284 (float)0.182842, (float)-0.070132, (float)-0.010666, 6285 (float)-0.030043, (float)-0.105396, (float)-0.016324, 6286 (float)-0.025083, (float)-0.077433, (float)-0.151969, 6287 (float)-0.005378, (float)-0.105569, (float)0.025993, 6288 (float)0.032934, (float)-0.080255, (float)-0.121547, 6289 (float)-0.212975, (float)-0.076083, (float)-0.001966, 6290 (float)0.062823, (float)0.094327, (float)0.030380, 6291 (float)0.088695, (float)0.111078, (float)0.056931, 6292 (float)0.019451, (float)-0.072704, (float)-0.135838, 6293 (float)-0.082705, (float)-0.006163, (float)-0.029829, 6294 (float)-0.041282, (float)-0.072687, (float)-0.016569, 6295 (float)-0.052402, (float)-0.074058, (float)-0.144494, 6296 (float)-0.107340, (float)0.033004, (float)0.055295, 6297 (float)0.005272, (float)-0.046771, (float)0.060519, 6298 (float)0.131631, (float)0.067544, (float)0.084367, 6299 (float)0.195210, (float)0.180302, (float)0.091361, 6300 (float)-0.013243, (float)0.152410, (float)0.133608, 6302 Andersen et. al. Experimental - Expires Jan. 1st, 2003 118 6303 (float)0.002888, (float)0.018362, (float)0.026146, 6304 (float)0.074191, (float)0.109652, (float)0.078016, 6305 (float)0.101046, (float)-0.031762, (float)-0.081491, 6306 (float)0.035430, (float)0.287796, (float)0.199494, 6307 (float)0.082543, (float)0.036229, (float)0.143456, 6308 (float)0.189938, (float)0.134967, (float)0.110485, 6309 (float)-0.013421, (float)-0.067451, (float)-0.011112, 6310 (float)-0.004090, (float)-0.134506, (float)-0.071024, 6311 (float)-0.169969, (float)-0.057502, (float)-0.060912, 6312 (float)-0.112128, (float)0.003421, (float)0.104480, 6313 (float)-0.071537, (float)-0.073059, (float)-0.085219, 6314 (float)-0.061897, (float)0.229039, (float)0.293022, 6315 (float)0.131243, (float)0.048463, (float)-0.026045, 6316 (float)-0.020479, (float)0.030605, (float)-0.028003, 6317 (float)0.008807, (float)0.086048, (float)-0.012562, 6318 (float)-0.110608, (float)0.179717, (float)0.063296, 6319 (float)0.069922, (float)0.081701, (float)0.049007, 6320 (float)0.103315, (float)0.199904, (float)0.074277, 6321 (float)0.049166, (float)0.016355, (float)-0.011421, 6322 (float)-0.035215, (float)0.026685, (float)-0.048784, 6323 (float)-0.163671, (float)0.018289, (float)-0.010485, 6324 (float)0.000827, (float)0.073192, (float)-0.002865, 6325 (float)0.001361, (float)-0.083688, (float)-0.037920, 6326 (float)0.095839, (float)-0.039932, (float)0.053746, 6327 (float)-0.004356, (float)0.041386, (float)0.079021, 6328 (float)0.129937, (float)0.103055, (float)-0.018902, 6329 (float)0.046279, (float)0.018578, (float)-0.072483, 6330 (float)0.007487, (float)-0.131013, (float)0.064182, 6331 (float)0.098816, (float)0.043187, (float)-0.103120, 6332 (float)-0.105730, (float)-0.076396, (float)-0.133902, 6333 (float)-0.047670, (float)-0.080155, (float)0.042766, 6334 (float)-0.003015, (float)-0.005411, (float)-0.026065, 6335 (float)-0.005958, (float)-0.025907, (float)0.129773, 6336 (float)0.238006, (float)0.146735, (float)0.035418, 6337 (float)0.007978, (float)0.030804, (float)-0.032646, 6338 (float)-0.006026, (float)-0.109510, (float)-0.051945, 6339 (float)-0.003182, (float)0.009670, (float)0.006582, 6340 (float)0.010807, (float)-0.006121, (float)0.039494, 6341 (float)0.125567, (float)0.032844, (float)-0.048572, 6342 (float)-0.118083, (float)-0.034542, (float)-0.074879, 6343 (float)-0.120373, (float)-0.194594, (float)-0.057898, 6344 (float)0.022194, (float)0.087693, (float)0.026813, 6345 (float)-0.276898, (float)-0.182855, (float)-0.117501, 6346 (float)-0.032173, (float)0.119073, (float)0.007363, 6347 (float)-0.021050, (float)-0.032272, (float)0.155320, 6348 (float)0.104592, (float)0.176368, (float)0.114521, 6349 (float)-0.018157, (float)-0.063676, (float)-0.051574, 6350 (float)0.030803, (float)0.053948, (float)0.117630, 6351 (float)0.009534, (float)0.031613, (float)-0.114267, 6352 (float)-0.141611, (float)-0.123567, (float)-0.052111, 6353 (float)-0.009888, (float)0.036125, (float)0.027912, 6354 (float)-0.028832, (float)0.047483, (float)0.004858, 6355 (float)0.079631, (float)0.079641, (float)0.066119, 6357 Andersen et. al. Experimental - Expires Jan. 1st, 2003 119 6358 (float)0.115279, (float)0.112746, (float)0.049203, 6359 (float)0.025498, (float)-0.015976, (float)0.027440, 6360 (float)0.051681, (float)-0.023835, (float)0.000222, 6361 (float)0.004835, (float)-0.079690, (float)-0.155954, 6362 (float)-0.254873, (float)-0.255996, (float)-0.047276, 6363 (float)-0.036863, (float)-0.090760, (float)-0.059804, 6364 (float)-0.024833, (float)-0.120927, (float)-0.224570, 6365 (float)-0.110654, (float)-0.094819, (float)-0.090651, 6366 (float)-0.006706, (float)0.040201, (float)0.078777, 6367 (float)-0.114837, (float)-0.152337, (float)-0.031160, 6368 (float)0.028471, (float)-0.388988, (float)-0.226268, 6369 (float)-0.166789, (float)-0.101745, (float)0.216616, 6370 (float)0.193702, (float)0.185902, (float)0.076390, 6371 (float)-0.264200, (float)-0.267415, (float)0.002213, 6372 (float)0.049018, (float)-0.055507, (float)-0.114410, 6373 (float)-0.037992, (float)0.041351, (float)0.334733, 6374 (float)0.306476, (float)0.064584, (float)0.002296, 6375 (float)-0.148203, (float)-0.087696, (float)-0.152509, 6376 (float)-0.186158, (float)0.017612, (float)0.074956, 6377 (float)0.059320, (float)-0.039709, (float)-0.058223, 6378 (float)-0.008583, (float)-0.014108, (float)0.042877, 6379 (float)0.007403, (float)-0.003896, (float)0.021517, 6380 (float)0.001769, (float)0.154410, (float)0.106449, 6381 (float)0.061178, (float)0.009897, (float)-0.113873, 6382 (float)-0.105112, (float)0.028872, (float)-0.022643, 6383 (float)-0.036487, (float)0.141100, (float)0.086805, 6384 (float)0.000128, (float)0.013754, (float)0.097808, 6385 (float)0.019048, (float)-0.013409, (float)0.129597, 6386 (float)0.054700, (float)0.030277, (float)0.018303, 6387 (float)0.457338, (float)0.442425, (float)0.204200, 6388 (float)0.090050, (float)-0.102578, (float)-0.041905, 6389 (float)0.075191, (float)0.018290, (float)-0.157418, 6390 (float)-0.183917, (float)0.021367, (float)0.102767, 6391 (float)0.234111, (float)0.142988, (float)0.116244, 6392 (float)0.108732, (float)-0.387604, (float)-0.204808, 6393 (float)-0.030843, (float)-0.015329, (float)-0.044689, 6394 (float)-0.043983, (float)-0.033781, (float)-0.059647, 6395 (float)-0.073917, (float)-0.101900, (float)-0.014936, 6396 (float)-0.009781, (float)-0.043026, (float)-0.057556, 6397 (float)0.083215, (float)0.045013, (float)-0.044302, 6398 (float)-0.097882, (float)-0.222483, (float)-0.209164, 6399 (float)-0.030616, (float)-0.126586, (float)-0.006000, 6400 (float)-0.030697, (float)0.039482, (float)0.100495, 6401 (float)-0.045667, (float)-0.026383, (float)0.009962, 6402 (float)-0.063248, (float)-0.105963, (float)-0.111647, 6403 (float)0.075155, (float)0.024546, (float)-0.015394, 6404 (float)0.009267, (float)-0.026317, (float)-0.028158, 6405 (float)-0.079302, (float)-0.074109, (float)-0.061872, 6406 (float)0.019655, (float)0.045584, (float)-0.025366, 6407 (float)0.085280, (float)0.095748, (float)0.030714, 6408 (float)-0.029912, (float)-0.206987, (float)-0.123844, 6409 (float)-0.057135, (float)0.006137, (float)-0.026455, 6410 (float)0.131109, (float)0.134663, (float)0.070759, 6412 Andersen et. al. Experimental - Expires Jan. 1st, 2003 120 6413 (float)0.077270, (float)0.019451, (float)0.045040, 6414 (float)0.017941, (float)0.218670, (float)0.068816, 6415 (float)-0.059215, (float)-0.036289, (float)0.169294, 6416 (float)0.237212, (float)0.045015, (float)0.011271, 6417 (float)-0.059378, (float)-0.089106, (float)-0.129857, 6418 (float)-0.016475, (float)0.054435, (float)0.068706, 6419 (float)0.059337, (float)0.079399, (float)-0.059128, 6420 (float)0.002045, (float)-0.005394, (float)-0.040333, 6421 (float)-0.123311, (float)-0.071277, (float)-0.036326, 6422 (float)0.071676, (float)-0.004229, (float)0.036444, 6423 (float)-0.040988, (float)-0.069174, (float)-0.003011, 6424 (float)-0.007944, (float)0.149682, (float)0.065872, 6425 (float)-0.048881, (float)0.090414, (float)0.048754, 6426 (float)0.055644, (float)-0.292747, (float)-0.084232, 6427 (float)-0.029686, (float)-0.060548, (float)0.131867, 6428 (float)0.116083, (float)0.098563, (float)0.098732, 6429 (float)-0.085741, (float)-0.130486, (float)0.040472, 6430 (float)0.037521, (float)0.495179, (float)0.335438, 6431 (float)0.109460, (float)0.047558, (float)-0.225777, 6432 (float)-0.072882, (float)-0.113905, (float)-0.070385, 6433 (float)0.004527, (float)-0.050500, (float)0.032098, 6434 (float)-0.028258, (float)-0.086069, (float)-0.181397, 6435 (float)-0.199940, (float)-0.007413, (float)-0.003140, 6436 (float)-0.024264, (float)-0.036502, (float)-0.093927, 6437 (float)0.028042, (float)0.002974, (float)0.027518, 6438 (float)-0.034574, (float)0.100547, (float)0.083129, 6439 (float)-0.008917, (float)0.026432, (float)-0.205993, 6440 (float)-0.150685, (float)-0.206483, (float)-0.070928, 6441 (float)0.002658, (float)0.015206, (float)-0.006357, 6442 (float)-0.041231, (float)0.370038, (float)0.300322, 6443 (float)0.225613, (float)0.162809, (float)0.001369, 6444 (float)0.024512, (float)-0.049792, (float)0.058664, 6445 (float)0.170516, (float)0.145493, (float)0.050961, 6446 (float)0.067279, (float)0.027589, (float)0.108942, 6447 (float)0.068557, (float)0.020942, (float)-0.202433, 6448 (float)-0.300333, (float)-0.135067, (float)0.008142, 6449 (float)0.048756, (float)0.002502, (float)-0.032933, 6450 (float)0.049215, (float)0.062254, (float)0.065895, 6451 (float)0.072078, (float)0.039322, (float)0.018311, 6452 (float)-0.039439, (float)-0.019170, (float)0.037467, 6453 (float)-0.155167, (float)-0.092096, (float)0.069654, 6454 (float)0.047424, (float)0.117408, (float)0.094537, 6455 (float)0.106079, (float)0.044270, (float)-0.100618, 6456 (float)-0.080387, (float)-0.026298, (float)-0.074083, 6457 (float)-0.018581, (float)0.019481, (float)0.072629, 6458 (float)0.072746, (float)0.057012, (float)0.032484, 6459 (float)0.109659, (float)0.021608, (float)0.204631, 6460 (float)0.208667, (float)0.092730, (float)0.071485, 6461 (float)-0.043735, (float)-0.097503, (float)-0.111775, 6462 (float)0.062874, (float)-0.122924, (float)-0.174850, 6463 (float)-0.164818, (float)-0.171885, (float)0.076759, 6464 (float)0.048016, (float)0.134504, (float)0.087858, 6465 (float)-0.075338, (float)-0.066207, (float)-0.065293, 6467 Andersen et. al. Experimental - Expires Jan. 1st, 2003 121 6468 (float)0.019354, (float)-0.161584, (float)-0.186981, 6469 (float)-0.124650, (float)0.010597, (float)0.038118, 6470 (float)-0.010230, (float)0.056014, (float)0.006415, 6471 (float)0.103674, (float)0.042899, (float)0.074015, 6472 (float)0.066213, (float)0.056937, (float)-0.029397, 6473 (float)-0.031908, (float)-0.051985, (float)0.039113, 6474 (float)0.056303, (float)-0.019315, (float)0.024640, 6475 (float)-0.321330, (float)-0.352009, (float)-0.120628, 6476 (float)-0.049235, (float)-0.004503, (float)0.000762, 6477 (float)-0.087804, (float)-0.007994, (float)0.073076, 6478 (float)0.173158, (float)0.146290, (float)0.076940, 6479 (float)0.026396, (float)-0.003903, (float)-0.024719, 6480 (float)-0.001804, (float)0.097111, (float)0.051964, 6481 (float)0.081751, (float)0.140259, (float)-0.055973, 6482 (float)0.070238, (float)0.006300, (float)-0.061434, 6483 (float)-0.269008, (float)-0.329076, (float)-0.266868, 6484 (float)-0.068615, (float)0.080861, (float)0.135337, 6485 (float)0.144055, (float)0.170948, (float)-0.053715, 6486 (float)-0.161516, (float)-0.318411, (float)-0.088051, 6487 (float)-0.316491, (float)-0.308822, (float)-0.316398, 6488 (float)-0.227003, (float)0.008800, (float)-0.041246, 6489 (float)-0.038603, (float)-0.029676, (float)-0.094596, 6490 (float)-0.029560, (float)-0.101488, (float)-0.105882, 6491 (float)0.326772, (float)0.217917, (float)0.142021, 6492 (float)0.117891, (float)-0.007626, (float)-0.013990, 6493 (float)-0.041939, (float)0.013832, (float)0.112084, 6494 (float)0.166795, (float)0.025648, (float)-0.046400, 6495 (float)-0.002777, (float)-0.069200, (float)-0.066894, 6496 (float)-0.063457, (float)0.085185, (float)0.002760, 6497 (float)-0.144788, (float)-0.054287, (float)-0.015890, 6498 (float)-0.054693, (float)-0.134120, (float)-0.047814, 6499 (float)-0.177093, (float)-0.167252, (float)0.016502, 6500 (float)-0.021316, (float)-0.029952, (float)0.010663, 6501 (float)-0.002334, (float)-0.000537, (float)-0.012072, 6502 (float)0.047047, (float)0.033939, (float)0.016658, 6503 (float)0.062277, (float)0.025814, (float)-0.090728, 6504 (float)-0.170538, (float)-0.008576, (float)-0.054274, 6505 (float)0.035688, (float)0.064076, (float)0.004403, 6506 (float)-0.071424, (float)-0.225379, (float)-0.066880, 6507 (float)0.037565, (float)0.195016, (float)0.061482, 6508 (float)0.019964, (float)0.207543, (float)0.275047, 6509 (float)0.189954, (float)0.131253, (float)0.010359, 6510 (float)0.046189, (float)0.010783, (float)0.082755, 6511 (float)-0.017077, (float)-0.033804, (float)0.002453, 6512 (float)0.026296, (float)-0.034299, (float)0.063599, 6513 (float)-0.014282, (float)-0.010125, (float)0.020008, 6514 (float)-0.021509, (float)0.002248, (float)-0.061521, 6515 (float)-0.058993, (float)0.016761, (float)-0.055532, 6516 (float)0.000408, (float)0.409016, (float)0.409633, 6517 (float)0.312998, (float)0.194183, (float)-0.025385, 6518 (float)-0.002883, (float)-0.039376, (float)-0.037099, 6519 (float)0.032424, (float)-0.011797, (float)-0.066389, 6520 (float)-0.116261, (float)-0.066419, (float)-0.187185, 6522 Andersen et. al. Experimental - Expires Jan. 1st, 2003 122 6523 (float)-0.095960, (float)0.051826, (float)0.108855, 6524 (float)0.091699, (float)0.040866, (float)0.063528, 6525 (float)-0.281711, (float)-0.066531, (float)0.075581, 6526 (float)0.039074, (float)-0.174754, (float)-0.203164, 6527 (float)-0.292525, (float)-0.231971, (float)0.061848, 6528 (float)0.031900, (float)-0.053381, (float)-0.064156, 6529 (float)0.013410, (float)-0.032998, (float)-0.083836, 6530 (float)0.076698, (float)0.005526, (float)-0.053697, 6531 (float)0.091460, (float)0.113297, (float)-0.161750, 6532 (float)-0.009511, (float)-0.049193, (float)-0.103707, 6533 (float)-0.043632, (float)0.082889, (float)0.047591, 6534 (float)-0.002895, (float)0.010834, (float)0.043296, 6535 (float)0.170790, (float)0.160881, (float)-0.062085, 6536 (float)0.024063, (float)-0.059730, (float)-0.065696, 6537 (float)-0.131963, (float)0.078599, (float)0.041221, 6538 (float)-0.017748, (float)-0.097133, (float)0.005294, 6539 (float)0.141538, (float)0.103821, (float)0.010361, 6540 (float)-0.024639, (float)0.077813, (float)0.041329, 6541 (float)0.081337, (float)-0.021475, (float)0.036300, 6542 (float)0.052487, (float)0.082866, (float)0.120879, 6543 (float)0.262882, (float)0.193476, (float)-0.108704, 6544 (float)0.020262, (float)-0.025255, (float)0.028266, 6545 (float)-0.077870, (float)-0.099389, (float)0.103349, 6546 (float)0.095432, (float)-0.117102, (float)0.025667, 6547 (float)-0.016085, (float)-0.033919, (float)0.044707, 6548 (float)0.011526, (float)-0.014937, (float)-0.095621, 6549 (float)-0.005811, (float)0.038857, (float)0.065020, 6550 (float)0.149270, (float)0.246402, (float)0.353483, 6551 (float)0.254893, (float)0.097539, (float)0.028770, 6552 (float)0.040152, (float)0.011767, (float)-0.004989, 6553 (float)0.089314, (float)0.061816, (float)0.006965, 6554 (float)-0.080731, (float)-0.092954, (float)-0.156088, 6555 (float)-0.023722, (float)-0.059271, (float)-0.182059, 6556 (float)-0.055574, (float)-0.010262, (float)-0.044659, 6557 (float)-0.106812, (float)-0.117652, (float)-0.138386, 6558 (float)0.034846, (float)0.044882, (float)-0.036329, 6559 (float)0.008561, (float)-0.004320, (float)-0.177838, 6560 (float)-0.143174, (float)-0.069799, (float)-0.097135, 6561 (float)-0.034300, (float)-0.145224, (float)-0.107365, 6562 (float)-0.082726, (float)0.156612, (float)0.084400, 6563 (float)0.007587, (float)-0.036324, (float)-0.041241, 6564 (float)-0.083591, (float)-0.042266, (float)-0.109625, 6565 (float)-0.104835, (float)-0.024518, (float)0.028141, 6566 (float)-0.044761, (float)-0.055017, (float)-0.073045, 6567 (float)0.004575, (float)0.044300, (float)0.111216, 6568 (float)0.212421, (float)0.236663, (float)0.111209, 6569 (float)0.019262, (float)-0.000755, (float)-0.049638, 6570 (float)-0.051598, (float)0.068233, (float)0.038725, 6571 (float)0.018710, (float)0.059772, (float)-0.054286, 6572 (float)-0.063923, (float)0.010077, (float)-0.047957, 6573 (float)0.116785, (float)0.167018, (float)0.080927, 6574 (float)0.033220, (float)-0.087050, (float)0.029937, 6575 (float)0.026528, (float)0.010794, (float)0.024892, 6577 Andersen et. al. Experimental - Expires Jan. 1st, 2003 123 6578 (float)-0.032330, (float)-0.070910, (float)0.015016, 6579 (float)-0.131816, (float)-0.239687, (float)-0.038246, 6580 (float)0.000427 6581 }; 6583 float gaussnoise[GAUSS_NOISE_L] = { 6584 (float)1.164954, (float)0.626839, (float)0.075080, 6585 (float)0.351607, (float)-0.696513, (float)1.696142, 6586 (float)0.059060, (float)1.797072, (float)0.264069, 6587 (float)0.871673, (float)-1.446172, (float)-0.701165, 6588 (float)1.245982, (float)-0.638977, (float)0.577350, 6589 (float)-0.360030, (float)-0.135576, (float)-1.349338, 6590 (float)-1.270450, (float)0.984570, (float)-0.044881, 6591 (float)-0.798945, (float)-0.765172, (float)0.861735, 6592 (float)-0.056225, (float)0.513478, (float)0.396681, 6593 (float)0.756219, (float)0.400486, (float)-1.341381, 6594 (float)0.375041, (float)1.125162, (float)0.728642, 6595 (float)-2.377454, (float)-0.273782, (float)-0.322940, 6596 (float)0.317988, (float)-0.511172, (float)-0.002041, 6597 (float)1.606511, (float)0.847649, (float)0.268101, 6598 (float)-0.923489, (float)-0.070499, (float)0.147891, 6599 (float)-0.557094, (float)-0.336706, (float)0.415227, 6600 (float)1.557814, (float)-2.444299, (float)-1.098195, 6601 (float)1.122648, (float)0.581667, (float)-0.271354, 6602 (float)0.414191, (float)-0.977814, (float)-1.021466, 6603 (float)0.317688, (float)1.516108, (float)0.749432, 6604 (float)-0.507700, (float)0.885299, (float)-0.248094, 6605 (float)-0.726249, (float)-0.445040, (float)-0.612911, 6606 (float)-0.209144, (float)0.562148, (float)-1.063923, 6607 (float)0.351589, (float)1.133000, (float)0.149994, 6608 (float)0.703144, (float)-0.052412, (float)2.018496, 6609 (float)0.924159, (float)-1.814115, (float)0.034973, 6610 (float)-1.807862, (float)1.028193, (float)0.394600, 6611 (float)0.639406, (float)0.874213, (float)1.752402, 6612 (float)-0.320051, (float)-0.137414, (float)0.615770, 6613 (float)0.977894, (float)-1.115348, (float)-0.550021, 6614 (float)0.039885, (float)-2.482843, (float)1.158655, 6615 (float)-1.026279, (float)1.153487, (float)-0.786457, 6616 (float)0.634809, (float)0.820410, (float)-0.176027, 6617 (float)0.562474, (float)-0.127443, (float)0.554172, 6618 (float)-1.097344, (float)-0.731301, (float)1.404732, 6619 (float)-0.620214, (float)0.237149, (float)-1.586847, 6620 (float)-0.401485, (float)-0.770692, (float)-0.262681, 6621 (float)0.976490, (float)0.977815, (float)1.170021, 6622 (float)0.159311, (float)0.499521, (float)-1.055375, 6623 (float)-0.450743, (float)1.270378, (float)0.898694, 6624 (float)0.438705, (float)-1.247344, (float)0.324667, 6625 (float)0.390070, (float)-0.405138, (float)0.292315, 6626 (float)2.565910, (float)-0.457816, (float)-1.610827, 6627 (float)-2.669524, (float)-0.759697, (float)-0.674721, 6628 (float)-1.171687, (float)2.032930, (float)0.968481, 6629 (float)0.670292, (float)0.420146, (float)-2.872751, 6630 (float)1.685874, (float)0.027925, (float)-0.902031, 6632 Andersen et. al. Experimental - Expires Jan. 1st, 2003 124 6633 (float)-2.053257, (float)0.089086, (float)2.087099, 6634 (float)0.365118, (float)0.846106, (float)-0.184538, 6635 (float)1.030714, (float)-1.527623, (float)0.964939, 6636 (float)0.526163, (float)-0.184454, (float)0.198783, 6637 (float)1.590427, (float)0.032192, (float)0.889164, 6638 (float)-1.299152, (float)1.182573, (float)1.817472, 6639 (float)-0.584302, (float)-1.010674, (float)-0.960498, 6640 (float)0.691160, (float)-0.758618, (float)-0.096972, 6641 (float)-1.406949, (float)1.030812, (float)-0.759874, 6642 (float)0.874127, (float)0.761127, (float)-0.165923, 6643 (float)0.300907, (float)-0.322467, (float)-0.368411, 6644 (float)1.147895, (float)0.041430, (float)-1.098050, 6645 (float)1.566724, (float)-1.048423, (float)0.422724, 6646 (float)-0.844414, (float)-0.311630, (float)0.397810, 6647 (float)1.049786, (float)-0.340796, (float)0.336297, 6648 (float)-0.221361, (float)0.016649, (float)-1.192361, 6649 (float)-0.131646, (float)1.487524, (float)-0.836821, 6650 (float)-1.300982, (float)1.574132, (float)1.166040, 6651 (float)0.786430, (float)-1.461639, (float)1.554466, 6652 (float)-0.597535, (float)-1.210568, (float)-0.702669, 6653 (float)0.356429, (float)0.652636, (float)0.215671, 6654 (float)-0.263896, (float)1.802440, (float)-0.642984, 6655 (float)0.109555, (float)-0.719038, (float)0.420628, 6656 (float)-1.931134, (float)0.660300, (float)-1.102510, 6657 (float)-0.102971, (float)-1.059802, (float)-1.238566, 6658 (float)-1.889236, (float)-0.973585, (float)0.212116, 6659 (float)0.493442, (float)1.547177, (float)0.644933, 6660 (float)-2.148359, (float)-1.028845, (float)-0.141582, 6661 (float)-2.526706, (float)-0.312981, (float)-0.593618, 6662 (float)0.332322, (float)0.558851, (float)0.899884, 6663 (float)-0.200899, (float)-0.233735, (float)1.449907, 6664 (float)1.836132, (float)-0.382918, (float)0.155083, 6665 (float)-0.964648, (float)0.038756, (float)0.765458, 6666 (float)-0.594524, (float)0.130246, (float)0.035014, 6667 (float)-0.624674, (float)-0.539775, (float)1.879957, 6668 (float)-1.003849, (float)-0.497446, (float)-1.504397, 6669 (float)-0.095449, (float)0.396727, (float)-0.527115, 6670 (float)0.344571, (float)-0.723291, (float)1.268193, 6671 (float)-0.031243, (float)0.778212, (float)2.180484, 6672 (float)0.437814, (float)1.333329, (float)0.251078, 6673 (float)-0.310471, (float)-0.923004, (float)-0.384776, 6674 (float)1.158181, (float)0.862500, (float)-1.034706, 6675 (float)-0.192673, (float)-1.299723, (float)0.306596, 6676 (float)0.968992, (float)-0.747317, (float)-2.796024, 6677 (float)0.696732, (float)3.206908, (float)0.536007, 6678 (float)0.298451, (float)0.284043, (float)0.959664, 6679 (float)2.087593, (float)1.524681, (float)-0.195261, 6680 (float)0.017260, (float)0.246340, (float)-0.854485, 6681 (float)1.157783, (float)0.161908, (float)1.557064, 6682 (float)-0.193544, (float)1.651301, (float)-1.898778, 6683 (float)1.822525, (float)-1.518415, (float)-1.051071, 6684 (float)0.049931, (float)-1.454749, (float)0.466546, 6685 (float)0.545437, (float)1.320319, (float)-0.404494, 6687 Andersen et. al. Experimental - Expires Jan. 1st, 2003 125 6688 (float)0.418469, (float)0.247349, (float)0.704110, 6689 (float)0.631939, (float)-0.992362, (float)1.766708, 6690 (float)-0.382104, (float)-0.911425, (float)-0.996090, 6691 (float)1.195143, (float)-0.159448, (float)2.704026, 6692 (float)-0.198500, (float)-0.141405, (float)0.411268, 6693 (float)-1.179060, (float)-0.277776, (float)-1.581053, 6694 (float)1.049022, (float)0.302689, (float)-1.226502, 6695 (float)0.069600, (float)-0.396516, (float)1.388807, 6696 (float)1.364422, (float)0.658153, (float)0.491314, 6697 (float)0.800734, (float)-0.767269, (float)0.364420, 6698 (float)-0.397914, (float)0.864280, (float)-0.177618, 6699 (float)1.874381, (float)0.172400, (float)1.271743, 6700 (float)-0.035344, (float)-1.501329, (float)0.365373, 6701 (float)-0.198660, (float)-1.389722, (float)0.229328, 6702 (float)0.271190, (float)-0.366360, (float)1.376960, 6703 (float)-0.797533, (float)-0.936741, (float)-0.002433, 6704 (float)0.396086, (float)-0.508693, (float)-0.268286, 6705 (float)-1.082140, (float)2.014134, (float)1.944031, 6706 (float)-1.521529, (float)1.939318, (float)-0.895840, 6707 (float)-0.304158, (float)0.555253, (float)-0.324247, 6708 (float)1.338814, (float)1.222299, (float)-1.595978, 6709 (float)-1.067730, (float)-0.759919, (float)0.420989, 6710 (float)-0.433373, (float)0.706252, (float)0.227857, 6711 (float)-1.016992, (float)0.139860, (float)-0.748089, 6712 (float)-0.628975, (float)1.394831, (float)-1.647691, 6713 (float)-2.014986, (float)0.491717, (float)-1.554975, 6714 (float)-0.140609, (float)0.244944, (float)-0.267458, 6715 (float)-0.570245, (float)-0.187267, (float)1.208557, 6716 (float)-0.638855, (float)0.605540, (float)-0.624481, 6717 (float)0.572228, (float)-0.724410, (float)1.192196, 6718 (float)0.186747, (float)1.594939, (float)0.321307, 6719 (float)0.866841, (float)1.291844, (float)0.434313, 6720 (float)-0.386207, (float)-0.112564, (float)-0.964333, 6721 (float)-2.057251, (float)0.149996, (float)0.542038, 6722 (float)0.254409, (float)-0.307241, (float)-0.417112, 6723 (float)1.136805, (float)0.391314, (float)1.605148, 6724 (float)0.825892, (float)1.470390, (float)-1.378907, 6725 (float)-0.260172, (float)0.994768, (float)1.834034, 6726 (float)-1.715910, (float)0.086932, (float)1.955674, 6727 (float)0.161454, (float)-0.628688, (float)-1.438824, 6728 (float)-0.066596, (float)0.373381, (float)0.217314, 6729 (float)-0.179457, (float)0.025673, (float)0.642066, 6730 (float)0.923087, (float)-1.555108, (float)0.663594, 6731 (float)-0.609500, (float)0.565239, (float)-0.610781, 6732 (float)1.231111, (float)0.994300, (float)-0.803475, 6733 (float)-0.591204, (float)1.691546, (float)0.953356, 6734 (float)-1.930055, (float)0.512845, (float)0.393682, 6735 (float)-0.905427, (float)-1.274473, (float)0.346546, 6736 (float)-1.195235, (float)0.667201, (float)-0.067794, 6737 (float)-1.735660, (float)0.806349, (float)-0.914801, 6738 (float)-0.514013, (float)1.896261, (float)-0.253230, 6739 (float)-0.174531, (float)0.978788, (float)1.289554, 6740 (float)-0.530575, (float)-0.692971, (float)-0.859806, 6742 Andersen et. al. Experimental - Expires Jan. 1st, 2003 126 6743 (float)0.529038, (float)-0.227852, (float)0.376770, 6744 (float)1.221556, (float)1.098288, (float)-0.853014, 6745 (float)-0.904204, (float)0.698670, (float)0.482598, 6746 (float)0.811696, (float)0.327883, (float)-1.586917, 6747 (float)-0.920783, (float)-0.614274, (float)-0.334672, 6748 (float)0.080345, (float)-0.047555, (float)-0.614736, 6749 (float)0.240362, (float)0.125017, (float)-0.223605, 6750 (float)-0.391039, (float)-1.382045, (float)1.076292, 6751 (float)1.269466, (float)0.487268, (float)-0.956374, 6752 (float)0.451807, (float)-1.253778, (float)0.256435, 6753 (float)0.421229, (float)1.042360, (float)1.209120, 6754 (float)0.780955, (float)-1.179900, (float)1.001450, 6755 (float)-1.024905, (float)-1.056846, (float)2.887723, 6756 (float)-0.267744, (float)-0.488540, (float)0.419420, 6757 (float)-0.742745, (float)0.572912, (float)-0.143680, 6758 (float)-0.156844, (float)-0.611729, (float)0.100402, 6759 (float)-1.112905, (float)0.957172, (float)-0.577886, 6760 (float)-0.506138, (float)-0.983137, (float)-0.437222, 6761 (float)1.640728, (float)0.530367, (float)-2.122378, 6762 (float)-0.850378, (float)-0.424095, (float)-1.029596, 6763 (float)-0.349036, (float)-0.673263, (float)0.989850, 6764 (float)-0.577293, (float)-1.278514, (float)0.281387, 6765 (float)-1.350292, (float)0.092861, (float)1.390198, 6766 (float)0.153271, (float)0.801381, (float)0.202680, 6767 (float)-0.421487, (float)1.218891, (float)-1.751493, 6768 (float)2.945547, (float)0.186106, (float)0.667174, 6769 (float)-0.429976, (float)-1.146584, (float)-1.873306, 6770 (float)1.408075, (float)-1.476422, (float)-0.809376, 6771 (float)-0.196892, (float)-1.127700, (float)0.179925, 6772 (float)0.029963, (float)-0.711098, (float)0.456901, 6773 (float)-1.077242, (float)-0.683631, (float)0.813277, 6774 (float)0.137012, (float)0.403788, (float)1.288723, 6775 (float)0.450343, (float)-0.119641, (float)0.299881, 6776 (float)0.643104, (float)-1.775968, (float)-0.201343, 6777 (float)-1.236394, (float)0.576187, (float)0.933544, 6778 (float)1.131390, (float)-0.906374, (float)-0.515380, 6779 (float)1.181516, (float)0.200532, (float)-0.364330, 6780 (float)-0.179097, (float)0.168926, (float)0.796552, 6781 (float)-0.464512, (float)-0.814449, (float)0.067372, 6782 (float)0.184150, (float)-0.056014, (float)0.674326, 6783 (float)2.557545, (float)1.177170, (float)-1.298539, 6784 (float)-0.410115, (float)-1.847284, (float)-0.899062, 6785 (float)1.173296, (float)1.611950, (float)2.318210, 6786 (float)-0.814667, (float)0.853069, (float)-0.574005, 6787 (float)1.362962, (float)1.148564, (float)-0.378804, 6788 (float)-2.380476, (float)-0.081630, (float)-1.223518, 6789 (float)-1.084040, (float)-0.440653, (float)-1.522343, 6790 (float)1.662312, (float)-0.256088, (float)-0.807258, 6791 (float)-0.077400, (float)-1.595641, (float)1.166705, 6792 (float)-0.659430, (float)0.385522, (float)-0.187585, 6793 (float)-1.598445, (float)-0.960461, (float)0.130287, 6794 (float)0.893410, (float)0.348338, (float)0.760433, 6795 (float)-0.915962, (float)1.490409, (float)2.148636, 6797 Andersen et. al. Experimental - Expires Jan. 1st, 2003 127 6798 (float)1.129853, (float)-1.434479, (float)0.427947, 6799 (float)0.357348, (float)-0.513751, (float)-0.086701, 6800 (float)-0.668682, (float)0.213963, (float)0.100046, 6801 (float)0.721376, (float)0.091444, (float)-0.002400, 6802 (float)0.261843, (float)-0.440424, (float)-1.816264, 6803 (float)0.528719, (float)-0.351920, (float)0.144555, 6804 (float)0.810685, (float)-0.617132, (float)-1.191801, 6805 (float)-2.082037, (float)-0.972946, (float)1.150638, 6806 (float)0.042902, (float)0.664119, (float)1.577989, 6807 (float)-0.534127, (float)0.688182, (float)1.722587, 6808 (float)-1.273178, (float)-1.126164, (float)-0.310909, 6809 (float)0.177537, (float)-0.976696, (float)-0.765922, 6810 (float)-2.372749, (float)-1.719190, (float)0.090665, 6811 (float)1.660189, (float)-0.653223, (float)2.050284, 6812 (float)-0.345134, (float)-1.015168, (float)0.805136, 6813 (float)-1.287555, (float)2.145294, (float)-0.785496, 6814 (float)-0.242882, (float)-0.020406, (float)-1.440631, 6815 (float)0.780599, (float)-0.275569, (float)2.150379, 6816 (float)-1.161508, (float)-0.001266, (float)-1.142249, 6817 (float)-0.744296, (float)-0.200403, (float)-0.276941, 6818 (float)-0.975253, (float)0.397122, (float)2.680118, 6819 (float)-0.384886, (float)-0.057147, (float)-1.728765, 6820 (float)1.280767, (float)-0.583258, (float)-1.039926, 6821 (float)-1.398089, (float)0.844010, (float)0.248825, 6822 (float)-2.068566, (float)1.674866, (float)-0.582561, 6823 (float)-0.785796, (float)-0.594914, (float)0.385524, 6824 (float)-0.784288, (float)0.384008, (float)0.839488, 6825 (float)0.471760, (float)0.610146, (float)0.478515, 6826 (float)0.620631, (float)-1.770459, (float)-0.351909, 6827 (float)-0.226541, (float)1.329307, (float)-1.655171, 6828 (float)-0.060916, (float)-0.470341, (float)0.263481, 6829 (float)0.647336, (float)0.814268, (float)-0.709093, 6830 (float)-0.669992, (float)-0.988875, (float)1.036852, 6831 (float)-0.057835, (float)-0.823255, (float)1.956099, 6832 (float)-0.130638, (float)0.015360, (float)-0.673946, 6833 (float)-0.525083, (float)0.711471, (float)-1.266094, 6834 (float)1.299368, (float)0.531241, (float)-0.719614, 6835 (float)-0.107439, (float)-0.768533, (float)1.038744, 6836 (float)0.639814, (float)-0.661728, (float)-0.170603, 6837 (float)1.100780, (float)-0.393357, (float)-0.222340, 6838 (float)-0.259005, (float)-1.262057, (float)-0.328912, 6839 (float)1.739255, (float)-1.587151, (float)1.013978, 6840 (float)1.207766, (float)-1.555024, (float)0.853390, 6841 (float)-0.779175, (float)0.844147, (float)-0.643000, 6842 (float)0.698124, (float)0.623186, (float)0.625826, 6843 (float)-1.408990, (float)-1.170419, (float)1.361879, 6844 (float)-0.105752, (float)-2.359716, (float)-0.777909, 6845 (float)-0.059081, (float)-1.159160, (float)1.466680, 6846 (float)0.255200, (float)-0.146252, (float)-0.108548, 6847 (float)-1.450383, (float)0.475028, (float)-0.586808, 6848 (float)0.305144, (float)1.017417, (float)-1.304731, 6849 (float)0.443241, (float)-0.400561, (float)-0.621204, 6850 (float)1.200154, (float)1.000335, (float)-0.010695, 6852 Andersen et. al. Experimental - Expires Jan. 1st, 2003 128 6853 (float)-0.832345, (float)-1.181208, (float)-0.766562, 6854 (float)0.125589, (float)1.233429, (float)1.059862, 6855 (float)-1.755407, (float)-0.554640, (float)-0.260304, 6856 (float)1.302974, (float)-1.358675, (float)0.359975, 6857 (float)1.314540, (float)-1.212525, (float)0.593773, 6858 (float)0.597249, (float)-0.294485, (float)-0.935959, 6859 (float)-0.265477, (float)1.787029, (float)0.034741, 6860 (float)0.325478, (float)0.565107, (float)-1.474263, 6861 (float)0.268053, (float)1.765786, (float)-1.768180, 6862 (float)1.627511, (float)-2.366324, (float)-0.869979, 6863 (float)-0.699984, (float)0.859512, (float)-1.296415, 6864 (float)1.195417, (float)-1.700570, (float)-0.585549, 6865 (float)2.205565, (float)-0.827220, (float)1.966075, 6866 (float)-2.301185, (float)-0.994563, (float)0.106741, 6867 (float)1.375143, (float)2.955089, (float)1.874092, 6868 (float)0.109977, (float)-1.372973, (float)-1.354662, 6869 (float)-1.133640, (float)0.462473, (float)-0.046205, 6870 (float)-1.298474, (float)0.080468, (float)-2.032843, 6871 (float)0.564390, (float)1.156908, (float)1.253641, 6872 (float)0.309434, (float)-0.902634, (float)1.279284, 6873 (float)-0.346535, (float)0.081997, (float)-1.756170, 6874 (float)-1.327697, (float)0.786037, (float)1.117178, 6875 (float)-0.540079, (float)-0.920435, (float)0.323356, 6876 (float)0.615560, (float)-1.723877, (float)1.241964, 6877 (float)0.568060, (float)0.096060, (float)-0.395321, 6878 (float)-1.651466, (float)-1.098188, (float)-1.103339, 6879 (float)-0.875772, (float)0.665887, (float)0.937835, 6880 (float)1.563100, (float)-0.756307, (float)-1.672760, 6881 (float)-0.027883, (float)0.438835, (float)0.800308, 6882 (float)-0.974407, (float)-1.548104, (float)0.612520, 6883 (float)0.193465, (float)-1.093574, (float)0.977825, 6884 (float)-0.426525, (float)-0.508498, (float)0.241914, 6885 (float)-0.408954, (float)-1.021484, (float)1.189467, 6886 (float)-0.363852, (float)-0.228302, (float)-0.824891, 6887 (float)0.610675, (float)0.750603, (float)0.547452, 6888 (float)-1.737480, (float)-0.296406, (float)-0.369597, 6889 (float)-1.340946, (float)0.181441, (float)0.030161, 6890 (float)0.381845, (float)1.463439, (float)-0.876102, 6891 (float)-1.256036, (float)-0.269798, (float)-0.732456, 6892 (float)0.279208, (float)0.982860, (float)1.333580, 6893 (float)-0.926771, (float)1.154125, (float)2.135796, 6894 (float)0.016264, (float)-1.287073, (float)-1.553320, 6895 (float)-0.059866, (float)0.582646, (float)-0.934128, 6896 (float)0.035241, (float)1.576796, (float)-1.532254, 6897 (float)-0.254342, (float)0.660062, (float)-1.229566, 6898 (float)-0.570628, (float)-0.682228, (float)0.254562, 6899 (float)0.131692, (float)1.644603, (float)-0.236055, 6900 (float)-0.706986, (float)-0.588331, (float)1.855048, 6901 (float)2.084384, (float)-0.227784, (float)-0.265914, 6902 (float)-0.021790, (float)-0.835704, (float)-1.018327, 6903 (float)-0.945054, (float)-0.865398, (float)-0.808710, 6904 (float)-1.685751, (float)0.358190, (float)-0.671933, 6905 (float)-1.021033, (float)2.498869, (float)-0.632046, 6907 Andersen et. al. Experimental - Expires Jan. 1st, 2003 129 6908 (float)0.783785, (float)0.240538, (float)-1.470454, 6909 (float)0.334877, (float)1.599021, (float)0.990909, 6910 (float)0.066988, (float)1.993145, (float)-0.633251, 6911 (float)-0.245918, (float)1.646456, (float)1.561130, 6912 (float)-0.758432, (float)-0.903983, (float)1.132966, 6913 (float)-0.492347, (float)-0.336589, (float)0.059077, 6914 (float)-0.991926, (float)-0.997240, (float)1.105070, 6915 (float)-1.148196, (float)-0.473563, (float)0.333565, 6916 (float)-0.242387, (float)-0.445072, (float)0.748184, 6917 (float)-2.271209, (float)-1.080591, (float)0.082218, 6918 (float)0.732257, (float)-0.962436, (float)0.876035, 6919 (float)-0.633172, (float)0.836056, (float)-1.958656, 6920 (float)-0.779537, (float)1.224104, (float)0.576336, 6921 (float)-2.938220, (float)-1.104897, (float)-1.547502, 6922 (float)-1.434385, (float)0.128015, (float)1.116575, 6923 (float)-1.372281, (float)2.074836, (float)1.485758, 6924 (float)-0.043598, (float)0.750101, (float)-0.728689, 6925 (float)-0.648186, (float)0.138927, (float)-0.153634, 6926 (float)-1.146451, (float)1.365443, (float)-0.632439, 6927 (float)1.959653, (float)0.431631, (float)-0.040269, 6928 (float)-0.281505, (float)-1.227824, (float)1.159358, 6929 (float)-1.274743, (float)-0.186647, (float)-2.001022, 6930 (float)-1.028858, (float)0.545433, (float)0.224813, 6931 (float)-0.636795, (float)0.007438, (float)-0.002620, 6932 (float)0.056516, (float)-1.022040, (float)-0.242266, 6933 (float)0.545292, (float)1.980639, (float)0.111102, 6934 (float)3.533658, (float)-1.000994, (float)1.134810, 6935 (float)0.758663, (float)0.291716, (float)2.245274, 6936 (float)-1.094656, (float)1.258890, (float)0.336024, 6937 (float)1.496372, (float)-0.665822, (float)-0.088627, 6938 (float)-0.459909, (float)-0.261001, (float)0.085050, 6939 (float)-0.009841, (float)0.357200, (float)1.365078, 6940 (float)-0.718739, (float)0.415523, (float)0.179097, 6941 (float)1.236353, (float)-1.397270, (float)-1.722115, 6942 (float)-1.234309, (float)0.494105, (float)-0.657828, 6943 (float)-0.864847, (float)-2.186815, (float)-0.785680, 6944 (float)-0.905888, (float)-1.081924, (float)0.965412, 6945 (float)0.701975, (float)-1.487673, (float)-0.197859, 6946 (float)-0.294687, (float)-0.222314, (float)1.801455, 6947 (float)-0.133797, (float)-2.243783, (float)-0.689915, 6948 (float)0.699612, (float)0.772426, (float)0.497607, 6949 (float)0.391663, (float)-2.285898, (float)-0.264101, 6950 (float)-0.945537, (float)0.310190, (float)0.852659, 6951 (float)-0.938975, (float)-0.767007, (float)0.322200, 6952 (float)0.612367, (float)0.069602, (float)0.035156, 6953 (float)-0.183959, (float)0.057886, (float)-0.926959, 6954 (float)2.284313, (float)-0.430063, (float)1.502923, 6955 (float)0.579556, (float)-0.457190, (float)-0.057675, 6956 (float)0.352267, (float)-0.280606, (float)0.961475, 6957 (float)1.309079, (float)-1.306810, (float)-0.385081, 6958 (float)1.081048, (float)-1.396751, (float)-1.575387, 6959 (float)-0.515741, (float)-0.752931, (float)0.391797, 6960 (float)0.404377, (float)-1.116767, (float)-1.484789, 6962 Andersen et. al. Experimental - Expires Jan. 1st, 2003 130 6963 (float)-0.014699, (float)-0.011185, (float)-0.063508, 6964 (float)-1.027934, (float)0.988259, (float)-0.394657, 6965 (float)-0.781828, (float)-1.013073, (float)0.250469, 6966 (float)0.466443, (float)-0.219648, (float)2.174825, 6967 (float)-1.702852, (float)-0.466137, (float)1.089016, 6968 (float)-0.825434, (float)0.404264, (float)-0.941275, 6969 (float)0.924843, (float)-0.468593, (float)-0.595989, 6970 (float)-0.859251, (float)-0.066430, (float)2.001352, 6971 (float)-1.143326, (float)0.865694, (float)-1.555790, 6972 (float)-0.595296, (float)-0.952037, (float)0.601405, 6973 (float)-1.074229, (float)-0.743268, (float)0.375155, 6974 (float)1.959865, (float)-1.692890, (float)-1.691542, 6975 (float)-0.177578, (float)0.603642, (float)0.808502, 6976 (float)0.518741, (float)-0.366431, (float)1.111996, 6977 (float)0.493789, (float)-0.092126, (float)-0.082529, 6978 (float)0.209052, (float)0.448236, (float)1.516043, 6979 (float)-0.575324, (float)-0.386611, (float)-0.332480, 6980 (float)-0.730495, (float)-0.699442, (float)-0.389472, 6981 (float)1.585726, (float)1.613382, (float)-1.006807, 6982 (float)0.113213, (float)-2.447053, (float)1.437857, 6983 (float)-0.024812, (float)-0.437050, (float)0.588050, 6984 (float)-0.299502, (float)2.013934, (float)-0.956782, 6985 (float)-0.797171, (float)1.213952, (float)-0.007633, 6986 (float)1.534938, (float)-0.115904, (float)0.472482, 6987 (float)-0.457463, (float)1.517471, (float)-2.582478, 6988 (float)-0.969957, (float)0.281199, (float)0.776557, 6989 (float)-0.239998, (float)0.480210, (float)-0.550084, 6990 (float)0.339691, (float)-0.645350, (float)2.109216, 6991 (float)-0.017476, (float)0.172101, (float)0.175828, 6992 (float)1.815996, (float)-0.132231, (float)0.260489, 6993 (float)-1.838062, (float)-1.911657, (float)-0.300257, 6994 (float)2.155180, (float)-0.606822, (float)0.534044, 6995 (float)0.275577, (float)-0.331441, (float)0.593097, 6996 (float)-1.610893, (float)1.264868, (float)0.096780, 6997 (float)0.249615, (float)-1.861685, (float)1.142294, 6998 (float)-0.469357, (float)0.346747, (float)-1.517104, 6999 (float)-0.127081, (float)-0.203688, (float)-0.152213, 7000 (float)-2.601013, (float)-0.766729, (float)0.521099, 7001 (float)-0.449036, (float)-0.348353, (float)-1.786723, 7002 (float)0.967375, (float)-0.439579, (float)-0.558138, 7003 (float)-0.249797, (float)0.952036, (float)0.661397, 7004 (float)0.301574, (float)-0.672370, (float)-1.515932, 7005 (float)0.501555, (float)-0.858661, (float)-1.276687, 7006 (float)-0.012370, (float)-1.889581, (float)1.342246, 7007 (float)0.326668, (float)-0.104169, (float)0.097926, 7008 (float)1.228837, (float)0.825364, (float)0.258108, 7009 (float)-0.250908, (float)0.002343, (float)0.265741, 7010 (float)-0.275599, (float)1.447952, (float)-0.010525, 7011 (float)-0.696113 7012 }; 7014 Andersen et. al. Experimental - Expires Jan. 1st, 2003 131 7015 A.9 anaFilter.h 7017 /****************************************************************** 7019 iLBC Speech Coder ANSI-C Source Code 7021 anaFilter.h 7023 Copyright (c) 2001, 7024 Global IP Sound AB. 7025 All rights reserved. 7027 ******************************************************************/ 7029 #ifndef __iLBC_ANAFILTER_H 7030 #define __iLBC_ANAFILTER_H 7032 void anaFilter( 7033 float *In, /* (i) Signal to be filtered */ 7034 float *a, /* (i) LP parameters */ 7035 int len, /* (i) Length of signal */ 7036 float *Out, /* (o) Filtered signal */ 7037 float *mem /* (i/o) Filter state */ 7038 ); 7040 #endif 7042 A.10 anaFilter.c 7044 /****************************************************************** 7046 iLBC Speech Coder ANSI-C Source Code 7048 anaFilter.c 7050 Copyright (c) 2001, 7051 Global IP Sound AB. 7052 All rights reserved. 7054 ******************************************************************/ 7056 #include "iLBC_define.h" 7058 /*----------------------------------------------------------------* 7059 * LP analysis filter. 7060 *---------------------------------------------------------------*/ 7062 void anaFilter( 7063 float *In, /* (i) Signal to be filtered */ 7064 float *a, /* (i) LP parameters */ 7065 int len, /* (i) Length of signal */ 7067 Andersen et. al. Experimental - Expires Jan. 1st, 2003 132 7068 float *Out, /* (o) Filtered signal */ 7069 float *mem /* (i/o) Filter state */ 7070 ){ 7071 int i, n; 7072 float *pi, *po; 7074 pi = &In[0]; 7075 po = &Out[0]; 7077 /* loop over signal samples */ 7078 for (n=0; n0; i--) 7087 mem[i] = mem[i-1]; 7088 mem[0] = *pi; 7090 po++; 7091 pi++; 7092 } 7093 } 7095 A.11 createCB.h 7097 /****************************************************************** 7099 iLBC Speech Coder ANSI-C Source Code 7101 createCB.h 7103 Copyright (c) 2001, 7104 Global IP Sound AB. 7105 All rights reserved. 7107 ******************************************************************/ 7109 #ifndef __iLBC_CREATECB_H 7110 #define __iLBC_CREATECB_H 7112 void createCB( 7113 float *cb, /* (o) Codebook */ 7114 float *invenergy, /* (o) Energy of codebook vectors inverted */ 7115 float *mem, /* (i) Buffer to create codebook from */ 7116 int lMem, /* (i) Length of buffer */ 7117 int cbveclen /* (i) Length of codevector */ 7118 ); 7120 Andersen et. al. Experimental - Expires Jan. 1st, 2003 133 7121 #endif 7123 A.12 createCB.c 7125 /****************************************************************** 7127 iLBC Speech Coder ANSI-C Source Code 7129 createCB.c 7131 Copyright (c) 2001, 7132 Global IP Sound AB. 7133 All rights reserved. 7135 ******************************************************************/ 7137 #include "iLBC_define.h" 7138 #include "constants.h" 7139 #include 7141 /*----------------------------------------------------------------* 7142 * Construct a codebook section and calculate inverted energy of 7143 * each codevector. 7144 *---------------------------------------------------------------*/ 7146 int createSection( /* (o) Number of vectors constructed */ 7147 float *cb, /* (o) Codebook */ 7148 float *energy, /* (o) Energy of codebook vectors */ 7149 float *mem, /* (i) Buffer to create codebook from */ 7150 int lMem, /* (i) Length of buffer */ 7151 int cbveclen /* (i) Length of codevector */ 7152 ){ 7153 int j, k, cb_index; 7154 int ilow, ihigh, ilen; 7155 float alfa, alfa1; 7156 float *pp, *ppe, *ppo, *ppi; 7158 /* index counter */ 7160 cb_index=0; 7161 ppe=energy; 7163 /* first non-interpolated vector */ 7165 k=cbveclen; 7166 *ppe=0.0; 7167 pp=mem+lMem-k; 7168 memcpy(cb+cb_index*cbveclen, pp, cbveclen*sizeof(float)); 7169 for (j=0; j 5) {ilen=5; ilow=ihigh+1-ilen;} 7200 /* no interpolation */ 7202 *ppe=0.0; 7203 pp=mem+lMem-k/2; 7204 memcpy(cb+cb_index*cbveclen, pp, ilow*sizeof(float)); 7205 for (j=0; j lMem-1) eInd=lMem-memInd; 7272 pp=mem+sInd+memInd; pp1=&cbfilters[filtno-1][sInd]; 7273 for (j=sInd;j0.0) 7292 invenergy[j]=(float)1.0/(invenergy[j]+EPS); 7293 } 7294 } 7296 A.13 doCPLC.h 7298 /****************************************************************** 7300 iLBC Speech Coder ANSI-C Source Code 7302 doCPLC.h 7304 Copyright (c) 2001, 7305 Global IP Sound AB. 7306 All rights reserved. 7308 ******************************************************************/ 7310 #ifndef __iLBC_DOLPC_H 7311 #define __iLBC_DOLPC_H 7313 void doThePLC( 7314 float *PLCresidual, /* (o) concealed residual */ 7315 float *PLClpc, /* (o) concealed LP parameters */ 7316 int PLI, /* (i) packet loss indicator 0 - no PL, 1 = PL */ 7317 float *decresidual, /* (i) decoded residual */ 7318 float *lpc, /* (i) decoded LPC (only used for no PL) */ 7319 int inlag, /* (i) pitch lag */ 7320 iLBC_Dec_Inst_t *iLBCdec_inst /* (i/o) decoder instance */ 7321 ); 7323 #endif 7325 A.14 doCPLC.c 7327 /****************************************************************** 7329 iLBC Speech Coder ANSI-C Source Code 7331 doCPLC.c 7333 Copyright (c) 2001, 7334 Global IP Sound AB. 7336 Andersen et. al. Experimental - Expires Jan. 1st, 2003 137 7337 All rights reserved. 7339 ******************************************************************/ 7341 #include 7342 #include 7344 #include "iLBC_define.h" 7346 /*----------------------------------------------------------------* 7347 * Compute cross correlation and pitch gain for pitch prediction 7348 * of last subframe at given lag. 7349 *---------------------------------------------------------------*/ 7351 void compCorr( 7352 float *cc, /* (o) cross correlation coefficient */ 7353 float *gc, /* (o) gain */ 7354 float *buffer, /* (i) signal buffer */ 7355 int lag, /* (i) pitch lag */ 7356 int nsub, /* (i) number of subframes */ 7357 int subl /* (i) subframe length */ 7358 ){ 7359 int i; 7360 float ftmp1, ftmp2; 7362 ftmp1 = 0.0; 7363 ftmp2 = 0.0; 7364 for (i=0; i 0.0) { 7371 *cc = ftmp1*ftmp1/ftmp2; 7372 *gc = (float)fabs(ftmp1/ftmp2); 7373 } 7374 else { 7375 *cc = 0.0; 7376 *gc = 0.0; 7377 } 7378 } 7380 /*----------------------------------------------------------------* 7381 * Packet loss concealment routine. Conceals a residual signal 7382 * and LP parameters. If no packet loss, update state. 7383 *---------------------------------------------------------------*/ 7385 void doThePLC( 7386 float *PLCresidual, /* (o) concealed residual */ 7387 float *PLClpc, /* (o) concealed LP parameters */ 7388 int PLI, /* (i) packet loss indicator 0 - no PL, 1 = PL */ 7389 float *decresidual, /* (i) decoded residual */ 7391 Andersen et. al. Experimental - Expires Jan. 1st, 2003 138 7392 float *lpc, /* (i) decoded LPC (only used for no PL) */ 7393 int inlag, /* (i) pitch lag */ 7394 iLBC_Dec_Inst_t *iLBCdec_inst /* (i/o) decoder instance */ 7395 ){ 7396 int lag, randlag; 7397 float gain, maxcc; 7398 int i, pick, offset; 7399 float ftmp, ftmp1, randvec[BLOCKL], pitchfact; 7401 /* Packet Loss */ 7403 if (PLI == 1) { 7405 (*iLBCdec_inst).consPLICount += 1; 7407 /* if previous frame not lost, determine pitch pred. gain */ 7409 if ((*iLBCdec_inst).prevPLI != 1) { 7411 lag=inlag; 7412 compCorr(&maxcc, &gain, (*iLBCdec_inst).prevResidual, 7413 lag, NSUB, SUBL); 7415 if (gain > 1.0) gain = 1.0; 7417 } 7419 /* previous frame lost, use recorded lag and gain */ 7421 else { 7422 lag=(*iLBCdec_inst).prevLag; 7423 gain=(*iLBCdec_inst).prevGain; 7424 } 7426 /* Attenuate signal and scale down pitch pred gain if 7427 several frames lost consecutively */ 7429 if ((*iLBCdec_inst).consPLICount > 1) gain *= (float)0.9; 7431 /* Compute mixing factor of picth repeatition and noise */ 7433 if (gain > XT_MIX) 7434 pitchfact = YT_MIX; 7435 else if (gain < XB_MIX) 7436 pitchfact = YB_MIX; 7437 else 7438 pitchfact = YB_MIX + (gain - XB_MIX) * 7439 (YT_MIX - YB_MIX) / (XT_MIX - XB_MIX); 7441 /* compute concealed residual */ 7443 (*iLBCdec_inst).energy = 0.0; 7444 for (i=0; i= GAINTHRESHOLD) { 7512 /* Compute mixing factor of pitch repeatition 7513 and noise */ 7515 if (gain > XT_MIX) 7516 pitchfact = YT_MIX; 7517 else if (gain < XB_MIX) 7518 pitchfact = YB_MIX; 7519 else 7520 pitchfact = YB_MIX + (gain - XB_MIX) * 7521 (YT_MIX - YB_MIX) / (XT_MIX - XB_MIX); 7523 /* compute concealed residual for 3 subframes */ 7525 for (i=0; i<3*SUBL; i++) { 7527 (*iLBCdec_inst).seed=((*iLBCdec_inst).seed* 7528 69069L+1) & (0x80000000L-1); 7529 randlag = 50 + ((signed long) 7530 (*iLBCdec_inst).seed)%70; 7532 /* noise component */ 7534 pick = i - randlag; 7535 if (pick < 0) 7536 randvec[i] = gain * 7537 (*iLBCdec_inst).prevResidual[BLOCKL+pick]; 7538 else 7539 randvec[i] = gain * randvec[pick]; 7541 /* pitch repeatition component */ 7543 pick = i - lag; 7544 if (pick < 0) 7545 PLCresidual[i] = gain * 7546 (*iLBCdec_inst).prevResidual[BLOCKL+pick]; 7547 else 7548 PLCresidual[i] = gain * PLCresidual[pick]; 7550 /* mix noise and pitch repeatition */ 7552 PLCresidual[i] = (pitchfact * PLCresidual[i] + 7554 Andersen et. al. Experimental - Expires Jan. 1st, 2003 141 7555 ((float)1.0 - pitchfact) * randvec[i]); 7556 } 7558 /* interpolate concealed residual with actual 7559 residual */ 7561 offset = 3*SUBL; 7562 for (i=0; i 7644 #include 7645 #include "iLBC_define.h" 7646 #include "constants.h" 7648 /*----------------------------------------------------------------* 7649 * Find index in array such that the array element with said 7650 * index is the element of said array closest to "value" 7651 * according to the squared-error criterion 7652 *---------------------------------------------------------------*/ 7654 void nn( 7655 int *index, /* (o) index of array element closest to value */ 7656 float *array, /* (i) data array */ 7657 float value, /* (i) value */ 7658 int arlength /* (i) dimension of data array */ 7659 ){ 7661 Andersen et. al. Experimental - Expires Jan. 1st, 2003 143 7662 int i; 7663 float bestcrit,crit; 7665 crit=array[0]-value; 7666 bestcrit=crit*crit; 7667 *index=0; 7668 for(i=1;i dim1){ 7723 hfl2=(int) (dim1/2); 7724 for(j=0;jENH_SLOP) slop=ENH_SLOP; 7803 e=b+blockl-1; 7804 bll0=bl-slop; if(bll0<0){ bll0=0;} 7805 bll1=bl+slop; if(bll1+blockl >= idatal){ bll1=idatal-blockl-1;} 7806 corrdim=bll1-bll0+1; 7808 /* compute upsampled correlation (corr33) and find location of 7809 max */ 7811 mycorr1(corr22,idata+bll0,corrdim+blockl-1,idata+b,blockl); 7812 enh_upsample(corr33,corr22,corrdim,polyphaser, 7813 ENH_FL0,ENH_UPS0); 7814 tloc=0; maxv=corr33[0]; 7815 for(i=1;imaxv){ 7817 tloc=i; 7818 maxv=corr33[i]; 7819 } 7820 } 7822 /* make vector can be upsampled without ever running outside 7823 bounds */ 7825 Andersen et. al. Experimental - Expires Jan. 1st, 2003 146 7826 *bl2= (float)bll0+ (float)tloc/(float)ENH_UPS0+(float)1.0; 7827 tloc2=(int)(tloc/ENH_UPS0); if(tloc>tloc2*ENH_UPS0){tloc2++;} 7828 st=bll0+tloc2-ENH_FL0; 7829 vectl=blockl+2*ENH_FL0; 7831 if(st<0){ 7832 for(i=0;i<-st;i++){ vect[i]=0.0;} 7833 for(i=-st;iidatal){ 7838 for(i=0;i alpha0 * w00){ 7918 if( w00 < 1) w00=1; 7919 denom = (w11*w00-w10*w10)/(w00*w00); 7920 if( denom > 0.0001){ /* eliminates numerical problems 7921 for if smooth */ 7922 A = (float)sqrt( (alpha0- alpha0*alpha0/4)/denom); 7923 B = -alpha0/2 - A * w10/w00; 7924 B = B+1; 7925 } 7926 else{ /* essentially no difference between cycles; 7927 smoothing not needed */ 7928 A= 0.0; 7929 B= 1.0; 7930 } 7932 /* create smoothed sequence */ 7934 Andersen et. al. Experimental - Expires Jan. 1st, 2003 148 7935 psseq=sseq+hl*blockl; 7936 for(i=0;i=0;q--){ 7976 bbb[q]=bbb[q+1]-period[ppl[q+1]]; 7977 nn(ppl+q,plocs,bbb[q]+hblockl-period[ppl[q+1]],periodl); 7978 if(bbb[q]-ENH_OVERHANG>=0) 7979 refiner(sseq+q*blockl,bbb+q,idata,idatal,b,bbb[q], 7980 blockl,period[ppl[q+1]]); 7981 else{ 7982 psseq=sseq+q*blockl; 7983 for(i=0;i 0.0) { 8086 return (float)(ftmp1*ftmp1/ftmp2); 8087 } 8088 else { 8089 return (float)0.0; 8090 } 8091 } 8093 /*----------------------------------------------------------------* 8094 * interface for enhancer 8095 *---------------------------------------------------------------*/ 8097 Andersen et. al. Experimental - Expires Jan. 1st, 2003 151 8098 int enhancerInterface( 8099 float *out, /* (o) enhanced signal */ 8100 float *in, /* (i) unenhanced signal */ 8101 iLBC_Dec_Inst_t *iLBCdec_inst /* (i) buffers etc */ 8102 ){ 8103 float *enh_buf, *enh_period; 8104 float dummy[2]; 8105 int iblock, isample; 8106 int lag, ilag, i; 8107 float cc, maxcc; 8108 float ftmp1, ftmp2, gain; 8109 int prev_pl; 8111 prev_pl=iLBCdec_inst->prev_enh_pl; 8112 enh_buf=iLBCdec_inst->enh_buf; 8113 enh_period=iLBCdec_inst->enh_period; 8115 for(isample = 0; isample maxcc) { 8132 maxcc = cc; 8133 lag = ilag; 8134 } 8135 } 8137 ftmp1 = 0.0; 8138 ftmp2 = 0.0; 8139 for (i=0; i 0.0) { 8144 gain=(float)(ftmp1/ftmp2); 8145 } 8146 else { 8147 gain=(float)0.0; 8148 } 8149 if (gain>1.0) gain=1.0; 8151 Andersen et. al. Experimental - Expires Jan. 1st, 2003 152 8152 if (gain<-1.0) gain=-1.0; 8154 for(isample = ENH_BLOCKL-1; isample>=0; isample--) { 8155 if (isample+lag > ENH_BLOCKL-1) 8156 enh_buf[ENH_NBLOCKS_EXTRA*ENH_BLOCKL+isample- 8157 ENH_BLOCKL] = 8158 gain*in[isample+lag-ENH_BLOCKL]; 8159 else 8160 enh_buf[ENH_NBLOCKS_EXTRA*ENH_BLOCKL+isample- 8161 ENH_BLOCKL] = 8163 gain*enh_buf[ENH_NBLOCKS_EXTRA*ENH_BLOCKL+isample- 8164 ENH_BLOCKL+lag]; 8165 } 8166 } 8168 for(iblock = 0; iblock maxcc) { 8182 maxcc = cc; 8183 lag = ilag; 8184 } 8185 } 8187 enh_period[iblock+ENH_NBLOCKS_EXTRA] = (float)lag; 8188 } 8190 for(iblock = 0; iblock max_ssq){ 8414 max_ssq = ssq[n]; 8415 max_ssq_n = n; 8416 } 8417 } 8419 Andersen et. al. Experimental - Expires Jan. 1st, 2003 157 8420 /* calculate return index */ 8422 if( max_ssq_n == 0) return 1; 8423 if( max_ssq_n == (NSUB-1) ) return NSUB-1; 8424 if( ssq[max_ssq_n-1] > ssq[max_ssq_n+1] ) return max_ssq_n; 8425 return max_ssq_n+1; 8426 } 8428 A.21 gaincorr_Encode.h 8430 /****************************************************************** 8432 iLBC Speech Coder ANSI-C Source Code 8434 gaincorr_Encode.h 8436 Copyright (c) 2001, 8437 Global IP Sound AB. 8438 All rights reserved. 8440 ******************************************************************/ 8442 #ifndef __iLBC_GAINCORR_ENCODE_H 8443 #define __iLBC_GAINCORR_ENCODE_H 8445 int gaincorr_Encode( /* (o) index to quantized gain correction 8446 factor */ 8447 float *decresidual, /* (i) the decoded residual vector without 8448 gain correction */ 8449 int start_pos, /* (i) the position of the start state in the 8450 residual vector */ 8451 float *residual /* (i) the target residual vector */ 8452 ); 8454 #endif 8456 A.22 gaincorr_Encode.c 8458 /****************************************************************** 8460 iLBC Speech Coder ANSI-C Source Code 8462 gaincorr_Encode.c 8464 Copyright (c) 2001, 8465 Global IP Sound AB. 8466 All rights reserved. 8468 ******************************************************************/ 8470 Andersen et. al. Experimental - Expires Jan. 1st, 2003 158 8471 #include "iLBC_define.h" 8472 #include "constants.h" 8473 #include 8475 int gaincorr_Encode( /* (o) index to quantized gain correction 8476 factor */ 8477 float *decresidual, /* (i) the decoded residual vector without 8478 gain correction */ 8479 int start_pos, /* (i) the position of the start state in the 8480 residual vector */ 8481 float *residual /* (i) the target residual vector */ 8482 ){ 8483 float state_energy = 0.0, dec_state_energy = 0.0, 8484 residual_energy = 0.0, dec_residual_energy = 0.0; 8485 int i, k, index; 8486 float state_loss_factor, residual_loss_factor, correction_factor; 8487 float factor, std_decresidual, one_minus_factor_scaled; 8488 int gaussstart; 8490 /* calculation of state energies */ 8492 for(k=0; k 1) correction_factor = 1; 8523 index=(int)(correction_factor*16)-1; 8525 Andersen et. al. Experimental - Expires Jan. 1st, 2003 159 8526 if (index<0) index=0; 8527 if (sqrt(residual_energy/state_energy)<0.25) index=15; 8529 factor=(float)(index+1)/(float)16.0; 8530 for(k=0;k 8597 #include 8598 #include 8600 #include "constants.h" 8601 #include "filter.h" 8603 /*----------------------------------------------------------------* 8604 * quantizer for the gain in the gain-shape coding of residual 8605 *---------------------------------------------------------------*/ 8607 float gainquant( /* (o) quantized gain value */ 8608 float in, /* (i) gain value */ 8609 float maxIn, /* (i) maximum of gain value */ 8610 int cblen, /* (i) number of quantization indices */ 8611 int *index /* (o) quantization index */ 8612 ){ 8613 int i, tindex; 8614 float minmeasure,measure, *cb, scale; 8616 /* ensure a lower bound on the scaling factor */ 8618 scale=maxIn; 8619 if (scale<0.1) scale=(float)0.1; 8621 /* select the quantization table */ 8623 if (cblen == 8) 8624 cb = gain_sq3; 8625 else 8626 cb = gain_sq4; 8628 /* select the best index in the quantization table */ 8630 minmeasure=10000.0; 8632 Andersen et. al. Experimental - Expires Jan. 1st, 2003 161 8633 for (i=0;i 8723 /*----------------------------------------------------------------* 8724 * Construct codebook vector for given index. 8725 *---------------------------------------------------------------*/ 8727 void getCBvec( 8728 float *cbvec, /* (o) Constructed codebook vector */ 8729 float *mem, /* (i) Codebook buffer */ 8730 int index, /* (i) Codebook index */ 8731 int lMem, /* (i) Length of codebook buffer */ 8732 int cbveclen /* (i) Codebook vector length */ 8733 ){ 8734 int j, k, n, filtno, memInd, sInd, eInd, sFilt, eFilt; 8735 float accum, tmpbuf[MEML]; 8736 int base_size; 8737 int ilow, ihigh, ilen; 8738 float alfa, alfa1; 8740 Andersen et. al. Experimental - Expires Jan. 1st, 2003 163 8741 /* Determine size of codebook sections */ 8743 base_size=lMem-cbveclen+1; 8744 if (cbveclen==SUBL) 8745 base_size+=cbveclen/2; 8747 /* No filter -> First codebook section */ 8749 if (index < base_size) { 8751 /* first non-interpolated vectors */ 8753 if (index 5) {ilen=5; ilow=ihigh+1-ilen;} 8771 /* no interpolation */ 8773 memcpy(cbvec, mem+lMem-k/2, ilow*sizeof(float)); 8775 /* interpolation */ 8777 alfa1=(float)1.0/(float)ilen; 8778 alfa=0.0; 8779 for (j=ilow; j<=ihigh; j++) { 8780 cbvec[j]=((float)1.0-alfa)*mem[lMem-k/2+j]+ 8781 alfa*mem[lMem-k+j]; 8782 alfa+=alfa1; 8783 } 8785 /* no interpolation */ 8787 memcpy(cbvec+ihigh+1, mem+lMem-k+ihigh+1, 8788 (cbveclen-1-ihigh)*sizeof(float)); 8789 } 8790 } 8792 /* Higher codebbok sections based on filtering */ 8794 Andersen et. al. Experimental - Expires Jan. 1st, 2003 164 8795 else { 8797 /* filter number (i.e. section number) */ 8799 filtno=index/base_size; 8801 /* first non-interpolated vectors */ 8803 if (index-filtno*base_size lMem-1) eInd=lMem-memInd; 8817 for (j=sInd;j lMem-1) eInd=lMem-memInd; 8844 for (j=sInd;j 5) {ilen=5; ilow=ihigh+1-ilen;} 8859 /* no interpolation */ 8861 memcpy(cbvec, tmpbuf+lMem-k/2, ilow*sizeof(float)); 8863 /* interpolation */ 8865 alfa1=(float)1.0/(float)ilen; 8866 alfa=0.0; 8867 for (j=ilow; j<=ihigh; j++) { 8868 cbvec[j]=((float)1.0-alfa)* 8869 tmpbuf[lMem-k/2+j]+alfa*tmpbuf[lMem-k+j]; 8870 alfa+=alfa1; 8871 } 8873 /* no interpolation */ 8875 memcpy(cbvec+ihigh+1, tmpbuf+lMem-k+ihigh+1, 8876 (cbveclen-1-ihigh)*sizeof(float)); 8877 } 8878 } 8879 } 8881 A.27 helpfun.h 8883 /****************************************************************** 8885 iLBC Speech Coder ANSI-C Source Code 8887 helpfun.h 8889 Copyright (c) 2001, 8890 Global IP Sound AB. 8891 All rights reserved. 8893 ******************************************************************/ 8895 #ifndef __iLBC_HELPFUN_H 8896 #define __iLBC_HELPFUN_H 8898 void autocorr( 8899 float *r, /* (o) autocorrelation vector */ 8900 const float *x, /* (i) data vector */ 8902 Andersen et. al. Experimental - Expires Jan. 1st, 2003 166 8903 int N, /* (i) length of data vector */ 8904 int order /* largest lag for calculated autocorrelations */ 8905 ); 8907 void window( 8908 float *z, /* (o) the windowed data */ 8909 const float *x, /* (i) the original data vector */ 8910 const float *y, /* (i) the window */ 8911 int N /* (i) length of all vectors */ 8912 ); 8914 void levdurb( 8915 float *a, /* (o) lpc coefficient vector starting with 1.0 */ 8916 float *k, /* (o) reflection coefficients */ 8917 float *r, /* (i) autocorrelation vector */ 8918 int order /* (i) order of lpc filter */ 8919 ); 8921 void interpolate( 8922 float *out, /* (o) the interpolated vector */ 8923 float *in1, /* (i) the first vector for the interpolation */ 8924 float *in2, /* (i) the second vector for the interpolation */ 8925 float coef, /* (i) interpolation weights */ 8926 int length /* (i) length of all vectors */ 8927 ); 8929 void bwexpand( 8930 float *out, /* (o) the bandwidth expanded lpc coefficients */ 8931 float *in, /* (i) the lpc coefficients before bandwidth 8932 expansion */ 8933 float coef, /* (i) the bandwidth expansion factor */ 8934 int length /* (i) the length of lpc coefficient vectors */ 8935 ); 8937 void vq( 8938 float *Xq, /* (o) the quantized vector */ 8939 int *index, /* (o) the quantization index */ 8940 const float *CB, /* (i) the vector quantization codebook */ 8941 float *X, /* (i) the vector to quantize */ 8942 int n_cb, /* (i) the number of vectors in the codebook */ 8943 int dim /* (i) the dimension of all vectors */ 8944 ); 8946 void gvq( 8947 float *Xq, /* (o) the quantized vector */ 8948 int *index, /* (o) the quantization index */ 8949 float *CB, /* (i) the shape codebook */ 8950 float *X, /* (i) the vector to quantize */ 8951 int n_cb, /* (i) the number of vectors in the shape 8952 codebook */ 8953 int dim, /* (i) dimension of all vectors */ 8954 float in_ene, /* (i) the energy of the input vector */ 8955 float factor, /* (o) resulting gain factor */ 8957 Andersen et. al. Experimental - Expires Jan. 1st, 2003 167 8958 int targlen /* (i) dimension of all vectors */ 8959 ); 8961 void SplitVQ( 8962 float *qX, /* (o) the quantized vector */ 8963 int *index, /* (o) a vector of indexes for all vector 8964 codebooks in the split */ 8965 float *X, /* (i) the vector to quantize */ 8966 const float *CB, /* (i) the quantizer codebook */ 8967 int nsplit, /* the number of vector splits */ 8968 const int *dim, /* the dimension of X and qX */ 8969 const int *cbsize /* the number of vectors in the 8970 codebook */ 8971 ); 8973 void sort_sq( 8974 float *xq, /* (o) the quantized value */ 8975 int *index, /* (o) the quantization index */ 8976 float x, /* (i) the value to quantize */ 8977 const float *cb, /* (i) the quantization codebook */ 8978 int cb_size /* (i) the size of the quantization codebook */ 8979 ); 8981 int LSF_check( 8982 float *lsf, /* (i) a table of lsf vectors */ 8983 int dim, /* (i) the dimension of each lsf vector */ 8984 int NoAn /* (i) the number of lsf vectors in the table */ 8985 ); 8987 #endif 8989 A.28 helpfun.c 8991 /****************************************************************** 8993 iLBC Speech Coder ANSI-C Source Code 8995 helpfun.c 8997 Copyright (c) 2001, 8998 Global IP Sound AB. 8999 All rights reserved. 9001 ******************************************************************/ 9003 #include 9005 #include "iLBC_define.h" 9006 #include "constants.h" 9008 /*----------------------------------------------------------------* 9010 Andersen et. al. Experimental - Expires Jan. 1st, 2003 168 9011 * calculation of auto correlation 9012 *---------------------------------------------------------------*/ 9014 void autocorr( 9015 float *r, /* (o) autocorrelation vector */ 9016 const float *x, /* (i) data vector */ 9017 int N, /* (i) length of data vector */ 9018 int order /* largest lag for calculated autocorrelations */ 9019 ){ 9020 int lag, n; 9021 float sum; 9023 for (lag = 0; lag <= order; lag++) { 9024 sum = 0; 9025 for (n = 0; n < N - lag; n++) 9026 sum += x[n] * x[n+lag]; 9027 r[lag] = sum; 9028 } 9029 } 9031 /*----------------------------------------------------------------* 9032 * window multiplication 9033 *---------------------------------------------------------------*/ 9035 void window( 9036 float *z, /* (o) the windowed data */ 9037 const float *x, /* (i) the original data vector */ 9038 const float *y, /* (i) the window */ 9039 int N /* (i) length of all vectors */ 9040 ){ 9041 int i; 9043 for (i = 0; i < N; i++) { 9044 z[i] = x[i] * y[i]; 9045 } 9046 } 9048 /*----------------------------------------------------------------* 9049 * levinson-durbin solution for lpc coefficients 9050 *---------------------------------------------------------------*/ 9052 void levdurb( 9053 float *a, /* (o) lpc coefficient vector starting with 1.0 */ 9054 float *k, /* (o) reflection coefficients */ 9055 float *r, /* (i) autocorrelation vector */ 9056 int order /* (i) order of lpc filter */ 9057 ){ 9058 float sum, alpha; 9059 int m, m_h, i; 9061 a[0] = 1.0; 9062 if (r[0] < EPS) { /* if r[0] <= 0, set LPC coeff. to zero */ 9063 for (i = 0; i < order; i++) { 9065 Andersen et. al. Experimental - Expires Jan. 1st, 2003 169 9066 k[i] = 0; 9067 a[i+1] = 0; 9068 } 9069 } else { 9070 a[1] = k[0] = -r[1]/r[0]; 9071 alpha = r[0] + r[1] * k[0]; 9072 for (m = 1; m < order; m++){ 9073 sum = r[m + 1]; 9074 for (i = 0; i < m; i++){ 9075 sum += a[i+1] * r[m - i]; 9076 } 9077 k[m] = -sum / alpha; 9078 alpha += k[m] * sum; 9079 m_h = (m + 1) >> 1; 9080 for (i = 0; i < m_h; i++){ 9081 sum = a[i+1] + k[m] * a[m - i]; 9082 a[m - i] += k[m] * a[i+1]; 9083 a[i+1] = sum; 9084 } 9085 a[m+1] = k[m]; 9086 } 9087 } 9088 } 9090 /*----------------------------------------------------------------* 9091 * interpolation between vectors 9092 *---------------------------------------------------------------*/ 9094 void interpolate( 9095 float *out, /* (o) the interpolated vector */ 9096 float *in1, /* (i) the first vector for the interpolation */ 9097 float *in2, /* (i) the second vector for the interpolation */ 9098 float coef, /* (i) interpolation weights */ 9099 int length /* (i) length of all vectors */ 9100 ){ 9101 int i; 9102 float invcoef; 9104 invcoef = (float)1.0 - coef; 9105 for (i = 0; i < length; i++) 9106 out[i] = coef * in1[i] + invcoef * in2[i]; 9107 } 9109 /*----------------------------------------------------------------* 9110 * lpc bandwidth expansion 9111 *---------------------------------------------------------------*/ 9113 void bwexpand( 9114 float *out, /* (o) the bandwidth expanded lpc coefficients */ 9115 float *in, /* (i) the lpc coefficients before bandwidth 9116 expansion */ 9117 float coef, /* (i) the bandwidth expansion factor */ 9118 int length /* (i) the length of lpc coefficient vectors */ 9120 Andersen et. al. Experimental - Expires Jan. 1st, 2003 170 9121 ){ 9122 int i; 9123 float chirp; 9125 chirp = coef; 9127 out[0] = in[0]; 9128 for (i = 1; i < length; i++) { 9129 out[i] = chirp * in[i]; 9130 chirp *= coef; 9131 } 9132 } 9134 /*----------------------------------------------------------------* 9135 * vector quantization 9136 *---------------------------------------------------------------*/ 9138 void vq( 9139 float *Xq, /* (o) the quantized vector */ 9140 int *index, /* (o) the quantization index */ 9141 const float *CB, /* (i) the vector quantization codebook */ 9142 float *X, /* (i) the vector to quantize */ 9143 int n_cb, /* (i) the number of vectors in the codebook */ 9144 int dim /* (i) the dimension of all vectors */ 9145 ){ 9146 int i, j; 9147 int pos, minindex; 9148 float dist, tmp, mindist; 9150 pos = 0; 9151 mindist = FLOAT_MAX; 9152 for (j = 0; j < n_cb; j++) { 9153 dist = X[0] - CB[pos]; 9154 dist *= dist; 9155 for (i = 1; i < dim; i++) { 9156 tmp = X[i] - CB[pos + i]; 9157 dist += tmp*tmp; 9158 if (dist >= mindist) goto next; 9159 } 9160 if (dist < mindist) { 9161 mindist = dist; 9162 minindex = j; 9163 } 9164 next: pos += dim; 9165 } 9166 for (i = 0; i < dim; i++) { 9167 Xq[i] = CB[minindex*dim + i]; 9168 } 9169 *index = minindex; 9170 } 9172 /*----------------------------------------------------------------* 9173 * split vector quantization 9175 Andersen et. al. Experimental - Expires Jan. 1st, 2003 171 9176 *---------------------------------------------------------------*/ 9178 void SplitVQ( 9179 float *qX, /* (o) the quantized vector */ 9180 int *index, /* (o) a vector of indexes for all vector 9181 codebooks in the split */ 9182 float *X, /* (i) the vector to quantize */ 9183 const float *CB, /* (i) the quantizer codebook */ 9184 int nsplit, /* the number of vector splits */ 9185 const int *dim, /* the dimension of X and qX */ 9186 const int *cbsize /* the number of vectors in the codebook */ 9187 ){ 9188 int cb_pos, X_pos, i; 9190 cb_pos = 0; 9191 X_pos= 0; 9192 for (i = 0; i < nsplit; i++) { 9193 vq(qX + X_pos, index + i, CB + cb_pos, X + X_pos, 9194 cbsize[i], dim[i]); 9195 X_pos += dim[i]; 9196 cb_pos += dim[i] * cbsize[i]; 9197 } 9198 } 9200 /*----------------------------------------------------------------* 9201 * scalar quantization 9202 *---------------------------------------------------------------*/ 9204 void sort_sq( 9205 float *xq, /* (o) the quantized value */ 9206 int *index, /* (o) the quantization index */ 9207 float x, /* (i) the value to quantize */ 9208 const float *cb, /* (i) the quantization codebook */ 9209 int cb_size /* (i) the size of the quantization codebook */ 9210 ){ 9211 int i; 9213 if (x <= cb[0]) { 9214 *index = 0; 9215 *xq = cb[0]; 9216 } else { 9217 i = 0; 9218 while ((x > cb[i]) && i < cb_size - 1) 9219 i++; 9220 if (x > ((cb[i] + cb[i - 1])/2)) { 9221 *index = i; 9222 *xq = cb[i]; 9223 } else { 9224 *index = i - 1; 9225 *xq = cb[i - 1]; 9226 } 9227 } 9228 } 9230 Andersen et. al. Experimental - Expires Jan. 1st, 2003 172 9231 /*----------------------------------------------------------------* 9232 * check for stability of lsf coefficients 9233 *---------------------------------------------------------------*/ 9235 int LSF_check( /* (o) 1 for stable lsf vectors and 0 for 9236 nonstable ones */ 9237 float *lsf, /* (i) a table of lsf vectors */ 9238 int dim, /* (i) the dimension of each lsf vector */ 9239 int NoAn /* (i) the number of lsf vectors in the table */ 9240 ){ 9241 int k,n,m, Nit=2, change=0,pos; 9242 float tmp; 9243 static float eps=(float)0.039; /* 50 Hz */ 9244 static float eps2=(float)0.0195; 9245 static float maxlsf=(float)3.14; /* 4000 Hz */ 9246 static float minlsf=(float)0.01; /* 0 Hz */ 9248 /* LSF separation check*/ 9250 for (n=0;nmaxlsf) { 9270 lsf[pos]=maxlsf; 9271 change=1; 9272 } 9273 } 9274 } 9275 } 9277 return change; 9278 } 9280 A.29 hpInput.h 9282 Andersen et. al. Experimental - Expires Jan. 1st, 2003 173 9283 /****************************************************************** 9285 iLBC Speech Coder ANSI-C Source Code 9287 hpInput.h 9289 Copyright (c) 2001, 9290 Global IP Sound AB. 9291 All rights reserved. 9293 ******************************************************************/ 9295 #ifndef __iLBC_HPINPUT_H 9296 #define __iLBC_HPINPUT_H 9298 void hpInput( 9299 float *In, /* (i) vector to filter */ 9300 int len, /* (i) length of vector to filter */ 9301 float *Out, /* (o) the resulting filtered vector */ 9302 float *mem /* (i/o) the filter state */ 9303 ); 9305 #endif 9307 A.30 hpInput.c 9309 /****************************************************************** 9311 iLBC Speech Coder ANSI-C Source Code 9313 hpInput.c 9315 Copyright (c) 2001, 9316 Global IP Sound AB. 9317 All rights reserved. 9319 ******************************************************************/ 9321 #include "constants.h" 9323 /*----------------------------------------------------------------* 9324 * Input high-pass filter 9325 *---------------------------------------------------------------*/ 9327 void hpInput( 9328 float *In, /* (i) vector to filter */ 9329 int len, /* (i) length of vector to filter */ 9330 float *Out, /* (o) the resulting filtered vector */ 9331 float *mem /* (i/o) the filter state */ 9332 ){ 9333 int i; 9334 float *pi, *po; 9336 Andersen et. al. Experimental - Expires Jan. 1st, 2003 174 9337 /* all-zero section*/ 9339 pi = &In[0]; 9340 po = &Out[0]; 9341 for (i=0; i 9500 #include "iLBC_define.h" 9501 #include "gainquant.h" 9502 #include "getCBvec.h" 9504 /*----------------------------------------------------------------* 9505 * Construct decoded vector from codebook and gains. 9506 *---------------------------------------------------------------*/ 9508 void iCBConstruct( 9509 float *decvector, /* (o) Decoded vector */ 9510 int *index, /* (i) Codebook indices */ 9511 int *gain_index, /* (i) Gain de-quantization indices */ 9512 float *mem, /* (i) Buffer for codevector construction */ 9513 int lMem, /* (i) Length of buffer */ 9514 int veclen, /* (i) Length of vector */ 9515 int nStages /* (i) Number of codebook stages */ 9516 ){ 9517 int j,k; 9518 float gain[NSTAGES]; 9519 float cbvec[SUBL]; 9521 /* gain de-quantization */ 9523 gain[0] = gaindequant(gain_index[0], 1.0, 16); 9524 if (nStages > 1) 9525 gain[1] = gaindequant(gain_index[1], 9526 (float)fabs(gain[0]), 8); 9527 if (nStages > 2) 9528 gain[2] = gaindequant(gain_index[2], 9529 (float)fabs(gain[1]), 8); 9531 /* codebook vector construction and construction of 9532 total vector */ 9534 getCBvec(cbvec, mem, index[0], lMem, veclen); 9535 for (j=0;j 1) { 9539 for (k=1; k 9595 #include 9597 #include "iLBC_define.h" 9598 #include "gainquant.h" 9599 #include "createCB.h" 9600 #include "filter.h" 9602 Andersen et. al. Experimental - Expires Jan. 1st, 2003 179 9603 /*----------------------------------------------------------------* 9604 * Search routine for codebook encoding and gain quantization. 9605 *---------------------------------------------------------------*/ 9607 void iCBSearch( 9608 int *index, /* (o) Codebook indices */ 9609 int *gain_index, /* (o) Gain quantization indices */ 9610 float *intarget, /* (i) Target vector for encoding */ 9611 float *mem, /* (i) Buffer for codebook construction */ 9612 int lMem, /* (i) Length of buffer */ 9613 int lTarget, /* (i) Length of vector */ 9614 int nStages, /* (i) Number of codebook stages */ 9615 float *weightDenum, /* (i) weighting filter coefficients */ 9616 float *weightState /* (i) weighting filter state */ 9617 ){ 9618 int i, j, icount, stage, best_index; 9619 float max_measure, gain, measure, crossDot; 9620 float gains[NSTAGES]; 9621 float cb[(MEML+SUBL+1)*CBEXPAND*SUBL]; 9622 float target[SUBL]; 9623 int base_index, sInd, eInd, base_size; 9624 float buf[MEML+SUBL+2*FILTERORDER]; 9625 float invenergy[512], *pp; 9627 /* copy target */ 9629 memcpy(target, intarget, lTarget*sizeof(float)); 9631 /* Determine size of codebook sections */ 9633 base_size=lMem-lTarget+1; 9634 if (lTarget==SUBL) 9635 base_size=lMem-lTarget+1+lTarget/2; 9637 /* setup buffer for weighting */ 9639 memcpy(buf,weightState,sizeof(float)*FILTERORDER); 9640 memcpy(buf+FILTERORDER,mem,lMem*sizeof(float)); 9641 memcpy(buf+FILTERORDER+lMem,intarget,lTarget*sizeof(float)); 9643 /* weighting */ 9645 AllPoleFilter(buf+FILTERORDER, weightDenum, lMem+lTarget, 9646 FILTERORDER); 9648 /* Construct the codebook and target needed */ 9650 createCB(cb, invenergy, buf+FILTERORDER, lMem, lTarget); 9651 memcpy(target, buf+FILTERORDER+lMem, lTarget*sizeof(float)); 9653 /* The Main Loop over stages */ 9655 Andersen et. al. Experimental - Expires Jan. 1st, 2003 180 9656 for (stage=0;stage 0.0) 9677 measure = crossDot*crossDot*invenergy[icount]; 9678 } 9679 else { 9680 measure = crossDot*crossDot*invenergy[icount]; 9681 } 9683 /* check if measure better */ 9685 if(measure>max_measure){ 9686 best_index = icount; 9687 max_measure = measure; 9688 gain = crossDot*invenergy[icount]; 9689 } 9690 } 9692 /* set search range for following codebook sections */ 9694 base_index=best_index; 9696 /* unrestricted search */ 9698 if (RESRANGE == -1) { 9699 sInd=0; 9700 eInd=base_size-1; 9701 } 9703 /* restriced search around best index from first 9704 codebook section */ 9706 else { 9707 sInd=base_index-RESRANGE/2; 9708 if (sInd < 0) sInd=0; 9710 Andersen et. al. Experimental - Expires Jan. 1st, 2003 181 9711 eInd = sInd+RESRANGE; 9712 if (eInd>=base_size) { 9713 eInd=base_size-1; 9714 sInd=eInd-RESRANGE; 9715 } 9716 } 9718 /* search of higher codebook sections */ 9720 for (i=1; i 0.0) 9741 measure = crossDot*crossDot* 9742 invenergy[icount]; 9743 } 9744 else { 9745 measure = crossDot*crossDot*invenergy[icount]; 9746 } 9748 /* check if measure better */ 9750 if(measure>max_measure){ 9751 best_index = icount; 9752 max_measure = measure; 9753 gain = crossDot*invenergy[icount]; 9754 } 9755 } 9756 } 9758 /* record best index */ 9760 index[stage] = best_index; 9762 /* gain quantization */ 9764 Andersen et. al. Experimental - Expires Jan. 1st, 2003 182 9765 if(stage==0){ 9766 if (gain<0.0) gain = 0.0; 9767 if (gain>1.0) gain = 1.0; 9768 gain = gainquant(gain, 1.0, 16, &gain_index[stage]); 9769 } 9770 else { 9771 if(fabs(gain) > fabs(gains[stage-1])){ 9772 gain = gain * (float)fabs(gains[stage-1])/ 9773 (float)fabs(gain); 9774 } 9775 gain = gainquant(gain, (float)fabs(gains[stage-1]), 9776 8, &gain_index[stage]); 9777 } 9779 /* Update target */ 9781 for(j=0;j 9851 #include 9853 #include "helpfun.h" 9854 #include "lsf.h" 9855 #include "iLBC_define.h" 9856 #include "constants.h" 9858 /*----------------------------------------------------------------* 9859 * interpolation of lsf coefficients for the decoder 9860 *---------------------------------------------------------------*/ 9862 void LSFinterpolate2a_dec( 9863 float *a, /* (o) lpc coefficients for a sub frame */ 9864 float *lsf1, /* (i) first lsf coefficient vector */ 9865 float *lsf2, /* (i) second lsf coefficient vector */ 9866 float coef, /* (i) interpolation weight */ 9867 int length /* (i) length of lsf vectors */ 9868 ){ 9869 float lsftmp[FILTERORDER]; 9871 Andersen et. al. Experimental - Expires Jan. 1st, 2003 184 9872 interpolate(lsftmp, lsf1, lsf2, coef, length); 9873 lsf2a(a, lsftmp); 9874 } 9876 /*----------------------------------------------------------------* 9877 * obtain quantized lsf coefficients from quantization index 9878 *---------------------------------------------------------------*/ 9880 void SimplelsfUNQ( 9881 float *lsfunq, /* (o) quantized lsf coefficients */ 9882 int *index /* (i) quantization index */ 9883 ){ 9884 int i,j, pos, cb_pos; 9885 float lsfhat[FILTERORDER]; 9887 /* decode last LSF */ 9889 pos = 0; 9890 cb_pos = 0; 9891 for (i = 0; i < LSF_NSPLIT; i++) { 9892 for (j = 0; j < dim_ml[i]; j++) { 9893 lsfunq[FILTERORDER + pos + j] = cb_ml[cb_pos + 9894 (long)(index[LSF_NSPLIT + i])*dim_ml[i] + j]; 9895 } 9896 pos += dim_ml[i]; 9897 cb_pos += size_ml[i]*dim_ml[i]; 9898 } 9900 /* decode predicion error for first LSF */ 9902 pos = 0; 9903 cb_pos = 0; 9904 for (i = 0; i < LSF_NSPLIT; i++) { 9905 for (j = 0; j < dim_p[i]; j++) { 9906 lsfunq[pos + j] = cb_p[cb_pos + 9907 (long)(index[i])*dim_p[i] + j]; 9908 } 9910 pos += dim_p[i]; 9911 cb_pos += size_p[i]*dim_p[i]; 9912 } 9914 /* add prediction, mean, and unquantized prediction error 9915 to obtain output LSF */ 9917 for (i = 0; i < FILTERORDER; i++) { 9918 lsfhat[i] = lsfpred[i] * 9919 (lsfunq[FILTERORDER + i] - lsfmean[i]); 9920 lsfunq[i] += lsfmean[i] + lsfhat[i]; 9921 } 9922 } 9924 /*----------------------------------------------------------------* 9926 Andersen et. al. Experimental - Expires Jan. 1st, 2003 185 9927 * obtain synthesis and weighting filters form lsf coefficients 9928 *---------------------------------------------------------------*/ 9930 void DecoderInterpolateLSF( 9931 float *syntdenum, /* (o) synthesis filter coefficients */ 9932 float *weightnum, /* (o) weighting numbrator coefficients */ 9933 float *weightdenum, /* (o) weighting denumerator 9934 coefficients */ 9935 float *lsfunq, /* (i) quantized lsf coefficients */ 9936 int length, /* (i) length of lsf coefficient vector */ 9937 iLBC_Dec_Inst_t *iLBCdec_inst /* (i) the decoder state 9938 structure */ 9939 ){ 9940 int i, pos, lp_length; 9941 float lp[FILTERORDER + 1], *lsfunq2; 9943 lsfunq2 = lsfunq + length; 9944 lp_length = length + 1; 9946 /* subframe 1: Interpolation between old and first */ 9948 LSFinterpolate2a_dec(lp, (*iLBCdec_inst).lsfunqold, lsfunq, 9949 coef[0], length); 9950 bwexpand(syntdenum, lp, CHIRP_SYNTDENUM, lp_length); 9951 bwexpand(weightnum, lp, CHIRP_WEIGHTNUM, lp_length); 9952 bwexpand(weightdenum, lp, CHIRP_WEIGHTDENUM, lp_length); 9954 /* subframes 2 to 6: interpolation between first and last 9955 LSF */ 9957 pos = lp_length; 9958 for (i = 1; i < 6; i++) { 9959 LSFinterpolate2a_dec(lp, lsfunq, lsfunq2, coef[i], 9960 length); 9961 bwexpand(syntdenum+pos, lp, CHIRP_SYNTDENUM, lp_length); 9962 bwexpand(weightnum + pos, lp, CHIRP_WEIGHTNUM, lp_length); 9963 bwexpand(weightdenum + pos, lp, CHIRP_WEIGHTDENUM, 9964 lp_length); 9965 pos += lp_length; 9966 } 9968 /* update memory */ 9970 for (i = 0; i < length; i++) { 9971 (*iLBCdec_inst).lsfunqold[i] = lsfunq2[i]; 9972 } 9973 } 9975 A.39 LPCencode.h 9977 /****************************************************************** 9979 Andersen et. al. Experimental - Expires Jan. 1st, 2003 186 9980 iLBC Speech Coder ANSI-C Source Code 9982 LPCencode.h 9984 Copyright (c) 2001, 9985 Global IP Sound AB. 9986 All rights reserved. 9988 ******************************************************************/ 9990 #ifndef __iLBC_LPCENCOD_H 9991 #define __iLBC_LPCENCOD_H 9993 void LPCencode( 9994 float *syntdenum, /* (i/o) synthesis filter coefficients 9995 before/after encoding */ 9996 float *weightnum, /* (i/o) weighting numerator coefficients 9997 before/after encoding */ 9998 float *weightdenum, /* (i/o) weighting denumerator coefficients 9999 before/after encoding */ 10000 int *lsf_index, /* (o) lsf quantization index */ 10001 float *data, /* (i) lsf coefficients to quantize */ 10002 iLBC_Enc_Inst_t *iLBCenc_inst /* (i/o) the encoder state 10003 structure */ 10004 ); 10006 #endif 10008 A.40 LPCencode.c 10010 /****************************************************************** 10012 iLBC Speech Coder ANSI-C Source Code 10014 LPCencode.c 10016 Copyright (c) 2001, 10017 Global IP Sound AB. 10018 All rights reserved. 10020 ******************************************************************/ 10022 #include 10024 #include "iLBC_define.h" 10025 #include "helpfun.h" 10026 #include "lsf.h" 10027 #include "constants.h" 10029 /*----------------------------------------------------------------* 10030 * lpc analysis (subrutine to LPCencode) 10031 *---------------------------------------------------------------*/ 10033 Andersen et. al. Experimental - Expires Jan. 1st, 2003 187 10034 void SimpleAnalysis( 10035 float *lsf, /* (o) lsf coefficients */ 10036 float *data, /* (i) new data vector */ 10037 float *lpc_buffer /* (i) buffer containing old data */ 10038 ){ 10039 int k, is,i; 10040 float temp[BLOCKL], lp[FILTERORDER + 1], lp2[FILTERORDER + 1], 10041 r[FILTERORDER + 1]; 10043 for (i = 0; i < BLOCKL; i++) 10044 lpc_buffer[LPC_AHEADL + i] = data[i]; 10046 /* No lookahead, last window is asymmetric */ 10048 for (k = 0; k < LPC_N; k++) { 10050 is = k*LPC_AHEADL; 10052 if (k < (LPC_N - 1)) 10053 window(temp, lpc_win, lpc_buffer + is, BLOCKL); 10054 else 10055 window(temp, lpc_asymwin, lpc_buffer + is, BLOCKL); 10057 autocorr(r, temp, BLOCKL, FILTERORDER); 10058 window(r, r, lpc_lagwin, FILTERORDER + 1); 10060 levdurb(lp, temp, r, FILTERORDER); 10061 bwexpand(lp2, lp, CHIRP_SYNTDENUM, FILTERORDER+1); 10063 a2lsf(lsf + k*FILTERORDER, lp2); 10064 } 10065 memcpy(lpc_buffer, lpc_buffer+BLOCKL, LPC_AHEADL*sizeof(float)); 10066 } 10068 /*----------------------------------------------------------------* 10069 * lsf interpolator and conversion from lsf to a coefficients 10070 * (subrutine to SimpleInterpolateLSF) 10071 *---------------------------------------------------------------*/ 10073 void LSFinterpolate2a_enc( 10074 float *a, /* (o) lpc coefficients */ 10075 float *lsf1, /* (i) first set of lsf coefficients */ 10076 float *lsf2, /* (i) second set of lsf coefficients */ 10077 float coef, /* (i) weighting coefficient to use between lsf1 10078 and lsf2 */ 10079 long length /* (i) length of coefficient vectors */ 10080 ){ 10081 float lsftmp[FILTERORDER]; 10083 interpolate(lsftmp, lsf1, lsf2, coef, length); 10084 lsf2a(a, lsftmp); 10085 } 10087 Andersen et. al. Experimental - Expires Jan. 1st, 2003 188 10088 /*----------------------------------------------------------------* 10089 * lsf interpolator (subrutine to LPCencode) 10090 *---------------------------------------------------------------*/ 10092 void SimpleInterpolateLSF( 10093 float *syntdenum, /* (o) the synthesis filter denominator 10094 resulting from the quantized interpolated lsf */ 10095 float *weightnum, /* (o) the weighting filter numerator 10096 resulting from the unquantized interpolated lsf */ 10097 float *weightdenum, /* (o) the weighting filter denominator 10098 resulting from the unquantized interpolated lsf */ 10099 float *lsf, /* (i) the unquantized lsf coefficients */ 10100 float *lsfq, /* (i) the quantized lsf coefficients */ 10101 float *lsfold, /* (i) the unquantized lsf coefficients of the 10102 previous signal frame */ 10103 float *lsfqold, /* (i) the quantized lsf coefficients of the 10104 previous signal frame */ 10105 int length /* (i) should equate FILTERORDER */ 10106 ){ 10107 int i, pos, lp_length; 10108 float lp[FILTERORDER + 1], *lsf2, *lsfq2; 10110 lsf2 = lsf + length; 10111 lsfq2 = lsfq + length; 10112 lp_length = length + 1; 10114 /* subframe 1: Interpolation between old and first set of 10115 lsf coefficients */ 10117 LSFinterpolate2a_enc(lp, lsfqold, lsfq, coef[0], length); 10118 bwexpand(syntdenum, lp, CHIRP_SYNTDENUM, lp_length); 10119 LSFinterpolate2a_enc(lp, lsfold, lsf, coef[0], length); 10120 bwexpand(weightnum, lp, CHIRP_WEIGHTNUM, lp_length); 10121 bwexpand(weightdenum, lp, CHIRP_WEIGHTDENUM, lp_length); 10123 /* subframe 2 to 6: Interpolation between first and second 10124 set of lsf coefficients */ 10126 pos = lp_length; 10127 for (i = 1; i < NSUB; i++) { 10128 LSFinterpolate2a_enc(lp, lsfq, lsfq2, coef[i], length); 10129 bwexpand(syntdenum + pos, lp, CHIRP_SYNTDENUM, lp_length); 10131 LSFinterpolate2a_enc(lp, lsf, lsf2, coef[i], length); 10132 bwexpand(weightnum + pos, lp, CHIRP_WEIGHTNUM, lp_length); 10133 bwexpand(weightdenum + pos, lp, CHIRP_WEIGHTDENUM, 10134 lp_length); 10135 pos += lp_length; 10136 } 10138 /* update memory */ 10140 Andersen et. al. Experimental - Expires Jan. 1st, 2003 189 10141 for (i = 0; i < length; i++) { 10142 lsfold[i] = lsf2[i]; 10143 lsfqold[i] = lsfq2[i]; 10144 } 10145 } 10147 /*----------------------------------------------------------------* 10148 * lsf quantizer (subrutine to LPCencode) 10149 *---------------------------------------------------------------*/ 10151 void SimplelsfQ( 10152 float *lsfq, /* (o) quantized lsf coefficients 10153 (dimension FILTERORDER) */ 10154 int *index, /* (o) quantization index */ 10155 float *lsf /* (i) the lsf coefficient vector to be 10156 quantized (dimension FILTERORDER ) */ 10157 ){ 10158 int i; 10159 float e[FILTERORDER], lsfhat[FILTERORDER]; 10161 /* Quantize second LSF with memoryless split VQ */ 10163 SplitVQ(lsfq + FILTERORDER, index + LSF_NSPLIT, lsf + 10164 FILTERORDER, cb_ml, LSF_NSPLIT, dim_ml, size_ml); 10166 /* Calculate predicion error for first LSF from second */ 10168 for (i = 0; i < FILTERORDER; i++) { 10169 lsfhat[i] = lsfpred[i] * (lsfq[FILTERORDER + i] - 10170 lsfmean[i]); 10171 e[i] = lsf[i] - lsfmean[i] - lsfhat[i]; 10172 } 10174 /* Quantize prediction error */ 10176 SplitVQ(lsfq, index, e, cb_p, LSF_NSPLIT, dim_p, size_p); 10178 for (i = 0; i < FILTERORDER; i++) 10179 lsfq[i] += lsfmean[i] + lsfhat[i]; 10180 } 10182 /*----------------------------------------------------------------* 10183 * lpc encoder 10184 *---------------------------------------------------------------*/ 10186 void LPCencode( 10187 float *syntdenum, /* (i/o) synthesis filter coefficients 10188 before/after encoding */ 10189 float *weightnum, /* (i/o) weighting numerator coefficients 10190 before/after encoding */ 10191 float *weightdenum, /* (i/o) weighting denumerator coefficients 10192 before/after encoding */ 10193 int *lsf_index, /* (o) lsf quantization index */ 10195 Andersen et. al. Experimental - Expires Jan. 1st, 2003 190 10196 float *data, /* (i) lsf coefficients to quantize */ 10197 iLBC_Enc_Inst_t *iLBCenc_inst /* (i/o) the encoder state 10198 structure */ 10199 ){ 10200 float lsf[FILTERORDER * LPC_N], lsfq[FILTERORDER * LPC_N]; 10201 int change=0; 10203 SimpleAnalysis(lsf, data, (*iLBCenc_inst).lpc_buffer); 10204 SimplelsfQ(lsfq, lsf_index, lsf); 10205 change=LSF_check(lsfq, FILTERORDER, LPC_N); 10206 SimpleInterpolateLSF(syntdenum, weightnum, weightdenum, 10207 lsf, lsfq, (*iLBCenc_inst).lsfold, 10208 (*iLBCenc_inst).lsfqold, FILTERORDER); 10209 } 10211 A.41 lsf.h 10213 /****************************************************************** 10215 iLBC Speech Coder ANSI-C Source Code 10217 lsf.h 10219 Copyright (c) 2001, 10220 Global IP Sound AB. 10221 All rights reserved. 10223 ******************************************************************/ 10225 #ifndef __iLBC_LSF_H 10226 #define __iLBC_LSF_H 10228 void a2lsf( 10229 float *freq, /* (o) lsf coefficients */ 10230 float *a /* (i) lpc coefficients */ 10231 ); 10233 void lsf2a( 10234 float *a_coef, /* (o) lpc coefficients */ 10235 float *freq /* (i) lsf coefficients */ 10236 ); 10238 #endif 10240 A.42 lsf.c 10242 /****************************************************************** 10244 iLBC Speech Coder ANSI-C Source Code 10246 lsf.c 10248 Andersen et. al. Experimental - Expires Jan. 1st, 2003 191 10249 Copyright (c) 2001, 10250 Global IP Sound AB. 10251 All rights reserved. 10253 ******************************************************************/ 10255 #include 10256 #include 10258 #include "iLBC_define.h" 10260 /*----------------------------------------------------------------* 10261 * conversion from lpc coefficients to lsf coefficients 10262 *---------------------------------------------------------------*/ 10264 void a2lsf( 10265 float *freq, /* (o) lsf coefficients */ 10266 float *a /* (i) lpc coefficients */ 10267 ){ 10268 float steps[NUMBER_OF_STEPS] = 10269 {(float)0.00635, (float)0.003175, (float)0.0015875, 10270 (float)0.00079375}; 10271 float step; 10272 int step_idx; 10273 int lsp_index; 10274 float p[HALFORDER]; 10275 float q[HALFORDER]; 10276 float p_pre[HALFORDER]; 10277 float q_pre[HALFORDER]; 10278 float old_p, old_q, *old; 10279 float *pq_coef; 10280 float omega, old_omega; 10281 int i; 10282 float hlp, hlp1, hlp2, hlp3, hlp4, hlp5; 10284 for (i = 0; i < HALFORDER; i++){ 10285 p[i] = (float)-1.0 * (a[i + 1] + a[FILTERORDER - i]); 10286 q[i] = a[FILTERORDER - i] - a[i + 1]; 10287 } 10289 p_pre[0] = (float)-1.0 - p[0]; 10290 p_pre[1] = - p_pre[0] - p[1]; 10291 p_pre[2] = - p_pre[1] - p[2]; 10292 p_pre[3] = - p_pre[2] - p[3]; 10293 p_pre[4] = - p_pre[3] - p[4]; 10294 p_pre[4] = p_pre[4] / 2; 10296 q_pre[0] = (float)1.0 - q[0]; 10297 q_pre[1] = q_pre[0] - q[1]; 10298 q_pre[2] = q_pre[1] - q[2]; 10299 q_pre[3] = q_pre[2] - q[3]; 10300 q_pre[4] = q_pre[3] - q[4]; 10302 Andersen et. al. Experimental - Expires Jan. 1st, 2003 192 10303 q_pre[4] = q_pre[4] / 2; 10305 omega = 0.0; 10306 old_omega = 0.0; 10308 old_p = FLOAT_MAX; 10309 old_q = FLOAT_MAX; 10311 /* Here we loop through lsp_index to find all the FILTERORDER 10312 roots for omega. */ 10314 for (lsp_index = 0; lsp_index < FILTERORDER; lsp_index++){ 10316 /* Depending on lsp_index being even or odd, we 10317 alternatively solve the roots for the two LSP equations. */ 10319 if ((lsp_index % 2) == 0){ 10320 pq_coef = p_pre; 10321 old = &old_p; 10322 } else { 10323 pq_coef = q_pre; 10324 old = &old_q; 10325 } 10327 /* Start with low resolution grid */ 10329 for (step_idx = 0, step = steps[step_idx]; 10330 step_idx < NUMBER_OF_STEPS;){ 10332 /* cos(10piw) + pq(0)cos(8piw) + pq(1)cos(6piw) + 10333 pq(2)cos(4piw) + pq(3)cod(2piw) + pq(4) */ 10335 hlp = (float)cos(omega * TWO_PI); 10336 hlp1 = (float)2.0 * hlp + pq_coef[0]; 10337 hlp2 = (float)2.0 * hlp * hlp1 - (float)1.0 + 10338 pq_coef[1]; 10339 hlp3 = (float)2.0 * hlp * hlp2 - hlp1 + pq_coef[2]; 10340 hlp4 = (float)2.0 * hlp * hlp3 - hlp2 + pq_coef[3]; 10341 hlp5 = hlp * hlp4 - hlp3 + pq_coef[4]; 10343 if (((hlp5 * (*old)) <= 0.0) || (omega >= 0.5)){ 10344 if (step_idx == (NUMBER_OF_STEPS - 1)){ 10346 if (fabs(hlp5) >= fabs(*old)) { 10347 freq[lsp_index] = omega - step; 10348 } else { 10349 freq[lsp_index] = omega; 10350 } 10352 if ((*old) >= 0.0){ 10353 *old = (float)-1.0 * FLOAT_MAX; 10354 } else { 10355 *old = FLOAT_MAX; 10357 Andersen et. al. Experimental - Expires Jan. 1st, 2003 193 10358 } 10360 omega = old_omega; 10361 step_idx = 0; 10363 step_idx = NUMBER_OF_STEPS; 10364 } else { 10365 if (step_idx == 0){ 10366 old_omega = omega; 10367 } 10369 step_idx++; 10370 omega -= steps[step_idx]; 10372 /* Go back one grid step */ 10374 step = steps[step_idx]; 10375 } 10376 } else { 10378 /* increment omega until they are of different sign, 10379 and we know there is at least one root between omega 10380 and old_omega */ 10381 *old = hlp5; 10382 omega += step; 10383 } 10384 } 10385 } 10387 for (i = 0; i < FILTERORDER; i++) { 10388 freq[i] = freq[i] * TWO_PI; 10389 } 10390 } 10392 /*----------------------------------------------------------------* 10393 * conversion from lsf coefficients to lpc coefficients 10394 *---------------------------------------------------------------*/ 10396 void lsf2a( 10397 float *a_coef, /* (o) lpc coefficients */ 10398 float *freq /* (i) lsf coefficients */ 10399 ){ 10400 int i, j; 10401 float hlp; 10402 float p[HALFORDER], q[HALFORDER]; 10403 float a[HALFORDER + 1], a1[HALFORDER], a2[HALFORDER]; 10404 float b[HALFORDER + 1], b1[HALFORDER], b2[HALFORDER]; 10406 for (i = 0; i < FILTERORDER; i++) { 10407 freq[i] = freq[i] * PI2; 10408 } 10410 /* Check input for ill-conditioned cases. This part is not 10412 Andersen et. al. Experimental - Expires Jan. 1st, 2003 194 10413 found in the TIA standard. It involves the following 2 IF 10414 blocks. If "freq" is judged ill-conditioned, then we first 10415 modify freq[0] and freq[HALFORDER-1] (normally HALFORDER = 10416 10 for LPC applications), then we adjust the other "freq" 10417 values slightly */ 10419 if ((freq[0] <= 0.0) || (freq[FILTERORDER - 1] >= 0.5)){ 10421 if (freq[0] <= 0.0) { 10422 freq[0] = (float)0.022; 10423 } 10425 if (freq[FILTERORDER - 1] >= 0.5) { 10426 freq[FILTERORDER - 1] = (float)0.499; 10427 } 10429 hlp = (freq[FILTERORDER - 1] - freq[0]) / 10430 (float) (FILTERORDER - 1); 10432 for (i = 1; i < FILTERORDER; i++) { 10433 freq[i] = freq[i - 1] + hlp; 10434 } 10435 } 10437 memset(a1, 0, HALFORDER*sizeof(float)); 10438 memset(a2, 0, HALFORDER*sizeof(float)); 10439 memset(b1, 0, HALFORDER*sizeof(float)); 10440 memset(b2, 0, HALFORDER*sizeof(float)); 10441 memset(a, 0, (HALFORDER+1)*sizeof(float)); 10442 memset(b, 0, (HALFORDER+1)*sizeof(float)); 10444 /* p[i] and q[i] compute cos(2*pi*omega_{2j}) and 10445 cos(2*pi*omega_{2j-1} in eqs. 4.2.2.2-1 and 4.2.2.2-2. 10446 Note that for this code p[i] specifies the coefficients 10447 used in .Q_A(z) while q[i] specifies the coefficients used 10448 in .P_A(z) */ 10450 for (i = 0; i < HALFORDER; i++){ 10451 p[i] = (float)cos(TWO_PI * freq[2 * i]); 10452 q[i] = (float)cos(TWO_PI * freq[2 * i + 1]); 10453 } 10455 a[0] = 0.25; 10456 b[0] = 0.25; 10458 for (i = 0; i < HALFORDER; i++){ 10459 a[i + 1] = a[i] - 2 * p[i] * a1[i] + a2[i]; 10460 b[i + 1] = b[i] - 2 * q[i] * b1[i] + b2[i]; 10461 a2[i] = a1[i]; 10462 a1[i] = a[i]; 10463 b2[i] = b1[i]; 10464 b1[i] = b[i]; 10465 } 10467 Andersen et. al. Experimental - Expires Jan. 1st, 2003 195 10468 for (j = 0; j < FILTERORDER; j++){ 10469 if (j == 0){ 10470 a[0] = 0.25; 10471 b[0] = -0.25; 10472 } else { 10473 a[0] = b[0] = 0.0; 10474 } 10476 for (i = 0; i < HALFORDER; i++){ 10477 a[i + 1] = a[i] - 2 * p[i] * a1[i] + a2[i]; 10478 b[i + 1] = b[i] - 2 * q[i] * b1[i] + b2[i]; 10479 a2[i] = a1[i]; 10480 a1[i] = a[i]; 10481 b2[i] = b1[i]; 10482 b1[i] = b[i]; 10483 } 10485 a_coef[j + 1] = 2 * (a[HALFORDER] + b[HALFORDER]); 10486 } 10488 a_coef[0] = 1.0; 10489 } 10491 A.43 packing.h 10493 /****************************************************************** 10495 iLBC Speech Coder ANSI-C Source Code 10497 packing.h 10499 Copyright (c) 2001, 10500 Global IP Sound AB. 10501 All rights reserved. 10503 ******************************************************************/ 10505 #ifndef __PACKING_H 10506 #define __PACKING_H 10508 void packsplit( 10509 int *index, /* (i) the value to split */ 10510 int *firstpart, /* (o) the value specified by most significant 10511 bits */ 10512 int *rest, /* (o) the value specified by least significant 10513 bits */ 10514 int bitno_firstpart, /* (i) number of bits in most significant 10515 part */ 10516 int bitno_total /* (i) number of bits in full range of value */ 10517 ); 10519 Andersen et. al. Experimental - Expires Jan. 1st, 2003 196 10520 void packcombine( 10521 int *index, /* (i/o) the msb value in the combined value out */ 10522 int rest, /* (i) the lsb value */ 10523 int bitno_firstpart, /* (i) the number of bits in the msb 10524 part */ 10525 int bitno_rest /* (i) the number of bits in the lsb part */ 10526 ); 10528 void dopack( 10529 unsigned char **bitstream, /* (i/o) on entrance pointer to 10530 place in bitstream to pack new data, on exit 10531 pointer to place in bitstream to pack 10532 future data */ 10533 int *index, /* (i) the value to pack */ 10534 int bitno /* (i) the number of bits that the value will fit 10535 within */ 10536 ); 10538 void unpack( 10539 unsigned char **bitstream, /* (i/o) on entrance pointer to 10540 place in bitstream to unpack new data from, on exit 10541 pointer to place in bitstream to unpack future data from*/ 10542 int *index, /* (o) resulting value */ 10543 int bitno /* (i) number of bits used to represent the value */ 10544 ); 10546 #endif 10548 A.44 packing.c 10550 /****************************************************************** 10552 iLBC Speech Coder ANSI-C Source Code 10554 packing.c 10556 Copyright (c) 2001, 10557 Global IP Sound AB. 10558 All rights reserved. 10560 ******************************************************************/ 10562 #include 10563 #include 10565 #include "iLBC_define.h" 10566 #include "constants.h" 10567 #include "helpfun.h" 10568 #include "string.h" 10570 #define BBL 100 10572 Andersen et. al. Experimental - Expires Jan. 1st, 2003 197 10573 /*----------------------------------------------------------------* 10574 * splitting an integer into first most significant bits and 10575 * remaining least significant bits 10576 *---------------------------------------------------------------*/ 10578 void packsplit( 10579 int *index, /* (i) the value to split */ 10580 int *firstpart, /* (o) the value specified by most significant 10581 bits */ 10582 int *rest, /* (o) the value specified by least significant 10583 bits */ 10584 int bitno_firstpart, /* (i) number of bits in most significant 10585 part */ 10586 int bitno_total /* (i) number of bits in full range of value */ 10587 ){ 10588 int bb[BYTE_LEN*sizeof(int)]; 10589 int bitno_rest = bitno_total-bitno_firstpart; 10590 int i; 10592 for(i=0;i>i)&1; 10594 *rest=0; 10595 for(i=0;i 0){ 10642 for(i=0;i>i)&1; 10643 } 10645 /* flush the bitstream to an integer number of bytes */ 10647 if(bitno==0){ 10648 memset(bb+bbe, 0, (8-bbe)*sizeof(int)); 10649 bbe=8; 10650 } 10652 /* write the bits into bitstream */ 10654 while( bbe-bbs>=8){ 10655 **bitstream = 0; 10656 for(i=0;i<8;i++) 10657 **bitstream += (unsigned char) bb[bbs++]<> i) & 1; 10697 *bitstream += 1; 10698 } 10700 /* the bits are combined into the index value */ 10702 *index=0; 10703 for(i=0;i 10753 #include 10755 #include "iLBC_define.h" 10756 #include "constants.h" 10757 #include "filter.h" 10759 /*----------------------------------------------------------------* 10760 * decoding of the start state 10761 *---------------------------------------------------------------*/ 10763 void StateConstructW( 10764 int idxForMax, /* (i) 7-bit index for the quantization of max 10765 amplitude */ 10766 int *idxVec, /* (i) vector of quantization indexes */ 10767 float *syntDenum, /* (i) synthesis filter denumerator */ 10768 float *out, /* (o) the decoded state vector */ 10769 int len /* (i) length of a state vector */ 10770 ){ 10771 float maxVal, tmpbuf[FILTERORDER+2*STATE_LEN], *tmp, 10772 numerator[FILTERORDER+1]; 10773 float foutbuf[FILTERORDER+2*STATE_LEN], *fout; 10774 int k,tmpi; 10776 /* decoding of the maximum value */ 10778 maxVal = state_frgq[idxForMax]; 10779 maxVal = (float)pow(10,maxVal)/(float)4.5; 10781 /* initialization of buffers and coefficients */ 10783 memset(tmpbuf, 0, FILTERORDER*sizeof(float)); 10784 memset(foutbuf, 0, FILTERORDER*sizeof(float)); 10785 for(k=0; k 10856 #include 10858 #include "iLBC_define.h" 10859 #include "constants.h" 10860 #include "filter.h" 10861 #include "helpfun.h" 10863 /*----------------------------------------------------------------* 10864 * predictive noise shaping encoding of scaled start state 10865 * (subrutine for StateSearchW) 10866 *---------------------------------------------------------------*/ 10868 void AbsQuantW( 10869 float *in, /* (i) vector to encode */ 10870 float *syntDenum, /* (i) denominator of synthesis filter */ 10871 float *weightNum, /* (i) numerator of weighting filter */ 10872 float *weightDenum, /* (i) denominator of weighting filter */ 10873 int *out, /* (o) vector of quantizer indexes */ 10874 int len /* (i) length of vector to encode and vector of 10875 quantizer indexes */ 10876 ){ 10877 float *target, targetBuf[FILTERORDER+STATE_LEN], 10878 *syntOut, syntOutBuf[FILTERORDER+STATE_LEN], 10879 *weightOut, weightOutBuf[FILTERORDER+STATE_LEN], 10880 toQ, xq; 10881 int n; 10882 int index; 10884 /* initialization of buffers for filterings */ 10886 memset(targetBuf, 0, FILTERORDER*sizeof(float)); 10887 memset(syntOutBuf, 0, FILTERORDER*sizeof(float)); 10888 memset(weightOutBuf, 0, FILTERORDER*sizeof(float)); 10890 /* initialization of pointers for filterings */ 10892 target = &targetBuf[FILTERORDER]; 10893 syntOut = &syntOutBuf[FILTERORDER]; 10895 Andersen et. al. Experimental - Expires Jan. 1st, 2003 203 10896 weightOut = &weightOutBuf[FILTERORDER]; 10898 /* encoding loop */ 10900 for(n=0;n maxVal*maxVal){ 10979 maxVal = fout[k]; 10980 } 10981 } 10982 maxVal=(float)fabs(maxVal); 10984 /* encoding of the maximum amplitude value */ 10986 if(maxVal < 10.0){ 10987 maxVal = 10.0; 10988 } 10989 maxVal = (float)log10(maxVal); 10990 sort_sq(&dtmp, &index, maxVal, state_frgq, 64); 10992 /* decoding of the maximum amplitude representation value, 10993 and corresponding scaling of start state */ 10995 maxVal=state_frgq[index]; 10996 utmp=index; 10997 *idxForMax=utmp; 10998 maxVal = (float)pow(10,maxVal); 10999 maxVal = (float)(4.5)/maxVal; 11000 for(k=0;k0; i--) 11079 mem[i] = mem[i-1]; 11080 mem[0] = *po; 11082 po++; 11083 } 11084 } 11086 Andersen et. al. Experimental - Expires Jan. 1st, 2003 207