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