1 /*M///////////////////////////////////////////////////////////////////////////////////////
\r
3 // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
\r
5 // By downloading, copying, installing or using the software you agree to this license.
\r
6 // If you do not agree to this license, do not download, install,
\r
7 // copy or use the software.
\r
10 // License Agreement
\r
11 // For Open Source Computer Vision Library
\r
13 // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
\r
14 // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
\r
15 // Third party copyrights are property of their respective owners.
\r
17 // Redistribution and use in source and binary forms, with or without modification,
\r
18 // are permitted provided that the following conditions are met:
\r
20 // * Redistribution's of source code must retain the above copyright notice,
\r
21 // this list of conditions and the following disclaimer.
\r
23 // * Redistribution's in binary form must reproduce the above copyright notice,
\r
24 // this list of conditions and the following disclaimer in the documentation
\r
25 // and/or other materials provided with the distribution.
\r
27 // * The name of the copyright holders may not be used to endorse or promote products
\r
28 // derived from this software without specific prior written permission.
\r
30 // This software is provided by the copyright holders and contributors "as is" and
\r
31 // any express or implied warranties, including, but not limited to, the implied
\r
32 // warranties of merchantability and fitness for a particular purpose are disclaimed.
\r
33 // In no event shall the Intel Corporation or contributors be liable for any direct,
\r
34 // indirect, incidental, special, exemplary, or consequential damages
\r
35 // (including, but not limited to, procurement of substitute goods or services;
\r
36 // loss of use, data, or profits; or business interruption) however caused
\r
37 // and on any theory of liability, whether in contract, strict liability,
\r
38 // or tort (including negligence or otherwise) arising in any way out of
\r
39 // the use of this software, even if advised of the possibility of such damage.
\r
45 /****************************************************************************************\
\r
46 The code below is implementation of HOG (Histogram-of-Oriented Gradients)
\r
47 descriptor and object detection, introduced by Navneet Dalal and Bill Triggs.
\r
49 The computed feature vectors are compatible with the
\r
50 INRIA Object Detection and Localization Toolkit
\r
51 (http://pascal.inrialpes.fr/soft/olt/)
\r
52 \****************************************************************************************/
\r
57 size_t HOGDescriptor::getDescriptorSize() const
\r
59 CV_Assert(blockSize.width % cellSize.width == 0 &&
\r
60 blockSize.height % cellSize.height == 0);
\r
61 CV_Assert((winSize.width - blockSize.width) % blockStride.width == 0 &&
\r
62 (winSize.height - blockSize.height) % blockStride.height == 0 );
\r
63 return (size_t)nbins*
\r
64 (blockSize.width/cellSize.width)*
\r
65 (blockSize.height/cellSize.height)*
\r
66 ((winSize.width - blockSize.width)/blockStride.width + 1)*
\r
67 ((winSize.height - blockSize.height)/blockStride.height + 1);
\r
70 double HOGDescriptor::getWinSigma() const
\r
72 return winSigma >= 0 ? winSigma : (blockSize.width + blockSize.height)/8.;
\r
75 bool HOGDescriptor::checkDetectorSize() const
\r
77 size_t detectorSize = svmDetector.size(), descriptorSize = getDescriptorSize();
\r
78 return detectorSize == 0 ||
\r
79 detectorSize == descriptorSize ||
\r
80 detectorSize == descriptorSize + 1;
\r
83 void HOGDescriptor::setSVMDetector(const Vector<float>& _svmDetector)
\r
85 svmDetector = _svmDetector;
\r
86 CV_Assert( checkDetectorSize() );
\r
89 bool HOGDescriptor::load(const String& filename, const String& objname)
\r
91 FileStorage fs(filename, FileStorage::READ);
\r
92 FileNode obj = !objname.empty() ? fs[objname] : fs.getFirstTopLevelNode();
\r
95 FileNodeIterator it = obj["winSize"].begin();
\r
96 it >> winSize.width >> winSize.height;
\r
97 it = obj["blockSize"].begin();
\r
98 it >> blockSize.width >> blockSize.height;
\r
99 it = obj["blockStride"].begin();
\r
100 it >> blockStride.width >> blockStride.height;
\r
101 it = obj["cellSize"].begin();
\r
102 it >> cellSize.width >> cellSize.height;
\r
103 obj["nbins"] >> nbins;
\r
104 obj["derivAperture"] >> derivAperture;
\r
105 obj["winSigma"] >> winSigma;
\r
106 obj["histogramNormType"] >> histogramNormType;
\r
107 obj["L2HysThreshold"] >> L2HysThreshold;
\r
108 obj["gammaCorrection"] >> gammaCorrection;
\r
110 FileNode vecNode = obj["SVMDetector"];
\r
111 if( vecNode.isSeq() )
\r
113 vecNode >> svmDetector;
\r
114 CV_Assert(checkDetectorSize());
\r
119 void HOGDescriptor::save(const String& filename, const String& objName) const
\r
121 FileStorage fs(filename, FileStorage::WRITE);
\r
122 fs << (!objName.empty() ? objName : FileStorage::getDefaultObjectName(filename)) << "{";
\r
124 fs << "winSize" << winSize
\r
125 << "blockSize" << blockSize
\r
126 << "blockStride" << blockStride
\r
127 << "cellSize" << cellSize
\r
128 << "nbins" << nbins
\r
129 << "derivAperture" << derivAperture
\r
130 << "winSigma" << getWinSigma()
\r
131 << "histogramNormType" << histogramNormType
\r
132 << "L2HysThreshold" << L2HysThreshold
\r
133 << "gammaCorrection" << gammaCorrection;
\r
134 if( !svmDetector.empty() )
\r
135 fs << "SVMDetector" << "[:" << svmDetector << "]";
\r
139 void HOGDescriptor::computeGradient(const Mat& img, Mat& grad, Mat& qangle,
\r
140 Size paddingTL, Size paddingBR) const
\r
142 CV_Assert( img.type() == CV_8U || img.type() == CV_8UC3 );
\r
144 Size gradsize(img.cols + paddingTL.width + paddingBR.width,
\r
145 img.rows + paddingTL.height + paddingBR.height);
\r
146 grad.create(gradsize, CV_32FC2); // <magnitude*(1-alpha), magnitude*alpha>
\r
147 qangle.create(gradsize, CV_8UC2); // [0..nbins-1] - quantized gradient orientation
\r
150 img.locateROI(wholeSize, roiofs);
\r
153 int cn = img.channels();
\r
155 Mat_<float> _lut(1, 256);
\r
156 const float* lut = &_lut(0,0);
\r
158 if( gammaCorrection )
\r
159 for( i = 0; i < 256; i++ )
\r
160 _lut(0,i) = std::sqrt((float)i);
\r
162 for( i = 0; i < 256; i++ )
\r
163 _lut(0,i) = (float)i;
\r
165 AutoBuffer<int> mapbuf(gradsize.width + gradsize.height + 4);
\r
166 int* xmap = (int*)mapbuf + 1;
\r
167 int* ymap = xmap + gradsize.width + 2;
\r
169 const int borderType = (int)BORDER_REFLECT_101;
\r
171 for( x = -1; x < gradsize.width + 1; x++ )
\r
172 xmap[x] = borderInterpolate(x - paddingTL.width + roiofs.x,
\r
173 wholeSize.width, borderType);
\r
174 for( y = -1; y < gradsize.height + 1; y++ )
\r
175 ymap[y] = borderInterpolate(y - paddingTL.height + roiofs.y,
\r
176 wholeSize.height, borderType);
\r
178 // x- & y- derivatives for the whole row
\r
179 int width = gradsize.width;
\r
180 AutoBuffer<float> _dbuf(width*4);
\r
181 float* dbuf = _dbuf;
\r
182 Mat Dx(1, width, CV_32F, dbuf);
\r
183 Mat Dy(1, width, CV_32F, dbuf + width);
\r
184 Mat Mag(1, width, CV_32F, dbuf + width*2);
\r
185 Mat Angle(1, width, CV_32F, dbuf + width*3);
\r
187 int _nbins = nbins;
\r
188 float angleScale = (float)(_nbins/CV_PI);
\r
190 for( y = 0; y < gradsize.height; y++ )
\r
192 const uchar* imgPtr = img.data + img.step*ymap[y];
\r
193 const uchar* prevPtr = img.data + img.step*ymap[y-1];
\r
194 const uchar* nextPtr = img.data + img.step*ymap[y+1];
\r
195 float* gradPtr = (float*)grad.ptr(y);
\r
196 uchar* qanglePtr = (uchar*)qangle.ptr(y);
\r
200 for( x = 0; x < width; x++ )
\r
203 dbuf[x] = (float)(lut[imgPtr[xmap[x+1]]] - lut[imgPtr[xmap[x-1]]]);
\r
204 dbuf[width + x] = (float)(lut[nextPtr[x1]] - lut[prevPtr[x1]]);
\r
209 for( x = 0; x < width; x++ )
\r
211 int x1 = xmap[x]*3;
\r
212 const uchar* p2 = imgPtr + xmap[x+1]*3;
\r
213 const uchar* p0 = imgPtr + xmap[x-1]*3;
\r
214 float dx0, dy0, dx, dy, mag0, mag;
\r
216 dx0 = lut[p2[2]] - lut[p0[2]];
\r
217 dy0 = lut[nextPtr[x1+2]] - lut[prevPtr[x1+2]];
\r
218 mag0 = dx0*dx0 + dy0*dy0;
\r
220 dx = lut[p2[1]] - lut[p0[1]];
\r
221 dy = lut[nextPtr[x1+1]] - lut[prevPtr[x1+1]];
\r
222 mag = dx*dx + dy*dy;
\r
231 dx = lut[p2[0]] - lut[p0[0]];
\r
232 dy = lut[nextPtr[x1]] - lut[prevPtr[x1]];
\r
233 mag = dx*dx + dy*dy;
\r
243 dbuf[x+width] = dy0;
\r
247 cartToPolar( Dx, Dy, Mag, Angle, false );
\r
249 for( x = 0; x < width; x++ )
\r
251 float mag = dbuf[x+width*2], angle = dbuf[x+width*3]*angleScale - 0.5f;
\r
252 int hidx = cvFloor(angle);
\r
256 else if( hidx >= _nbins )
\r
258 assert( (unsigned)hidx < (unsigned)_nbins );
\r
260 qanglePtr[x*2] = (uchar)hidx;
\r
262 hidx &= hidx < _nbins ? -1 : 0;
\r
263 qanglePtr[x*2+1] = (uchar)hidx;
\r
264 gradPtr[x*2] = mag*(1.f - angle);
\r
265 gradPtr[x*2+1] = mag*angle;
\r
270 void HOGDescriptor::normalizeBlockHistogram(Vector<float>& _hist) const
\r
272 float* hist = &_hist[0];
\r
273 size_t i, sz = _hist.size();
\r
276 for( i = 0; i < sz; i++ )
\r
277 sum += hist[i]*hist[i];
\r
278 float scale = 1.f/(std::sqrt(sum)+sz*0.1f), thresh = (float)L2HysThreshold;
\r
279 for( i = 0, sum = 0; i < sz; i++ )
\r
281 hist[i] = std::min(hist[i]*scale, thresh);
\r
282 sum += hist[i]*hist[i];
\r
284 scale = 1.f/(std::sqrt(sum)+1e-3f);
\r
285 for( i = 0; i < sz; i++ )
\r
300 size_t gradOfs, qangleOfs;
\r
302 float histWeights[4];
\r
307 HOGCache(const HOGDescriptor* descriptor,
\r
308 const Mat& img, Size paddingTL, Size paddingBR,
\r
309 bool useCache, Size cacheStride);
\r
310 virtual ~HOGCache() {};
\r
311 virtual void init(const HOGDescriptor* descriptor,
\r
312 const Mat& img, Size paddingTL, Size paddingBR,
\r
313 bool useCache, Size cacheStride);
\r
315 Size windowsInImage(Size imageSize, Size winStride) const;
\r
316 Rect getWindow(Size imageSize, Size winStride, int idx) const;
\r
318 const float* getBlock(Point pt, float* buf);
\r
320 Vector<PixData> pixData;
\r
321 Vector<BlockData> blockData;
\r
324 Vector<int> ymaxCached;
\r
325 Size winSize, cacheStride;
\r
326 Size nblocks, ncells;
\r
327 int blockHistogramSize;
\r
328 int count1, count2, count4;
\r
330 Mat_<float> blockCache;
\r
331 Mat_<uchar> blockCacheFlags;
\r
334 const HOGDescriptor* descriptor;
\r
338 HOGCache::HOGCache()
\r
341 blockHistogramSize = count1 = count2 = count4 = 0;
\r
345 HOGCache::HOGCache(const HOGDescriptor* _descriptor,
\r
346 const Mat& _img, Size _paddingTL, Size _paddingBR,
\r
347 bool _useCache, Size _cacheStride)
\r
349 init(_descriptor, _img, _paddingTL, _paddingBR, _useCache, _cacheStride);
\r
352 void HOGCache::init(const HOGDescriptor* _descriptor,
\r
353 const Mat& _img, Size _paddingTL, Size _paddingBR,
\r
354 bool _useCache, Size _cacheStride)
\r
356 descriptor = _descriptor;
\r
357 cacheStride = _cacheStride;
\r
358 useCache = _useCache;
\r
360 descriptor->computeGradient(_img, grad, qangle, _paddingTL, _paddingBR);
\r
361 imgoffset = _paddingTL;
\r
363 winSize = descriptor->winSize;
\r
364 Size blockSize = descriptor->blockSize;
\r
365 Size blockStride = descriptor->blockStride;
\r
366 Size cellSize = descriptor->cellSize;
\r
367 Size winSize = descriptor->winSize;
\r
368 int i, j, nbins = descriptor->nbins;
\r
369 int rawBlockSize = blockSize.width*blockSize.height;
\r
371 nblocks = Size((winSize.width - blockSize.width)/blockStride.width + 1,
\r
372 (winSize.height - blockSize.height)/blockStride.height + 1);
\r
373 ncells = Size(blockSize.width/cellSize.width, blockSize.height/cellSize.height);
\r
374 blockHistogramSize = ncells.width*ncells.height*nbins;
\r
378 Size cacheSize((grad.cols - blockSize.width)/cacheStride.width+1,
\r
379 (winSize.height/cacheStride.height)+1);
\r
380 blockCache.create(cacheSize.height, cacheSize.width*blockHistogramSize);
\r
381 blockCacheFlags.create(cacheSize);
\r
382 size_t i, cacheRows = blockCache.rows;
\r
383 ymaxCached.resize(cacheRows);
\r
384 for( i = 0; i < cacheRows; i++ )
\r
385 ymaxCached[i] = -1;
\r
388 Mat_<float> weights(blockSize);
\r
389 float sigma = (float)descriptor->getWinSigma();
\r
390 float scale = 1.f/(sigma*sigma*2);
\r
392 for(i = 0; i < blockSize.height; i++)
\r
393 for(j = 0; j < blockSize.width; j++)
\r
395 float di = i - blockSize.height*0.5f;
\r
396 float dj = j - blockSize.width*0.5f;
\r
397 weights(i,j) = std::exp(-(di*di + dj*dj)*scale);
\r
400 blockData.resize(nblocks.width*nblocks.height);
\r
401 pixData.resize(rawBlockSize*3);
\r
403 // Initialize 2 lookup tables, pixData & blockData.
\r
406 // The detection algorithm runs in 4 nested loops (at each pyramid layer):
\r
407 // loop over the windows within the input image
\r
408 // loop over the blocks within each window
\r
409 // loop over the cells within each block
\r
410 // loop over the pixels in each cell
\r
412 // As each of the loops runs over a 2-dimensional array,
\r
413 // we could get 8(!) nested loops in total, which is very-very slow.
\r
415 // To speed the things up, we do the following:
\r
416 // 1. loop over windows is unrolled in the HOGDescriptor::{compute|detect} methods;
\r
417 // inside we compute the current search window using getWindow() method.
\r
418 // Yes, it involves some overhead (function call + couple of divisions),
\r
419 // but it's tiny in fact.
\r
420 // 2. loop over the blocks is also unrolled. Inside we use pre-computed blockData[j]
\r
421 // to set up gradient and histogram pointers.
\r
422 // 3. loops over cells and pixels in each cell are merged
\r
423 // (since there is no overlap between cells, each pixel in the block is processed once)
\r
424 // and also unrolled. Inside we use PixData[k] to access the gradient values and
\r
425 // update the histogram
\r
427 count1 = count2 = count4 = 0;
\r
428 for( j = 0; j < blockSize.width; j++ )
\r
429 for( i = 0; i < blockSize.height; i++ )
\r
432 float cellX = (j+0.5f)/cellSize.width - 0.5f;
\r
433 float cellY = (i+0.5f)/cellSize.height - 0.5f;
\r
434 int icellX0 = cvFloor(cellX);
\r
435 int icellY0 = cvFloor(cellY);
\r
436 int icellX1 = icellX0 + 1, icellY1 = icellY0 + 1;
\r
440 if( (unsigned)icellX0 < (unsigned)ncells.width &&
\r
441 (unsigned)icellX1 < (unsigned)ncells.width )
\r
443 if( (unsigned)icellY0 < (unsigned)ncells.height &&
\r
444 (unsigned)icellY1 < (unsigned)ncells.height )
\r
446 data = &pixData[rawBlockSize*2 + (count4++)];
\r
447 data->histOfs[0] = (icellX0*ncells.height + icellY0)*nbins;
\r
448 data->histWeights[0] = (1.f - cellX)*(1.f - cellY);
\r
449 data->histOfs[1] = (icellX1*ncells.height + icellY0)*nbins;
\r
450 data->histWeights[1] = cellX*(1.f - cellY);
\r
451 data->histOfs[2] = (icellX0*ncells.height + icellY1)*nbins;
\r
452 data->histWeights[2] = (1.f - cellX)*cellY;
\r
453 data->histOfs[3] = (icellX1*ncells.height + icellY1)*nbins;
\r
454 data->histWeights[3] = cellX*cellY;
\r
458 data = &pixData[rawBlockSize + (count2++)];
\r
459 if( (unsigned)icellY0 < (unsigned)ncells.height )
\r
462 cellY = 1.f - cellY;
\r
464 data->histOfs[0] = (icellX0*ncells.height + icellY1)*nbins;
\r
465 data->histWeights[0] = (1.f - cellX)*cellY;
\r
466 data->histOfs[1] = (icellX1*ncells.height + icellY1)*nbins;
\r
467 data->histWeights[1] = cellX*cellY;
\r
468 data->histOfs[2] = data->histOfs[3] = 0;
\r
469 data->histWeights[2] = data->histWeights[3] = 0;
\r
474 if( (unsigned)icellX0 < (unsigned)ncells.width )
\r
477 cellX = 1.f - cellX;
\r
480 if( (unsigned)icellY0 < (unsigned)ncells.height &&
\r
481 (unsigned)icellY1 < (unsigned)ncells.height )
\r
483 data = &pixData[rawBlockSize + (count2++)];
\r
484 data->histOfs[0] = (icellX1*ncells.height + icellY0)*nbins;
\r
485 data->histWeights[0] = cellX*(1.f - cellY);
\r
486 data->histOfs[1] = (icellX1*ncells.height + icellY1)*nbins;
\r
487 data->histWeights[1] = cellX*cellY;
\r
488 data->histOfs[2] = data->histOfs[3] = 0;
\r
489 data->histWeights[2] = data->histWeights[3] = 0;
\r
493 data = &pixData[count1++];
\r
494 if( (unsigned)icellY0 < (unsigned)ncells.height )
\r
497 cellY = 1.f - cellY;
\r
499 data->histOfs[0] = (icellX1*ncells.height + icellY1)*nbins;
\r
500 data->histWeights[0] = cellX*cellY;
\r
501 data->histOfs[1] = data->histOfs[2] = data->histOfs[3] = 0;
\r
502 data->histWeights[1] = data->histWeights[2] = data->histWeights[3] = 0;
\r
505 data->gradOfs = (grad.cols*i + j)*2;
\r
506 data->qangleOfs = (qangle.cols*i + j)*2;
\r
507 data->gradWeight = weights(i,j);
\r
510 assert( count1 + count2 + count4 == rawBlockSize );
\r
511 // defragment pixData
\r
512 for( j = 0; j < count2; j++ )
\r
513 pixData[j + count1] = pixData[j + rawBlockSize];
\r
514 for( j = 0; j < count4; j++ )
\r
515 pixData[j + count1 + count2] = pixData[j + rawBlockSize*2];
\r
519 // initialize blockData
\r
520 for( j = 0; j < nblocks.width; j++ )
\r
521 for( i = 0; i < nblocks.height; i++ )
\r
523 BlockData& data = blockData[j*nblocks.height + i];
\r
524 data.histOfs = (j*nblocks.height + i)*blockHistogramSize;
\r
525 data.imgOffset = Point(j*blockStride.width,i*blockStride.height);
\r
530 const float* HOGCache::getBlock(Point pt, float* buf)
\r
532 float* blockHist = buf;
\r
533 assert(descriptor != 0);
\r
535 Size blockSize = descriptor->blockSize;
\r
538 CV_Assert( (unsigned)pt.x <= (unsigned)(grad.cols - blockSize.width) &&
\r
539 (unsigned)pt.y <= (unsigned)(grad.rows - blockSize.height) );
\r
543 CV_Assert( pt.x % cacheStride.width == 0 &&
\r
544 pt.y % cacheStride.height == 0 );
\r
545 Point cacheIdx(pt.x/cacheStride.width,
\r
546 (pt.y/cacheStride.height) % blockCache.rows);
\r
547 if( pt.y != ymaxCached[cacheIdx.y] )
\r
549 Mat_<uchar> cacheRow = blockCacheFlags.row(cacheIdx.y);
\r
550 cacheRow = (uchar)0;
\r
551 ymaxCached[cacheIdx.y] = pt.y;
\r
554 blockHist = &blockCache[cacheIdx.y][cacheIdx.x*blockHistogramSize];
\r
555 uchar& computedFlag = blockCacheFlags(cacheIdx.y, cacheIdx.x);
\r
556 if( computedFlag != 0 )
\r
558 computedFlag = (uchar)1; // set it at once, before actual computing
\r
561 int k, C1 = count1, C2 = count2, C4 = count4;
\r
562 const float* gradPtr = (const float*)(grad.data + grad.step*pt.y) + pt.x*2;
\r
563 const uchar* qanglePtr = qangle.data + qangle.step*pt.y + pt.x*2;
\r
565 CV_Assert( blockHist != 0 );
\r
567 for( k = 0; k < blockHistogramSize; k++ )
\r
568 blockHist[k] = 0.f;
\r
570 const PixData* _pixData = &pixData[0];
\r
572 for( k = 0; k < C1; k++ )
\r
574 const PixData& pk = _pixData[k];
\r
575 const float* a = gradPtr + pk.gradOfs;
\r
576 float w = pk.gradWeight*pk.histWeights[0];
\r
577 const uchar* h = qanglePtr + pk.qangleOfs;
\r
578 int h0 = h[0], h1 = h[1];
\r
579 float* hist = blockHist + pk.histOfs[0];
\r
580 float t0 = hist[h0] + a[0]*w;
\r
581 float t1 = hist[h1] + a[1]*w;
\r
582 hist[h0] = t0; hist[h1] = t1;
\r
585 for( ; k < C2; k++ )
\r
587 const PixData& pk = _pixData[k];
\r
588 const float* a = gradPtr + pk.gradOfs;
\r
589 float w, t0, t1, a0 = a[0], a1 = a[1];
\r
590 const uchar* h = qanglePtr + pk.qangleOfs;
\r
591 int h0 = h[0], h1 = h[1];
\r
593 float* hist = blockHist + pk.histOfs[0];
\r
594 w = pk.gradWeight*pk.histWeights[0];
\r
595 t0 = hist[h0] + a0*w;
\r
596 t1 = hist[h1] + a1*w;
\r
597 hist[h0] = t0; hist[h1] = t1;
\r
599 hist = blockHist + pk.histOfs[1];
\r
600 w = pk.gradWeight*pk.histWeights[1];
\r
601 t0 = hist[h0] + a0*w;
\r
602 t1 = hist[h1] + a1*w;
\r
603 hist[h0] = t0; hist[h1] = t1;
\r
606 for( ; k < C4; k++ )
\r
608 const PixData& pk = _pixData[k];
\r
609 const float* a = gradPtr + pk.gradOfs;
\r
610 float w, t0, t1, a0 = a[0], a1 = a[1];
\r
611 const uchar* h = qanglePtr + pk.qangleOfs;
\r
612 int h0 = h[0], h1 = h[1];
\r
614 float* hist = blockHist + pk.histOfs[0];
\r
615 w = pk.gradWeight*pk.histWeights[0];
\r
616 t0 = hist[h0] + a0*w;
\r
617 t1 = hist[h1] + a1*w;
\r
618 hist[h0] = t0; hist[h1] = t1;
\r
620 hist = blockHist + pk.histOfs[1];
\r
621 w = pk.gradWeight*pk.histWeights[1];
\r
622 t0 = hist[h0] + a0*w;
\r
623 t1 = hist[h1] + a1*w;
\r
624 hist[h0] = t0; hist[h1] = t1;
\r
626 hist = blockHist + pk.histOfs[2];
\r
627 w = pk.gradWeight*pk.histWeights[2];
\r
628 t0 = hist[h0] + a0*w;
\r
629 t1 = hist[h1] + a1*w;
\r
630 hist[h0] = t0; hist[h1] = t1;
\r
632 hist = blockHist + pk.histOfs[3];
\r
633 w = pk.gradWeight*pk.histWeights[3];
\r
634 t0 = hist[h0] + a0*w;
\r
635 t1 = hist[h1] + a1*w;
\r
636 hist[h0] = t0; hist[h1] = t1;
\r
639 // normalize the block histogram
\r
640 Vector<float> d(blockHist, (size_t)blockHistogramSize);
\r
641 descriptor->normalizeBlockHistogram(d);
\r
647 Size HOGCache::windowsInImage(Size imageSize, Size winStride) const
\r
649 return Size((imageSize.width - winSize.width)/winStride.width + 1,
\r
650 (imageSize.height - winSize.height)/winStride.height + 1);
\r
653 Rect HOGCache::getWindow(Size imageSize, Size winStride, int idx) const
\r
655 int nwindowsX = (imageSize.width - winSize.width)/winStride.width + 1;
\r
656 int y = idx / nwindowsX;
\r
657 int x = idx - nwindowsX*y;
\r
658 return Rect( x*winStride.width, y*winStride.height, winSize.width, winSize.height );
\r
662 void HOGDescriptor::compute(const Mat& img, Vector<float>& descriptors,
\r
663 Size winStride, Size padding,
\r
664 const Vector<Point>& locations) const
\r
666 if( winStride == Size() )
\r
667 winStride = cellSize;
\r
668 Size cacheStride(gcd(winStride.width, blockStride.width),
\r
669 gcd(winStride.height, blockStride.height));
\r
670 size_t nwindows = locations.size();
\r
671 padding.width = (int)alignSize(std::max(padding.width, 0), cacheStride.width);
\r
672 padding.height = (int)alignSize(std::max(padding.height, 0), cacheStride.height);
\r
673 Size paddedImgSize(img.cols + padding.width*2, img.rows + padding.height*2);
\r
675 HOGCache cache(this, img, padding, padding, nwindows == 0, cacheStride);
\r
678 nwindows = cache.windowsInImage(paddedImgSize, winStride).area();
\r
680 const HOGCache::BlockData* blockData = &cache.blockData[0];
\r
682 int nblocks = cache.nblocks.area();
\r
683 int blockHistogramSize = cache.blockHistogramSize;
\r
684 size_t dsize = getDescriptorSize();
\r
685 descriptors.resize(dsize*nwindows);
\r
687 for( size_t i = 0; i < nwindows; i++ )
\r
689 float* descriptor = &descriptors[i*dsize];
\r
692 if( !locations.empty() )
\r
694 pt0 = locations[i];
\r
695 if( pt0.x < -padding.width || pt0.x > img.cols + padding.width - winSize.width ||
\r
696 pt0.y < -padding.height || pt0.y > img.rows + padding.height - winSize.height )
\r
701 pt0 = cache.getWindow(paddedImgSize, winStride, (int)i).tl() - Point(padding);
\r
702 CV_Assert(pt0.x % cacheStride.width == 0 && pt0.y % cacheStride.height == 0);
\r
705 for( int j = 0; j < nblocks; j++ )
\r
707 const HOGCache::BlockData& bj = blockData[j];
\r
708 Point pt = pt0 + bj.imgOffset;
\r
710 float* dst = descriptor + bj.histOfs;
\r
711 const float* src = cache.getBlock(pt, dst);
\r
713 for( int k = 0; k < blockHistogramSize; k++ )
\r
720 void HOGDescriptor::detect(const Mat& img,
\r
721 Vector<Point>& hits, double hitThreshold,
\r
722 Size winStride, Size padding, const Vector<Point>& locations) const
\r
725 if( svmDetector.empty() )
\r
728 if( winStride == Size() )
\r
729 winStride = cellSize;
\r
730 Size cacheStride(gcd(winStride.width, blockStride.width),
\r
731 gcd(winStride.height, blockStride.height));
\r
732 size_t nwindows = locations.size();
\r
733 padding.width = (int)alignSize(std::max(padding.width, 0), cacheStride.width);
\r
734 padding.height = (int)alignSize(std::max(padding.height, 0), cacheStride.height);
\r
735 Size paddedImgSize(img.cols + padding.width*2, img.rows + padding.height*2);
\r
737 HOGCache cache(this, img, padding, padding, nwindows == 0, cacheStride);
\r
740 nwindows = cache.windowsInImage(paddedImgSize, winStride).area();
\r
742 const HOGCache::BlockData* blockData = &cache.blockData[0];
\r
744 int nblocks = cache.nblocks.area();
\r
745 int blockHistogramSize = cache.blockHistogramSize;
\r
746 size_t dsize = getDescriptorSize();
\r
748 double rho = svmDetector.size() > dsize ? svmDetector[dsize] : 0;
\r
749 Vector<float> blockHist(blockHistogramSize);
\r
751 for( size_t i = 0; i < nwindows; i++ )
\r
754 if( !locations.empty() )
\r
756 pt0 = locations[i];
\r
757 if( pt0.x < -padding.width || pt0.x > img.cols + padding.width - winSize.width ||
\r
758 pt0.y < -padding.height || pt0.y > img.rows + padding.height - winSize.height )
\r
763 pt0 = cache.getWindow(paddedImgSize, winStride, (int)i).tl() - Point(padding);
\r
764 CV_Assert(pt0.x % cacheStride.width == 0 && pt0.y % cacheStride.height == 0);
\r
767 const float* svmVec = &svmDetector[0];
\r
769 for( j = 0; j < nblocks; j++, svmVec += blockHistogramSize )
\r
771 const HOGCache::BlockData& bj = blockData[j];
\r
772 Point pt = pt0 + bj.imgOffset;
\r
774 const float* vec = cache.getBlock(pt, &blockHist[0]);
\r
775 for( k = 0; k <= blockHistogramSize - 4; k += 4 )
\r
776 s += vec[k]*svmVec[k] + vec[k+1]*svmVec[k+1] +
\r
777 vec[k+2]*svmVec[k+2] + vec[k+3]*svmVec[k+3];
\r
778 for( ; k < blockHistogramSize; k++ )
\r
779 s += vec[k]*svmVec[k];
\r
781 if( s >= hitThreshold )
\r
782 hits.push_back(pt0);
\r
787 struct SimilarRects
\r
789 SimilarRects(double _eps) : eps(_eps) {}
\r
790 inline bool operator()(const Rect& r1, const Rect& r2) const
\r
792 double delta = eps*(std::min(r1.width, r2.width) + std::min(r1.height, r2.height))*0.5;
\r
793 return std::abs(r1.x - r2.x) <= delta &&
\r
794 std::abs(r1.y - r2.y) <= delta &&
\r
795 std::abs(r1.x + r1.width - r2.x - r2.width) <= delta &&
\r
796 std::abs(r1.y + r1.height - r2.y - r2.height) <= delta;
\r
801 struct HOGThreadData
\r
803 Vector<Rect> rectangles;
\r
804 Vector<Point> locations;
\r
808 void HOGDescriptor::detectMultiScale(
\r
809 const Mat& img, Vector<Rect>& foundLocations,
\r
810 double hitThreshold, Size winStride, Size padding,
\r
811 double scale0, int groupThreshold) const
\r
814 foundLocations.clear();
\r
816 const int maxLevels = 64;
\r
818 int t, nthreads = getNumThreads();
\r
819 Vector<HOGThreadData> threadData(nthreads);
\r
821 for( t = 0; t < nthreads; t++ )
\r
822 threadData[t].smallerImgBuf.create(img.size(), img.type());
\r
824 Vector<double> levelScale(maxLevels);
\r
825 for( levels = 0; levels < maxLevels; levels++ )
\r
827 levelScale[levels] = scale;
\r
828 if( cvRound(img.cols/scale) < winSize.width ||
\r
829 cvRound(img.rows/scale) < winSize.height ||
\r
834 levels = std::max(levels, 1);
\r
835 levelScale.resize(levels);
\r
839 #pragma omp parallel for num_threads(nthreads) schedule(dynamic)
\r
841 for( i = 0; i < levels; i++ )
\r
843 HOGThreadData& tdata = threadData[getThreadNum()];
\r
844 double scale = levelScale[i];
\r
845 Size sz(cvRound(img.cols/scale), cvRound(img.rows/scale));
\r
846 Mat smallerImg(sz, img.type(), tdata.smallerImgBuf.data);
\r
847 if( sz == img.size() )
\r
848 smallerImg = Mat(sz, img.type(), img.data, img.step);
\r
850 resize(img, smallerImg, sz);
\r
851 detect(smallerImg, tdata.locations, hitThreshold, winStride, padding);
\r
852 Size scaledWinSize = Size(cvRound(winSize.width*scale), cvRound(winSize.height*scale));
\r
853 for( size_t j = 0; j < tdata.locations.size(); j++ )
\r
854 tdata.rectangles.push_back(Rect(
\r
855 cvRound(tdata.locations[j].x*scale),
\r
856 cvRound(tdata.locations[j].y*scale),
\r
857 scaledWinSize.width, scaledWinSize.height));
\r
861 for( t = 0; t < nthreads; t++ )
\r
863 HOGThreadData& tdata = threadData[t];
\r
864 std::copy(tdata.rectangles.begin(), tdata.rectangles.end(),
\r
865 std::back_inserter(foundLocations));
\r
868 if( groupThreshold <= 0 )
\r
871 Vector<int> labels;
\r
872 int nclasses = partition(foundLocations, labels, SimilarRects(0.2));
\r
873 Vector<Rect> rrects(nclasses);
\r
874 Vector<int> rweights(nclasses, 0);
\r
875 int nlabels = (int)labels.size();
\r
876 for( i = 0; i < nlabels; i++ )
\r
878 int cls = labels[i];
\r
879 rrects[cls].x += foundLocations[i].x;
\r
880 rrects[cls].y += foundLocations[i].y;
\r
881 rrects[cls].width += foundLocations[i].width;
\r
882 rrects[cls].height += foundLocations[i].height;
\r
885 foundLocations.clear();
\r
886 for( i = 0; i < nclasses; i++ )
\r
888 Rect r = rrects[i];
\r
889 if( rweights[i] <= groupThreshold )
\r
891 float s = 1.f/rweights[i];
\r
892 foundLocations.push_back(
\r
893 Rect(cvRound(r.x*s), cvRound(r.y*s), cvRound(r.width*s), cvRound(r.height*s)));
\r
897 Vector<float> HOGDescriptor::getDefaultPeopleDetector()
\r
899 static const float detector[] = {
\r
900 0.05359386f, -0.14721455f, -0.05532170f, 0.05077307f,
\r
901 0.11547081f, -0.04268804f, 0.04635834f, -0.05468199f, 0.08232084f,
\r
902 0.10424068f, -0.02294518f, 0.01108519f, 0.01378693f, 0.11193510f,
\r
903 0.01268418f, 0.08528346f, -0.06309239f, 0.13054633f, 0.08100729f,
\r
904 -0.05209739f, -0.04315529f, 0.09341384f, 0.11035026f, -0.07596218f,
\r
905 -0.05517511f, -0.04465296f, 0.02947334f, 0.04555536f,
\r
906 -3.55954492e-003f, 0.07818956f, 0.07730991f, 0.07890715f, 0.06222893f,
\r
907 0.09001380f, -0.03574381f, 0.03414327f, 0.05677258f, -0.04773581f,
\r
908 0.03746637f, -0.03521175f, 0.06955440f, -0.03849038f, 0.01052293f,
\r
909 0.01736112f, 0.10867710f, 0.08748853f, 3.29739624e-003f, 0.10907028f,
\r
910 0.07913758f, 0.10393070f, 0.02091867f, 0.11594022f, 0.13182420f,
\r
911 0.09879354f, 0.05362710f, -0.06745391f, -7.01260753e-003f,
\r
912 5.24702156e-003f, 0.03236255f, 0.01407916f, 0.02207983f, 0.02537322f,
\r
913 0.04547948f, 0.07200756f, 0.03129894f, -0.06274468f, 0.02107014f,
\r
914 0.06035208f, 0.08636236f, 4.53164103e-003f, 0.02193363f, 0.02309801f,
\r
915 0.05568166f, -0.02645093f, 0.04448695f, 0.02837519f, 0.08975694f,
\r
916 0.04461516f, 0.08975355f, 0.07514391f, 0.02306982f, 0.10410084f,
\r
917 0.06368385f, 0.05943464f, 4.58420580e-003f, 0.05220337f, 0.06675851f,
\r
918 0.08358569f, 0.06712101f, 0.06559004f, -0.03930482f, -9.15936660e-003f,
\r
919 -0.05897915f, 0.02816453f, 0.05032348f, 0.06780671f, 0.03377650f,
\r
920 -6.09417039e-004f, -0.01795146f, -0.03083684f, -0.01302475f,
\r
921 -0.02972313f, 7.88706727e-003f, -0.03525961f, -2.50397739e-003f,
\r
922 0.05245084f, 0.11791293f, -0.02167498f, 0.05299332f, 0.06640524f,
\r
923 0.05190265f, -8.27316567e-003f, 0.03033127f, 0.05842173f,
\r
924 -4.01050318e-003f, -6.25105947e-003f, 0.05862958f, -0.02465461f,
\r
925 0.05546781f, -0.08228195f, -0.07234028f, 0.04640540f, -0.01308254f,
\r
926 -0.02506191f, 0.03100746f, -0.04665651f, -0.04591486f, 0.02949927f,
\r
927 0.06035462f, 0.02244646f, -0.01698639f, 0.01040041f, 0.01131170f,
\r
928 0.05419579f, -0.02130277f, -0.04321722f, -0.03665198f, 0.01126490f,
\r
929 -0.02606488f, -0.02228328f, -0.02255680f, -0.03427236f,
\r
930 -7.75165204e-003f, -0.06195229f, 8.21638294e-003f, 0.09535975f,
\r
931 -0.03709979f, -0.06942501f, 0.14579427f, -0.05448192f, -0.02055904f,
\r
932 0.05747357f, 0.02781788f, -0.07077577f, -0.05178314f, -0.10429011f,
\r
933 -0.11235505f, 0.07529039f, -0.07559302f, -0.08786739f, 0.02983843f,
\r
934 0.02667585f, 0.01382199f, -0.01797496f, -0.03141199f, -0.02098101f,
\r
935 0.09029204f, 0.04955018f, 0.13718739f, 0.11379953f, 1.80019124e-003f,
\r
936 -0.04577610f, -1.11108483e-003f, -0.09470536f, -0.11596080f,
\r
937 0.04489342f, 0.01784211f, 3.06850672e-003f, 0.10781866f,
\r
938 3.36498418e-003f, -0.10842580f, -0.07436839f, -0.10535070f,
\r
939 -0.01866805f, 0.16057891f, -5.07316366e-003f, -0.04295658f,
\r
940 -5.90488780e-003f, 8.82003549e-003f, -0.01492646f, -0.05029279f,
\r
941 -0.12875880f, 8.78831954e-004f, -0.01297184f, -0.07592774f,
\r
942 -0.02668831f, -6.93787413e-004f, 0.02406698f, -0.01773298f,
\r
943 -0.03855745f, -0.05877856f, 0.03259695f, 0.12826584f, 0.06292590f,
\r
944 -4.10733931e-003f, 0.10996531f, 0.01332991f, 0.02088735f, 0.04037504f,
\r
945 -0.05210760f, 0.07760046f, 0.06399347f, -0.05751930f, -0.10053057f,
\r
946 0.07505023f, -0.02139782f, 0.01796176f, 2.34400877e-003f, -0.04208319f,
\r
947 0.07355055f, 0.05093350f, -0.02996780f, -0.02219072f, 0.03355330f,
\r
948 0.04418742f, -0.05580705f, -0.05037573f, -0.04548179f, 0.01379514f,
\r
949 0.02150671f, -0.02194211f, -0.13682702f, 0.05464972f, 0.01608082f,
\r
950 0.05309116f, 0.04701022f, 1.33690401e-003f, 0.07575664f, 0.09625306f,
\r
951 8.92647635e-003f, -0.02819123f, 0.10866830f, -0.03439325f,
\r
952 -0.07092371f, -0.06004780f, -0.02712298f, -7.07467366e-003f,
\r
953 -0.01637020f, 0.01336790f, -0.10313606f, 0.04906582f, -0.05732445f,
\r
954 -0.02731079f, 0.01042235f, -0.08340668f, 0.03686501f, 0.06108340f,
\r
955 0.01322748f, -0.07809529f, 0.03774724f, -0.03413248f, -0.06096525f,
\r
956 -0.04212124f, -0.07982176f, -1.25973229e-003f, -0.03045501f,
\r
957 -0.01236493f, -0.06312395f, 0.04789570f, -0.04602066f, 0.08576570f,
\r
958 0.02521080f, 0.02988098f, 0.10314583f, 0.07060035f, 0.04520544f,
\r
959 -0.04426654f, 0.13146530f, 0.08386490f, 0.02164590f, -2.12280243e-003f,
\r
960 -0.03686353f, -0.02074944f, -0.03829959f, -0.01530596f, 0.02689708f,
\r
961 0.11867401f, -0.06043470f, -0.02785023f, -0.04775074f, 0.04878745f,
\r
962 0.06350956f, 0.03494788f, 0.01467400f, 1.17890188e-003f, 0.04379614f,
\r
963 2.03681854e-003f, -0.03958609f, -0.01072688f, 6.43705716e-003f,
\r
964 0.02996500f, -0.03418507f, -0.01960307f, -0.01219154f,
\r
965 -4.37000440e-003f, -0.02549453f, 0.02646318f, -0.01632513f,
\r
966 6.46516960e-003f, -0.01929734f, 4.78711911e-003f, 0.04962371f,
\r
967 0.03809111f, 0.07265724f, 0.05758125f, -0.03741554f, 0.01648608f,
\r
968 -8.45285598e-003f, 0.03996826f, -0.08185477f, 0.02638875f,
\r
969 -0.04026615f, -0.02744674f, -0.04071517f, 1.05096330e-003f,
\r
970 -0.04741232f, -0.06733172f, 8.70434940e-003f, -0.02192543f,
\r
971 1.35350740e-003f, -0.03056974f, -0.02975521f, -0.02887780f,
\r
972 -0.01210713f, -0.04828526f, -0.09066251f, -0.09969629f, -0.03665164f,
\r
973 -8.88111943e-004f, -0.06826669f, -0.01866150f, -0.03627640f,
\r
974 -0.01408288f, 0.01874239f, -0.02075835f, 0.09145175f, -0.03547291f,
\r
975 0.05396780f, 0.04198981f, 0.01301925f, -0.03384354f, -0.12201976f,
\r
976 0.06830920f, -0.03715654f, 9.55848210e-003f, 5.05685573e-003f,
\r
977 0.05659294f, 3.90764466e-003f, 0.02808490f, -0.05518097f, -0.03711621f,
\r
978 -0.02835565f, -0.04420464f, -0.01031947f, 0.01883466f,
\r
979 -8.49525444e-003f, -0.09419250f, -0.01269387f, -0.02133371f,
\r
980 -0.10190815f, -0.07844430f, 2.43644323e-003f, -4.09610150e-003f,
\r
981 0.01202551f, -0.06452291f, -0.10593818f, -0.02464746f, -0.02199699f,
\r
982 -0.07401930f, 0.07285886f, 8.87513801e-004f, 9.97662079e-003f,
\r
983 8.46779719e-003f, 0.03730333f, -0.02905126f, 0.03573337f, -0.04393689f,
\r
984 -0.12014472f, 0.03176554f, -2.76015815e-003f, 0.10824566f, 0.05090732f,
\r
985 -3.30179278e-003f, -0.05123822f, 5.04784798e-003f, -0.05664124f,
\r
986 -5.99415926e-003f, -0.05341901f, -0.01221393f, 0.01291318f,
\r
987 9.91760660e-003f, -7.56987557e-003f, -0.06193124f, -2.24549137e-003f,
\r
988 0.01987562f, -0.02018840f, -0.06975540f, -0.06601523f, -0.03349112f,
\r
989 -0.08910118f, -0.03371435f, -0.07406893f, -0.02248047f, -0.06159951f,
\r
990 2.77751544e-003f, -0.05723337f, -0.04792468f, 0.07518548f,
\r
991 2.77279224e-003f, 0.04211938f, 0.03100502f, 0.05278448f, 0.03954679f,
\r
992 -0.03006846f, -0.03851741f, -0.02792403f, -0.02875333f, 0.01531280f,
\r
993 0.02186953f, -0.01989829f, 2.50679464e-003f, -0.10258728f,
\r
994 -0.04785743f, -0.02887216f, 3.85063468e-003f, 0.01112236f,
\r
995 8.29218887e-003f, -0.04822981f, -0.04503597f, -0.03713100f,
\r
996 -0.06988008f, -0.11002295f, -2.69209221e-003f, 1.85383670e-003f,
\r
997 -0.05921049f, -0.06105053f, -0.08458050f, -0.04527602f,
\r
998 8.90329306e-004f, -0.05875023f, -2.68602883e-003f, -0.01591195f,
\r
999 0.03631859f, 0.05493166f, 0.07300330f, 5.53333294e-003f, 0.06400407f,
\r
1000 0.01847740f, -5.76280477e-003f, -0.03210877f, 4.25160583e-003f,
\r
1001 0.01166520f, -1.44864211e-003f, 0.02253744f, -0.03367080f, 0.06983195f,
\r
1002 -4.22323542e-003f, -8.89401045e-003f, -0.07943393f, 0.05199728f,
\r
1003 0.06065201f, 0.04133492f, 1.44032843e-003f, -0.09585235f, -0.03964731f,
\r
1004 0.04232114f, 0.01750465f, -0.04487902f, -7.59733608e-003f, 0.02011171f,
\r
1005 0.04673622f, 0.09011173f, -0.07869188f, -0.04682482f, -0.05080139f,
\r
1006 -3.99383716e-003f, -0.05346331f, 0.01085723f, -0.03599333f,
\r
1007 -0.07097908f, 0.03551549f, 0.02680387f, 0.03471529f, 0.01790393f,
\r
1008 0.05471273f, 9.62048303e-003f, -0.03180215f, 0.05864431f, 0.02330614f,
\r
1009 0.01633144f, -0.05616681f, -0.10245429f, -0.08302189f, 0.07291322f,
\r
1010 -0.01972590f, -0.02619633f, -0.02485327f, -0.04627592f,
\r
1011 1.48853404e-003f, 0.05514185f, -0.01270860f, -0.01948900f, 0.06373586f,
\r
1012 0.05002292f, -0.03009798f, 8.76216311e-003f, -0.02474238f,
\r
1013 -0.05504891f, 1.74034527e-003f, -0.03333667f, 0.01524987f, 0.11663762f,
\r
1014 -1.32344989e-003f, -0.06608453f, 0.05687166f, -6.89525274e-004f,
\r
1015 -0.04402352f, 0.09450210f, -0.04222684f, -0.05360983f, 0.01779531f,
\r
1016 0.02561388f, -0.11075410f, -8.77790991e-003f, -0.01099504f,
\r
1017 -0.10380266f, 0.03103457f, -0.02105741f, -0.07371717f, 0.05146710f,
\r
1018 0.10581432f, -0.08617968f, -0.02892107f, 0.01092199f, 0.14551543f,
\r
1019 -2.24320893e-003f, -0.05818033f, -0.07390742f, 0.05701261f,
\r
1020 0.12937020f, -0.04986651f, 0.10182415f, 0.05028650f, 0.12515625f,
\r
1021 0.09175041f, 0.06404983f, 0.01523394f, 0.09460562f, 0.06106631f,
\r
1022 -0.14266998f, -0.02926703f, 0.02762171f, 0.02164151f,
\r
1023 -9.58488265e-004f, -0.04231362f, -0.09866509f, 0.04322244f,
\r
1024 0.05872034f, -0.04838847f, 0.06319253f, 0.02443798f, -0.03606876f,
\r
1025 9.38737206e-003f, 0.04289991f, -0.01027411f, 0.08156885f, 0.08751175f,
\r
1026 -0.13191354f, 8.16054735e-003f, -0.01452161f, 0.02952677f, 0.03615945f,
\r
1027 -2.09128903e-003f, 0.02246693f, 0.09623287f, 0.09412123f, -0.02924758f,
\r
1028 -0.07815186f, -0.02203079f, -2.02566991e-003f, 0.01094733f,
\r
1029 -0.01442332f, 0.02838561f, 0.11882371f, 7.28798332e-003f, -0.10345965f,
\r
1030 0.07561217f, -0.02049661f, 4.44177445e-003f, 0.01609347f, -0.04893158f,
\r
1031 -0.08758243f, -7.67420698e-003f, 0.08862378f, 0.06098121f, 0.06565887f,
\r
1032 7.32981879e-003f, 0.03558407f, -0.03874352f, -0.02490055f,
\r
1033 -0.06771075f, 0.09939223f, -0.01066077f, 0.01382995f, -0.07289080f,
\r
1034 7.47184316e-003f, 0.10621431f, -0.02878659f, 0.02383525f, -0.03274646f,
\r
1035 0.02137008f, 0.03837290f, 0.02450992f, -0.04296818f, -0.02895143f,
\r
1036 0.05327370f, 0.01499020f, 0.04998732f, 0.12938657f, 0.09391870f,
\r
1037 0.04292390f, -0.03359194f, -0.06809492f, 0.01125796f, 0.17290455f,
\r
1038 -0.03430733f, -0.06255233f, -0.01813114f, 0.11726857f, -0.06127599f,
\r
1039 -0.08677909f, -0.03429872f, 0.04684938f, 0.08161420f, 0.03538774f,
\r
1040 0.01833884f, 0.11321855f, 0.03261845f, -0.04826299f, 0.01752407f,
\r
1041 -0.01796414f, -0.10464549f, -3.30041884e-003f, 2.29343961e-004f,
\r
1042 0.01457292f, -0.02132982f, -0.02602923f, -9.87351313e-003f,
\r
1043 0.04273872f, -0.02103316f, -0.07994065f, 0.02614958f, -0.02111666f,
\r
1044 -0.06964913f, -0.13453490f, -0.06861878f, -6.09341264e-003f,
\r
1045 0.08251446f, 0.15612499f, 2.46531400e-003f, 8.88424646e-003f,
\r
1046 -0.04152999f, 0.02054853f, 0.05277953f, -0.03087788f, 0.02817579f,
\r
1047 0.13939077f, 0.07641046f, -0.03627627f, -0.03015098f, -0.04041540f,
\r
1048 -0.01360690f, -0.06227205f, -0.02738223f, 0.13577610f, 0.15235767f,
\r
1049 -0.05392922f, -0.11175954f, 0.02157129f, 0.01146481f, -0.05264937f,
\r
1050 -0.06595174f, -0.02749175f, 0.11812254f, 0.17404149f, -0.06137035f,
\r
1051 -0.11003478f, -0.01351621f, -0.01745916f, -0.08577441f, -0.04469909f,
\r
1052 -0.06106115f, 0.10559758f, 0.20806813f, -0.09174948f, 7.09621934e-004f,
\r
1053 0.03579374f, 0.07215115f, 0.02221742f, 0.01827742f, -7.90785067e-003f,
\r
1054 0.01489554f, 0.14519960f, -0.06425831f, 0.02990399f, -1.80181325e-003f,
\r
1055 -0.01401528f, -0.04171134f, -3.70530109e-003f, -0.09090481f,
\r
1056 0.09520713f, 0.08845516f, -0.02651753f, -0.03016730f, 0.02562448f,
\r
1057 0.03563816f, -0.03817881f, 0.01433385f, 0.02256983f, 0.02872120f,
\r
1058 0.01001934f, -0.06332260f, 0.04338406f, 0.07001807f, -0.04705722f,
\r
1059 -0.07318907f, 0.02630457f, 0.03106382f, 0.06648342f, 0.10913180f,
\r
1060 -0.01630815f, 0.02910308f, 0.02895109f, 0.08040254f, 0.06969310f,
\r
1061 0.06797734f, 6.08639978e-003f, 4.16588830e-003f, 0.08926726f,
\r
1062 -0.03123648f, 0.02700146f, 0.01168734f, -0.01631594f, 4.61015804e-003f,
\r
1063 8.51359498e-003f, -0.03544224f, 0.03571994f, 4.29766066e-003f,
\r
1064 -0.01970077f, -8.79793242e-003f, 0.09607988f, 0.01544222f,
\r
1065 -0.03923707f, 0.07308586f, 0.06061262f, 1.31683104e-004f,
\r
1066 -7.98222050e-003f, 0.02399261f, -0.06084389f, -0.02743429f,
\r
1067 -0.05475523f, -0.04131311f, 0.03559756f, 0.03055342f, 0.02981433f,
\r
1068 0.14860515f, 0.01766787f, 0.02945257f, 0.04898238f, 0.01026922f,
\r
1069 0.02811658f, 0.08267091f, 0.02732154f, -0.01237693f, 0.11760156f,
\r
1070 0.03802063f, -0.03309754f, 5.24957618e-003f, -0.02460510f, 0.02691451f,
\r
1071 0.05399988f, -0.10133506f, 0.06385437f, -0.01818005f, 0.02259503f,
\r
1072 0.03573135f, 0.01042848f, -0.04153402f, -0.04043029f, 0.01643575f,
\r
1073 0.08326677f, 4.61383024e-004f, -0.05308095f, -0.08536223f,
\r
1074 -1.61011645e-003f, -0.02163720f, -0.01783352f, 0.03859637f,
\r
1075 0.08498885f, -0.01725216f, 0.08625131f, 0.10995087f, 0.09177644f,
\r
1076 0.08498347f, 0.07646490f, 0.05580502f, 0.02693516f, 0.09996913f,
\r
1077 0.09070327f, 0.06667200f, 0.05873008f, -0.02247842f, 0.07772321f,
\r
1078 0.12408436f, 0.12629253f, -8.41997913e-004f, 0.01477783f, 0.09165990f,
\r
1079 -2.98401713e-003f, -0.06466447f, -0.07057302f, 2.09516948e-004f,
\r
1080 0.02210209f, -0.02158809f, -0.08602506f, -0.02284836f,
\r
1081 4.01876355e-003f, 9.56660323e-003f, -0.02073978f, -0.04635138f,
\r
1082 -7.59423291e-003f, -0.01377393f, -0.04559359f, -0.13284740f,
\r
1083 -0.08671406f, -0.03654395f, 0.01142869f, 0.03287891f, -0.04392983f,
\r
1084 0.06142959f, 0.17710890f, 0.10385257f, 0.01329137f, 0.10067633f,
\r
1085 0.12450829f, -0.04476709f, 0.09049144f, 0.04589312f, 0.11167907f,
\r
1086 0.08587538f, 0.04767583f, 1.67188141e-003f, 0.02359802f, -0.03808852f,
\r
1087 0.03126272f, -0.01919029f, -0.05698918f, -0.02365112f, -0.06519032f,
\r
1088 -0.05599358f, -0.07097308f, -0.03301812f, -0.04719102f, -0.02566297f,
\r
1089 0.01324074f, -0.09230672f, -0.05518232f, -0.04712864f, -0.03380903f,
\r
1090 -0.06719479f, 0.01183908f, -0.09326738f, 0.01642865f, 0.03789867f,
\r
1091 -6.61567831e-003f, 0.07796386f, 0.07246574f, 0.04706347f, -0.02523437f,
\r
1092 -0.01696830f, -0.08068866f, 0.06030888f, 0.10527060f, -0.06611756f,
\r
1093 0.02977346f, 0.02621830f, 0.01913855f, -0.08479366f, -0.06322418f,
\r
1094 -0.13570616f, -0.07644490f, 9.31900274e-003f, -0.08095149f,
\r
1095 -0.10197903f, -0.05204025f, 0.01413151f, -0.07800411f, -0.01885122f,
\r
1096 -0.07509381f, -0.10136326f, -0.05212355f, -0.09944065f,
\r
1097 -1.33606605e-003f, -0.06342617f, -0.04178550f, -0.12373723f,
\r
1098 -0.02832736f, -0.06057501f, 0.05830070f, 0.07604282f, -0.06462587f,
\r
1099 8.02447461e-003f, 0.11580125f, 0.12332212f, 0.01978462f,
\r
1100 -2.72378162e-003f, 0.05850752f, -0.04674481f, 0.05148062f,
\r
1101 -2.62542837e-003f, 0.11253355f, 0.09893716f, 0.09785093f, -0.04659257f,
\r
1102 -0.01102429f, -0.07002308f, 0.03088913f, -0.02565549f, -0.07671449f,
\r
1103 3.17443861e-003f, -0.10783514f, -0.02314270f, -0.11089555f,
\r
1104 -0.01024768f, 0.03116021f, -0.04964825f, 0.02281825f, 5.50005678e-003f,
\r
1105 -0.08427856f, -0.14685495f, -0.07719755f, -0.13342668f, -0.04525511f,
\r
1106 -0.09914210f, 0.02588859f, 0.03469279f, 0.04664020f, 0.11688190f,
\r
1107 0.09647275f, 0.10857815f, -0.01448726f, 0.04299758f, -0.06763151f,
\r
1108 1.33257592e-003f, 0.14331576f, 0.07574340f, 0.09166205f, 0.05674926f,
\r
1109 0.11325553f, -0.01106494f, 0.02062161f, -0.11484840f, -0.07492137f,
\r
1110 -0.02864293f, -0.01275638f, -0.06946032f, -0.10101652f, -0.04113498f,
\r
1111 -0.02214783f, -0.01273942f, -0.07480393f, -0.10556041f, -0.07622112f,
\r
1112 -0.09988393f, -0.11453961f, -0.12073903f, -0.09412795f, -0.07146588f,
\r
1113 -0.04054537f, -0.06127083f, 0.04221122f, 0.07688113f, 0.04099256f,
\r
1114 0.12663734f, 0.14683802f, 0.21761774f, 0.12525328f, 0.18431792f,
\r
1115 -1.66402373e-003f, 2.37777247e-003f, 0.01445475f, 0.03509416f,
\r
1116 0.02654697f, 0.01716739f, 0.05374011f, 0.02944174f, 0.11323927f,
\r
1117 -0.01485456f, -0.01611330f, -1.85554172e-003f, -0.01708549f,
\r
1118 -0.05435753f, -0.05302101f, 0.05260378f, -0.03582945f,
\r
1119 -3.42867890e-004f, 1.36076682e-003f, -0.04436073f, -0.04228432f,
\r
1120 0.03281291f, -0.05480836f, -0.10197772f, -0.07206279f, -0.10741059f,
\r
1121 -0.02366946f, 0.10278475f, -2.74783419e-003f, -0.03242477f,
\r
1122 0.02308955f, 0.02835869f, 0.10348799f, 0.19580358f, 0.10252027f,
\r
1123 0.08039929f, 0.05525554f, -0.13250865f, -0.14395352f, 3.13586881e-003f,
\r
1124 -0.03387071f, 8.94669443e-003f, 0.05406157f, -4.97324532e-003f,
\r
1125 -0.01189114f, 2.82919413e-004f, -0.03901557f, -0.04898705f,
\r
1126 0.02164520f, -0.01382906f, -0.01850416f, 0.01869347f, -0.02450060f,
\r
1127 0.02291678f, 0.08196463f, 0.03309153f, -0.10629974f, 0.02473924f,
\r
1128 0.05344394f, -0.02404823f, -0.03243643f, -5.55244600e-003f,
\r
1129 -0.08009996f, 0.02811539f, 0.04235742f, 0.01859004f, 0.04902123f,
\r
1130 -0.01438252f, -0.01526853f, 0.02044195f, -0.05008660f, 0.04244113f,
\r
1131 0.07611816f, 0.04950470f, -0.06020549f, -4.26026015e-003f, 0.13133512f,
\r
1132 -0.01438738f, -0.01958807f, -0.04044152f, -0.12425045f,
\r
1133 2.84353318e-003f, -0.05042776f, -0.09121484f, 7.34345755e-003f,
\r
1134 0.09388847f, 0.11800314f, 4.72295098e-003f, 4.44378285e-003f,
\r
1135 -0.07984917f, -0.03613737f, 0.04490915f, -0.02246483f, 0.04681071f,
\r
1136 0.05240871f, 0.02157206f, -0.04603431f, -0.01197929f, -0.02748779f,
\r
1137 0.13621049f, 0.08812155f, -0.07802048f, 4.86458559e-003f, -0.01598836f,
\r
1138 0.01024450f, -0.03463517f, -0.02304239f, -0.08692665f, 0.06655128f,
\r
1139 0.05785803f, -0.12640759f, 0.02307472f, 0.07337402f, 0.07525434f,
\r
1140 0.04943763f, -0.02241034f, -0.09978238f, 0.14487994f, -0.06570521f,
\r
1141 -0.07855482f, 0.02830222f, -5.29603509e-004f, -0.04669895f,
\r
1142 -0.11822784f, -0.12246452f, -0.15365660f, -0.02969127f, 0.08078201f,
\r
1143 0.13512598f, 0.11505685f, 0.04740673f, 0.01376022f, -0.05852978f,
\r
1144 -0.01537809f, -0.05541119f, 0.02491065f, -0.02870786f, 0.02760978f,
\r
1145 0.23836176f, 0.22347429f, 0.10306466f, -0.06919070f, -0.10132039f,
\r
1146 -0.20198342f, -0.05040560f, 0.27163076f, 0.36987007f, 0.34540465f,
\r
1147 0.29095781f, 0.05649706f, 0.04125737f, 0.07505883f, -0.02737836f,
\r
1148 -8.43431335e-003f, 0.07368195f, 0.01653876f, -0.09402955f,
\r
1149 -0.09574359f, 0.01474337f, -0.07128561f, -0.03460737f, 0.11438941f,
\r
1150 0.13752601f, -0.06385452f, -0.06310338f, 8.19548313e-003f, 0.11622470f,
\r
1151 5.05133113e-003f, -0.07602754f, 0.06695660f, 0.25723928f, 0.09037900f,
\r
1152 0.28826267f, 0.13165380f, -0.05312614f, -0.02137198f, -0.03442232f,
\r
1153 -0.06255679f, 0.03899667f, 0.18391028f, 0.26016650f, 0.03374462f,
\r
1154 0.01860465f, 0.19077586f, 0.18160543f, 3.43634398e-003f, -0.03036782f,
\r
1155 0.19683038f, 0.35378191f, 0.24968483f, -0.03222649f, 0.28972381f,
\r
1156 0.43091634f, 0.30778357f, 0.02335266f, -0.09877399f, -6.85245218e-003f,
\r
1157 0.08945240f, -0.08150686f, 0.02792493f, 0.24806842f, 0.17338486f,
\r
1158 0.06231801f, -0.10432383f, -0.16653322f, -0.13197899f, -0.08531576f,
\r
1159 -0.19271527f, -0.13536365f, 0.22240199f, 0.39219588f, 0.26597717f,
\r
1160 -0.01231649f, 0.01016179f, 0.13379875f, 0.12018334f, -0.04852953f,
\r
1161 -0.07915270f, 0.07036012f, 3.87723115e-003f, -0.06126805f,
\r
1162 -0.15015170f, -0.11406515f, -0.08556531f, -0.07429333f, -0.16115491f,
\r
1163 0.13214062f, 0.25691369f, 0.05697750f, 0.06861912f, -6.02903729e-003f,
\r
1164 -7.94562511e-003f, 0.04799571f, 0.06695165f, -0.01926842f, 0.06206308f,
\r
1165 0.13450983f, -0.06381495f, -2.98370165e-003f, -0.03482971f,
\r
1166 7.53991678e-003f, 0.03895611f, 0.11464261f, 0.01669971f,
\r
1167 8.27818643e-003f, -7.49160210e-003f, -0.11712562f, -0.10650621f,
\r
1168 -0.10353880f, -0.04994106f, -7.65618810e-004f, 0.03023767f,
\r
1169 -0.04759270f, -0.07302686f, -0.05825012f, -0.13156348f, -0.10639747f,
\r
1170 -0.19393684f, -0.09973683f, -0.07918908f, 4.63177625e-004f,
\r
1171 -6.61382044e-004f, 0.15853868f, 0.08561199f, -0.07660093f,
\r
1172 -0.08015265f, -0.06164073f, 0.01882577f, -7.29908410e-004f,
\r
1173 0.06840892f, 0.03843764f, 0.20274927f, 0.22028814f, -5.26101235e-003f,
\r
1174 0.01452435f, -0.06331623f, 0.02865064f, 0.05673740f, 0.12171564f,
\r
1175 0.03837196f, 0.03555467f, -0.02662914f, -0.10280123f, -0.06526285f,
\r
1176 -0.11066351f, -0.08988424f, -0.10103678f, 8.10526591e-003f,
\r
1177 5.95238712e-003f, 0.02617721f, -0.01705742f, -0.10897956f,
\r
1178 -0.08004991f, -0.11271993f, -0.06185647f, -0.06103712f, 0.01597041f,
\r
1179 -0.05923606f, 0.09410726f, 0.22858568f, 0.03263380f, 0.06772990f,
\r
1180 -0.09003516f, 0.01017870f, 0.01931688f, 0.08628357f, -0.01430009f,
\r
1181 0.10954945f, 0.16612452f, -0.02434544f, -0.03310068f, -0.04236627f,
\r
1182 0.01212392f, -6.15046406e-003f, 0.06954194f, 0.03015283f, 0.01787957f,
\r
1183 0.02781667f, -0.05561153f, -8.96244217e-003f, -0.04971489f,
\r
1184 0.07510284f, 0.01775282f, 0.05889897f, -0.07981427f, 0.03647643f,
\r
1185 -3.73833324e-003f, -0.08894575f, -0.06429435f, -0.08068276f,
\r
1186 0.03567704f, -0.07131936f, -7.21910037e-003f, -0.09566668f,
\r
1187 0.17886090f, 0.14911725f, 0.02070032f, -0.05017120f, -0.04992622f,
\r
1188 0.01570143f, -0.09906903f, 0.06456193f, 0.15329507f, 0.18820767f,
\r
1189 0.11689861f, -0.01178513f, -0.02225163f, -0.01905318f, 0.10271224f,
\r
1190 -7.27029052e-003f, 0.11664233f, 0.14796902f, 0.07771893f, 0.02400013f,
\r
1191 -0.05361797f, -0.01972888f, 0.01376177f, 0.06740040f, -0.06525395f,
\r
1192 0.05726178f, -0.02404981f, -0.14018567f, -0.02074987f, -0.04621970f,
\r
1193 -0.04688627f, -0.01842059f, 0.07722727f, -0.04852883f, 0.01529004f,
\r
1194 -0.19639495f, 0.10817073f, 0.03795860f, -0.09435206f, -0.07984378f,
\r
1195 -0.03383440f, 0.11081333f, 0.02237366f, 0.12703256f, 0.21613893f,
\r
1196 0.02918790f, 4.66472283e-003f, -0.10274266f, -0.04854131f,
\r
1197 -3.46305710e-003f, 0.08652268f, 0.02251546f, 0.09636052f, 0.17180754f,
\r
1198 -0.09272388f, 4.59174305e-004f, -0.11723048f, -0.12210111f,
\r
1199 -0.15547538f, 0.07218186f, -0.05297846f, 0.03779940f, 0.05150875f,
\r
1200 -0.03802310f, 0.03870645f, -0.15250699f, -0.08696499f, -0.02021560f,
\r
1201 0.04118926f, -0.15177974f, 0.01577647f, 0.10249301f, 7.50041893e-003f,
\r
1202 0.01721806f, -0.06828983f, -0.02397596f, -0.06598977f, -0.04317593f,
\r
1203 -0.08064980f, 6.66632550e-003f, 0.03333484f, 0.07093620f, 0.08231064f,
\r
1204 -0.06577903f, -0.06698844f, -0.06984019f, -0.06508023f, -0.14145090f,
\r
1205 -0.02393239f, 0.06485303f, 8.83263443e-003f, 0.09251080f, -0.07557579f,
\r
1206 -0.05067699f, -0.09798748f, -0.06703258f, -0.14056294f, 0.03245994f,
\r
1207 0.12554143f, 0.01761621f, 0.12980327f, -0.04081950f, -0.11906909f,
\r
1208 -0.14813015f, -0.08376863f, -0.12200681f, 0.04988137f, 0.05424247f,
\r
1209 -3.90952639e-003f, 0.03255733f, -0.12717837f, -0.07461493f,
\r
1210 -0.05703964f, -0.01736189f, -0.08026433f, -0.05433894f, -0.01719359f,
\r
1211 0.02886275f, 0.01772653f, -0.09163518f, 3.57789593e-003f, -0.10129993f,
\r
1212 -0.02653764f, -0.08131415f, -0.03847986f, -7.62157550e-004f,
\r
1213 0.06486648f, 0.19675669f, -0.04919156f, -0.07059129f, -0.04857785f,
\r
1214 -0.01042383f, -0.08328653f, 0.03660302f, -0.03696846f, 0.04969259f,
\r
1215 0.08241162f, -0.12514858f, -0.06122676f, -0.03750202f,
\r
1216 6.52989605e-003f, -0.10247213f, 0.02568346f, 4.51781414e-003f,
\r
1217 -0.03734229f, -0.01131264f, -0.05412074f, 8.89345480e-004f,
\r
1218 -0.12388977f, -0.05959237f, -0.12418608f, -0.06151643f, -0.07310260f,
\r
1219 0.02441575f, 0.07023528f, -0.07548289f, -7.57147965e-004f,
\r
1220 -0.09061348f, -0.08112976f, -0.06920306f, 9.54394229e-003f,
\r
1221 -0.01219902f, 1.21273217e-003f, -8.88989680e-003f, -0.08309301f,
\r
1222 -0.04552661f, -0.10739882f, -0.05691034f, -0.13928030f, 0.09027749f,
\r
1223 0.15123098f, 0.03175976f, 0.17763577f, 3.29913251e-004f, 0.05151888f,
\r
1224 -0.09844074f, -0.09475287f, -0.08571247f, 0.16241577f, 0.19336018f,
\r
1225 8.57454538e-003f, 0.11474732f, -0.01493934f, 0.03352379f, -0.08966240f,
\r
1226 -0.02322310f, 0.02663568f, 0.05448750f, -0.03536883f, -0.07210463f,
\r
1227 -0.06807277f, -0.03121621f, -0.05932408f, -0.17282860f, -0.15873498f,
\r
1228 -0.04956378f, 0.01603377f, -0.12385946f, 0.13878587f, 0.21468069f,
\r
1229 0.13510075f, 0.20992437f, 0.08845878f, 0.08104013f, 0.03754176f,
\r
1230 0.12173114f, 0.11103114f, 0.10643122f, 0.13941477f, 0.11640384f,
\r
1231 0.14786847f, 0.01218238f, 0.01160753f, 0.03547940f, 0.08794311f,
\r
1232 -0.01695384f, -0.07692261f, -0.08236158f, 6.79194089e-003f,
\r
1233 -0.02458403f, 0.13022894f, 0.10953187f, 0.09857773f, 0.04735930f,
\r
1234 -0.04353498f, -0.15173385f, -0.17904443f, -0.10450364f, -0.13418166f,
\r
1235 -0.06633098f, -0.03170381f, -0.06839000f, -0.11350126f, -0.06983913f,
\r
1236 0.19083543f, 0.17604128f, 0.07730632f, 0.10022651f, 0.36428109f,
\r
1237 0.28291923f, 0.12688625f, 0.15942036f, 0.14064661f, -0.11201853f,
\r
1238 -0.13969108f, -0.09088077f, -0.14107047f, 0.05117374f,
\r
1239 -2.63348082e-003f, -0.10794610f, -0.09715455f, -0.05284977f,
\r
1240 0.01565668f, 0.05031200f, 0.07021113f, -0.02963028f, 0.01766960f,
\r
1241 0.08333644f, -0.03211382f, 4.90096770e-003f, 0.05186674f, -0.05045737f,
\r
1242 -0.09624767f, -0.02525997f, 0.06916669f, 0.01213916f, 0.05333899f,
\r
1243 -0.03443280f, -0.10055527f, -0.06291115f, 5.42851724e-003f,
\r
1244 -6.30360236e-003f, 0.02270257f, -0.01769792f, 0.03273688f, 0.07746078f,
\r
1245 7.77099328e-003f, 0.05041346f, 0.01648103f, -0.02321534f, -0.09930186f,
\r
1246 -0.02293853f, 0.02034990f, -0.08324204f, 0.08510064f, -0.03732836f,
\r
1247 -0.06465405f, -0.06086946f, 0.13680504f, -0.11469388f, -0.03896406f,
\r
1248 -0.07142810f, 2.67581246e-003f, -0.03639632f, -0.09849060f,
\r
1249 -0.11014334f, 0.17489147f, 0.17610909f, -0.16091567f, -0.07248894f,
\r
1250 0.01567141f, 0.23742996f, 0.07552249f, -0.06270349f, -0.07303379f,
\r
1251 0.25442186f, 0.16903116f, -0.08168741f, -0.05913896f, -0.03954096f,
\r
1252 6.81776879e-003f, -0.05615319f, -0.07303037f, -0.12176382f,
\r
1253 0.12385108f, 0.22084464f, -0.05543206f, -0.03310431f, 0.05731593f,
\r
1254 0.19481890f, 0.04016430f, -0.06480758f, -0.12353460f, 0.18733442f,
\r
1255 -0.09631214f, -0.11192076f, 0.12404587f, 0.15671748f, 0.19256128f,
\r
1256 0.10895617f, 0.03391477f, -0.13032004f, -0.05626907f, -0.09025607f,
\r
1257 0.23485197f, 0.27812332f, 0.26725492f, 0.07255980f, 0.16565137f,
\r
1258 0.22388470f, 0.07441066f, -0.21003133f, -0.08075339f, -0.15031935f,
\r
1259 0.07023834f, 0.10872041f, 0.18156518f, 0.20037253f, 0.13571967f,
\r
1260 -0.11915682f, -0.11131983f, -0.18878011f, 0.06074620f, 0.20578890f,
\r
1261 0.12413109f, 0.03930207f, 0.29176015f, 0.29502738f, 0.27856228f,
\r
1262 -0.01803601f, 0.16646385f, 0.19268319f, 0.01900682f, 0.06026287f,
\r
1263 2.35868432e-003f, 0.01558199f, 0.02707230f, 0.11383014f, 0.12103992f,
\r
1264 0.03907350f, 0.04637353f, 0.09020995f, 0.11919726f, -3.63007211e-003f,
\r
1265 0.02220155f, 0.10336831f, 0.17351882f, 0.12259731f, 0.18983354f,
\r
1266 0.15736865f, 0.01160725f, -0.01690723f, -9.69582412e-004f, 0.07213813f,
\r
1267 0.01161613f, 0.17864859f, 0.24486147f, 0.18208991f, 0.20177495f,
\r
1268 0.05972528f, -8.93934630e-003f, -0.02316955f, 0.14436610f, 0.14114498f,
\r
1269 0.05520950f, 0.06353590f, -0.19124921f, 0.10174713f, 0.29414919f,
\r
1270 0.26448128f, 0.09344960f, 0.15284036f, 0.19797507f, 0.11369792f,
\r
1271 -0.12722753f, -0.21396367f, -0.02008235f, -0.06566695f, -0.01662150f,
\r
1272 -0.03937003f, 0.04778343f, 0.05017274f, -0.02299062f, -0.20208496f,
\r
1273 -0.06395898f, 0.13721776f, 0.22544557f, 0.14888357f, 0.08687132f,
\r
1274 0.27088094f, 0.32206613f, 0.09782200f, -0.18523243f, -0.17232181f,
\r
1275 -0.01041531f, 0.04008654f, 0.04199702f, -0.08081299f, -0.03755421f,
\r
1276 -0.04809646f, -0.05222081f, -0.21709201f, -0.06622940f, 0.02945281f,
\r
1277 -0.04600435f, -0.05256077f, -0.08432942f, 0.02848100f, 0.03490564f,
\r
1278 8.28621630e-003f, -0.11051246f, -0.11210597f, -0.01998289f,
\r
1279 -0.05369405f, -0.08869293f, -0.18799506f, -0.05436598f, -0.05011634f,
\r
1280 -0.05419716f, -0.06151857f, -0.10827805f, 0.04346735f, 0.04016083f,
\r
1281 0.01520820f, -0.12173316f, -0.04880285f, -0.01101406f, 0.03250847f,
\r
1282 -0.06009551f, -0.03082932f, -0.02295134f, -0.06856834f, -0.08775249f,
\r
1283 -0.23793389f, -0.09174541f, -0.05538322f, -0.04321031f, -0.11874759f,
\r
1284 -0.04221844f, -0.06070468f, 0.01194489f, 0.02608565f, -0.03892140f,
\r
1285 -0.01643151f, -0.02602034f, -0.01305472f, 0.03920100f, -0.06514261f,
\r
1286 0.01126918f, -6.27710763e-003f, -0.02720047f, -0.11133634f,
\r
1287 0.03300330f, 0.02398472f, 0.04079665f, -0.10564448f, 0.05966159f,
\r
1288 0.01195221f, -0.03179441f, -0.01692590f, -0.06177841f, 0.01841576f,
\r
1289 -5.51078189e-003f, -0.06821765f, -0.03191888f, -0.09545476f,
\r
1290 0.03030550f, -0.04896152f, -0.02914624f, -0.13283344f, -0.04783419f,
\r
1291 6.07836898e-003f, -0.01449538f, -0.13358212f, -0.09687774f,
\r
1292 -0.02813793f, 0.01213498f, 0.06650011f, -0.02039067f, 0.13356198f,
\r
1293 0.05986415f, -9.12760664e-003f, -0.18780160f, -0.11992817f,
\r
1294 -0.06342237f, 0.01229534f, 0.07143231f, 0.10713009f, 0.11085765f,
\r
1295 0.06569190f, -0.02956399f, -0.16288325f, -0.13993549f, -0.01292515f,
\r
1296 0.03833013f, 0.09130384f, -0.05086257f, 0.05617329f, -0.03896667f,
\r
1297 -0.06282311f, -0.11490010f, -0.14264110f, -0.04530499f, 0.01598189f,
\r
1298 0.09167797f, 0.08663294f, 0.04885277f, -0.05741219f, -0.07565769f,
\r
1299 -0.17136464f, -0.02619422f, -0.02477579f, 0.02679587f, 0.11621952f,
\r
1300 0.08788391f, 0.15520640f, 0.04709549f, 0.04504483f, -0.10214074f,
\r
1301 -0.12293372f, -0.04820546f, -0.05484834f, 0.05473754f, 0.07346445f,
\r
1302 0.05577277f, -0.08209965f, 0.03462975f, -0.20962234f, -0.09324598f,
\r
1303 3.79481679e-003f, 0.03617633f, 0.16742408f, 0.07058107f, 0.10204960f,
\r
1304 -0.06795346f, 3.22807301e-003f, -0.12589309f, -0.17496960f,
\r
1305 0.02078314f, -0.07694324f, 0.12184640f, 0.08997164f, 0.04793497f,
\r
1306 -0.11383379f, -0.08046359f, -0.25716835f, -0.08080962f,
\r
1307 6.80711539e-003f, -0.02930280f, -3.04938294e-003f, -0.11106286f,
\r
1308 -0.04628860f, -0.07821649f, 7.70127494e-003f, -0.10247706f,
\r
1309 1.21042714e-003f, 0.20573859f, -0.03241005f, 8.42972286e-003f,
\r
1310 0.01946464f, -0.01197973f, -0.14579976f, 0.04233614f,
\r
1311 -4.14096704e-003f, -0.06866436f, -0.02431862f, -0.13529138f,
\r
1312 1.25891645e-003f, -0.11425111f, -0.04303651f, -0.01694815f,
\r
1313 0.05720210f, -0.16040207f, 0.02772896f, 0.05498345f, -0.15010567f,
\r
1314 0.01450866f, 0.02350303f, -0.04301004f, -0.04951802f, 0.21702233f,
\r
1315 -0.03159155f, -0.01963303f, 0.18232647f, -0.03263875f,
\r
1316 -2.88476888e-003f, 0.01587562f, -1.94303901e-003f, -0.07789494f,
\r
1317 0.04674156f, -6.25576358e-003f, 0.08925962f, 0.21353747f, 0.01254677f,
\r
1318 -0.06999976f, -0.05931328f, -0.01884327f, -0.04306272f, 0.11794136f,
\r
1319 0.03842728f, -0.03907030f, 0.05636114f, -0.09766009f, -0.02104000f,
\r
1320 8.72711372e-003f, -0.02736877f, -0.05112274f, 0.16996814f, 0.02955785f,
\r
1321 0.02094014f, 0.08414304f, -0.03335762f, -0.03617457f, -0.05808248f,
\r
1322 -0.08872101f, 0.02927705f, 0.27077839f, 0.06075108f, 0.07478261f,
\r
1323 0.15282831f, -0.03908454f, -0.05101782f, -9.51998029e-003f,
\r
1324 -0.03272416f, -0.08735625f, 0.07633440f, -0.07185312f, 0.13841286f,
\r
1325 0.07812646f, -0.12901451f, -0.05488589f, -0.05644578f, -0.03290703f,
\r
1326 -0.11184757f, 0.03751570f, -0.05978153f, -0.09155276f, 0.05657315f,
\r
1327 -0.04328186f, -0.03047933f, -0.01413135f, -0.10181040f, -0.01384013f,
\r
1328 0.20132534f, -0.01536873f, -0.07641169f, 0.05906778f, -0.07833145f,
\r
1329 -0.01523801f, -0.07502609f, -0.09461885f, -0.15013233f, 0.16050665f,
\r
1330 0.09021381f, 0.08473236f, 0.03386267f, -0.09147339f, -0.09170618f,
\r
1331 -0.08498498f, -0.05119187f, -0.10431040f, 0.01041618f, -0.03064913f,
\r
1332 0.09340212f, 0.06448522f, -0.03881054f, -0.04985436f, -0.14794017f,
\r
1333 -0.05200112f, -0.02144495f, 0.04000821f, 0.12420804f, -0.01851651f,
\r
1334 -0.04116732f, -0.11951703f, -0.04879033f, -0.08722515f, -0.08454733f,
\r
1335 -0.10549165f, 0.11251976f, 0.10766345f, 0.19201984f, 0.06128913f,
\r
1336 -0.02734615f, -0.08834923f, -0.16999826f, -0.03548348f,
\r
1337 -5.36092324e-003f, 0.08297954f, 0.07226378f, 0.04194529f, 0.04668673f,
\r
1338 8.73902347e-003f, 0.06980139f, 0.05652480f, 0.05879445f, 0.02477076f,
\r
1339 0.02451423f, 0.12433673f, 0.05600227f, 0.06886370f, 0.03863076f,
\r
1340 0.07459056f, 0.02264139f, 0.01495469f, 0.06344220f, 0.06945208f,
\r
1341 0.02931899f, 0.11719371f, 0.04527427f, 0.03248192f, 2.08271481e-003f,
\r
1342 0.02044626f, 0.11403449f, 0.04303892f, 0.06444661f, 0.04959024f,
\r
1343 0.08174094f, 0.09240247f, 0.04894639f, 0.02252937f, -0.01652530f,
\r
1344 0.07587013f, 0.06064249f, 0.13954395f, 0.02772832f, 0.07093039f,
\r
1345 0.08501238f, 0.01701301f, 0.09055722f, 0.33421436f, 0.20163782f,
\r
1346 0.09821030f, 0.07951369f, 0.08695120f, -0.12757730f, -0.13865978f,
\r
1347 -0.06610068f, -0.10985506f, 0.03406816f, -0.01116336f, -0.07281768f,
\r
1348 -0.13525715f, -0.12844718f, 0.08956250f, 0.09171610f, 0.10092317f,
\r
1349 0.23385370f, 0.34489515f, 0.09901748f, 0.02002922f, 0.12335990f,
\r
1350 0.07606190f, -0.14899330f, -0.15634622f, -0.06494618f, -0.01760547f,
\r
1351 0.03404277f, -0.13208845f, -0.12101169f, -0.18294574f, -0.16560709f,
\r
1352 0.02183887f, -0.02752613f, 0.01813638f, 0.02000757f, 0.01319924f,
\r
1353 0.08030242f, 0.01220535f, 2.98233377e-003f, -0.01307070f, 0.05970297f,
\r
1354 -0.05345284f, -0.03381982f, -9.87543724e-003f, -0.06869387f,
\r
1355 0.03956730f, -0.03108176f, -0.05732809f, 0.02172386f, 0.04159765f,
\r
1356 2.62783933e-003f, 0.04813229f, 0.09358983f, -8.18389002e-003f,
\r
1357 0.01724574f, -0.02547474f, -0.04967288f, -0.02390376f, 0.06640504f,
\r
1358 -0.06306566f, 0.01137518f, 0.05589378f, -0.08237787f, 0.02455001f,
\r
1359 -0.03059422f, -0.08953978f, 0.06851497f, 0.07190268f, -0.07610799f,
\r
1360 7.87237938e-003f, -7.85830803e-003f, 0.06006952f, -0.01126728f,
\r
1361 -2.85743061e-003f, -0.04772895f, 0.01884944f, 0.15005857f,
\r
1362 -0.06268821f, -0.01989072f, 0.01138399f, 0.08760451f, 0.03879007f,
\r
1363 -9.66926850e-003f, -0.08012961f, 0.06414555f, -0.01362950f,
\r
1364 -0.09135523f, 0.01755159f, 0.04459474f, 0.09650917f, 0.05219948f,
\r
1365 -2.19440833e-003f, -0.07037939f, -0.01599054f, 0.13103317f,
\r
1366 -0.02492603f, -0.01032540f, -0.02903307f, 0.04489160f, 0.05148086f,
\r
1367 0.01858173f, -0.02919228f, 0.08299296f, -0.04590359f, -0.15745632f,
\r
1368 -0.09068198f, -0.02972453f, 0.12985018f, 0.22320485f, 0.24261914f,
\r
1369 0.03642650f, -0.05506422f, 2.67413049e-003f, -0.03834032f, 0.06449424f,
\r
1370 0.03834866f, 0.03816991f, 0.25039271f, 0.34212017f, 0.32433882f,
\r
1371 0.18824573f, -0.08599839f, -0.17599408f, -0.15317015f, -0.09913155f,
\r
1372 -0.02856072f, -0.05304699f, -1.06437842e-003f, -0.06641813f,
\r
1373 -0.07509298f, 0.01463361f, -0.07551918f, -0.04510373f,
\r
1374 -8.44620075e-003f, 0.01772176f, 0.04068235f, 0.20295307f, 0.15719447f,
\r
1375 0.05712103f, 0.26296997f, 0.14657754f, 0.01547317f, -0.05052776f,
\r
1376 -0.03881342f, -0.01437883f, -0.04930177f, 0.11719568f, 0.24098417f,
\r
1377 0.26468599f, 0.31698579f, 0.10103608f, -0.01096375f, -0.01367013f,
\r
1378 0.17104232f, 0.20065314f, 2.67622480e-003f, -0.01190034f, 0.18301608f,
\r
1379 0.09459770f, -0.06357619f, -0.06473801f, 0.01377906f, -0.10032775f,
\r
1380 -0.06388740f, 3.80393048e-003f, 0.06206078f, 0.10349120f, 0.26804337f,
\r
1381 8.17918684e-003f, -0.02314351f, 9.34422202e-003f, 0.09198381f,
\r
1382 0.03681326f, -8.77339672e-003f, -0.09662418f, -0.02715708f,
\r
1383 0.13503517f, 0.08962728f, -6.57071499e-003f, -0.03201199f, 0.28510824f,
\r
1384 0.32095715f, 0.18512695f, -0.14230858f, -0.14048551f, -0.07181299f,
\r
1385 -0.08575408f, -0.08661680f, -0.17416079f, 7.54326640e-004f,
\r
1386 0.05601677f, 0.13585392f, -0.04960437f, -0.07708392f, 0.10676333f,
\r
1387 -0.04407546f, -0.07209078f, 0.03663663f, 0.28949317f, 0.41127121f,
\r
1388 0.27431169f, -0.06900328f, -0.21474190f, -0.15578632f, -0.19555484f,
\r
1389 -0.15209621f, -0.11269179f, 0.07416003f, 0.18991330f, 0.26858172f,
\r
1390 0.01952259f, 0.01017922f, 0.02159843f, -4.95165400e-003f, -0.04368168f,
\r
1391 -0.12721671f, -0.06673957f, -0.11275250f, 0.04413409f, 0.05578312f,
\r
1392 0.03896771f, 0.03566417f, -0.05871816f, -0.07388090f, -0.17965563f,
\r
1393 -0.08570268f, -0.15273231f, -0.06022318f, -0.06999847f,
\r
1394 -6.81510568e-003f, 0.06294262f, -6.54901436e-004f, -0.01128654f,
\r
1395 -0.02289657f, 0.04849290f, 0.04140804f, 0.23681939f, 0.14545733f,
\r
1396 0.01989965f, 0.12032662f, 3.87463090e-003f, -6.02597650e-003f,
\r
1397 -0.05919775f, -0.03067224f, -0.07787777f, 0.10834727f, 0.02153730f,
\r
1398 0.02765649f, 0.03975543f, -0.12182906f, -0.04900113f, -0.09940100f,
\r
1399 -0.06453611f, -0.13757215f, -0.03721382f, 0.02827376f, -0.04351249f,
\r
1400 0.01907038f, -0.10284120f, -0.05671160f, -0.10760647f, -0.09624009f,
\r
1401 -0.09565596f, -0.01303654f, 0.03080539f, 0.01416511f, 0.05846142f,
\r
1402 -5.42971538e-003f, 0.06221476f, -0.03320325f, -0.06791797f,
\r
1403 -0.05791342f, 0.12851369f, 0.14990346f, 0.03634374f, 0.14262885f,
\r
1404 0.04330391f, 0.05032569f, -0.05631914f, 0.01606137f, 0.04387223f,
\r
1405 0.22344995f, 0.15722635f, -0.04693628f, 0.03006579f, -2.52882647e-003f,
\r
1406 0.05717621f, -0.07529724f, -0.02848588f, -0.06868757f,
\r
1407 -4.51729307e-003f, 0.06466042f, -0.05935378f, -0.04704857f,
\r
1408 -0.07363959f, 0.04843248f, -0.13421375f, -0.09789340f, -0.10255270f,
\r
1409 0.03509852f, 0.04751543f, -0.03822323f, 0.09740467f, 0.04762916f,
\r
1410 0.03940146f, -0.08283259f, 0.09552965f, 0.05038739f, 0.21258622f,
\r
1411 0.09646992f, 0.03241193f, 0.05167701f, 0.04614570f, 0.04330090f,
\r
1412 -0.02671840f, -0.06259909f, -0.02301898f, 0.18829170f, 0.10522786f,
\r
1413 0.04313190f, 0.01670948f, -0.08421925f, 0.05911417f, -0.10582602f,
\r
1414 -0.04855484f, -0.08373898f, 0.07775915f, 0.03723533f, -0.12047344f,
\r
1415 4.86345543e-003f, -0.10520902f, 0.06571782f, -0.07528137f,
\r
1416 -0.03245651f, -0.09869066f, -0.02917477f, -0.18293270f, 0.14810945f,
\r
1417 9.24033765e-003f, -0.04354914f, 0.02266885f, -0.11872729f,
\r
1418 -0.04016589f, 0.02830229f, 0.22539048f, 0.20565644f, 0.16701797f,
\r
1419 0.09019924f, 0.01300652f, 0.09760600f, -0.03675831f, -0.01935448f,
\r
1420 -0.06894835f, 0.08077277f, 0.19047537f, 0.11312226f, 0.04106043f,
\r
1421 -0.11187182f, 0.04312806f, -0.18548580f, -0.11287174f, -0.08794551f,
\r
1422 0.02078281f, -0.15295486f, 0.11806386f, -0.01103218f, -0.15971117f,
\r
1423 0.02153538f, -0.05232147f, -0.10835317f, -0.13910367f, 0.05920752f,
\r
1424 -0.10122602f, 0.20174250f, 0.09105796f, -0.01881348f, 0.09559010f,
\r
1425 -0.03725745f, -0.09442931f, -0.09763174f, 0.05854454f, 0.08287182f,
\r
1426 0.12919849f, 0.08594352f, -2.49806582e-003f, 0.02398440f,
\r
1427 5.67950122e-003f, -0.06296340f, -0.12993270f, 0.03855852f, 0.05186560f,
\r
1428 0.10839908f, -0.03380463f, -0.12654832f, -0.05399339f, -0.07456800f,
\r
1429 -0.04736232f, -0.10164231f, 0.07496139f, 0.08125214f, 0.07656177f,
\r
1430 -0.04999603f, -0.12823077f, -0.07692395f, -0.11317524f, -0.09118655f,
\r
1431 -0.05695669f, 0.10477209f, 0.07468581f, 0.01630048f, -8.00961629e-003f,
\r
1432 -0.06582128f, -0.04019095f, -0.04682907f, -0.01907842f, -0.10997720f,
\r
1433 0.04911406f, 0.02931030f, 0.04197735f, -0.05773980f, -0.09670641f,
\r
1434 -0.03594951f, -0.03402121f, -0.07149299f, -0.10566200f, 0.10601286f,
\r
1435 0.06340689f, -0.01518632f, -5.96402306e-003f, -0.07628012f,
\r
1436 -3.52779147e-003f, -0.02683854f, -0.10265494f, -0.02680815f,
\r
1437 0.16338381f, 0.03103515f, 0.02296976f, 0.01624348f, -0.10831620f,
\r
1438 -0.02314233f, -0.04789969f, -0.05530700f, -0.06461314f, 0.10494506f,
\r
1439 0.04642856f, -0.07592955f, -0.06197905f, -0.09042154f, -0.01445521f,
\r
1440 -0.04297818f, -0.11262015f, -0.11430512f, 0.03174541f, -0.03677487f,
\r
1441 -0.02963996f, -0.06610169f, -0.13292049f, -0.07059067f, -0.08444111f,
\r
1442 -0.02640536f, -0.07136250f, 0.04559967f, 0.01459980f, 0.17989251f,
\r
1443 0.04435328f, -0.12464730f, -0.02871115f, -0.10752209f, -0.03393742f,
\r
1444 -0.03791408f, 0.02548251f, 0.01956050f, 0.19245651f, 0.13963254f,
\r
1445 -0.05904696f, -0.07424626f, -0.10411884f, 1.54176133e-003f,
\r
1446 0.01797429f, 0.13025844f, 0.04547642f, -0.05710349f, -0.10697161f,
\r
1447 -0.13489437f, -0.06515755f, -0.06406886f, -4.08572936e-003f,
\r
1448 -0.01336483f, 0.04368737f, -0.11259720f, -0.05701635f, -0.06469971f,
\r
1449 -0.08346602f, -0.04166770f, -0.05795543f, -0.08247511f, -0.05742628f,
\r
1450 0.08452254f, -0.03350224f, 0.13980860f, 0.13252275f, 0.07589617f,
\r
1451 0.07539988f, 0.12155797f, 0.19087289f, 0.15050751f, 0.21250245f,
\r
1452 0.14206800f, 0.01298489f, 0.07450245f, 0.06559097f, 0.01700557f,
\r
1453 0.04512971f, 0.16950700f, 0.10261577f, 0.16389982f, 0.05505059f,
\r
1454 -0.03453077f, 0.08622462f, 0.07935954f, 0.03976260f, 0.02036091f,
\r
1455 3.95744899e-003f, 0.03267065f, 0.15235919f, 0.01297494f, -0.08109194f,
\r
1456 0.01407558f, 4.40693414e-003f, -0.15157418f, -0.11390478f,
\r
1457 -0.07487597f, -7.81322457e-003f, -0.02749545f, -0.10181408f,
\r
1458 0.13755716f, 0.14007211f, 0.13482562f, 0.27517235f, 0.34251109f,
\r
1459 0.07639657f, 0.07268607f, 0.19823882f, 0.16135791f, -0.04186463f,
\r
1460 -0.12784107f, -0.09846287f, 0.03169041f, 0.10974082f, -0.15051922f,
\r
1461 -0.08916726f, -0.07138767f, -0.04153349f, 6.25418453e-003f,
\r
1462 0.01266654f, 0.10533249f, 0.12749144f, 0.15148053f, 0.01498513f,
\r
1463 0.06305949f, -0.01247123f, -0.08778401f, -0.08551880f, -0.11955146f,
\r
1464 -0.08493572f, -0.02901620f, -0.02394859f, -0.13427313f, -0.11053200f,
\r
1465 -0.14413260f, -0.15203285f, 0.03972760f, -3.72127310e-004f,
\r
1466 -0.04200919f, 0.06105104f, 0.01904975f, -0.01106191f,
\r
1467 -7.27445772e-003f, -0.01520341f, 1.10228511e-003f, -0.04949187f,
\r
1468 -0.08013099f, 5.72071038e-003f, 0.08415454f, -0.06523152f, 0.03664081f,
\r
1469 -0.02673042f, -0.12066154f, -0.03702074f, 0.06006580f, 0.01628682f,
\r
1470 -6.17772620e-003f, 0.08192339f, -3.41629819e-003f, 0.02870512f,
\r
1471 0.05807141f, 0.04959986f, 0.04618251f, -0.04901629f, -0.10579574f,
\r
1472 0.02274442f, 0.12070961f, 2.23597488e-003f, 0.09831765f, -0.03019848f,
\r
1473 -0.11181970f, -0.04961075f, 0.02498928f, -0.03714991f, -0.01619653f,
\r
1474 0.02643486f, -7.62964319e-003f, -0.02882290f, -0.06242594f,
\r
1475 -0.08439861f, 0.07220893f, 0.07263952f, 0.01561574f, 0.03091968f,
\r
1476 0.01708712f, -0.03797151f, -3.18561122e-003f, 0.01624021f,
\r
1477 -0.02828573f, 0.11284444f, -1.32280716e-003f, -0.07784860f,
\r
1478 -0.07209100f, 0.03372242f, 0.12154529f, 0.02278104f, -0.05275500f,
\r
1479 -0.01918484f, 0.12989293f, 0.05424401f, 0.02333086f, 0.04029022f,
\r
1480 0.12392918f, 0.09495489f, 0.09190340f, 0.07935889f, 8.76816828e-003f,
\r
1481 0.17148446f, -8.51302687e-003f, -0.08011249f, -0.06796283f,
\r
1482 0.04884845f, 0.01112272f, -0.07835306f, -1.14811445e-003f,
\r
1483 -0.03440760f, 0.02845243f, 0.07695542f, -0.07069533f, -0.01151784f,
\r
1484 -8.53884313e-003f, -0.01662786f, -0.04163864f, 0.05400505f,
\r
1485 0.02859163f, 0.02921852f, 0.05003135f, -6.85718050e-003f, -0.01632611f,
\r
1486 0.07780217f, 0.04042810f, -0.01216440f, 3.60914599e-003f, -0.06322435f,
\r
1487 0.09516726f, 0.12877031f, -9.69162490e-003f, 0.01031179f, 0.05180895f,
\r
1488 -9.34659224e-003f, -0.01644533f, -0.04849347f, -0.04343236f,
\r
1489 0.10514783f, 0.08046635f, -0.04615205f, -0.03975486f, -0.01485525f,
\r
1490 0.13096830f, -0.01517950f, -0.06571898f, -0.04016372f, 0.01849786f,
\r
1491 0.02439670f, 0.08067258f, 1.74824719e-003f, 0.07053747f, 0.08819518f,
\r
1492 -5.08352555e-003f, -0.06550863f, -0.08266170f, -0.07780605f,
\r
1493 0.01453450f, -0.08756890f, 0.01096501f, -8.71319138e-003f, 0.10110464f,
\r
1494 0.02420769f, -0.06708383f, 0.02007811f, 5.93133038e-003f, 0.05398923f,
\r
1495 0.07538138f, 0.02049227f, 0.02242589f, 0.04011070f, -1.44875818e-003f,
\r
1496 -4.19115182e-003f, 0.06367654f, 0.02506934f, 0.02434536f, 0.05879405f,
\r
1497 -8.22952855e-003f, -0.01242441f, 0.04224926f, -0.01754923f,
\r
1498 0.05958161f, 0.03818886f, -0.01830363f, -0.04308917f, -0.04422197f,
\r
1499 -0.02432721f, 0.02264866f, 2.03751423e-003f, 0.01197031f, 0.04439203f,
\r
1500 0.12169247f, 0.03602713f, -0.02599251f, -1.98226492e-003f, 0.02046336f,
\r
1501 -0.02639058f, -1.91242550e-003f, -0.09334669f, -0.03595153f,
\r
1502 -9.88179818e-003f, -0.06848445f, -0.04666303f, -0.09955736f,
\r
1503 -0.04206430f, 0.02609075f, 9.09005292e-003f, -0.07138551f,
\r
1504 -4.22313227e-004f, 0.01766645f, 0.02756404f, 0.01308276f, 0.04052891f,
\r
1505 0.02387515f, 0.05337298f, 0.02500631f, -0.04970853f, -0.12467445f,
\r
1506 0.17604403f, 0.12256411f, -0.07512254f, 8.70451052e-003f, -0.05697548f,
\r
1507 -0.03626474f, -8.76623299e-003f, -0.01210897f, -0.09451522f,
\r
1508 0.07490732f, -0.02008001f, -0.02681278f, -0.06463405f, -0.01517507f,
\r
1509 7.33757764e-003f, 6.07147906e-003f, -0.09316964f, -0.04575328f,
\r
1510 0.13261597f, 0.15424870f, -0.01655918f, -0.02772390f, -0.05243644f,
\r
1511 -0.02356456f, -0.02351753f, -0.10211615f, -0.12873036f, 0.14549787f,
\r
1512 0.12519856f, 4.38762689e-003f, 0.02795992f, 0.05170322f, 0.09223596f,
\r
1513 0.05890015f, 0.02376701f, -0.02777346f, 0.09506908f, 0.02328936f,
\r
1514 -0.02319928f, -0.03218696f, -0.01527841f, -0.01016694f, -0.02674719f,
\r
1515 0.05137179f, 0.01980666f, 0.06544447f, -0.01746171f, 0.01026380f,
\r
1516 0.01561806f, 7.97004555e-004f, 0.07601810f, 0.01907250f, -0.03083035f,
\r
1517 -0.05987392f, 0.09242783f, 0.14555025f, 0.01035827f, 0.03092401f,
\r
1518 -0.09562709f, -0.03802354f, 0.02531144f, 0.03079449f, -0.07100715f,
\r
1519 0.03330721f, -2.69116857e-003f, 0.03167490f, 0.05744999f, 0.03259895f,
\r
1520 1.91266940e-003f, 0.03194578f, 0.07389776f, 0.02198060f, 0.07633314f,
\r
1521 0.03293105f, -0.09103648f, 0.04718142f, 0.06102672f, -0.01003063f,
\r
1522 5.85481385e-003f, -0.01522574f, 0.02323526f, 0.10584345f,
\r
1523 4.35879454e-003f, 0.06107873f, 0.05868603f, -0.03115531f, 0.01214679f,
\r
1524 0.08567052f, 3.93926632e-003f, -0.02521488f, -1.88425183e-003f,
\r
1525 0.02038053f, -6.26854831e-004f, 0.04897438f, -0.04280585f,
\r
1526 -0.04819689f, -0.04812867f, -0.01451186f, 0.05101469f,
\r
1527 -9.01125465e-003f, -0.03333859f, 0.03917955f, 0.04196448f, 0.04292135f,
\r
1528 0.02809529f, 0.02999715f, 0.04081348f, 9.10039060e-003f, 0.09703232f,
\r
1529 0.10379741f, 0.02348725f, -4.72756615e-003f, 0.01027325f, 0.10402658f,
\r
1530 0.12071823f, 0.09817299f, -0.02612033f, 0.03638414f, 0.05896405f,
\r
1531 0.04865025f, 0.04793910f, -0.03882321f, -0.02962117f, -0.01222268f,
\r
1532 0.04071597f, 0.01922777f, -0.02287866f, 0.03328381f, 0.01859092f,
\r
1533 0.09024994f, 0.03804455f, -0.01424510f, 0.01953739f, 0.02509617f,
\r
1534 -0.03390914f, -0.05663941f, -0.01641979f, 0.05848591f, 0.04639670f,
\r
1535 0.02092116f, 0.12911791f, 0.19918139f, 0.07739855f, -7.25806039e-003f,
\r
1536 0.04074838f, 0.03183993f, 1.39251316e-003f, -0.01428625f, 0.01865480f,
\r
1537 0.08529541f, 0.13547510f, 0.11189661f, 0.03998901f, 0.09575938f,
\r
1538 -0.02631102f, -0.03458253f, -0.04749985f, -0.06070716f,
\r
1539 4.71884012e-003f, 0.06445789f, -0.02450038f, -0.05483776f,
\r
1540 -0.04657237f, -0.02030717f, -0.03480766f, -0.09397731f, -0.06399718f,
\r
1541 -0.01804585f, 5.62348310e-003f, -6.64811488e-003f, -0.06517869f,
\r
1542 6.96210237e-003f, -0.01860148f, -0.04245830f, -0.05850367f,
\r
1543 -3.24417115e-003f, 0.07700698f, 0.11290991f, 0.09923030f, -0.02970599f,
\r
1544 0.05592411f, 0.04813979f, -0.09811195f, -0.09357996f, -0.03276114f,
\r
1545 0.05218338f, 0.04141375f, 3.92977800e-003f, -0.05047480f, 0.15960084f,
\r
1546 0.04612800f, -0.03114098f, -0.04650044f, -0.03249795f, -0.02425641f,
\r
1547 -0.04311355f, 0.04307659f, -0.09401883f, -0.04742785f, -0.01254499f,
\r
1548 -0.06598741f, 3.41369561e-003f, -0.05620445f, -7.28127593e-003f,
\r
1549 -0.05998361f, -0.03274450f, -0.07376868f, 3.19015374e-003f,
\r
1550 -0.07733069f, 0.05815864f, -0.02471071f, 0.03850617f, 0.13838784f,
\r
1551 0.15399861f, 0.01731321f, -0.01477586f, 0.10393341f, 0.05159833f,
\r
1552 -0.01945555f, -0.03427503f, -0.04867341f, 0.09237480f, 0.10732719f,
\r
1553 0.06071450f, -0.01355071f, 0.01844356f, -0.03480803f, -0.03796671f,
\r
1554 2.15628621e-004f, -0.05440186f, 0.01889855f, -0.01443413f,
\r
1555 -0.02607902f, -0.02938001f, 0.02720689f, -0.06228397f, -0.02970936f,
\r
1556 -0.03426210f, -0.10280876f, -0.06739304f, -0.05227850f, 0.03360292f,
\r
1557 -0.11278441f, -0.06966180f, -0.13937433f, 9.10932291e-003f,
\r
1558 2.52020749e-004f, -4.07359656e-003f, 0.12310639f, 0.09343060f,
\r
1559 0.07302511f, 0.03222093f, 0.07532879f, 0.03792387f, -0.04985180f,
\r
1560 0.01804602f, 0.02694195f, 0.13481498f, 0.04601225f, 0.04106982f,
\r
1561 0.08511057f, 0.12314661f, 0.01320830f, 0.05044121f, -5.52943908e-003f,
\r
1562 -0.08992624f, -0.02249301f, -0.08181777f, 0.06165213f, -0.03256603f,
\r
1563 -0.01068920f, -0.01323473f, -0.11970232f, -0.04616347f, -0.12088681f,
\r
1564 -0.06762606f, -0.08676834f, -0.06434575f, 0.01772529f, 0.03469615f,
\r
1565 -0.10926618f, 0.03013873f, 0.14030397f, 0.16130108f, 0.17985588f,
\r
1566 0.11281928f, 0.10530639f, 0.08905948f, 0.07733764f, 0.06695238f,
\r
1567 0.02142088f, 0.06438877f, 0.09794453f, 0.05745072f, 0.02788557f,
\r
1568 0.02632830f, 0.07985807f, 4.24902979e-003f, 8.47890321e-003f,
\r
1569 -0.02679466f, -5.28812688e-003f, -0.02162580f, -0.07490715f,
\r
1570 -0.08251337f, -0.02056576f, -0.01026194f, -1.15492963e-003f,
\r
1571 -5.75720915e-004f, -0.07210591f, -0.07320981f, -0.04883312f,
\r
1572 -0.10897151f, -0.07477258f, -0.08867134f, -0.09222437f, -0.10924666f,
\r
1573 -0.10430276f, 0.07953499f, 0.02767959f, 0.11393359f, 0.18779543f,
\r
1574 0.03313421f, 0.02143700f, 0.05852016f, -2.12067598e-003f,
\r
1575 -3.76984011e-003f, 0.02774167f, -0.03124610f, 0.01465141f, 0.01616004f,
\r
1576 -0.01391913f, -0.04404102f, -0.05444227f, -0.14684731f, -0.15016587f,
\r
1577 0.04509468f, 1.29563001e-003f, 0.01398350f, 0.05610404f, -0.04868806f,
\r
1578 -0.04776716f, -8.16873740e-003f, -2.30126386e-003f, -0.02286313f,
\r
1579 0.11983398f, -0.04703261f, -0.08814441f, -0.07585249f, -0.10799607f,
\r
1580 -0.03232087f, 0.01509786f, -0.04843464f, -0.03967846f, 0.09589416f,
\r
1581 0.01352560f, -0.01458119f, 0.01050829f, -0.03038946f, 0.01608388f,
\r
1582 1.11975556e-003f, -0.01250656f, 2.86211423e-003f, 0.04333691f,
\r
1583 -0.14603497f, -0.01946543f, -0.02327525f, -0.01973944f, 0.07944400f,
\r
1584 -0.02224544f, -0.06701808f, 0.03476532f, 0.11505594f, -0.02712801f,
\r
1585 -0.01665113f, 0.06315716f, -0.08205860f, 0.07431999f, 0.04915778f,
\r
1586 -0.04468752f, -0.01490402f, 0.07400476f, -0.11650901f, 0.05102430f,
\r
1587 0.04559118f, -0.05916039f, 0.08840760f, -0.01587902f, -0.14890194f,
\r
1588 0.07857784f, 0.04710254f, -0.05381983f, -0.07331945f, -0.03604643f,
\r
1589 0.15611970f, 0.07649943f, -0.05959348f, -0.02776607f, 0.11098688f,
\r
1590 0.03758875f, -0.04446875f, 0.04933187f, 0.01345535f, 0.06921103f,
\r
1591 0.07364785f, 0.05518956f, 0.02899585f, 0.09375840f, 0.10518434f,
\r
1592 -0.04420241f, 0.01915282f, -3.56386811e-003f, 0.14586878f, 0.10286101f,
\r
1593 -0.04360626f, -0.12723237f, 0.09076386f, 0.11119842f, -0.06035013f,
\r
1594 0.09674817f, 0.08938243f, 0.07065924f, 0.02603180f, 5.84815582e-003f,
\r
1595 -0.05922065f, 0.12360309f, 3.59695964e-003f, 2.99844006e-003f,
\r
1596 0.03697936f, 0.02043072f, 0.04168725f, 0.01025975f, -0.01359980f,
\r
1597 -0.01600920f, 0.02581056f, 0.02329250f, 2.98100687e-003f, 0.01629762f,
\r
1598 0.06652115f, 0.05855627f, 0.01237463f, -0.01297135f, 0.01761587f,
\r
1599 0.05090865f, 0.06549342f, -0.04425945f, 2.43203156e-003f,
\r
1600 3.07327788e-003f, 0.06678630f, -0.04303836f, 0.01082393f, -0.06476044f,
\r
1601 0.04077786f, 0.12441979f, 0.08237778f, 0.07424165f, 0.04065890f,
\r
1602 0.06905543f, 0.09556347f, 0.12724875f, -0.02132082f, 0.08514154f,
\r
1603 -0.04175328f, -0.02666954f, 0.01897836f, 0.03317382f, 9.45465732e-003f,
\r
1604 -0.01238974f, -0.04242500f, -0.01419479f, -0.03545213f, -0.02440874f,
\r
1605 0.08684119f, 0.04212951f, 0.02462858f, -0.01104825f, -5.01706870e-003f,
\r
1606 0.02968982f, 0.02597476f, -0.01568939f, 0.04514892f, 0.06974549f,
\r
1607 0.08670278f, 0.06828108f, 0.10238872f, 0.05405957f, 0.06548470f,
\r
1608 -0.03763957f, 0.01366090f, 0.07069602f, 0.05363748f, 0.04798120f,
\r
1609 0.11706422f, 0.05466456f, -0.01869259f, 0.06344382f, 0.03106543f,
\r
1610 0.08432506f, -0.02061096f, 0.03821088f, -6.92190882e-003f,
\r
1611 6.40467042e-003f, -0.01271779f, 6.89014705e-005f, 0.04541415f,
\r
1612 -0.01899539f, -0.05020239f, 0.03000903f, 0.01090422f, 4.52452758e-003f,
\r
1613 0.02573632f, -0.02388454f, -0.04200457f, 1.72783900e-003f,
\r
1614 -0.05978370f, -0.02720562f, 0.06573715f, 0.01154317f, 0.01265615f,
\r
1615 0.07375994f, -9.19828378e-003f, -0.04914120f, 0.02124831f, 0.06455322f,
\r
1616 0.04372910f, -0.03310043f, 0.03605788f, -6.78055827e-003f,
\r
1617 9.36202332e-003f, 0.01747596f, -0.06406314f, -0.06812935f, 0.08080816f,
\r
1618 -0.02778088f, 0.02735260f, 0.06393493f, 0.06652229f, 0.05676993f,
\r
1619 0.08640018f, -7.59188086e-003f, -0.02012847f, -0.04741159f,
\r
1620 -0.01657069f, -0.01624399f, 0.05547778f, -2.33309763e-003f,
\r
1621 0.01120033f, 0.06141156f, -0.06285004f, -0.08732341f, -0.09313398f,
\r
1622 -0.04267832f, 5.57443965e-003f, 0.04809862f, 0.01773641f,
\r
1623 5.37361018e-003f, 0.14842421f, -0.06298012f, -0.02935147f, 0.11443478f,
\r
1624 -0.05034208f, 5.65494271e-003f, 0.02076526f, -0.04577984f,
\r
1625 -0.04735741f, 0.02961071f, -0.09307127f, -0.04417921f, -0.04990027f,
\r
1626 -0.03940028f, 0.01306016f, 0.06267900f, 0.03758737f, 0.08460117f,
\r
1627 0.13858789f, 0.04862388f, -0.06319809f, -0.05655516f, 0.01885816f,
\r
1628 -0.03285607f, 0.03371567f, -0.07040928f, -0.04514049f, 0.01392166f,
\r
1629 0.08184422f, -0.07230316f, 0.02386871f, 0.02184591f, 0.02605764f,
\r
1630 -0.01033954f, 9.29878280e-003f, 7.67351175e-003f, 0.15189242f,
\r
1631 0.02069071f, -0.09738296f, -0.08894105f, -0.07768748f, 0.02332268f,
\r
1632 -0.01778995f, -0.03258888f, -0.08180822f, -0.08492987f, 0.02290156f,
\r
1633 -0.11368170f, -0.03554465f, -0.04533844f, -0.02861580f, 0.06782424f,
\r
1634 0.01113123f, 0.02453644f, 0.12721945f, 0.08084814f, -0.03607795f,
\r
1635 0.01109122f, 0.04803548f, -0.03489929f, 0.03399536f, -0.05682014f,
\r
1636 8.59533902e-003f, -4.27904585e-003f, 0.03230887f, -0.01300198f,
\r
1637 -0.01038137f, -0.07930113f, 8.33097473e-003f, 0.02296994f,
\r
1638 -0.01306500f, -0.01881626f, 0.04413369f, 0.05729880f, -0.03761553f,
\r
1639 0.01942326f, 1.64540811e-003f, -0.03811319f, 0.04190650f, -0.14978096f,
\r
1640 -0.04514487f, 0.01209545f, -5.46460645e-003f, -0.01647195f,
\r
1641 7.63064111e-003f, -0.07494587f, 0.08415288f, 0.10020141f, -0.01228561f,
\r
1642 0.06553826f, 0.04554005f, 0.07890417f, 0.03041138f, 0.01752007f,
\r
1643 0.09208256f, -3.74419295e-004f, 0.10549527f, 0.04686913f, 0.01894833f,
\r
1644 -0.02651412f, -4.34682379e-003f, 5.44942822e-003f, 0.01444484f,
\r
1645 0.05882156f, -0.03336544f, 0.04603891f, -0.10432546f, 0.01923928f,
\r
1646 0.01842845f, -0.01712168f, -0.02222766f, 0.04693324f, -0.06202956f,
\r
1647 -0.01422159f, 0.08732220f, -0.07706107f, 0.02661049f, -0.04300238f,
\r
1648 -0.03092422f, -0.03552184f, -0.01886088f, -0.04979934f, 0.03906401f,
\r
1649 0.04608644f, 0.04966111f, 0.04275464f, -0.04621769f, -0.02653212f,
\r
1650 8.57011229e-003f, 0.03839684f, 0.05818764f, 0.03880796f,
\r
1651 -2.76100676e-004f, 0.03076511f, -0.03266929f, -0.05374557f,
\r
1652 0.04986527f, -9.45429131e-003f, 0.03582499f, -2.64564669e-003f,
\r
1653 -1.07461517e-003f, 0.02962313f, -0.01483363f, 0.03060869f, 0.02448327f,
\r
1654 0.01845641f, 0.03282966f, -0.03534438f, -0.01084059f, -0.01119136f,
\r
1655 -1.85360224e-003f, -5.94652840e-004f, -0.04451817f, 2.98327743e-003f,
\r
1656 0.06272484f, -0.02152076f, -3.05971340e-003f, -0.05070828f,
\r
1657 0.01531762f, 0.01282815f, 0.05167150f, 9.46266949e-003f,
\r
1658 -3.34558333e-003f, 0.11442288f, -0.03906701f, -2.67325155e-003f,
\r
1659 0.03069184f, -0.01134165f, 0.02949462f, 0.02879886f, 0.03855566f,
\r
1660 -0.03450781f, 0.09142872f, -0.02156654f, 0.06075062f, -0.06220816f,
\r
1661 0.01944680f, 6.68372354e-003f, -0.06656796f, 8.70784000e-003f,
\r
1662 0.03456013f, 0.02434320f, -0.13236357f, -0.04177035f, -0.02069627f,
\r
1663 0.01068112f, 0.01505432f, -0.07517391f, -3.83571628e-003f,
\r
1664 -0.06298508f, -0.02881260f, -0.13101046f, -0.07221562f,
\r
1665 -5.79945277e-003f, -8.57300125e-003f, 0.03782469f, 0.02762164f,
\r
1666 0.04942456f, -0.02936396f, 0.09597211f, 0.01921411f, 0.06101191f,
\r
1667 -0.04787507f, -0.01379578f, -7.40224449e-003f, -0.02220136f,
\r
1668 -0.01313756f, 7.77558051e-003f, 0.12296968f, 0.02939998f, 0.03594062f,
\r
1669 -0.07788624f, -0.01133144f, 3.99316690e-004f, -0.06090347f,
\r
1670 -0.01122066f, -4.68682544e-003f, 0.07633100f, -0.06748922f,
\r
1671 -0.05640298f, -0.05265681f, -0.01139122f, -0.01624347f, -0.04715714f,
\r
1672 -0.01099092f, 0.01048561f, 3.28499987e-003f, -0.05810167f,
\r
1673 -0.07699911f, -0.03330683f, 0.04185145f, 0.03478536f, 0.02275165f,
\r
1674 0.02304766f, 6.66040834e-003f, 0.10968148f, -5.93013782e-003f,
\r
1675 -0.04858336f, -0.04203213f, -0.09316786f, -6.13074889e-003f,
\r
1676 -0.02544625f, 0.01366201f, 9.18555818e-003f, -0.01846578f,
\r
1677 -0.05622401f, -0.03989377f, -0.07810296f, 6.91275718e-003f,
\r
1678 0.05957597f, -0.03901334f, 0.01572002f, -0.01193903f,
\r
1679 -6.89400872e-003f, -0.03093356f, -0.04136098f, -0.01562869f,
\r
1680 -0.04604580f, 0.02865234f, -0.08678447f, -0.03232484f, -0.05364593f,
\r
1681 -0.01445016f, -0.07003860f, -0.08669746f, -0.04520775f, 0.04274122f,
\r
1682 0.03117515f, 0.08175703f, 0.01081109f, 0.06379741f, 0.06199206f,
\r
1683 0.02865988f, 0.02360346f, 0.06725410f, -0.03248780f, -9.37702879e-003f,
\r
1684 0.08265898f, -0.02245839f, 0.05125763f, -0.01862395f, 0.01973453f,
\r
1685 -0.01994494f, -0.10770868f, 0.03180375f, 3.23935156e-003f,
\r
1686 -0.02142080f, -0.04256190f, 0.04760900f, 0.04282863f, 0.05635953f,
\r
1687 -0.01870849f, 0.05540622f, -0.03042666f, 0.01455277f, -0.06630179f,
\r
1688 -0.05843807f, -0.03739681f, -0.09739155f, -0.03220233f, -0.05620182f,
\r
1689 -0.10381401f, 0.07400211f, 4.20676917e-003f, 0.03258535f,
\r
1690 2.14308966e-003f, 0.05121966f, -0.01274337f, 0.02384761f, 0.06335578f,
\r
1691 -0.07905591f, 0.08375625f, -0.07898903f, -0.06508528f, -0.02498444f,
\r
1692 0.06535810f, 0.03970535f, 0.04895468f, -0.01169566f, -0.03980601f,
\r
1693 0.05682293f, 0.05925463f, -0.01165808f, -0.07936699f, -0.04208954f,
\r
1694 0.01333987f, 0.09051196f, 0.10098671f, -0.03974256f, 0.01238771f,
\r
1695 -0.07501741f, -0.03655440f, -0.04301528f, 0.09216860f,
\r
1696 4.63579083e-004f, 0.02851115f, 0.02142735f, 1.28244064e-004f,
\r
1697 0.02879687f, -0.08554889f, -0.04838862f, 0.08135369f, -0.05756533f,
\r
1698 0.01413900f, 0.03451880f, -0.06619488f, -0.03053130f, 0.02961676f,
\r
1699 -0.07384635f, 0.01135692f, 0.05283910f, -0.07778034f, -0.02107482f,
\r
1700 -0.05511716f, -0.13473752f, 0.03030157f, 0.06722020f, -0.06218817f,
\r
1701 -0.05826827f, 0.06254654f, 0.02895772f, -0.01664000f, -0.03620280f,
\r
1702 -0.01612278f, -1.46097376e-003f, 0.14013411f, -8.96181818e-003f,
\r
1703 -0.03250246f, 3.38630192e-003f, 2.64779478e-003f, 0.03359732f,
\r
1704 -0.02411991f, -0.04229729f, 0.10666174f, -6.66579151f };
\r
1705 return Vector<float>((float*)detector, sizeof(detector)/sizeof(detector[0]), true);
\r