diff --git a/README.md b/README.md index c7cb0ff..69c75c5 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,5 @@ old-perf-ocl ============ Legacy performance tests for 'ocl' module of OpenCV-2.4.x +Use prebuilt OpenCV 2.4.x packages from [SourceForge](http://sourceforge.net/projects/opencvlibrary/files/opencv-win/) to build the test executable. +Look into the provided `build.cmd` sample for hints on build. diff --git a/build.cmd b/build.cmd new file mode 100644 index 0000000..a0dfd26 --- /dev/null +++ b/build.cmd @@ -0,0 +1,17 @@ +set CMAKE_EXE=W:\Apps\cmake-2.8.12.1-win32-x86\bin\cmake.exe + +set OpenCV_VER=2.4.8 +set OpenCV_DIR=W:\opencv-%OpenCV_VER%\build +set BUILD_DIR=bin-%OpenCV_VER% + +pushd %~dp0 + +rd /s /q %BUILD_DIR% +mkdir %BUILD_DIR% +cd %BUILD_DIR% + +%CMAKE_EXE% -G "Visual Studio 11 Win64" -DBUILD_SHARED_LIBS=OFF -DOpenCV_DIR=%OpenCV_DIR% ../src +pause +%CMAKE_EXE% --build . --config Release + +popd diff --git a/data/aloe-L.png b/data/aloe-L.png new file mode 100644 index 0000000..4758766 Binary files /dev/null and b/data/aloe-L.png differ diff --git a/data/aloe-R.png b/data/aloe-R.png new file mode 100644 index 0000000..5d11c57 Binary files /dev/null and b/data/aloe-R.png differ diff --git a/data/basketball1.png b/data/basketball1.png new file mode 100644 index 0000000..53b2dba Binary files /dev/null and b/data/basketball1.png differ diff --git a/data/basketball2.png b/data/basketball2.png new file mode 100644 index 0000000..1d069b9 Binary files /dev/null and b/data/basketball2.png differ diff --git a/data/haarcascade_frontalface_alt.xml b/data/haarcascade_frontalface_alt.xml new file mode 100644 index 0000000..5a6f275 --- /dev/null +++ b/data/haarcascade_frontalface_alt.xml @@ -0,0 +1,26161 @@ + + + + + 20 20 + + <_> + + + <_> + + <_> + + + + <_>3 7 14 4 -1. + <_>3 9 14 2 2. + 0 + 4.0141958743333817e-003 + 0.0337941907346249 + 0.8378106951713562 + <_> + + <_> + + + + <_>1 2 18 4 -1. + <_>7 2 6 4 3. + 0 + 0.0151513395830989 + 0.1514132022857666 + 0.7488812208175659 + <_> + + <_> + + + + <_>1 7 15 9 -1. + <_>1 10 15 3 3. + 0 + 4.2109931819140911e-003 + 0.0900492817163467 + 0.6374819874763489 + 0.8226894140243530 + -1 + -1 + <_> + + + <_> + + <_> + + + + <_>5 6 2 6 -1. + <_>5 9 2 3 2. + 0 + 1.6227109590545297e-003 + 0.0693085864186287 + 0.7110946178436279 + <_> + + <_> + + + + <_>7 5 6 3 -1. + <_>9 5 2 3 3. + 0 + 2.2906649392098188e-003 + 0.1795803010463715 + 0.6668692231178284 + <_> + + <_> + + + + <_>4 0 12 9 -1. + <_>4 3 12 3 3. + 0 + 5.0025708042085171e-003 + 0.1693672984838486 + 0.6554006934165955 + <_> + + <_> + + + + <_>6 9 10 8 -1. + <_>6 13 10 4 2. + 0 + 7.9659894108772278e-003 + 0.5866332054138184 + 0.0914145186543465 + <_> + + <_> + + + + <_>3 6 14 8 -1. + <_>3 10 14 4 2. + 0 + -3.5227010957896709e-003 + 0.1413166970014572 + 0.6031895875930786 + <_> + + <_> + + + + <_>14 1 6 10 -1. + <_>14 1 3 10 2. + 0 + 0.0366676896810532 + 0.3675672113895416 + 0.7920318245887756 + <_> + + <_> + + + + <_>7 8 5 12 -1. + <_>7 12 5 4 3. + 0 + 9.3361474573612213e-003 + 0.6161385774612427 + 0.2088509947061539 + <_> + + <_> + + + + <_>1 1 18 3 -1. + <_>7 1 6 3 3. + 0 + 8.6961314082145691e-003 + 0.2836230993270874 + 0.6360273957252502 + <_> + + <_> + + + + <_>1 8 17 2 -1. + <_>1 9 17 1 2. + 0 + 1.1488880263641477e-003 + 0.2223580926656723 + 0.5800700783729553 + <_> + + <_> + + + + <_>16 6 4 2 -1. + <_>16 7 4 1 2. + 0 + -2.1484689787030220e-003 + 0.2406464070081711 + 0.5787054896354675 + <_> + + <_> + + + + <_>5 17 2 2 -1. + <_>5 18 2 1 2. + 0 + 2.1219060290604830e-003 + 0.5559654831886292 + 0.1362237036228180 + <_> + + <_> + + + + <_>14 2 6 12 -1. + <_>14 2 3 12 2. + 0 + -0.0939491465687752 + 0.8502737283706665 + 0.4717740118503571 + <_> + + <_> + + + + <_>4 0 4 12 -1. + <_>4 0 2 6 2. + <_>6 6 2 6 2. + 0 + 1.3777789426967502e-003 + 0.5993673801422119 + 0.2834529876708984 + <_> + + <_> + + + + <_>2 11 18 8 -1. + <_>8 11 6 8 3. + 0 + 0.0730631574988365 + 0.4341886043548584 + 0.7060034275054932 + <_> + + <_> + + + + <_>5 7 10 2 -1. + <_>5 8 10 1 2. + 0 + 3.6767389974556863e-004 + 0.3027887940406799 + 0.6051574945449829 + <_> + + <_> + + + + <_>15 11 5 3 -1. + <_>15 12 5 1 3. + 0 + -6.0479710809886456e-003 + 0.1798433959484100 + 0.5675256848335266 + 6.9566087722778320 + 0 + -1 + <_> + + + <_> + + <_> + + + + <_>5 3 10 9 -1. + <_>5 6 10 3 3. + 0 + -0.0165106896311045 + 0.6644225120544434 + 0.1424857974052429 + <_> + + <_> + + + + <_>9 4 2 14 -1. + <_>9 11 2 7 2. + 0 + 2.7052499353885651e-003 + 0.6325352191925049 + 0.1288477033376694 + <_> + + <_> + + + + <_>3 5 4 12 -1. + <_>3 9 4 4 3. + 0 + 2.8069869149476290e-003 + 0.1240288019180298 + 0.6193193197250366 + <_> + + <_> + + + + <_>4 5 12 5 -1. + <_>8 5 4 5 3. + 0 + -1.5402400167658925e-003 + 0.1432143002748489 + 0.5670015811920166 + <_> + + <_> + + + + <_>5 6 10 8 -1. + <_>5 10 10 4 2. + 0 + -5.6386279175058007e-004 + 0.1657433062791824 + 0.5905207991600037 + <_> + + <_> + + + + <_>8 0 6 9 -1. + <_>8 3 6 3 3. + 0 + 1.9253729842603207e-003 + 0.2695507109165192 + 0.5738824009895325 + <_> + + <_> + + + + <_>9 12 1 8 -1. + <_>9 16 1 4 2. + 0 + -5.0214841030538082e-003 + 0.1893538981676102 + 0.5782774090766907 + <_> + + <_> + + + + <_>0 7 20 6 -1. + <_>0 9 20 2 3. + 0 + 2.6365420781075954e-003 + 0.2309329062700272 + 0.5695425868034363 + <_> + + <_> + + + + <_>7 0 6 17 -1. + <_>9 0 2 17 3. + 0 + -1.5127769438549876e-003 + 0.2759602069854736 + 0.5956642031669617 + <_> + + <_> + + + + <_>9 0 6 4 -1. + <_>11 0 2 4 3. + 0 + -0.0101574398577213 + 0.1732538044452667 + 0.5522047281265259 + <_> + + <_> + + + + <_>5 1 6 4 -1. + <_>7 1 2 4 3. + 0 + -0.0119536602869630 + 0.1339409947395325 + 0.5559014081954956 + <_> + + <_> + + + + <_>12 1 6 16 -1. + <_>14 1 2 16 3. + 0 + 4.8859491944313049e-003 + 0.3628703951835632 + 0.6188849210739136 + <_> + + <_> + + + + <_>0 5 18 8 -1. + <_>0 5 9 4 2. + <_>9 9 9 4 2. + 0 + -0.0801329165697098 + 0.0912110507488251 + 0.5475944876670837 + <_> + + <_> + + + + <_>8 15 10 4 -1. + <_>13 15 5 2 2. + <_>8 17 5 2 2. + 0 + 1.0643280111253262e-003 + 0.3715142905712128 + 0.5711399912834168 + <_> + + <_> + + + + <_>3 1 4 8 -1. + <_>3 1 2 4 2. + <_>5 5 2 4 2. + 0 + -1.3419450260698795e-003 + 0.5953313708305359 + 0.3318097889423370 + <_> + + <_> + + + + <_>3 6 14 10 -1. + <_>10 6 7 5 2. + <_>3 11 7 5 2. + 0 + -0.0546011403203011 + 0.1844065934419632 + 0.5602846145629883 + <_> + + <_> + + + + <_>2 1 6 16 -1. + <_>4 1 2 16 3. + 0 + 2.9071690514683723e-003 + 0.3594244122505188 + 0.6131715178489685 + <_> + + <_> + + + + <_>0 18 20 2 -1. + <_>0 19 20 1 2. + 0 + 7.4718717951327562e-004 + 0.5994353294372559 + 0.3459562957286835 + <_> + + <_> + + + + <_>8 13 4 3 -1. + <_>8 14 4 1 3. + 0 + 4.3013808317482471e-003 + 0.4172652065753937 + 0.6990845203399658 + <_> + + <_> + + + + <_>9 14 2 3 -1. + <_>9 15 2 1 3. + 0 + 4.5017572119832039e-003 + 0.4509715139865875 + 0.7801457047462463 + <_> + + <_> + + + + <_>0 12 9 6 -1. + <_>0 14 9 2 3. + 0 + 0.0241385009139776 + 0.5438212752342224 + 0.1319826990365982 + 9.4985427856445313 + 1 + -1 + <_> + + + <_> + + <_> + + + + <_>5 7 3 4 -1. + <_>5 9 3 2 2. + 0 + 1.9212230108678341e-003 + 0.1415266990661621 + 0.6199870705604553 + <_> + + <_> + + + + <_>9 3 2 16 -1. + <_>9 11 2 8 2. + 0 + -1.2748669541906565e-004 + 0.6191074252128601 + 0.1884928941726685 + <_> + + <_> + + + + <_>3 6 13 8 -1. + <_>3 10 13 4 2. + 0 + 5.1409931620582938e-004 + 0.1487396955490112 + 0.5857927799224854 + <_> + + <_> + + + + <_>12 3 8 2 -1. + <_>12 3 4 2 2. + 0 + 4.1878609918057919e-003 + 0.2746909856796265 + 0.6359239816665649 + <_> + + <_> + + + + <_>8 8 4 12 -1. + <_>8 12 4 4 3. + 0 + 5.1015717908740044e-003 + 0.5870851278305054 + 0.2175628989934921 + <_> + + <_> + + + + <_>11 3 8 6 -1. + <_>15 3 4 3 2. + <_>11 6 4 3 2. + 0 + -2.1448440384119749e-003 + 0.5880944728851318 + 0.2979590892791748 + <_> + + <_> + + + + <_>7 1 6 19 -1. + <_>9 1 2 19 3. + 0 + -2.8977119363844395e-003 + 0.2373327016830444 + 0.5876647233963013 + <_> + + <_> + + + + <_>9 0 6 4 -1. + <_>11 0 2 4 3. + 0 + -0.0216106791049242 + 0.1220654994249344 + 0.5194202065467835 + <_> + + <_> + + + + <_>3 1 9 3 -1. + <_>6 1 3 3 3. + 0 + -4.6299318782985210e-003 + 0.2631230950355530 + 0.5817409157752991 + <_> + + <_> + + + + <_>8 15 10 4 -1. + <_>13 15 5 2 2. + <_>8 17 5 2 2. + 0 + 5.9393711853772402e-004 + 0.3638620078563690 + 0.5698544979095459 + <_> + + <_> + + + + <_>0 3 6 10 -1. + <_>3 3 3 10 2. + 0 + 0.0538786612451077 + 0.4303531050682068 + 0.7559366226196289 + <_> + + <_> + + + + <_>3 4 15 15 -1. + <_>3 9 15 5 3. + 0 + 1.8887349870055914e-003 + 0.2122603058815002 + 0.5613427162170410 + <_> + + <_> + + + + <_>6 5 8 6 -1. + <_>6 7 8 2 3. + 0 + -2.3635339457541704e-003 + 0.5631849169731140 + 0.2642767131328583 + <_> + + <_> + + + + <_>4 4 12 10 -1. + <_>10 4 6 5 2. + <_>4 9 6 5 2. + 0 + 0.0240177996456623 + 0.5797107815742493 + 0.2751705944538117 + <_> + + <_> + + + + <_>6 4 4 4 -1. + <_>8 4 2 4 2. + 0 + 2.0543030404951423e-004 + 0.2705242037773132 + 0.5752568840980530 + <_> + + <_> + + + + <_>15 11 1 2 -1. + <_>15 12 1 1 2. + 0 + 8.4790197433903813e-004 + 0.5435624718666077 + 0.2334876954555512 + <_> + + <_> + + + + <_>3 11 2 2 -1. + <_>3 12 2 1 2. + 0 + 1.4091329649090767e-003 + 0.5319424867630005 + 0.2063155025243759 + <_> + + <_> + + + + <_>16 11 1 3 -1. + <_>16 12 1 1 3. + 0 + 1.4642629539594054e-003 + 0.5418980717658997 + 0.3068861067295075 + <_> + + <_> + + + + <_>3 15 6 4 -1. + <_>3 15 3 2 2. + <_>6 17 3 2 2. + 0 + 1.6352549428120255e-003 + 0.3695372939109802 + 0.6112868189811707 + <_> + + <_> + + + + <_>6 7 8 2 -1. + <_>6 8 8 1 2. + 0 + 8.3172752056270838e-004 + 0.3565036952495575 + 0.6025236248970032 + <_> + + <_> + + + + <_>3 11 1 3 -1. + <_>3 12 1 1 3. + 0 + -2.0998890977352858e-003 + 0.1913982033729553 + 0.5362827181816101 + <_> + + <_> + + + + <_>6 0 12 2 -1. + <_>6 1 12 1 2. + 0 + -7.4213981861248612e-004 + 0.3835555016994476 + 0.5529310107231140 + <_> + + <_> + + + + <_>9 14 2 3 -1. + <_>9 15 2 1 3. + 0 + 3.2655049581080675e-003 + 0.4312896132469177 + 0.7101895809173584 + <_> + + <_> + + + + <_>7 15 6 2 -1. + <_>7 16 6 1 2. + 0 + 8.9134991867467761e-004 + 0.3984830975532532 + 0.6391963958740234 + <_> + + <_> + + + + <_>0 5 4 6 -1. + <_>0 7 4 2 3. + 0 + -0.0152841797098517 + 0.2366732954978943 + 0.5433713793754578 + <_> + + <_> + + + + <_>4 12 12 2 -1. + <_>8 12 4 2 3. + 0 + 4.8381411470472813e-003 + 0.5817500948905945 + 0.3239189088344574 + <_> + + <_> + + + + <_>6 3 1 9 -1. + <_>6 6 1 3 3. + 0 + -9.1093179071322083e-004 + 0.5540593862533569 + 0.2911868989467621 + <_> + + <_> + + + + <_>10 17 3 2 -1. + <_>11 17 1 2 3. + 0 + -6.1275060288608074e-003 + 0.1775255054235458 + 0.5196629166603088 + <_> + + <_> + + + + <_>9 9 2 2 -1. + <_>9 10 2 1 2. + 0 + -4.4576259097084403e-004 + 0.3024170100688934 + 0.5533593893051148 + <_> + + <_> + + + + <_>7 6 6 4 -1. + <_>9 6 2 4 3. + 0 + 0.0226465407758951 + 0.4414930939674377 + 0.6975377202033997 + <_> + + <_> + + + + <_>7 17 3 2 -1. + <_>8 17 1 2 3. + 0 + -1.8804960418492556e-003 + 0.2791394889354706 + 0.5497952103614807 + <_> + + <_> + + + + <_>10 17 3 3 -1. + <_>11 17 1 3 3. + 0 + 7.0889107882976532e-003 + 0.5263199210166931 + 0.2385547012090683 + <_> + + <_> + + + + <_>8 12 3 2 -1. + <_>8 13 3 1 2. + 0 + 1.7318050377070904e-003 + 0.4319379031658173 + 0.6983600854873657 + <_> + + <_> + + + + <_>9 3 6 2 -1. + <_>11 3 2 2 3. + 0 + -6.8482700735330582e-003 + 0.3082042932510376 + 0.5390920042991638 + <_> + + <_> + + + + <_>3 11 14 4 -1. + <_>3 13 14 2 2. + 0 + -1.5062530110299122e-005 + 0.5521922111511231 + 0.3120366036891937 + <_> + + <_> + + + + <_>1 10 18 4 -1. + <_>10 10 9 2 2. + <_>1 12 9 2 2. + 0 + 0.0294755697250366 + 0.5401322841644287 + 0.1770603060722351 + <_> + + <_> + + + + <_>0 10 3 3 -1. + <_>0 11 3 1 3. + 0 + 8.1387329846620560e-003 + 0.5178617835044861 + 0.1211019009351730 + <_> + + <_> + + + + <_>9 1 6 6 -1. + <_>11 1 2 6 3. + 0 + 0.0209429506212473 + 0.5290294289588928 + 0.3311221897602081 + <_> + + <_> + + + + <_>8 7 3 6 -1. + <_>9 7 1 6 3. + 0 + -9.5665529370307922e-003 + 0.7471994161605835 + 0.4451968967914581 + 18.4129695892333980 + 2 + -1 + <_> + + + <_> + + <_> + + + + <_>1 0 18 9 -1. + <_>1 3 18 3 3. + 0 + -2.8206960996612906e-004 + 0.2064086049795151 + 0.6076732277870178 + <_> + + <_> + + + + <_>12 10 2 6 -1. + <_>12 13 2 3 2. + 0 + 1.6790600493550301e-003 + 0.5851997137069702 + 0.1255383938550949 + <_> + + <_> + + + + <_>0 5 19 8 -1. + <_>0 9 19 4 2. + 0 + 6.9827912375330925e-004 + 0.0940184295177460 + 0.5728961229324341 + <_> + + <_> + + + + <_>7 0 6 9 -1. + <_>9 0 2 9 3. + 0 + 7.8959012171253562e-004 + 0.1781987994909287 + 0.5694308876991272 + <_> + + <_> + + + + <_>5 3 6 1 -1. + <_>7 3 2 1 3. + 0 + -2.8560499195009470e-003 + 0.1638399064540863 + 0.5788664817810059 + <_> + + <_> + + + + <_>11 3 6 1 -1. + <_>13 3 2 1 3. + 0 + -3.8122469559311867e-003 + 0.2085440009832382 + 0.5508564710617065 + <_> + + <_> + + + + <_>5 10 4 6 -1. + <_>5 13 4 3 2. + 0 + 1.5896620461717248e-003 + 0.5702760815620422 + 0.1857215017080307 + <_> + + <_> + + + + <_>11 3 6 1 -1. + <_>13 3 2 1 3. + 0 + 0.0100783398374915 + 0.5116943120956421 + 0.2189770042896271 + <_> + + <_> + + + + <_>4 4 12 6 -1. + <_>4 6 12 2 3. + 0 + -0.0635263025760651 + 0.7131379842758179 + 0.4043813049793243 + <_> + + <_> + + + + <_>15 12 2 6 -1. + <_>15 14 2 2 3. + 0 + -9.1031491756439209e-003 + 0.2567181885242462 + 0.5463973283767700 + <_> + + <_> + + + + <_>9 3 2 2 -1. + <_>10 3 1 2 2. + 0 + -2.4035000242292881e-003 + 0.1700665950775147 + 0.5590974092483521 + <_> + + <_> + + + + <_>9 3 3 1 -1. + <_>10 3 1 1 3. + 0 + 1.5226360410451889e-003 + 0.5410556793212891 + 0.2619054019451141 + <_> + + <_> + + + + <_>1 1 4 14 -1. + <_>3 1 2 14 2. + 0 + 0.0179974399507046 + 0.3732436895370483 + 0.6535220742225647 + <_> + + <_> + + + + <_>9 0 4 4 -1. + <_>11 0 2 2 2. + <_>9 2 2 2 2. + 0 + -6.4538191072642803e-003 + 0.2626481950283051 + 0.5537446141242981 + <_> + + <_> + + + + <_>7 5 1 14 -1. + <_>7 12 1 7 2. + 0 + -0.0118807600811124 + 0.2003753930330277 + 0.5544745922088623 + <_> + + <_> + + + + <_>19 0 1 4 -1. + <_>19 2 1 2 2. + 0 + 1.2713660253211856e-003 + 0.5591902732849121 + 0.3031975924968720 + <_> + + <_> + + + + <_>5 5 6 4 -1. + <_>8 5 3 4 2. + 0 + 1.1376109905540943e-003 + 0.2730407118797302 + 0.5646508932113648 + <_> + + <_> + + + + <_>9 18 3 2 -1. + <_>10 18 1 2 3. + 0 + -4.2651998810470104e-003 + 0.1405909061431885 + 0.5461820960044861 + <_> + + <_> + + + + <_>8 18 3 2 -1. + <_>9 18 1 2 3. + 0 + -2.9602861031889915e-003 + 0.1795035004615784 + 0.5459290146827698 + <_> + + <_> + + + + <_>4 5 12 6 -1. + <_>4 7 12 2 3. + 0 + -8.8448226451873779e-003 + 0.5736783146858215 + 0.2809219956398010 + <_> + + <_> + + + + <_>3 12 2 6 -1. + <_>3 14 2 2 3. + 0 + -6.6430689767003059e-003 + 0.2370675951242447 + 0.5503826141357422 + <_> + + <_> + + + + <_>10 8 2 12 -1. + <_>10 12 2 4 3. + 0 + 3.9997808635234833e-003 + 0.5608199834823608 + 0.3304282128810883 + <_> + + <_> + + + + <_>7 18 3 2 -1. + <_>8 18 1 2 3. + 0 + -4.1221720166504383e-003 + 0.1640105992555618 + 0.5378993153572083 + <_> + + <_> + + + + <_>9 0 6 2 -1. + <_>11 0 2 2 3. + 0 + 0.0156249096617103 + 0.5227649211883545 + 0.2288603931665421 + <_> + + <_> + + + + <_>5 11 9 3 -1. + <_>5 12 9 1 3. + 0 + -0.0103564197197557 + 0.7016193866729736 + 0.4252927899360657 + <_> + + <_> + + + + <_>9 0 6 2 -1. + <_>11 0 2 2 3. + 0 + -8.7960809469223022e-003 + 0.2767347097396851 + 0.5355830192565918 + <_> + + <_> + + + + <_>1 1 18 5 -1. + <_>7 1 6 5 3. + 0 + 0.1622693985700607 + 0.4342240095138550 + 0.7442579269409180 + <_> + + <_> + + + + <_>8 0 4 4 -1. + <_>10 0 2 2 2. + <_>8 2 2 2 2. + 0 + 4.5542530715465546e-003 + 0.5726485848426819 + 0.2582125067710877 + <_> + + <_> + + + + <_>3 12 1 3 -1. + <_>3 13 1 1 3. + 0 + -2.1309209987521172e-003 + 0.2106848061084747 + 0.5361018776893616 + <_> + + <_> + + + + <_>8 14 5 3 -1. + <_>8 15 5 1 3. + 0 + -0.0132084200158715 + 0.7593790888786316 + 0.4552468061447144 + <_> + + <_> + + + + <_>5 4 10 12 -1. + <_>5 4 5 6 2. + <_>10 10 5 6 2. + 0 + -0.0659966766834259 + 0.1252475976943970 + 0.5344039797782898 + <_> + + <_> + + + + <_>9 6 9 12 -1. + <_>9 10 9 4 3. + 0 + 7.9142656177282333e-003 + 0.3315384089946747 + 0.5601043105125427 + <_> + + <_> + + + + <_>2 2 12 14 -1. + <_>2 2 6 7 2. + <_>8 9 6 7 2. + 0 + 0.0208942797034979 + 0.5506049990653992 + 0.2768838107585907 + 15.3241395950317380 + 3 + -1 + <_> + + + <_> + + <_> + + + + <_>4 7 12 2 -1. + <_>8 7 4 2 3. + 0 + 1.1961159761995077e-003 + 0.1762690991163254 + 0.6156241297721863 + <_> + + <_> + + + + <_>7 4 6 4 -1. + <_>7 6 6 2 2. + 0 + -1.8679830245673656e-003 + 0.6118106842041016 + 0.1832399964332581 + <_> + + <_> + + + + <_>4 5 11 8 -1. + <_>4 9 11 4 2. + 0 + -1.9579799845814705e-004 + 0.0990442633628845 + 0.5723816156387329 + <_> + + <_> + + + + <_>3 10 16 4 -1. + <_>3 12 16 2 2. + 0 + -8.0255657667294145e-004 + 0.5579879879951477 + 0.2377282977104187 + <_> + + <_> + + + + <_>0 0 16 2 -1. + <_>0 1 16 1 2. + 0 + -2.4510810617357492e-003 + 0.2231457978487015 + 0.5858935117721558 + <_> + + <_> + + + + <_>7 5 6 2 -1. + <_>9 5 2 2 3. + 0 + 5.0361850298941135e-004 + 0.2653993964195252 + 0.5794103741645813 + <_> + + <_> + + + + <_>3 2 6 10 -1. + <_>3 2 3 5 2. + <_>6 7 3 5 2. + 0 + 4.0293349884450436e-003 + 0.5803827047348023 + 0.2484865039587021 + <_> + + <_> + + + + <_>10 5 8 15 -1. + <_>10 10 8 5 3. + 0 + -0.0144517095759511 + 0.1830351948738098 + 0.5484204888343811 + <_> + + <_> + + + + <_>3 14 8 6 -1. + <_>3 14 4 3 2. + <_>7 17 4 3 2. + 0 + 2.0380979403853416e-003 + 0.3363558948040009 + 0.6051092743873596 + <_> + + <_> + + + + <_>14 2 2 2 -1. + <_>14 3 2 1 2. + 0 + -1.6155190533027053e-003 + 0.2286642044782639 + 0.5441246032714844 + <_> + + <_> + + + + <_>1 10 7 6 -1. + <_>1 13 7 3 2. + 0 + 3.3458340913057327e-003 + 0.5625913143157959 + 0.2392338067293167 + <_> + + <_> + + + + <_>15 4 4 3 -1. + <_>15 4 2 3 2. + 0 + 1.6379579901695251e-003 + 0.3906993865966797 + 0.5964621901512146 + <_> + + <_> + + + + <_>2 9 14 6 -1. + <_>2 9 7 3 2. + <_>9 12 7 3 2. + 0 + 0.0302512105554342 + 0.5248482227325440 + 0.1575746983289719 + <_> + + <_> + + + + <_>5 7 10 4 -1. + <_>5 9 10 2 2. + 0 + 0.0372519902884960 + 0.4194310903549194 + 0.6748418807983398 + <_> + + <_> + + + + <_>6 9 8 8 -1. + <_>6 9 4 4 2. + <_>10 13 4 4 2. + 0 + -0.0251097902655602 + 0.1882549971342087 + 0.5473451018333435 + <_> + + <_> + + + + <_>14 1 3 2 -1. + <_>14 2 3 1 2. + 0 + -5.3099058568477631e-003 + 0.1339973062276840 + 0.5227110981941223 + <_> + + <_> + + + + <_>1 4 4 2 -1. + <_>3 4 2 2 2. + 0 + 1.2086479691788554e-003 + 0.3762088119983673 + 0.6109635829925537 + <_> + + <_> + + + + <_>11 10 2 8 -1. + <_>11 14 2 4 2. + 0 + -0.0219076797366142 + 0.2663142979145050 + 0.5404006838798523 + <_> + + <_> + + + + <_>0 0 5 3 -1. + <_>0 1 5 1 3. + 0 + 5.4116579703986645e-003 + 0.5363578796386719 + 0.2232273072004318 + <_> + + <_> + + + + <_>2 5 18 8 -1. + <_>11 5 9 4 2. + <_>2 9 9 4 2. + 0 + 0.0699463263154030 + 0.5358232855796814 + 0.2453698068857193 + <_> + + <_> + + + + <_>6 6 1 6 -1. + <_>6 9 1 3 2. + 0 + 3.4520021290518343e-004 + 0.2409671992063522 + 0.5376930236816406 + <_> + + <_> + + + + <_>19 1 1 3 -1. + <_>19 2 1 1 3. + 0 + 1.2627709656953812e-003 + 0.5425856709480286 + 0.3155693113803864 + <_> + + <_> + + + + <_>7 6 6 6 -1. + <_>9 6 2 6 3. + 0 + 0.0227195098996162 + 0.4158405959606171 + 0.6597865223884583 + <_> + + <_> + + + + <_>19 1 1 3 -1. + <_>19 2 1 1 3. + 0 + -1.8111000536009669e-003 + 0.2811253070831299 + 0.5505244731903076 + <_> + + <_> + + + + <_>3 13 2 3 -1. + <_>3 14 2 1 3. + 0 + 3.3469670452177525e-003 + 0.5260028243064880 + 0.1891465038061142 + <_> + + <_> + + + + <_>8 4 8 12 -1. + <_>12 4 4 6 2. + <_>8 10 4 6 2. + 0 + 4.0791751234792173e-004 + 0.5673509240150452 + 0.3344210088253021 + <_> + + <_> + + + + <_>5 2 6 3 -1. + <_>7 2 2 3 3. + 0 + 0.0127347996458411 + 0.5343592166900635 + 0.2395612001419067 + <_> + + <_> + + + + <_>6 1 9 10 -1. + <_>6 6 9 5 2. + 0 + -7.3119727894663811e-003 + 0.6010890007019043 + 0.4022207856178284 + <_> + + <_> + + + + <_>0 4 6 12 -1. + <_>2 4 2 12 3. + 0 + -0.0569487512111664 + 0.8199151158332825 + 0.4543190896511078 + <_> + + <_> + + + + <_>15 13 2 3 -1. + <_>15 14 2 1 3. + 0 + -5.0116591155529022e-003 + 0.2200281023979187 + 0.5357710719108582 + <_> + + <_> + + + + <_>7 14 5 3 -1. + <_>7 15 5 1 3. + 0 + 6.0334368608891964e-003 + 0.4413081109523773 + 0.7181751132011414 + <_> + + <_> + + + + <_>15 13 3 3 -1. + <_>15 14 3 1 3. + 0 + 3.9437441155314445e-003 + 0.5478860735893250 + 0.2791733145713806 + <_> + + <_> + + + + <_>6 14 8 3 -1. + <_>6 15 8 1 3. + 0 + -3.6591119132936001e-003 + 0.6357867717742920 + 0.3989723920822144 + <_> + + <_> + + + + <_>15 13 3 3 -1. + <_>15 14 3 1 3. + 0 + -3.8456181064248085e-003 + 0.3493686020374298 + 0.5300664901733398 + <_> + + <_> + + + + <_>2 13 3 3 -1. + <_>2 14 3 1 3. + 0 + -7.1926261298358440e-003 + 0.1119614988565445 + 0.5229672789573669 + <_> + + <_> + + + + <_>4 7 12 12 -1. + <_>10 7 6 6 2. + <_>4 13 6 6 2. + 0 + -0.0527989417314529 + 0.2387102991342545 + 0.5453451275825501 + <_> + + <_> + + + + <_>9 7 2 6 -1. + <_>10 7 1 6 2. + 0 + -7.9537667334079742e-003 + 0.7586917877197266 + 0.4439376890659332 + <_> + + <_> + + + + <_>8 9 5 2 -1. + <_>8 10 5 1 2. + 0 + -2.7344180271029472e-003 + 0.2565476894378662 + 0.5489321947097778 + <_> + + <_> + + + + <_>8 6 3 4 -1. + <_>9 6 1 4 3. + 0 + -1.8507939530536532e-003 + 0.6734347939491272 + 0.4252474904060364 + <_> + + <_> + + + + <_>9 6 2 8 -1. + <_>9 10 2 4 2. + 0 + 0.0159189198166132 + 0.5488352775573731 + 0.2292661964893341 + <_> + + <_> + + + + <_>7 7 3 6 -1. + <_>8 7 1 6 3. + 0 + -1.2687679845839739e-003 + 0.6104331016540527 + 0.4022389948368073 + <_> + + <_> + + + + <_>11 3 3 3 -1. + <_>12 3 1 3 3. + 0 + 6.2883910723030567e-003 + 0.5310853123664856 + 0.1536193042993546 + <_> + + <_> + + + + <_>5 4 6 1 -1. + <_>7 4 2 1 3. + 0 + -6.2259892001748085e-003 + 0.1729111969470978 + 0.5241606235504150 + <_> + + <_> + + + + <_>5 6 10 3 -1. + <_>5 7 10 1 3. + 0 + -0.0121325999498367 + 0.6597759723663330 + 0.4325182139873505 + 21.0106391906738280 + 4 + -1 + <_> + + + <_> + + <_> + + + + <_>7 3 6 9 -1. + <_>7 6 6 3 3. + 0 + -3.9184908382594585e-003 + 0.6103435158729553 + 0.1469330936670303 + <_> + + <_> + + + + <_>6 7 9 1 -1. + <_>9 7 3 1 3. + 0 + 1.5971299726516008e-003 + 0.2632363140583038 + 0.5896466970443726 + <_> + + <_> + + + + <_>2 8 16 8 -1. + <_>2 12 16 4 2. + 0 + 0.0177801102399826 + 0.5872874259948731 + 0.1760361939668655 + <_> + + <_> + + + + <_>14 6 2 6 -1. + <_>14 9 2 3 2. + 0 + 6.5334769897162914e-004 + 0.1567801982164383 + 0.5596066117286682 + <_> + + <_> + + + + <_>1 5 6 15 -1. + <_>1 10 6 5 3. + 0 + -2.8353091329336166e-004 + 0.1913153976202011 + 0.5732036232948303 + <_> + + <_> + + + + <_>10 0 6 9 -1. + <_>10 3 6 3 3. + 0 + 1.6104689566418529e-003 + 0.2914913892745972 + 0.5623080730438232 + <_> + + <_> + + + + <_>6 6 7 14 -1. + <_>6 13 7 7 2. + 0 + -0.0977506190538406 + 0.1943476945161820 + 0.5648233294487000 + <_> + + <_> + + + + <_>13 7 3 6 -1. + <_>13 9 3 2 3. + 0 + 5.5182358482852578e-004 + 0.3134616911411285 + 0.5504639744758606 + <_> + + <_> + + + + <_>1 8 15 4 -1. + <_>6 8 5 4 3. + 0 + -0.0128582203760743 + 0.2536481916904450 + 0.5760142803192139 + <_> + + <_> + + + + <_>11 2 3 10 -1. + <_>11 7 3 5 2. + 0 + 4.1530239395797253e-003 + 0.5767722129821777 + 0.3659774065017700 + <_> + + <_> + + + + <_>3 7 4 6 -1. + <_>3 9 4 2 3. + 0 + 1.7092459602281451e-003 + 0.2843191027641296 + 0.5918939113616943 + <_> + + <_> + + + + <_>13 3 6 10 -1. + <_>15 3 2 10 3. + 0 + 7.5217359699308872e-003 + 0.4052427113056183 + 0.6183109283447266 + <_> + + <_> + + + + <_>5 7 8 10 -1. + <_>5 7 4 5 2. + <_>9 12 4 5 2. + 0 + 2.2479810286313295e-003 + 0.5783755183219910 + 0.3135401010513306 + <_> + + <_> + + + + <_>4 4 12 12 -1. + <_>10 4 6 6 2. + <_>4 10 6 6 2. + 0 + 0.0520062111318111 + 0.5541312098503113 + 0.1916636973619461 + <_> + + <_> + + + + <_>1 4 6 9 -1. + <_>3 4 2 9 3. + 0 + 0.0120855299755931 + 0.4032655954360962 + 0.6644591093063355 + <_> + + <_> + + + + <_>11 3 2 5 -1. + <_>11 3 1 5 2. + 0 + 1.4687820112158079e-005 + 0.3535977900028229 + 0.5709382891654968 + <_> + + <_> + + + + <_>7 3 2 5 -1. + <_>8 3 1 5 2. + 0 + 7.1395188570022583e-006 + 0.3037444949150085 + 0.5610269904136658 + <_> + + <_> + + + + <_>10 14 2 3 -1. + <_>10 15 2 1 3. + 0 + -4.6001640148460865e-003 + 0.7181087136268616 + 0.4580326080322266 + <_> + + <_> + + + + <_>5 12 6 2 -1. + <_>8 12 3 2 2. + 0 + 2.0058949012309313e-003 + 0.5621951818466187 + 0.2953684031963348 + <_> + + <_> + + + + <_>9 14 2 3 -1. + <_>9 15 2 1 3. + 0 + 4.5050270855426788e-003 + 0.4615387916564941 + 0.7619017958641052 + <_> + + <_> + + + + <_>4 11 12 6 -1. + <_>4 14 12 3 2. + 0 + 0.0117468303069472 + 0.5343837141990662 + 0.1772529035806656 + <_> + + <_> + + + + <_>11 11 5 9 -1. + <_>11 14 5 3 3. + 0 + -0.0583163388073444 + 0.1686245948076248 + 0.5340772271156311 + <_> + + <_> + + + + <_>6 15 3 2 -1. + <_>6 16 3 1 2. + 0 + 2.3629379575140774e-004 + 0.3792056143283844 + 0.6026803851127625 + <_> + + <_> + + + + <_>11 0 3 5 -1. + <_>12 0 1 5 3. + 0 + -7.8156180679798126e-003 + 0.1512867063283920 + 0.5324323773384094 + <_> + + <_> + + + + <_>5 5 6 7 -1. + <_>8 5 3 7 2. + 0 + -0.0108761601150036 + 0.2081822007894516 + 0.5319945216178894 + <_> + + <_> + + + + <_>13 0 1 9 -1. + <_>13 3 1 3 3. + 0 + -2.7745519764721394e-003 + 0.4098246991634369 + 0.5210328102111816 + <_> + + <_> + + + + <_>3 2 4 8 -1. + <_>3 2 2 4 2. + <_>5 6 2 4 2. + 0 + -7.8276381827890873e-004 + 0.5693274140357971 + 0.3478842079639435 + <_> + + <_> + + + + <_>13 12 4 6 -1. + <_>13 14 4 2 3. + 0 + 0.0138704096898437 + 0.5326750874519348 + 0.2257698029279709 + <_> + + <_> + + + + <_>3 12 4 6 -1. + <_>3 14 4 2 3. + 0 + -0.0236749108880758 + 0.1551305055618286 + 0.5200707912445068 + <_> + + <_> + + + + <_>13 11 3 4 -1. + <_>13 13 3 2 2. + 0 + -1.4879409718560055e-005 + 0.5500566959381104 + 0.3820176124572754 + <_> + + <_> + + + + <_>4 4 4 3 -1. + <_>4 5 4 1 3. + 0 + 3.6190641112625599e-003 + 0.4238683879375458 + 0.6639748215675354 + <_> + + <_> + + + + <_>7 5 11 8 -1. + <_>7 9 11 4 2. + 0 + -0.0198171101510525 + 0.2150038033723831 + 0.5382357835769653 + <_> + + <_> + + + + <_>7 8 3 4 -1. + <_>8 8 1 4 3. + 0 + -3.8154039066284895e-003 + 0.6675711274147034 + 0.4215297102928162 + <_> + + <_> + + + + <_>9 1 6 1 -1. + <_>11 1 2 1 3. + 0 + -4.9775829538702965e-003 + 0.2267289012670517 + 0.5386328101158142 + <_> + + <_> + + + + <_>5 5 3 3 -1. + <_>5 6 3 1 3. + 0 + 2.2441020701080561e-003 + 0.4308691024780273 + 0.6855735778808594 + <_> + + <_> + + + + <_>0 9 20 6 -1. + <_>10 9 10 3 2. + <_>0 12 10 3 2. + 0 + 0.0122824599966407 + 0.5836614966392517 + 0.3467479050159454 + <_> + + <_> + + + + <_>8 6 3 5 -1. + <_>9 6 1 5 3. + 0 + -2.8548699337989092e-003 + 0.7016944885253906 + 0.4311453998088837 + <_> + + <_> + + + + <_>11 0 1 3 -1. + <_>11 1 1 1 3. + 0 + -3.7875669077038765e-003 + 0.2895345091819763 + 0.5224946141242981 + <_> + + <_> + + + + <_>4 2 4 2 -1. + <_>4 3 4 1 2. + 0 + -1.2201230274513364e-003 + 0.2975570857524872 + 0.5481644868850708 + <_> + + <_> + + + + <_>12 6 4 3 -1. + <_>12 7 4 1 3. + 0 + 0.0101605998352170 + 0.4888817965984345 + 0.8182697892189026 + <_> + + <_> + + + + <_>5 0 6 4 -1. + <_>7 0 2 4 3. + 0 + -0.0161745697259903 + 0.1481492966413498 + 0.5239992737770081 + <_> + + <_> + + + + <_>9 7 3 8 -1. + <_>10 7 1 8 3. + 0 + 0.0192924607545137 + 0.4786309897899628 + 0.7378190755844116 + <_> + + <_> + + + + <_>9 7 2 2 -1. + <_>10 7 1 2 2. + 0 + -3.2479539513587952e-003 + 0.7374222874641419 + 0.4470643997192383 + <_> + + <_> + + + + <_>6 7 14 4 -1. + <_>13 7 7 2 2. + <_>6 9 7 2 2. + 0 + -9.3803480267524719e-003 + 0.3489154875278473 + 0.5537996292114258 + <_> + + <_> + + + + <_>0 5 3 6 -1. + <_>0 7 3 2 3. + 0 + -0.0126061299815774 + 0.2379686981439591 + 0.5315443277359009 + <_> + + <_> + + + + <_>13 11 3 4 -1. + <_>13 13 3 2 2. + 0 + -0.0256219301372766 + 0.1964688003063202 + 0.5138769745826721 + <_> + + <_> + + + + <_>4 11 3 4 -1. + <_>4 13 3 2 2. + 0 + -7.5741496402770281e-005 + 0.5590522885322571 + 0.3365853130817413 + <_> + + <_> + + + + <_>5 9 12 8 -1. + <_>11 9 6 4 2. + <_>5 13 6 4 2. + 0 + -0.0892108827829361 + 0.0634046569466591 + 0.5162634849548340 + <_> + + <_> + + + + <_>9 12 1 3 -1. + <_>9 13 1 1 3. + 0 + -2.7670480776578188e-003 + 0.7323467731475830 + 0.4490706026554108 + <_> + + <_> + + + + <_>10 15 2 4 -1. + <_>10 17 2 2 2. + 0 + 2.7152578695677221e-004 + 0.4114834964275360 + 0.5985518097877502 + 23.9187908172607420 + 5 + -1 + <_> + + + <_> + + <_> + + + + <_>7 7 6 1 -1. + <_>9 7 2 1 3. + 0 + 1.4786219689995050e-003 + 0.2663545012474060 + 0.6643316745758057 + <_> + + <_> + + + + <_>12 3 6 6 -1. + <_>15 3 3 3 2. + <_>12 6 3 3 2. + 0 + -1.8741659587249160e-003 + 0.6143848896026611 + 0.2518512904644013 + <_> + + <_> + + + + <_>0 4 10 6 -1. + <_>0 6 10 2 3. + 0 + -1.7151009524241090e-003 + 0.5766341090202332 + 0.2397463023662567 + <_> + + <_> + + + + <_>8 3 8 14 -1. + <_>12 3 4 7 2. + <_>8 10 4 7 2. + 0 + -1.8939269939437509e-003 + 0.5682045817375183 + 0.2529144883155823 + <_> + + <_> + + + + <_>4 4 7 15 -1. + <_>4 9 7 5 3. + 0 + -5.3006052039563656e-003 + 0.1640675961971283 + 0.5556079745292664 + <_> + + <_> + + + + <_>12 2 6 8 -1. + <_>15 2 3 4 2. + <_>12 6 3 4 2. + 0 + -0.0466625317931175 + 0.6123154163360596 + 0.4762830138206482 + <_> + + <_> + + + + <_>2 2 6 8 -1. + <_>2 2 3 4 2. + <_>5 6 3 4 2. + 0 + -7.9431332414969802e-004 + 0.5707858800888062 + 0.2839404046535492 + <_> + + <_> + + + + <_>2 13 18 7 -1. + <_>8 13 6 7 3. + 0 + 0.0148916700854898 + 0.4089672863483429 + 0.6006367206573486 + <_> + + <_> + + + + <_>4 3 8 14 -1. + <_>4 3 4 7 2. + <_>8 10 4 7 2. + 0 + -1.2046529445797205e-003 + 0.5712450742721558 + 0.2705289125442505 + <_> + + <_> + + + + <_>18 1 2 6 -1. + <_>18 3 2 2 3. + 0 + 6.0619381256401539e-003 + 0.5262504220008850 + 0.3262225985527039 + <_> + + <_> + + + + <_>9 11 2 3 -1. + <_>9 12 2 1 3. + 0 + -2.5286648888140917e-003 + 0.6853830814361572 + 0.4199256896972656 + <_> + + <_> + + + + <_>18 1 2 6 -1. + <_>18 3 2 2 3. + 0 + -5.9010218828916550e-003 + 0.3266282081604004 + 0.5434812903404236 + <_> + + <_> + + + + <_>0 1 2 6 -1. + <_>0 3 2 2 3. + 0 + 5.6702760048210621e-003 + 0.5468410849571228 + 0.2319003939628601 + <_> + + <_> + + + + <_>1 5 18 6 -1. + <_>1 7 18 2 3. + 0 + -3.0304100364446640e-003 + 0.5570667982101440 + 0.2708238065242767 + <_> + + <_> + + + + <_>0 2 6 7 -1. + <_>3 2 3 7 2. + 0 + 2.9803649522364140e-003 + 0.3700568974018097 + 0.5890625715255737 + <_> + + <_> + + + + <_>7 3 6 14 -1. + <_>7 10 6 7 2. + 0 + -0.0758405104279518 + 0.2140070050954819 + 0.5419948101043701 + <_> + + <_> + + + + <_>3 7 13 10 -1. + <_>3 12 13 5 2. + 0 + 0.0192625392228365 + 0.5526772141456604 + 0.2726590037345886 + <_> + + <_> + + + + <_>11 15 2 2 -1. + <_>11 16 2 1 2. + 0 + 1.8888259364757687e-004 + 0.3958011865615845 + 0.6017209887504578 + <_> + + <_> + + + + <_>2 11 16 4 -1. + <_>2 11 8 2 2. + <_>10 13 8 2 2. + 0 + 0.0293695498257875 + 0.5241373777389526 + 0.1435758024454117 + <_> + + <_> + + + + <_>13 7 6 4 -1. + <_>16 7 3 2 2. + <_>13 9 3 2 2. + 0 + 1.0417619487270713e-003 + 0.3385409116744995 + 0.5929983258247376 + <_> + + <_> + + + + <_>6 10 3 9 -1. + <_>6 13 3 3 3. + 0 + 2.6125640142709017e-003 + 0.5485377907752991 + 0.3021597862243652 + <_> + + <_> + + + + <_>14 6 1 6 -1. + <_>14 9 1 3 2. + 0 + 9.6977467183023691e-004 + 0.3375276029109955 + 0.5532032847404480 + <_> + + <_> + + + + <_>5 10 4 1 -1. + <_>7 10 2 1 2. + 0 + 5.9512659208849072e-004 + 0.5631743073463440 + 0.3359399139881134 + <_> + + <_> + + + + <_>3 8 15 5 -1. + <_>8 8 5 5 3. + 0 + -0.1015655994415283 + 0.0637350380420685 + 0.5230425000190735 + <_> + + <_> + + + + <_>1 6 5 4 -1. + <_>1 8 5 2 2. + 0 + 0.0361566990613937 + 0.5136963129043579 + 0.1029528975486755 + <_> + + <_> + + + + <_>3 1 17 6 -1. + <_>3 3 17 2 3. + 0 + 3.4624140243977308e-003 + 0.3879320025444031 + 0.5558289289474487 + <_> + + <_> + + + + <_>6 7 8 2 -1. + <_>10 7 4 2 2. + 0 + 0.0195549800992012 + 0.5250086784362793 + 0.1875859946012497 + <_> + + <_> + + + + <_>9 7 3 2 -1. + <_>10 7 1 2 3. + 0 + -2.3121440317481756e-003 + 0.6672028899192810 + 0.4679641127586365 + <_> + + <_> + + + + <_>8 7 3 2 -1. + <_>9 7 1 2 3. + 0 + -1.8605289515107870e-003 + 0.7163379192352295 + 0.4334670901298523 + <_> + + <_> + + + + <_>8 9 4 2 -1. + <_>8 10 4 1 2. + 0 + -9.4026362057775259e-004 + 0.3021360933780670 + 0.5650203227996826 + <_> + + <_> + + + + <_>8 8 4 3 -1. + <_>8 9 4 1 3. + 0 + -5.2418331615626812e-003 + 0.1820009052753449 + 0.5250256061553955 + <_> + + <_> + + + + <_>9 5 6 4 -1. + <_>9 5 3 4 2. + 0 + 1.1729019752237946e-004 + 0.3389188051223755 + 0.5445973277091980 + <_> + + <_> + + + + <_>8 13 4 3 -1. + <_>8 14 4 1 3. + 0 + 1.1878840159624815e-003 + 0.4085349142551422 + 0.6253563165664673 + <_> + + <_> + + + + <_>4 7 12 6 -1. + <_>10 7 6 3 2. + <_>4 10 6 3 2. + 0 + -0.0108813596889377 + 0.3378399014472961 + 0.5700082778930664 + <_> + + <_> + + + + <_>8 14 4 3 -1. + <_>8 15 4 1 3. + 0 + 1.7354859737679362e-003 + 0.4204635918140411 + 0.6523038744926453 + <_> + + <_> + + + + <_>9 7 3 3 -1. + <_>9 8 3 1 3. + 0 + -6.5119052305817604e-003 + 0.2595216035842896 + 0.5428143739700317 + <_> + + <_> + + + + <_>7 4 3 8 -1. + <_>8 4 1 8 3. + 0 + -1.2136430013924837e-003 + 0.6165143847465515 + 0.3977893888950348 + <_> + + <_> + + + + <_>10 0 3 6 -1. + <_>11 0 1 6 3. + 0 + -0.0103542404249310 + 0.1628028005361557 + 0.5219504833221436 + <_> + + <_> + + + + <_>6 3 4 8 -1. + <_>8 3 2 8 2. + 0 + 5.5858830455690622e-004 + 0.3199650943279266 + 0.5503574013710022 + <_> + + <_> + + + + <_>14 3 6 13 -1. + <_>14 3 3 13 2. + 0 + 0.0152996499091387 + 0.4103994071483612 + 0.6122388243675232 + <_> + + <_> + + + + <_>8 13 3 6 -1. + <_>8 16 3 3 2. + 0 + -0.0215882100164890 + 0.1034912988543510 + 0.5197384953498840 + <_> + + <_> + + + + <_>14 3 6 13 -1. + <_>14 3 3 13 2. + 0 + -0.1283462941646576 + 0.8493865132331848 + 0.4893102943897247 + <_> + + <_> + + + + <_>0 7 10 4 -1. + <_>0 7 5 2 2. + <_>5 9 5 2 2. + 0 + -2.2927189711481333e-003 + 0.3130157887935638 + 0.5471575260162354 + <_> + + <_> + + + + <_>14 3 6 13 -1. + <_>14 3 3 13 2. + 0 + 0.0799151062965393 + 0.4856320917606354 + 0.6073989272117615 + <_> + + <_> + + + + <_>0 3 6 13 -1. + <_>3 3 3 13 2. + 0 + -0.0794410929083824 + 0.8394674062728882 + 0.4624533057212830 + <_> + + <_> + + + + <_>9 1 4 1 -1. + <_>9 1 2 1 2. + 0 + -5.2800010889768600e-003 + 0.1881695985794067 + 0.5306698083877564 + <_> + + <_> + + + + <_>8 0 2 1 -1. + <_>9 0 1 1 2. + 0 + 1.0463109938427806e-003 + 0.5271229147911072 + 0.2583065927028656 + <_> + + <_> + + + + <_>10 16 4 4 -1. + <_>12 16 2 2 2. + <_>10 18 2 2 2. + 0 + 2.6317298761568964e-004 + 0.4235304892063141 + 0.5735440850257874 + <_> + + <_> + + + + <_>9 6 2 3 -1. + <_>10 6 1 3 2. + 0 + -3.6173160187900066e-003 + 0.6934396028518677 + 0.4495444893836975 + <_> + + <_> + + + + <_>4 5 12 2 -1. + <_>8 5 4 2 3. + 0 + 0.0114218797534704 + 0.5900921225547791 + 0.4138193130493164 + <_> + + <_> + + + + <_>8 7 3 5 -1. + <_>9 7 1 5 3. + 0 + -1.9963278900831938e-003 + 0.6466382741928101 + 0.4327239990234375 + 24.5278797149658200 + 6 + -1 + <_> + + + <_> + + <_> + + + + <_>6 4 8 6 -1. + <_>6 6 8 2 3. + 0 + -9.9691245704889297e-003 + 0.6142324209213257 + 0.2482212036848068 + <_> + + <_> + + + + <_>9 5 2 12 -1. + <_>9 11 2 6 2. + 0 + 7.3073059320449829e-004 + 0.5704951882362366 + 0.2321965992450714 + <_> + + <_> + + + + <_>4 6 6 8 -1. + <_>4 10 6 4 2. + 0 + 6.4045301405712962e-004 + 0.2112251967191696 + 0.5814933180809021 + <_> + + <_> + + + + <_>12 2 8 5 -1. + <_>12 2 4 5 2. + 0 + 4.5424019917845726e-003 + 0.2950482070446014 + 0.5866311788558960 + <_> + + <_> + + + + <_>0 8 18 3 -1. + <_>0 9 18 1 3. + 0 + 9.2477443104144186e-005 + 0.2990990877151489 + 0.5791326761245728 + <_> + + <_> + + + + <_>8 12 4 8 -1. + <_>8 16 4 4 2. + 0 + -8.6603146046400070e-003 + 0.2813029885292053 + 0.5635542273521423 + <_> + + <_> + + + + <_>0 2 8 5 -1. + <_>4 2 4 5 2. + 0 + 8.0515816807746887e-003 + 0.3535369038581848 + 0.6054757237434387 + <_> + + <_> + + + + <_>13 11 3 4 -1. + <_>13 13 3 2 2. + 0 + 4.3835240649059415e-004 + 0.5596532225608826 + 0.2731510996818543 + <_> + + <_> + + + + <_>5 11 6 1 -1. + <_>7 11 2 1 3. + 0 + -9.8168973636347800e-005 + 0.5978031754493713 + 0.3638561069965363 + <_> + + <_> + + + + <_>11 3 3 1 -1. + <_>12 3 1 1 3. + 0 + -1.1298790341243148e-003 + 0.2755252122879028 + 0.5432729125022888 + <_> + + <_> + + + + <_>7 13 5 3 -1. + <_>7 14 5 1 3. + 0 + 6.4356150105595589e-003 + 0.4305641949176788 + 0.7069833278656006 + <_> + + <_> + + + + <_>11 11 7 6 -1. + <_>11 14 7 3 2. + 0 + -0.0568293295800686 + 0.2495242953300476 + 0.5294997096061707 + <_> + + <_> + + + + <_>2 11 7 6 -1. + <_>2 14 7 3 2. + 0 + 4.0668169967830181e-003 + 0.5478553175926209 + 0.2497723996639252 + <_> + + <_> + + + + <_>12 14 2 6 -1. + <_>12 16 2 2 3. + 0 + 4.8164798499783501e-005 + 0.3938601016998291 + 0.5706356167793274 + <_> + + <_> + + + + <_>8 14 3 3 -1. + <_>8 15 3 1 3. + 0 + 6.1795017682015896e-003 + 0.4407606124877930 + 0.7394766807556152 + <_> + + <_> + + + + <_>11 0 3 5 -1. + <_>12 0 1 5 3. + 0 + 6.4985752105712891e-003 + 0.5445243120193481 + 0.2479152977466583 + <_> + + <_> + + + + <_>6 1 4 9 -1. + <_>8 1 2 9 2. + 0 + -1.0211090557277203e-003 + 0.2544766962528229 + 0.5338971018791199 + <_> + + <_> + + + + <_>10 3 6 1 -1. + <_>12 3 2 1 3. + 0 + -5.4247528314590454e-003 + 0.2718858122825623 + 0.5324069261550903 + <_> + + <_> + + + + <_>8 8 3 4 -1. + <_>8 10 3 2 2. + 0 + -1.0559899965301156e-003 + 0.3178288042545319 + 0.5534508824348450 + <_> + + <_> + + + + <_>8 12 4 2 -1. + <_>8 13 4 1 2. + 0 + 6.6465808777138591e-004 + 0.4284219145774841 + 0.6558194160461426 + <_> + + <_> + + + + <_>5 18 4 2 -1. + <_>5 19 4 1 2. + 0 + -2.7524109464138746e-004 + 0.5902860760688782 + 0.3810262978076935 + <_> + + <_> + + + + <_>2 1 18 6 -1. + <_>2 3 18 2 3. + 0 + 4.2293202131986618e-003 + 0.3816489875316620 + 0.5709385871887207 + <_> + + <_> + + + + <_>6 0 3 2 -1. + <_>7 0 1 2 3. + 0 + -3.2868210691958666e-003 + 0.1747743934392929 + 0.5259544253349304 + <_> + + <_> + + + + <_>13 8 6 2 -1. + <_>16 8 3 1 2. + <_>13 9 3 1 2. + 0 + 1.5611879643984139e-004 + 0.3601722121238709 + 0.5725612044334412 + <_> + + <_> + + + + <_>6 10 3 6 -1. + <_>6 13 3 3 2. + 0 + -7.3621381488919724e-006 + 0.5401858091354370 + 0.3044497072696686 + <_> + + <_> + + + + <_>0 13 20 4 -1. + <_>10 13 10 2 2. + <_>0 15 10 2 2. + 0 + -0.0147672500461340 + 0.3220770061016083 + 0.5573434829711914 + <_> + + <_> + + + + <_>7 7 6 5 -1. + <_>9 7 2 5 3. + 0 + 0.0244895908981562 + 0.4301528036594391 + 0.6518812775611877 + <_> + + <_> + + + + <_>11 0 2 2 -1. + <_>11 1 2 1 2. + 0 + -3.7652091123163700e-004 + 0.3564583063125610 + 0.5598236918449402 + <_> + + <_> + + + + <_>1 8 6 2 -1. + <_>1 8 3 1 2. + <_>4 9 3 1 2. + 0 + 7.3657688517414499e-006 + 0.3490782976150513 + 0.5561897754669190 + <_> + + <_> + + + + <_>0 2 20 2 -1. + <_>10 2 10 1 2. + <_>0 3 10 1 2. + 0 + -0.0150999398902059 + 0.1776272058486939 + 0.5335299968719482 + <_> + + <_> + + + + <_>7 14 5 3 -1. + <_>7 15 5 1 3. + 0 + -3.8316650316119194e-003 + 0.6149687767028809 + 0.4221394062042236 + <_> + + <_> + + + + <_>7 13 6 6 -1. + <_>10 13 3 3 2. + <_>7 16 3 3 2. + 0 + 0.0169254001230001 + 0.5413014888763428 + 0.2166585028171539 + <_> + + <_> + + + + <_>9 12 2 3 -1. + <_>9 13 2 1 3. + 0 + -3.0477850232273340e-003 + 0.6449490785598755 + 0.4354617893695831 + <_> + + <_> + + + + <_>16 11 1 6 -1. + <_>16 13 1 2 3. + 0 + 3.2140589319169521e-003 + 0.5400155186653137 + 0.3523217141628265 + <_> + + <_> + + + + <_>3 11 1 6 -1. + <_>3 13 1 2 3. + 0 + -4.0023201145231724e-003 + 0.2774524092674255 + 0.5338417291641235 + <_> + + <_> + + + + <_>4 4 14 12 -1. + <_>11 4 7 6 2. + <_>4 10 7 6 2. + 0 + 7.4182129465043545e-003 + 0.5676739215850830 + 0.3702817857265472 + <_> + + <_> + + + + <_>5 4 3 3 -1. + <_>5 5 3 1 3. + 0 + -8.8764587417244911e-003 + 0.7749221920967102 + 0.4583688974380493 + <_> + + <_> + + + + <_>12 3 3 3 -1. + <_>13 3 1 3 3. + 0 + 2.7311739977449179e-003 + 0.5338721871376038 + 0.3996661007404327 + <_> + + <_> + + + + <_>6 6 8 3 -1. + <_>6 7 8 1 3. + 0 + -2.5082379579544067e-003 + 0.5611963272094727 + 0.3777498900890350 + <_> + + <_> + + + + <_>12 3 3 3 -1. + <_>13 3 1 3 3. + 0 + -8.0541074275970459e-003 + 0.2915228903293610 + 0.5179182887077332 + <_> + + <_> + + + + <_>3 1 4 10 -1. + <_>3 1 2 5 2. + <_>5 6 2 5 2. + 0 + -9.7938813269138336e-004 + 0.5536432862281799 + 0.3700192868709564 + <_> + + <_> + + + + <_>5 7 10 2 -1. + <_>5 7 5 2 2. + 0 + -5.8745909482240677e-003 + 0.3754391074180603 + 0.5679376125335693 + <_> + + <_> + + + + <_>8 7 3 3 -1. + <_>9 7 1 3 3. + 0 + -4.4936719350516796e-003 + 0.7019699215888977 + 0.4480949938297272 + <_> + + <_> + + + + <_>15 12 2 3 -1. + <_>15 13 2 1 3. + 0 + -5.4389229044318199e-003 + 0.2310364991426468 + 0.5313386917114258 + <_> + + <_> + + + + <_>7 8 3 4 -1. + <_>8 8 1 4 3. + 0 + -7.5094640487805009e-004 + 0.5864868760108948 + 0.4129343032836914 + <_> + + <_> + + + + <_>13 4 1 12 -1. + <_>13 10 1 6 2. + 0 + 1.4528800420521293e-005 + 0.3732407093048096 + 0.5619621276855469 + <_> + + <_> + + + + <_>4 5 12 12 -1. + <_>4 5 6 6 2. + <_>10 11 6 6 2. + 0 + 0.0407580696046352 + 0.5312091112136841 + 0.2720521986484528 + <_> + + <_> + + + + <_>7 14 7 3 -1. + <_>7 15 7 1 3. + 0 + 6.6505931317806244e-003 + 0.4710015952587128 + 0.6693493723869324 + <_> + + <_> + + + + <_>3 12 2 3 -1. + <_>3 13 2 1 3. + 0 + 4.5759351924061775e-003 + 0.5167819261550903 + 0.1637275964021683 + <_> + + <_> + + + + <_>3 2 14 2 -1. + <_>10 2 7 1 2. + <_>3 3 7 1 2. + 0 + 6.5269311890006065e-003 + 0.5397608876228333 + 0.2938531935214996 + <_> + + <_> + + + + <_>0 1 3 10 -1. + <_>1 1 1 10 3. + 0 + -0.0136603796854615 + 0.7086488008499146 + 0.4532200098037720 + <_> + + <_> + + + + <_>9 0 6 5 -1. + <_>11 0 2 5 3. + 0 + 0.0273588690906763 + 0.5206481218338013 + 0.3589231967926025 + <_> + + <_> + + + + <_>5 7 6 2 -1. + <_>8 7 3 2 2. + 0 + 6.2197551596909761e-004 + 0.3507075905799866 + 0.5441123247146606 + <_> + + <_> + + + + <_>7 1 6 10 -1. + <_>7 6 6 5 2. + 0 + -3.3077080734074116e-003 + 0.5859522819519043 + 0.4024891853332520 + <_> + + <_> + + + + <_>1 1 18 3 -1. + <_>7 1 6 3 3. + 0 + -0.0106311095878482 + 0.6743267178535461 + 0.4422602951526642 + <_> + + <_> + + + + <_>16 3 3 6 -1. + <_>16 5 3 2 3. + 0 + 0.0194416493177414 + 0.5282716155052185 + 0.1797904968261719 + 27.1533508300781250 + 7 + -1 + <_> + + + <_> + + <_> + + + + <_>6 3 7 6 -1. + <_>6 6 7 3 2. + 0 + -5.5052167735993862e-003 + 0.5914731025695801 + 0.2626559138298035 + <_> + + <_> + + + + <_>4 7 12 2 -1. + <_>8 7 4 2 3. + 0 + 1.9562279339879751e-003 + 0.2312581986188889 + 0.5741627216339111 + <_> + + <_> + + + + <_>0 4 17 10 -1. + <_>0 9 17 5 2. + 0 + -8.8924784213304520e-003 + 0.1656530052423477 + 0.5626654028892517 + <_> + + <_> + + + + <_>3 4 15 16 -1. + <_>3 12 15 8 2. + 0 + 0.0836383774876595 + 0.5423449873924255 + 0.1957294940948486 + <_> + + <_> + + + + <_>7 15 6 4 -1. + <_>7 17 6 2 2. + 0 + 1.2282270472496748e-003 + 0.3417904078960419 + 0.5992503762245178 + <_> + + <_> + + + + <_>15 2 4 9 -1. + <_>15 2 2 9 2. + 0 + 5.7629169896245003e-003 + 0.3719581961631775 + 0.6079903841018677 + <_> + + <_> + + + + <_>2 3 3 2 -1. + <_>2 4 3 1 2. + 0 + -1.6417410224676132e-003 + 0.2577486038208008 + 0.5576915740966797 + <_> + + <_> + + + + <_>13 6 7 9 -1. + <_>13 9 7 3 3. + 0 + 3.4113149158656597e-003 + 0.2950749099254608 + 0.5514171719551086 + <_> + + <_> + + + + <_>8 11 4 3 -1. + <_>8 12 4 1 3. + 0 + -0.0110693201422691 + 0.7569358944892883 + 0.4477078914642334 + <_> + + <_> + + + + <_>0 2 20 6 -1. + <_>10 2 10 3 2. + <_>0 5 10 3 2. + 0 + 0.0348659716546535 + 0.5583708882331848 + 0.2669621109962463 + <_> + + <_> + + + + <_>3 2 6 10 -1. + <_>3 2 3 5 2. + <_>6 7 3 5 2. + 0 + 6.5701099811121821e-004 + 0.5627313256263733 + 0.2988890111446381 + <_> + + <_> + + + + <_>13 10 3 4 -1. + <_>13 12 3 2 2. + 0 + -0.0243391301482916 + 0.2771185040473938 + 0.5108863115310669 + <_> + + <_> + + + + <_>4 10 3 4 -1. + <_>4 12 3 2 2. + 0 + 5.9435202274471521e-004 + 0.5580651760101318 + 0.3120341897010803 + <_> + + <_> + + + + <_>7 5 6 3 -1. + <_>9 5 2 3 3. + 0 + 2.2971509024500847e-003 + 0.3330250084400177 + 0.5679075717926025 + <_> + + <_> + + + + <_>7 6 6 8 -1. + <_>7 10 6 4 2. + 0 + -3.7801829166710377e-003 + 0.2990534901618958 + 0.5344808101654053 + <_> + + <_> + + + + <_>0 11 20 6 -1. + <_>0 14 20 3 2. + 0 + -0.1342066973447800 + 0.1463858932256699 + 0.5392568111419678 + <_> + + <_> + + + + <_>4 13 4 6 -1. + <_>4 13 2 3 2. + <_>6 16 2 3 2. + 0 + 7.5224548345431685e-004 + 0.3746953904628754 + 0.5692734718322754 + <_> + + <_> + + + + <_>6 0 8 12 -1. + <_>10 0 4 6 2. + <_>6 6 4 6 2. + 0 + -0.0405455417931080 + 0.2754747867584229 + 0.5484297871589661 + <_> + + <_> + + + + <_>2 0 15 2 -1. + <_>2 1 15 1 2. + 0 + 1.2572970008477569e-003 + 0.3744584023952484 + 0.5756075978279114 + <_> + + <_> + + + + <_>9 12 2 3 -1. + <_>9 13 2 1 3. + 0 + -7.4249948374927044e-003 + 0.7513859272003174 + 0.4728231132030487 + <_> + + <_> + + + + <_>3 12 1 2 -1. + <_>3 13 1 1 2. + 0 + 5.0908129196614027e-004 + 0.5404896736145020 + 0.2932321131229401 + <_> + + <_> + + + + <_>9 11 2 3 -1. + <_>9 12 2 1 3. + 0 + -1.2808450264856219e-003 + 0.6169779896736145 + 0.4273349046707153 + <_> + + <_> + + + + <_>7 3 3 1 -1. + <_>8 3 1 1 3. + 0 + -1.8348860321566463e-003 + 0.2048496007919312 + 0.5206472277641296 + <_> + + <_> + + + + <_>17 7 3 6 -1. + <_>17 9 3 2 3. + 0 + 0.0274848695844412 + 0.5252984762191773 + 0.1675522029399872 + <_> + + <_> + + + + <_>7 2 3 2 -1. + <_>8 2 1 2 3. + 0 + 2.2372419480234385e-003 + 0.5267782807350159 + 0.2777658104896545 + <_> + + <_> + + + + <_>11 4 5 3 -1. + <_>11 5 5 1 3. + 0 + -8.8635291904211044e-003 + 0.6954557895660400 + 0.4812048971652985 + <_> + + <_> + + + + <_>4 4 5 3 -1. + <_>4 5 5 1 3. + 0 + 4.1753971017897129e-003 + 0.4291887879371643 + 0.6349195837974548 + <_> + + <_> + + + + <_>19 3 1 2 -1. + <_>19 4 1 1 2. + 0 + -1.7098189564421773e-003 + 0.2930536866188049 + 0.5361248850822449 + <_> + + <_> + + + + <_>5 5 4 3 -1. + <_>5 6 4 1 3. + 0 + 6.5328548662364483e-003 + 0.4495325088500977 + 0.7409694194793701 + <_> + + <_> + + + + <_>17 7 3 6 -1. + <_>17 9 3 2 3. + 0 + -9.5372907817363739e-003 + 0.3149119913578033 + 0.5416501760482788 + <_> + + <_> + + + + <_>0 7 3 6 -1. + <_>0 9 3 2 3. + 0 + 0.0253109894692898 + 0.5121892094612122 + 0.1311707943677902 + <_> + + <_> + + + + <_>14 2 6 9 -1. + <_>14 5 6 3 3. + 0 + 0.0364609695971012 + 0.5175911784172058 + 0.2591339945793152 + <_> + + <_> + + + + <_>0 4 5 6 -1. + <_>0 6 5 2 3. + 0 + 0.0208543296903372 + 0.5137140154838562 + 0.1582316011190414 + <_> + + <_> + + + + <_>10 5 6 2 -1. + <_>12 5 2 2 3. + 0 + -8.7207747856155038e-004 + 0.5574309825897217 + 0.4398978948593140 + <_> + + <_> + + + + <_>4 5 6 2 -1. + <_>6 5 2 2 3. + 0 + -1.5227000403683633e-005 + 0.5548940896987915 + 0.3708069920539856 + <_> + + <_> + + + + <_>8 1 4 6 -1. + <_>8 3 4 2 3. + 0 + -8.4316509310156107e-004 + 0.3387419879436493 + 0.5554211139678955 + <_> + + <_> + + + + <_>0 2 3 6 -1. + <_>0 4 3 2 3. + 0 + 3.6037859972566366e-003 + 0.5358061790466309 + 0.3411171138286591 + <_> + + <_> + + + + <_>6 6 8 3 -1. + <_>6 7 8 1 3. + 0 + -6.8057891912758350e-003 + 0.6125202775001526 + 0.4345862865447998 + <_> + + <_> + + + + <_>0 1 5 9 -1. + <_>0 4 5 3 3. + 0 + -0.0470216609537601 + 0.2358165979385376 + 0.5193738937377930 + <_> + + <_> + + + + <_>16 0 4 15 -1. + <_>16 0 2 15 2. + 0 + -0.0369541086256504 + 0.7323111295700073 + 0.4760943949222565 + <_> + + <_> + + + + <_>1 10 3 2 -1. + <_>1 11 3 1 2. + 0 + 1.0439479956403375e-003 + 0.5419455170631409 + 0.3411330878734589 + <_> + + <_> + + + + <_>14 4 1 10 -1. + <_>14 9 1 5 2. + 0 + -2.1050689974799752e-004 + 0.2821694016456604 + 0.5554947257041931 + <_> + + <_> + + + + <_>0 1 4 12 -1. + <_>2 1 2 12 2. + 0 + -0.0808315873146057 + 0.9129930138587952 + 0.4697434902191162 + <_> + + <_> + + + + <_>11 11 4 2 -1. + <_>11 11 2 2 2. + 0 + -3.6579059087671340e-004 + 0.6022670269012451 + 0.3978292942047119 + <_> + + <_> + + + + <_>5 11 4 2 -1. + <_>7 11 2 2 2. + 0 + -1.2545920617412776e-004 + 0.5613213181495667 + 0.3845539987087250 + <_> + + <_> + + + + <_>3 8 15 5 -1. + <_>8 8 5 5 3. + 0 + -0.0687864869832993 + 0.2261611968278885 + 0.5300496816635132 + <_> + + <_> + + + + <_>0 0 6 10 -1. + <_>3 0 3 10 2. + 0 + 0.0124157899990678 + 0.4075691998004913 + 0.5828812122344971 + <_> + + <_> + + + + <_>11 4 3 2 -1. + <_>12 4 1 2 3. + 0 + -4.7174817882478237e-003 + 0.2827253937721252 + 0.5267757773399353 + <_> + + <_> + + + + <_>8 12 3 8 -1. + <_>8 16 3 4 2. + 0 + 0.0381368584930897 + 0.5074741244316101 + 0.1023615971207619 + <_> + + <_> + + + + <_>8 14 5 3 -1. + <_>8 15 5 1 3. + 0 + -2.8168049175292253e-003 + 0.6169006824493408 + 0.4359692931175232 + <_> + + <_> + + + + <_>7 14 4 3 -1. + <_>7 15 4 1 3. + 0 + 8.1303603947162628e-003 + 0.4524433016777039 + 0.7606095075607300 + <_> + + <_> + + + + <_>11 4 3 2 -1. + <_>12 4 1 2 3. + 0 + 6.0056019574403763e-003 + 0.5240408778190613 + 0.1859712004661560 + <_> + + <_> + + + + <_>3 15 14 4 -1. + <_>3 15 7 2 2. + <_>10 17 7 2 2. + 0 + 0.0191393196582794 + 0.5209379196166992 + 0.2332071959972382 + <_> + + <_> + + + + <_>2 2 16 4 -1. + <_>10 2 8 2 2. + <_>2 4 8 2 2. + 0 + 0.0164457596838474 + 0.5450702905654907 + 0.3264234960079193 + <_> + + <_> + + + + <_>0 8 6 12 -1. + <_>3 8 3 12 2. + 0 + -0.0373568907380104 + 0.6999046802520752 + 0.4533241987228394 + <_> + + <_> + + + + <_>5 7 10 2 -1. + <_>5 7 5 2 2. + 0 + -0.0197279006242752 + 0.2653664946556091 + 0.5412809848785400 + <_> + + <_> + + + + <_>9 7 2 5 -1. + <_>10 7 1 5 2. + 0 + 6.6972579807043076e-003 + 0.4480566084384918 + 0.7138652205467224 + <_> + + <_> + + + + <_>13 7 6 4 -1. + <_>16 7 3 2 2. + <_>13 9 3 2 2. + 0 + 7.4457528535276651e-004 + 0.4231350123882294 + 0.5471320152282715 + <_> + + <_> + + + + <_>0 13 8 2 -1. + <_>0 14 8 1 2. + 0 + 1.1790640419349074e-003 + 0.5341702103614807 + 0.3130455017089844 + <_> + + <_> + + + + <_>13 7 6 4 -1. + <_>16 7 3 2 2. + <_>13 9 3 2 2. + 0 + 0.0349806100130081 + 0.5118659734725952 + 0.3430530130863190 + <_> + + <_> + + + + <_>1 7 6 4 -1. + <_>1 7 3 2 2. + <_>4 9 3 2 2. + 0 + 5.6859792675822973e-004 + 0.3532187044620514 + 0.5468639731407166 + <_> + + <_> + + + + <_>12 6 1 12 -1. + <_>12 12 1 6 2. + 0 + -0.0113406497985125 + 0.2842353880405426 + 0.5348700881004334 + <_> + + <_> + + + + <_>9 5 2 6 -1. + <_>10 5 1 6 2. + 0 + -6.6228108480572701e-003 + 0.6883640289306641 + 0.4492664933204651 + <_> + + <_> + + + + <_>14 12 2 3 -1. + <_>14 13 2 1 3. + 0 + -8.0160330981016159e-003 + 0.1709893941879273 + 0.5224308967590332 + <_> + + <_> + + + + <_>4 12 2 3 -1. + <_>4 13 2 1 3. + 0 + 1.4206819469109178e-003 + 0.5290846228599548 + 0.2993383109569550 + <_> + + <_> + + + + <_>8 12 4 3 -1. + <_>8 13 4 1 3. + 0 + -2.7801711112260818e-003 + 0.6498854160308838 + 0.4460499882698059 + <_> + + <_> + + + + <_>5 2 2 4 -1. + <_>5 2 1 2 2. + <_>6 4 1 2 2. + 0 + -1.4747589593753219e-003 + 0.3260438144207001 + 0.5388113260269165 + <_> + + <_> + + + + <_>5 5 11 3 -1. + <_>5 6 11 1 3. + 0 + -0.0238303393125534 + 0.7528941035270691 + 0.4801219999790192 + <_> + + <_> + + + + <_>7 6 4 12 -1. + <_>7 12 4 6 2. + 0 + 6.9369790144264698e-003 + 0.5335165858268738 + 0.3261427879333496 + <_> + + <_> + + + + <_>12 13 8 5 -1. + <_>12 13 4 5 2. + 0 + 8.2806255668401718e-003 + 0.4580394029617310 + 0.5737829804420471 + <_> + + <_> + + + + <_>7 6 1 12 -1. + <_>7 12 1 6 2. + 0 + -0.0104395002126694 + 0.2592320144176483 + 0.5233827829360962 + 34.5541114807128910 + 8 + -1 + <_> + + + <_> + + <_> + + + + <_>1 2 6 3 -1. + <_>4 2 3 3 2. + 0 + 7.2006587870419025e-003 + 0.3258886039257050 + 0.6849808096885681 + <_> + + <_> + + + + <_>9 5 6 10 -1. + <_>12 5 3 5 2. + <_>9 10 3 5 2. + 0 + -2.8593589086085558e-003 + 0.5838881134986877 + 0.2537829875946045 + <_> + + <_> + + + + <_>5 5 8 12 -1. + <_>5 5 4 6 2. + <_>9 11 4 6 2. + 0 + 6.8580528022721410e-004 + 0.5708081722259522 + 0.2812424004077911 + <_> + + <_> + + + + <_>0 7 20 6 -1. + <_>0 9 20 2 3. + 0 + 7.9580191522836685e-003 + 0.2501051127910614 + 0.5544260740280151 + <_> + + <_> + + + + <_>4 2 2 2 -1. + <_>4 3 2 1 2. + 0 + -1.2124150525778532e-003 + 0.2385368049144745 + 0.5433350205421448 + <_> + + <_> + + + + <_>4 18 12 2 -1. + <_>8 18 4 2 3. + 0 + 7.9426132142543793e-003 + 0.3955070972442627 + 0.6220757961273193 + <_> + + <_> + + + + <_>7 4 4 16 -1. + <_>7 12 4 8 2. + 0 + 2.4630590341985226e-003 + 0.5639708042144775 + 0.2992357909679413 + <_> + + <_> + + + + <_>7 6 7 8 -1. + <_>7 10 7 4 2. + 0 + -6.0396599583327770e-003 + 0.2186512947082520 + 0.5411676764488220 + <_> + + <_> + + + + <_>6 3 3 1 -1. + <_>7 3 1 1 3. + 0 + -1.2988339876756072e-003 + 0.2350706011056900 + 0.5364584922790527 + <_> + + <_> + + + + <_>11 15 2 4 -1. + <_>11 17 2 2 2. + 0 + 2.2299369447864592e-004 + 0.3804112970829010 + 0.5729606151580811 + <_> + + <_> + + + + <_>3 5 4 8 -1. + <_>3 9 4 4 2. + 0 + 1.4654280385002494e-003 + 0.2510167956352234 + 0.5258268713951111 + <_> + + <_> + + + + <_>7 1 6 12 -1. + <_>7 7 6 6 2. + 0 + -8.1210042117163539e-004 + 0.5992823839187622 + 0.3851158916950226 + <_> + + <_> + + + + <_>4 6 6 2 -1. + <_>6 6 2 2 3. + 0 + -1.3836020370945334e-003 + 0.5681396126747131 + 0.3636586964130402 + <_> + + <_> + + + + <_>16 4 4 6 -1. + <_>16 6 4 2 3. + 0 + -0.0279364492744207 + 0.1491317003965378 + 0.5377560257911682 + <_> + + <_> + + + + <_>3 3 5 2 -1. + <_>3 4 5 1 2. + 0 + -4.6919551095925272e-004 + 0.3692429959774017 + 0.5572484731674194 + <_> + + <_> + + + + <_>9 11 2 3 -1. + <_>9 12 2 1 3. + 0 + -4.9829659983515739e-003 + 0.6758509278297424 + 0.4532504081726074 + <_> + + <_> + + + + <_>2 16 4 2 -1. + <_>2 17 4 1 2. + 0 + 1.8815309740602970e-003 + 0.5368022918701172 + 0.2932539880275726 + <_> + + <_> + + + + <_>7 13 6 6 -1. + <_>10 13 3 3 2. + <_>7 16 3 3 2. + 0 + -0.0190675500780344 + 0.1649377048015595 + 0.5330067276954651 + <_> + + <_> + + + + <_>7 0 3 4 -1. + <_>8 0 1 4 3. + 0 + -4.6906559728085995e-003 + 0.1963925957679749 + 0.5119361877441406 + <_> + + <_> + + + + <_>8 15 4 3 -1. + <_>8 16 4 1 3. + 0 + 5.9777139686048031e-003 + 0.4671171903610230 + 0.7008398175239563 + <_> + + <_> + + + + <_>0 4 4 6 -1. + <_>0 6 4 2 3. + 0 + -0.0333031304180622 + 0.1155416965484619 + 0.5104162096977234 + <_> + + <_> + + + + <_>5 6 12 3 -1. + <_>9 6 4 3 3. + 0 + 0.0907441079616547 + 0.5149660110473633 + 0.1306173056364059 + <_> + + <_> + + + + <_>7 6 6 14 -1. + <_>9 6 2 14 3. + 0 + 9.3555898638442159e-004 + 0.3605481088161469 + 0.5439859032630920 + <_> + + <_> + + + + <_>9 7 3 3 -1. + <_>10 7 1 3 3. + 0 + 0.0149016501381993 + 0.4886212050914764 + 0.7687569856643677 + <_> + + <_> + + + + <_>6 12 2 4 -1. + <_>6 14 2 2 2. + 0 + 6.1594118596985936e-004 + 0.5356813073158264 + 0.3240939080715179 + <_> + + <_> + + + + <_>10 12 7 6 -1. + <_>10 14 7 2 3. + 0 + -0.0506709888577461 + 0.1848621964454651 + 0.5230404138565064 + <_> + + <_> + + + + <_>1 0 15 2 -1. + <_>1 1 15 1 2. + 0 + 6.8665749859064817e-004 + 0.3840579986572266 + 0.5517945885658264 + <_> + + <_> + + + + <_>14 0 6 6 -1. + <_>14 0 3 6 2. + 0 + 8.3712432533502579e-003 + 0.4288564026355743 + 0.6131753921508789 + <_> + + <_> + + + + <_>5 3 3 1 -1. + <_>6 3 1 1 3. + 0 + -1.2953069526702166e-003 + 0.2913674116134644 + 0.5280737876892090 + <_> + + <_> + + + + <_>14 0 6 6 -1. + <_>14 0 3 6 2. + 0 + -0.0419416800141335 + 0.7554799914360046 + 0.4856030941009522 + <_> + + <_> + + + + <_>0 3 20 10 -1. + <_>0 8 20 5 2. + 0 + -0.0235293805599213 + 0.2838279902935028 + 0.5256081223487854 + <_> + + <_> + + + + <_>14 0 6 6 -1. + <_>14 0 3 6 2. + 0 + 0.0408574491739273 + 0.4870935082435608 + 0.6277297139167786 + <_> + + <_> + + + + <_>0 0 6 6 -1. + <_>3 0 3 6 2. + 0 + -0.0254068691283464 + 0.7099707722663879 + 0.4575029015541077 + <_> + + <_> + + + + <_>19 15 1 2 -1. + <_>19 16 1 1 2. + 0 + -4.1415440500713885e-004 + 0.4030886888504028 + 0.5469412207603455 + <_> + + <_> + + + + <_>0 2 4 8 -1. + <_>2 2 2 8 2. + 0 + 0.0218241196125746 + 0.4502024054527283 + 0.6768701076507568 + <_> + + <_> + + + + <_>2 1 18 4 -1. + <_>11 1 9 2 2. + <_>2 3 9 2 2. + 0 + 0.0141140399500728 + 0.5442860722541809 + 0.3791700005531311 + <_> + + <_> + + + + <_>8 12 1 2 -1. + <_>8 13 1 1 2. + 0 + 6.7214590671937913e-005 + 0.4200463891029358 + 0.5873476266860962 + <_> + + <_> + + + + <_>5 2 10 6 -1. + <_>10 2 5 3 2. + <_>5 5 5 3 2. + 0 + -7.9417638480663300e-003 + 0.3792561888694763 + 0.5585265755653381 + <_> + + <_> + + + + <_>9 7 2 4 -1. + <_>10 7 1 4 2. + 0 + -7.2144409641623497e-003 + 0.7253103852272034 + 0.4603548943996429 + <_> + + <_> + + + + <_>9 7 3 3 -1. + <_>10 7 1 3 3. + 0 + 2.5817339774221182e-003 + 0.4693301916122437 + 0.5900238752365112 + <_> + + <_> + + + + <_>4 5 12 8 -1. + <_>8 5 4 8 3. + 0 + 0.1340931951999664 + 0.5149213075637817 + 0.1808844953775406 + <_> + + <_> + + + + <_>15 15 4 3 -1. + <_>15 16 4 1 3. + 0 + 2.2962710354477167e-003 + 0.5399743914604187 + 0.3717867136001587 + <_> + + <_> + + + + <_>8 18 3 1 -1. + <_>9 18 1 1 3. + 0 + -2.1575849968940020e-003 + 0.2408495992422104 + 0.5148863792419434 + <_> + + <_> + + + + <_>9 13 4 3 -1. + <_>9 14 4 1 3. + 0 + -4.9196188338100910e-003 + 0.6573588252067566 + 0.4738740026950836 + <_> + + <_> + + + + <_>7 13 4 3 -1. + <_>7 14 4 1 3. + 0 + 1.6267469618469477e-003 + 0.4192821979522705 + 0.6303114295005798 + <_> + + <_> + + + + <_>19 15 1 2 -1. + <_>19 16 1 1 2. + 0 + 3.3413388882763684e-004 + 0.5540298223495483 + 0.3702101111412048 + <_> + + <_> + + + + <_>0 15 8 4 -1. + <_>0 17 8 2 2. + 0 + -0.0266980808228254 + 0.1710917949676514 + 0.5101410746574402 + <_> + + <_> + + + + <_>9 3 6 4 -1. + <_>11 3 2 4 3. + 0 + -0.0305618792772293 + 0.1904218047857285 + 0.5168793797492981 + <_> + + <_> + + + + <_>8 14 4 3 -1. + <_>8 15 4 1 3. + 0 + 2.8511548880487680e-003 + 0.4447506964206696 + 0.6313853859901428 + <_> + + <_> + + + + <_>3 14 14 6 -1. + <_>3 16 14 2 3. + 0 + -0.0362114794552326 + 0.2490727007389069 + 0.5377349257469177 + <_> + + <_> + + + + <_>6 3 6 6 -1. + <_>6 6 6 3 2. + 0 + -2.4115189444273710e-003 + 0.5381243228912354 + 0.3664236962795258 + <_> + + <_> + + + + <_>5 11 10 6 -1. + <_>5 14 10 3 2. + 0 + -7.7253201743587852e-004 + 0.5530232191085815 + 0.3541550040245056 + <_> + + <_> + + + + <_>3 10 3 4 -1. + <_>4 10 1 4 3. + 0 + 2.9481729143299162e-004 + 0.4132699072360992 + 0.5667243003845215 + <_> + + <_> + + + + <_>13 9 2 2 -1. + <_>13 9 1 2 2. + 0 + -6.2334560789167881e-003 + 0.0987872332334518 + 0.5198668837547302 + <_> + + <_> + + + + <_>5 3 6 4 -1. + <_>7 3 2 4 3. + 0 + -0.0262747295200825 + 0.0911274924874306 + 0.5028107166290283 + <_> + + <_> + + + + <_>9 7 3 3 -1. + <_>10 7 1 3 3. + 0 + 5.3212260827422142e-003 + 0.4726648926734924 + 0.6222720742225647 + <_> + + <_> + + + + <_>2 12 2 3 -1. + <_>2 13 2 1 3. + 0 + -4.1129058226943016e-003 + 0.2157457023859024 + 0.5137804746627808 + <_> + + <_> + + + + <_>9 8 3 12 -1. + <_>9 12 3 4 3. + 0 + 3.2457809429615736e-003 + 0.5410770773887634 + 0.3721776902675629 + <_> + + <_> + + + + <_>3 14 4 6 -1. + <_>3 14 2 3 2. + <_>5 17 2 3 2. + 0 + -0.0163597092032433 + 0.7787874937057495 + 0.4685291945934296 + <_> + + <_> + + + + <_>16 15 2 2 -1. + <_>16 16 2 1 2. + 0 + 3.2166109303943813e-004 + 0.5478987097740173 + 0.4240373969078064 + <_> + + <_> + + + + <_>2 15 2 2 -1. + <_>2 16 2 1 2. + 0 + 6.4452440710738301e-004 + 0.5330560803413391 + 0.3501324951648712 + <_> + + <_> + + + + <_>8 12 4 3 -1. + <_>8 13 4 1 3. + 0 + -7.8909732401371002e-003 + 0.6923521161079407 + 0.4726569056510925 + <_> + + <_> + + + + <_>0 7 20 1 -1. + <_>10 7 10 1 2. + 0 + 0.0483362115919590 + 0.5055900216102600 + 0.0757492035627365 + <_> + + <_> + + + + <_>7 6 8 3 -1. + <_>7 6 4 3 2. + 0 + -7.5178127735853195e-004 + 0.3783741891384125 + 0.5538573861122131 + <_> + + <_> + + + + <_>5 7 8 2 -1. + <_>9 7 4 2 2. + 0 + -2.4953910615295172e-003 + 0.3081651031970978 + 0.5359612107276917 + <_> + + <_> + + + + <_>9 7 3 5 -1. + <_>10 7 1 5 3. + 0 + -2.2385010961443186e-003 + 0.6633958816528320 + 0.4649342894554138 + <_> + + <_> + + + + <_>8 7 3 5 -1. + <_>9 7 1 5 3. + 0 + -1.7988430336117744e-003 + 0.6596844792366028 + 0.4347187876701355 + <_> + + <_> + + + + <_>11 1 3 5 -1. + <_>12 1 1 5 3. + 0 + 8.7860915809869766e-003 + 0.5231832861900330 + 0.2315579950809479 + <_> + + <_> + + + + <_>6 2 3 6 -1. + <_>7 2 1 6 3. + 0 + 3.6715380847454071e-003 + 0.5204250216484070 + 0.2977376878261566 + <_> + + <_> + + + + <_>14 14 6 5 -1. + <_>14 14 3 5 2. + 0 + -0.0353364497423172 + 0.7238878011703491 + 0.4861505031585693 + <_> + + <_> + + + + <_>9 8 2 2 -1. + <_>9 9 2 1 2. + 0 + -6.9189240457490087e-004 + 0.3105022013187408 + 0.5229824781417847 + <_> + + <_> + + + + <_>10 7 1 3 -1. + <_>10 8 1 1 3. + 0 + -3.3946109469980001e-003 + 0.3138968050479889 + 0.5210173726081848 + <_> + + <_> + + + + <_>6 6 2 2 -1. + <_>6 6 1 1 2. + <_>7 7 1 1 2. + 0 + 9.8569283727556467e-004 + 0.4536580145359039 + 0.6585097908973694 + <_> + + <_> + + + + <_>2 11 18 4 -1. + <_>11 11 9 2 2. + <_>2 13 9 2 2. + 0 + -0.0501631014049053 + 0.1804454028606415 + 0.5198916792869568 + <_> + + <_> + + + + <_>6 6 2 2 -1. + <_>6 6 1 1 2. + <_>7 7 1 1 2. + 0 + -2.2367259953171015e-003 + 0.7255702018737793 + 0.4651359021663666 + <_> + + <_> + + + + <_>0 15 20 2 -1. + <_>0 16 20 1 2. + 0 + 7.4326287722215056e-004 + 0.4412921071052551 + 0.5898545980453491 + <_> + + <_> + + + + <_>4 14 2 3 -1. + <_>4 15 2 1 3. + 0 + -9.3485182151198387e-004 + 0.3500052988529205 + 0.5366017818450928 + <_> + + <_> + + + + <_>8 14 4 3 -1. + <_>8 15 4 1 3. + 0 + 0.0174979399889708 + 0.4912194907665253 + 0.8315284848213196 + <_> + + <_> + + + + <_>8 7 2 3 -1. + <_>8 8 2 1 3. + 0 + -1.5200000489130616e-003 + 0.3570275902748108 + 0.5370560288429260 + <_> + + <_> + + + + <_>9 10 2 3 -1. + <_>9 11 2 1 3. + 0 + 7.8003940870985389e-004 + 0.4353772103786469 + 0.5967335104942322 + 39.1072883605957030 + 9 + -1 + <_> + + + <_> + + <_> + + + + <_>5 4 10 4 -1. + <_>5 6 10 2 2. + 0 + -9.9945552647113800e-003 + 0.6162583231925964 + 0.3054533004760742 + <_> + + <_> + + + + <_>9 7 6 4 -1. + <_>12 7 3 2 2. + <_>9 9 3 2 2. + 0 + -1.1085229925811291e-003 + 0.5818294882774353 + 0.3155578076839447 + <_> + + <_> + + + + <_>4 7 3 6 -1. + <_>4 9 3 2 3. + 0 + 1.0364380432292819e-003 + 0.2552052140235901 + 0.5692911744117737 + <_> + + <_> + + + + <_>11 15 4 4 -1. + <_>13 15 2 2 2. + <_>11 17 2 2 2. + 0 + 6.8211311008781195e-004 + 0.3685089945793152 + 0.5934931039810181 + <_> + + <_> + + + + <_>7 8 4 2 -1. + <_>7 9 4 1 2. + 0 + -6.8057340104132891e-004 + 0.2332392036914825 + 0.5474792122840881 + <_> + + <_> + + + + <_>13 1 4 3 -1. + <_>13 1 2 3 2. + 0 + 2.6068789884448051e-004 + 0.3257457017898560 + 0.5667545795440674 + <_> + + <_> + + + + <_>5 15 4 4 -1. + <_>5 15 2 2 2. + <_>7 17 2 2 2. + 0 + 5.1607372006401420e-004 + 0.3744716942310333 + 0.5845472812652588 + <_> + + <_> + + + + <_>9 5 4 7 -1. + <_>9 5 2 7 2. + 0 + 8.5007521556690335e-004 + 0.3420371115207672 + 0.5522807240486145 + <_> + + <_> + + + + <_>5 6 8 3 -1. + <_>9 6 4 3 2. + 0 + -1.8607829697430134e-003 + 0.2804419994354248 + 0.5375424027442932 + <_> + + <_> + + + + <_>9 9 2 2 -1. + <_>9 10 2 1 2. + 0 + -1.5033970121294260e-003 + 0.2579050958156586 + 0.5498952269554138 + <_> + + <_> + + + + <_>7 15 5 3 -1. + <_>7 16 5 1 3. + 0 + 2.3478909861296415e-003 + 0.4175156056880951 + 0.6313710808753967 + <_> + + <_> + + + + <_>11 10 4 3 -1. + <_>11 10 2 3 2. + 0 + -2.8880240279249847e-004 + 0.5865169763565064 + 0.4052666127681732 + <_> + + <_> + + + + <_>6 9 8 10 -1. + <_>6 14 8 5 2. + 0 + 8.9405477046966553e-003 + 0.5211141109466553 + 0.2318654060363770 + <_> + + <_> + + + + <_>10 11 6 2 -1. + <_>10 11 3 2 2. + 0 + -0.0193277392536402 + 0.2753432989120483 + 0.5241525769233704 + <_> + + <_> + + + + <_>4 11 6 2 -1. + <_>7 11 3 2 2. + 0 + -2.0202060113660991e-004 + 0.5722978711128235 + 0.3677195906639099 + <_> + + <_> + + + + <_>11 3 8 1 -1. + <_>11 3 4 1 2. + 0 + 2.1179069299250841e-003 + 0.4466108083724976 + 0.5542430877685547 + <_> + + <_> + + + + <_>6 3 3 2 -1. + <_>7 3 1 2 3. + 0 + -1.7743760254234076e-003 + 0.2813253104686737 + 0.5300959944725037 + <_> + + <_> + + + + <_>14 5 6 5 -1. + <_>14 5 3 5 2. + 0 + 4.2234458960592747e-003 + 0.4399709999561310 + 0.5795428156852722 + <_> + + <_> + + + + <_>7 5 2 12 -1. + <_>7 11 2 6 2. + 0 + -0.0143752200528979 + 0.2981117963790894 + 0.5292059183120728 + <_> + + <_> + + + + <_>8 11 4 3 -1. + <_>8 12 4 1 3. + 0 + -0.0153491804376245 + 0.7705215215682983 + 0.4748171865940094 + <_> + + <_> + + + + <_>4 1 2 3 -1. + <_>5 1 1 3 2. + 0 + 1.5152279956964776e-005 + 0.3718844056129456 + 0.5576897263526917 + <_> + + <_> + + + + <_>18 3 2 6 -1. + <_>18 5 2 2 3. + 0 + -9.1293919831514359e-003 + 0.3615196049213409 + 0.5286766886711121 + <_> + + <_> + + + + <_>0 3 2 6 -1. + <_>0 5 2 2 3. + 0 + 2.2512159775942564e-003 + 0.5364704728126526 + 0.3486298024654388 + <_> + + <_> + + + + <_>9 12 2 3 -1. + <_>9 13 2 1 3. + 0 + -4.9696918576955795e-003 + 0.6927651762962341 + 0.4676836133003235 + <_> + + <_> + + + + <_>7 13 4 3 -1. + <_>7 14 4 1 3. + 0 + -0.0128290103748441 + 0.7712153792381287 + 0.4660735130310059 + <_> + + <_> + + + + <_>18 0 2 6 -1. + <_>18 2 2 2 3. + 0 + -9.3660065904259682e-003 + 0.3374983966350555 + 0.5351287722587585 + <_> + + <_> + + + + <_>0 0 2 6 -1. + <_>0 2 2 2 3. + 0 + 3.2452319283038378e-003 + 0.5325189828872681 + 0.3289610147476196 + <_> + + <_> + + + + <_>8 14 6 3 -1. + <_>8 15 6 1 3. + 0 + -0.0117235602810979 + 0.6837652921676636 + 0.4754300117492676 + <_> + + <_> + + + + <_>7 4 2 4 -1. + <_>8 4 1 4 2. + 0 + 2.9257940695970319e-005 + 0.3572087883949280 + 0.5360502004623413 + <_> + + <_> + + + + <_>8 5 4 6 -1. + <_>8 7 4 2 3. + 0 + -2.2244219508138485e-005 + 0.5541427135467529 + 0.3552064001560211 + <_> + + <_> + + + + <_>6 4 2 2 -1. + <_>7 4 1 2 2. + 0 + 5.0881509669125080e-003 + 0.5070844292640686 + 0.1256462037563324 + <_> + + <_> + + + + <_>3 14 14 4 -1. + <_>10 14 7 2 2. + <_>3 16 7 2 2. + 0 + 0.0274296794086695 + 0.5269560217857361 + 0.1625818014144898 + <_> + + <_> + + + + <_>6 15 6 2 -1. + <_>6 15 3 1 2. + <_>9 16 3 1 2. + 0 + -6.4142867922782898e-003 + 0.7145588994026184 + 0.4584197103977203 + <_> + + <_> + + + + <_>14 15 6 2 -1. + <_>14 16 6 1 2. + 0 + 3.3479959238320589e-003 + 0.5398612022399902 + 0.3494696915149689 + <_> + + <_> + + + + <_>2 12 12 8 -1. + <_>2 16 12 4 2. + 0 + -0.0826354920864105 + 0.2439192980527878 + 0.5160226225852966 + <_> + + <_> + + + + <_>7 7 7 2 -1. + <_>7 8 7 1 2. + 0 + 1.0261740535497665e-003 + 0.3886891901493073 + 0.5767908096313477 + <_> + + <_> + + + + <_>0 2 18 2 -1. + <_>0 3 18 1 2. + 0 + -1.6307090409100056e-003 + 0.3389458060264587 + 0.5347700715065002 + <_> + + <_> + + + + <_>9 6 2 5 -1. + <_>9 6 1 5 2. + 0 + 2.4546680506318808e-003 + 0.4601413905620575 + 0.6387246847152710 + <_> + + <_> + + + + <_>7 5 3 8 -1. + <_>8 5 1 8 3. + 0 + -9.9476519972085953e-004 + 0.5769879221916199 + 0.4120396077632904 + <_> + + <_> + + + + <_>9 6 3 4 -1. + <_>10 6 1 4 3. + 0 + 0.0154091902077198 + 0.4878709018230438 + 0.7089822292327881 + <_> + + <_> + + + + <_>4 13 3 2 -1. + <_>4 14 3 1 2. + 0 + 1.1784400558099151e-003 + 0.5263553261756897 + 0.2895244956016541 + <_> + + <_> + + + + <_>9 4 6 3 -1. + <_>11 4 2 3 3. + 0 + -0.0277019198983908 + 0.1498828977346420 + 0.5219606757164002 + <_> + + <_> + + + + <_>5 4 6 3 -1. + <_>7 4 2 3 3. + 0 + -0.0295053999871016 + 0.0248933192342520 + 0.4999816119670868 + <_> + + <_> + + + + <_>14 11 5 2 -1. + <_>14 12 5 1 2. + 0 + 4.5159430010244250e-004 + 0.5464622974395752 + 0.4029662907123566 + <_> + + <_> + + + + <_>1 2 6 9 -1. + <_>3 2 2 9 3. + 0 + 7.1772639639675617e-003 + 0.4271056950092316 + 0.5866296887397766 + <_> + + <_> + + + + <_>14 6 6 13 -1. + <_>14 6 3 13 2. + 0 + -0.0741820484399796 + 0.6874179244041443 + 0.4919027984142304 + <_> + + <_> + + + + <_>3 6 14 8 -1. + <_>3 6 7 4 2. + <_>10 10 7 4 2. + 0 + -0.0172541607171297 + 0.3370676040649414 + 0.5348739027976990 + <_> + + <_> + + + + <_>16 0 4 11 -1. + <_>16 0 2 11 2. + 0 + 0.0148515598848462 + 0.4626792967319489 + 0.6129904985427856 + <_> + + <_> + + + + <_>3 4 12 12 -1. + <_>3 4 6 6 2. + <_>9 10 6 6 2. + 0 + 0.0100020002573729 + 0.5346122980117798 + 0.3423453867435455 + <_> + + <_> + + + + <_>11 4 5 3 -1. + <_>11 5 5 1 3. + 0 + 2.0138120744377375e-003 + 0.4643830060958862 + 0.5824304223060608 + <_> + + <_> + + + + <_>4 11 4 2 -1. + <_>4 12 4 1 2. + 0 + 1.5135470312088728e-003 + 0.5196396112442017 + 0.2856149971485138 + <_> + + <_> + + + + <_>10 7 2 2 -1. + <_>10 7 1 2 2. + 0 + 3.1381431035697460e-003 + 0.4838162958621979 + 0.5958529710769653 + <_> + + <_> + + + + <_>8 7 2 2 -1. + <_>9 7 1 2 2. + 0 + -5.1450440660119057e-003 + 0.8920302987098694 + 0.4741412103176117 + <_> + + <_> + + + + <_>9 17 3 2 -1. + <_>10 17 1 2 3. + 0 + -4.4736708514392376e-003 + 0.2033942937850952 + 0.5337278842926025 + <_> + + <_> + + + + <_>5 6 3 3 -1. + <_>5 7 3 1 3. + 0 + 1.9628470763564110e-003 + 0.4571633934974670 + 0.6725863218307495 + <_> + + <_> + + + + <_>10 0 3 3 -1. + <_>11 0 1 3 3. + 0 + 5.4260450415313244e-003 + 0.5271108150482178 + 0.2845670878887177 + <_> + + <_> + + + + <_>5 6 6 2 -1. + <_>5 6 3 1 2. + <_>8 7 3 1 2. + 0 + 4.9611460417509079e-004 + 0.4138312935829163 + 0.5718597769737244 + <_> + + <_> + + + + <_>12 16 4 3 -1. + <_>12 17 4 1 3. + 0 + 9.3728788197040558e-003 + 0.5225151181221008 + 0.2804847061634064 + <_> + + <_> + + + + <_>3 12 3 2 -1. + <_>3 13 3 1 2. + 0 + 6.0500897234305739e-004 + 0.5236768722534180 + 0.3314523994922638 + <_> + + <_> + + + + <_>9 12 3 2 -1. + <_>9 13 3 1 2. + 0 + 5.6792551185935736e-004 + 0.4531059861183167 + 0.6276971101760864 + <_> + + <_> + + + + <_>1 11 16 4 -1. + <_>1 11 8 2 2. + <_>9 13 8 2 2. + 0 + 0.0246443394571543 + 0.5130851864814758 + 0.2017143964767456 + <_> + + <_> + + + + <_>12 4 3 3 -1. + <_>12 5 3 1 3. + 0 + -0.0102904504165053 + 0.7786595225334168 + 0.4876641035079956 + <_> + + <_> + + + + <_>4 4 5 3 -1. + <_>4 5 5 1 3. + 0 + 2.0629419013857841e-003 + 0.4288598895072937 + 0.5881264209747315 + <_> + + <_> + + + + <_>12 16 4 3 -1. + <_>12 17 4 1 3. + 0 + -5.0519481301307678e-003 + 0.3523977994918823 + 0.5286008715629578 + <_> + + <_> + + + + <_>5 4 3 3 -1. + <_>5 5 3 1 3. + 0 + -5.7692620903253555e-003 + 0.6841086149215698 + 0.4588094055652618 + <_> + + <_> + + + + <_>9 0 2 2 -1. + <_>9 1 2 1 2. + 0 + -4.5789941214025021e-004 + 0.3565520048141480 + 0.5485978126525879 + <_> + + <_> + + + + <_>8 9 4 2 -1. + <_>8 10 4 1 2. + 0 + -7.5918837683275342e-004 + 0.3368793129920960 + 0.5254197120666504 + <_> + + <_> + + + + <_>8 8 4 3 -1. + <_>8 9 4 1 3. + 0 + -1.7737259622663260e-003 + 0.3422161042690277 + 0.5454015135765076 + <_> + + <_> + + + + <_>0 13 6 3 -1. + <_>2 13 2 3 3. + 0 + -8.5610467940568924e-003 + 0.6533612012863159 + 0.4485856890678406 + <_> + + <_> + + + + <_>16 14 3 2 -1. + <_>16 15 3 1 2. + 0 + 1.7277270089834929e-003 + 0.5307580232620239 + 0.3925352990627289 + <_> + + <_> + + + + <_>1 18 18 2 -1. + <_>7 18 6 2 3. + 0 + -0.0281996093690395 + 0.6857458949089050 + 0.4588584005832672 + <_> + + <_> + + + + <_>16 14 3 2 -1. + <_>16 15 3 1 2. + 0 + -1.7781109781935811e-003 + 0.4037851095199585 + 0.5369856953620911 + <_> + + <_> + + + + <_>1 14 3 2 -1. + <_>1 15 3 1 2. + 0 + 3.3177141449414194e-004 + 0.5399798750877380 + 0.3705750107765198 + <_> + + <_> + + + + <_>7 14 6 3 -1. + <_>7 15 6 1 3. + 0 + 2.6385399978607893e-003 + 0.4665437042713165 + 0.6452730894088745 + <_> + + <_> + + + + <_>5 14 8 3 -1. + <_>5 15 8 1 3. + 0 + -2.1183069329708815e-003 + 0.5914781093597412 + 0.4064677059650421 + <_> + + <_> + + + + <_>10 6 4 14 -1. + <_>10 6 2 14 2. + 0 + -0.0147732896730304 + 0.3642038106918335 + 0.5294762849807739 + <_> + + <_> + + + + <_>6 6 4 14 -1. + <_>8 6 2 14 2. + 0 + -0.0168154407292604 + 0.2664231956005096 + 0.5144972801208496 + <_> + + <_> + + + + <_>13 5 2 3 -1. + <_>13 6 2 1 3. + 0 + -6.3370140269398689e-003 + 0.6779531240463257 + 0.4852097928524017 + <_> + + <_> + + + + <_>7 16 6 1 -1. + <_>9 16 2 1 3. + 0 + -4.4560048991115764e-005 + 0.5613964796066284 + 0.4153054058551788 + <_> + + <_> + + + + <_>9 12 3 3 -1. + <_>9 13 3 1 3. + 0 + -1.0240620467811823e-003 + 0.5964478254318237 + 0.4566304087638855 + <_> + + <_> + + + + <_>7 0 3 3 -1. + <_>8 0 1 3 3. + 0 + -2.3161689750850201e-003 + 0.2976115047931671 + 0.5188159942626953 + <_> + + <_> + + + + <_>4 0 16 18 -1. + <_>4 9 16 9 2. + 0 + 0.5321757197380066 + 0.5187839269638062 + 0.2202631980180740 + <_> + + <_> + + + + <_>1 1 16 14 -1. + <_>1 8 16 7 2. + 0 + -0.1664305031299591 + 0.1866022944450378 + 0.5060343146324158 + <_> + + <_> + + + + <_>3 9 15 4 -1. + <_>8 9 5 4 3. + 0 + 0.1125352978706360 + 0.5212125182151794 + 0.1185022965073586 + <_> + + <_> + + + + <_>6 12 7 3 -1. + <_>6 13 7 1 3. + 0 + 9.3046864494681358e-003 + 0.4589937031269074 + 0.6826149225234985 + <_> + + <_> + + + + <_>14 15 2 3 -1. + <_>14 16 2 1 3. + 0 + -4.6255099587142467e-003 + 0.3079940974712372 + 0.5225008726119995 + <_> + + <_> + + + + <_>2 3 16 14 -1. + <_>2 3 8 7 2. + <_>10 10 8 7 2. + 0 + -0.1111646965146065 + 0.2101044058799744 + 0.5080801844596863 + <_> + + <_> + + + + <_>16 2 4 18 -1. + <_>18 2 2 9 2. + <_>16 11 2 9 2. + 0 + -0.0108884396031499 + 0.5765355229377747 + 0.4790464043617249 + <_> + + <_> + + + + <_>4 15 2 3 -1. + <_>4 16 2 1 3. + 0 + 5.8564301580190659e-003 + 0.5065100193023682 + 0.1563598960638046 + <_> + + <_> + + + + <_>16 2 4 18 -1. + <_>18 2 2 9 2. + <_>16 11 2 9 2. + 0 + 0.0548543892800808 + 0.4966914951801300 + 0.7230510711669922 + <_> + + <_> + + + + <_>1 1 8 3 -1. + <_>1 2 8 1 3. + 0 + -0.0111973397433758 + 0.2194979041814804 + 0.5098798274993897 + <_> + + <_> + + + + <_>8 11 4 3 -1. + <_>8 12 4 1 3. + 0 + 4.4069071300327778e-003 + 0.4778401851654053 + 0.6770902872085571 + <_> + + <_> + + + + <_>5 11 5 9 -1. + <_>5 14 5 3 3. + 0 + -0.0636652931571007 + 0.1936362981796265 + 0.5081024169921875 + <_> + + <_> + + + + <_>16 0 4 11 -1. + <_>16 0 2 11 2. + 0 + -9.8081491887569427e-003 + 0.5999063253402710 + 0.4810341000556946 + <_> + + <_> + + + + <_>7 0 6 1 -1. + <_>9 0 2 1 3. + 0 + -2.1717099007219076e-003 + 0.3338333964347839 + 0.5235472917556763 + <_> + + <_> + + + + <_>16 3 3 7 -1. + <_>17 3 1 7 3. + 0 + -0.0133155202493072 + 0.6617069840431213 + 0.4919213056564331 + <_> + + <_> + + + + <_>1 3 3 7 -1. + <_>2 3 1 7 3. + 0 + 2.5442079640924931e-003 + 0.4488744139671326 + 0.6082184910774231 + <_> + + <_> + + + + <_>7 8 6 12 -1. + <_>7 12 6 4 3. + 0 + 0.0120378397405148 + 0.5409392118453980 + 0.3292432129383087 + <_> + + <_> + + + + <_>0 0 4 11 -1. + <_>2 0 2 11 2. + 0 + -0.0207010507583618 + 0.6819120049476624 + 0.4594995975494385 + <_> + + <_> + + + + <_>14 0 6 20 -1. + <_>14 0 3 20 2. + 0 + 0.0276082791388035 + 0.4630792140960693 + 0.5767282843589783 + <_> + + <_> + + + + <_>0 3 1 2 -1. + <_>0 4 1 1 2. + 0 + 1.2370620388537645e-003 + 0.5165379047393799 + 0.2635016143321991 + <_> + + <_> + + + + <_>5 5 10 8 -1. + <_>10 5 5 4 2. + <_>5 9 5 4 2. + 0 + -0.0376693382859230 + 0.2536393105983734 + 0.5278980135917664 + <_> + + <_> + + + + <_>4 7 12 4 -1. + <_>4 7 6 2 2. + <_>10 9 6 2 2. + 0 + -1.8057259730994701e-003 + 0.3985156118869782 + 0.5517500042915344 + 50.6104812622070310 + 10 + -1 + <_> + + + <_> + + <_> + + + + <_>2 1 6 4 -1. + <_>5 1 3 4 2. + 0 + 4.4299028813838959e-003 + 0.2891018092632294 + 0.6335226297378540 + <_> + + <_> + + + + <_>9 7 6 4 -1. + <_>12 7 3 2 2. + <_>9 9 3 2 2. + 0 + -2.3813319858163595e-003 + 0.6211789250373840 + 0.3477487862110138 + <_> + + <_> + + + + <_>5 6 2 6 -1. + <_>5 9 2 3 2. + 0 + 2.2915711160749197e-003 + 0.2254412025213242 + 0.5582118034362793 + <_> + + <_> + + + + <_>9 16 6 4 -1. + <_>12 16 3 2 2. + <_>9 18 3 2 2. + 0 + 9.9457940086722374e-004 + 0.3711710870265961 + 0.5930070877075195 + <_> + + <_> + + + + <_>9 4 2 12 -1. + <_>9 10 2 6 2. + 0 + 7.7164667891338468e-004 + 0.5651720166206360 + 0.3347995877265930 + <_> + + <_> + + + + <_>7 1 6 18 -1. + <_>9 1 2 18 3. + 0 + -1.1386410333216190e-003 + 0.3069126009941101 + 0.5508630871772766 + <_> + + <_> + + + + <_>4 12 12 2 -1. + <_>8 12 4 2 3. + 0 + -1.6403039626311511e-004 + 0.5762827992439270 + 0.3699047863483429 + <_> + + <_> + + + + <_>8 8 6 2 -1. + <_>8 9 6 1 2. + 0 + 2.9793529392918572e-005 + 0.2644244134426117 + 0.5437911152839661 + <_> + + <_> + + + + <_>8 0 3 6 -1. + <_>9 0 1 6 3. + 0 + 8.5774902254343033e-003 + 0.5051138997077942 + 0.1795724928379059 + <_> + + <_> + + + + <_>11 18 3 2 -1. + <_>11 19 3 1 2. + 0 + -2.6032689493149519e-004 + 0.5826969146728516 + 0.4446826875209808 + <_> + + <_> + + + + <_>1 1 17 4 -1. + <_>1 3 17 2 2. + 0 + -6.1404630541801453e-003 + 0.3113852143287659 + 0.5346971750259399 + <_> + + <_> + + + + <_>11 8 4 12 -1. + <_>11 8 2 12 2. + 0 + -0.0230869501829147 + 0.3277946114540100 + 0.5331197977066040 + <_> + + <_> + + + + <_>8 14 4 3 -1. + <_>8 15 4 1 3. + 0 + -0.0142436502501369 + 0.7381709814071655 + 0.4588063061237335 + <_> + + <_> + + + + <_>12 3 2 17 -1. + <_>12 3 1 17 2. + 0 + 0.0194871295243502 + 0.5256630778312683 + 0.2274471968412399 + <_> + + <_> + + + + <_>4 7 6 1 -1. + <_>6 7 2 1 3. + 0 + -9.6681108698248863e-004 + 0.5511230826377869 + 0.3815006911754608 + <_> + + <_> + + + + <_>18 3 2 3 -1. + <_>18 4 2 1 3. + 0 + 3.1474709976464510e-003 + 0.5425636768341065 + 0.2543726861476898 + <_> + + <_> + + + + <_>8 4 3 4 -1. + <_>8 6 3 2 2. + 0 + -1.8026070029009134e-004 + 0.5380191802978516 + 0.3406304121017456 + <_> + + <_> + + + + <_>4 5 12 10 -1. + <_>4 10 12 5 2. + 0 + -6.0266260989010334e-003 + 0.3035801947116852 + 0.5420572161674500 + <_> + + <_> + + + + <_>5 18 4 2 -1. + <_>7 18 2 2 2. + 0 + 4.4462960795499384e-004 + 0.3990997076034546 + 0.5660110116004944 + <_> + + <_> + + + + <_>17 2 3 6 -1. + <_>17 4 3 2 3. + 0 + 2.2609760053455830e-003 + 0.5562806725502014 + 0.3940688073635101 + <_> + + <_> + + + + <_>7 7 6 6 -1. + <_>9 7 2 6 3. + 0 + 0.0511330589652061 + 0.4609653949737549 + 0.7118561863899231 + <_> + + <_> + + + + <_>17 2 3 6 -1. + <_>17 4 3 2 3. + 0 + -0.0177863091230392 + 0.2316166013479233 + 0.5322144031524658 + <_> + + <_> + + + + <_>8 0 3 4 -1. + <_>9 0 1 4 3. + 0 + -4.9679628573358059e-003 + 0.2330771982669830 + 0.5122029185295105 + <_> + + <_> + + + + <_>9 14 2 3 -1. + <_>9 15 2 1 3. + 0 + 2.0667689386755228e-003 + 0.4657444059848785 + 0.6455488204956055 + <_> + + <_> + + + + <_>0 12 6 3 -1. + <_>0 13 6 1 3. + 0 + 7.4413768015801907e-003 + 0.5154392123222351 + 0.2361633926630020 + <_> + + <_> + + + + <_>8 14 4 3 -1. + <_>8 15 4 1 3. + 0 + -3.6277279723435640e-003 + 0.6219773292541504 + 0.4476661086082459 + <_> + + <_> + + + + <_>3 12 2 3 -1. + <_>3 13 2 1 3. + 0 + -5.3530759178102016e-003 + 0.1837355047464371 + 0.5102208256721497 + <_> + + <_> + + + + <_>5 6 12 7 -1. + <_>9 6 4 7 3. + 0 + 0.1453091949224472 + 0.5145987272262573 + 0.1535930931568146 + <_> + + <_> + + + + <_>0 2 3 6 -1. + <_>0 4 3 2 3. + 0 + 2.4394490756094456e-003 + 0.5343660116195679 + 0.3624661862850189 + <_> + + <_> + + + + <_>14 6 1 3 -1. + <_>14 7 1 1 3. + 0 + -3.1283390708267689e-003 + 0.6215007901191711 + 0.4845592081546783 + <_> + + <_> + + + + <_>2 0 3 14 -1. + <_>3 0 1 14 3. + 0 + 1.7940260004252195e-003 + 0.4299261868000031 + 0.5824198126792908 + <_> + + <_> + + + + <_>12 14 5 6 -1. + <_>12 16 5 2 3. + 0 + 0.0362538211047649 + 0.5260334014892578 + 0.1439467966556549 + <_> + + <_> + + + + <_>4 14 5 6 -1. + <_>4 16 5 2 3. + 0 + -5.1746722310781479e-003 + 0.3506538867950440 + 0.5287045240402222 + <_> + + <_> + + + + <_>11 10 2 2 -1. + <_>12 10 1 1 2. + <_>11 11 1 1 2. + 0 + 6.5383297624066472e-004 + 0.4809640944004059 + 0.6122040152549744 + <_> + + <_> + + + + <_>5 0 3 14 -1. + <_>6 0 1 14 3. + 0 + -0.0264802295714617 + 0.1139362007379532 + 0.5045586228370667 + <_> + + <_> + + + + <_>10 15 2 3 -1. + <_>10 16 2 1 3. + 0 + -3.0440660193562508e-003 + 0.6352095007896423 + 0.4794734120368958 + <_> + + <_> + + + + <_>0 2 2 3 -1. + <_>0 3 2 1 3. + 0 + 3.6993520334362984e-003 + 0.5131118297576904 + 0.2498510926961899 + <_> + + <_> + + + + <_>5 11 12 6 -1. + <_>5 14 12 3 2. + 0 + -3.6762931267730892e-004 + 0.5421394705772400 + 0.3709532022476196 + <_> + + <_> + + + + <_>6 11 3 9 -1. + <_>6 14 3 3 3. + 0 + -0.0413822606205940 + 0.1894959956407547 + 0.5081691741943359 + <_> + + <_> + + + + <_>11 10 2 2 -1. + <_>12 10 1 1 2. + <_>11 11 1 1 2. + 0 + -1.0532729793339968e-003 + 0.6454367041587830 + 0.4783608913421631 + <_> + + <_> + + + + <_>5 6 1 3 -1. + <_>5 7 1 1 3. + 0 + -2.1648600231856108e-003 + 0.6215031147003174 + 0.4499826133251190 + <_> + + <_> + + + + <_>4 9 13 3 -1. + <_>4 10 13 1 3. + 0 + -5.6747748749330640e-004 + 0.3712610900402069 + 0.5419334769248962 + <_> + + <_> + + + + <_>1 7 15 6 -1. + <_>6 7 5 6 3. + 0 + 0.1737584024667740 + 0.5023643970489502 + 0.1215742006897926 + <_> + + <_> + + + + <_>4 5 12 6 -1. + <_>8 5 4 6 3. + 0 + -2.9049699660390615e-003 + 0.3240267932415009 + 0.5381883978843689 + <_> + + <_> + + + + <_>8 10 4 3 -1. + <_>8 11 4 1 3. + 0 + 1.2299539521336555e-003 + 0.4165507853031158 + 0.5703486204147339 + <_> + + <_> + + + + <_>15 14 1 3 -1. + <_>15 15 1 1 3. + 0 + -5.4329237900674343e-004 + 0.3854042887687683 + 0.5547549128532410 + <_> + + <_> + + + + <_>1 11 5 3 -1. + <_>1 12 5 1 3. + 0 + -8.3297258242964745e-003 + 0.2204494029283524 + 0.5097082853317261 + <_> + + <_> + + + + <_>7 1 7 12 -1. + <_>7 7 7 6 2. + 0 + -1.0417630255687982e-004 + 0.5607066154479981 + 0.4303036034107208 + <_> + + <_> + + + + <_>0 1 6 10 -1. + <_>0 1 3 5 2. + <_>3 6 3 5 2. + 0 + 0.0312047004699707 + 0.4621657133102417 + 0.6982004046440125 + <_> + + <_> + + + + <_>16 1 4 3 -1. + <_>16 2 4 1 3. + 0 + 7.8943502157926559e-003 + 0.5269594192504883 + 0.2269068062305450 + <_> + + <_> + + + + <_>5 5 2 3 -1. + <_>5 6 2 1 3. + 0 + -4.3645310215651989e-003 + 0.6359223127365112 + 0.4537956118583679 + <_> + + <_> + + + + <_>12 2 3 5 -1. + <_>13 2 1 5 3. + 0 + 7.6793059706687927e-003 + 0.5274767875671387 + 0.2740483880043030 + <_> + + <_> + + + + <_>0 3 4 6 -1. + <_>0 5 4 2 3. + 0 + -0.0254311393946409 + 0.2038519978523254 + 0.5071732997894287 + <_> + + <_> + + + + <_>8 12 4 2 -1. + <_>8 13 4 1 2. + 0 + 8.2000601105391979e-004 + 0.4587455093860626 + 0.6119868159294128 + <_> + + <_> + + + + <_>8 18 3 1 -1. + <_>9 18 1 1 3. + 0 + 2.9284600168466568e-003 + 0.5071274042129517 + 0.2028204947710037 + <_> + + <_> + + + + <_>11 10 2 2 -1. + <_>12 10 1 1 2. + <_>11 11 1 1 2. + 0 + 4.5256470912136137e-005 + 0.4812104105949402 + 0.5430821776390076 + <_> + + <_> + + + + <_>7 10 2 2 -1. + <_>7 10 1 1 2. + <_>8 11 1 1 2. + 0 + 1.3158309739083052e-003 + 0.4625813961029053 + 0.6779323220252991 + <_> + + <_> + + + + <_>11 11 4 4 -1. + <_>11 13 4 2 2. + 0 + 1.5870389761403203e-003 + 0.5386291742324829 + 0.3431465029716492 + <_> + + <_> + + + + <_>8 12 3 8 -1. + <_>9 12 1 8 3. + 0 + -0.0215396601706743 + 0.0259425006806850 + 0.5003222823143005 + <_> + + <_> + + + + <_>13 0 6 3 -1. + <_>13 1 6 1 3. + 0 + 0.0143344802781940 + 0.5202844738960266 + 0.1590632945299149 + <_> + + <_> + + + + <_>8 8 3 4 -1. + <_>9 8 1 4 3. + 0 + -8.3881383761763573e-003 + 0.7282481193542481 + 0.4648044109344482 + <_> + + <_> + + + + <_>5 7 10 10 -1. + <_>10 7 5 5 2. + <_>5 12 5 5 2. + 0 + 9.1906841844320297e-003 + 0.5562356710433960 + 0.3923191130161285 + <_> + + <_> + + + + <_>3 18 8 2 -1. + <_>3 18 4 1 2. + <_>7 19 4 1 2. + 0 + -5.8453059755265713e-003 + 0.6803392767906189 + 0.4629127979278565 + <_> + + <_> + + + + <_>10 2 6 8 -1. + <_>12 2 2 8 3. + 0 + -0.0547077991068363 + 0.2561671137809753 + 0.5206125974655151 + <_> + + <_> + + + + <_>4 2 6 8 -1. + <_>6 2 2 8 3. + 0 + 9.1142775490880013e-003 + 0.5189620256423950 + 0.3053877055644989 + <_> + + <_> + + + + <_>11 0 3 7 -1. + <_>12 0 1 7 3. + 0 + -0.0155750000849366 + 0.1295074969530106 + 0.5169094800949097 + <_> + + <_> + + + + <_>7 11 2 1 -1. + <_>8 11 1 1 2. + 0 + -1.2050600344082341e-004 + 0.5735098123550415 + 0.4230825006961823 + <_> + + <_> + + + + <_>15 14 1 3 -1. + <_>15 15 1 1 3. + 0 + 1.2273970060050488e-003 + 0.5289878249168396 + 0.4079791903495789 + <_> + + <_> + + + + <_>7 15 2 2 -1. + <_>7 15 1 1 2. + <_>8 16 1 1 2. + 0 + -1.2186600361019373e-003 + 0.6575639843940735 + 0.4574409127235413 + <_> + + <_> + + + + <_>15 14 1 3 -1. + <_>15 15 1 1 3. + 0 + -3.3256649039685726e-003 + 0.3628047108650208 + 0.5195019841194153 + <_> + + <_> + + + + <_>6 0 3 7 -1. + <_>7 0 1 7 3. + 0 + -0.0132883097976446 + 0.1284265965223312 + 0.5043488740921021 + <_> + + <_> + + + + <_>18 1 2 7 -1. + <_>18 1 1 7 2. + 0 + -3.3839771058410406e-003 + 0.6292240023612976 + 0.4757505953311920 + <_> + + <_> + + + + <_>2 0 8 20 -1. + <_>2 10 8 10 2. + 0 + -0.2195422053337097 + 0.1487731933593750 + 0.5065013766288757 + <_> + + <_> + + + + <_>3 0 15 6 -1. + <_>3 2 15 2 3. + 0 + 4.9111708067357540e-003 + 0.4256102144718170 + 0.5665838718414307 + <_> + + <_> + + + + <_>4 3 12 2 -1. + <_>4 4 12 1 2. + 0 + -1.8744950648397207e-004 + 0.4004144072532654 + 0.5586857199668884 + <_> + + <_> + + + + <_>16 0 4 5 -1. + <_>16 0 2 5 2. + 0 + -5.2178641781210899e-003 + 0.6009116172790527 + 0.4812706112861633 + <_> + + <_> + + + + <_>7 0 3 4 -1. + <_>8 0 1 4 3. + 0 + -1.1111519997939467e-003 + 0.3514933884143829 + 0.5287089943885803 + <_> + + <_> + + + + <_>16 0 4 5 -1. + <_>16 0 2 5 2. + 0 + 4.4036400504410267e-003 + 0.4642275869846344 + 0.5924085974693298 + <_> + + <_> + + + + <_>1 7 6 13 -1. + <_>3 7 2 13 3. + 0 + 0.1229949966073036 + 0.5025529265403748 + 0.0691524818539619 + <_> + + <_> + + + + <_>16 0 4 5 -1. + <_>16 0 2 5 2. + 0 + -0.0123135102912784 + 0.5884591937065125 + 0.4934012889862061 + <_> + + <_> + + + + <_>0 0 4 5 -1. + <_>2 0 2 5 2. + 0 + 4.1471039876341820e-003 + 0.4372239112854004 + 0.5893477797508240 + <_> + + <_> + + + + <_>14 12 3 6 -1. + <_>14 14 3 2 3. + 0 + -3.5502649843692780e-003 + 0.4327551126480103 + 0.5396270155906677 + <_> + + <_> + + + + <_>3 12 3 6 -1. + <_>3 14 3 2 3. + 0 + -0.0192242693156004 + 0.1913134008646011 + 0.5068330764770508 + <_> + + <_> + + + + <_>16 1 4 3 -1. + <_>16 2 4 1 3. + 0 + 1.4395059552043676e-003 + 0.5308178067207336 + 0.4243533015251160 + <_> + + <_> + + + + <_>8 7 2 10 -1. + <_>8 7 1 5 2. + <_>9 12 1 5 2. + 0 + -6.7751999013125896e-003 + 0.6365395784378052 + 0.4540086090564728 + <_> + + <_> + + + + <_>11 11 4 4 -1. + <_>11 13 4 2 2. + 0 + 7.0119630545377731e-003 + 0.5189834237098694 + 0.3026199936866760 + <_> + + <_> + + + + <_>0 1 4 3 -1. + <_>0 2 4 1 3. + 0 + 5.4014651104807854e-003 + 0.5105062127113342 + 0.2557682991027832 + <_> + + <_> + + + + <_>13 4 1 3 -1. + <_>13 5 1 1 3. + 0 + 9.0274988906458020e-004 + 0.4696914851665497 + 0.5861827731132507 + <_> + + <_> + + + + <_>7 15 3 5 -1. + <_>8 15 1 5 3. + 0 + 0.0114744501188397 + 0.5053645968437195 + 0.1527177989482880 + <_> + + <_> + + + + <_>9 7 3 5 -1. + <_>10 7 1 5 3. + 0 + -6.7023430019617081e-003 + 0.6508980989456177 + 0.4890604019165039 + <_> + + <_> + + + + <_>8 7 3 5 -1. + <_>9 7 1 5 3. + 0 + -2.0462959073483944e-003 + 0.6241816878318787 + 0.4514600038528442 + <_> + + <_> + + + + <_>10 6 4 14 -1. + <_>10 6 2 14 2. + 0 + -9.9951568990945816e-003 + 0.3432781100273132 + 0.5400953888893127 + <_> + + <_> + + + + <_>0 5 5 6 -1. + <_>0 7 5 2 3. + 0 + -0.0357007086277008 + 0.1878059059381485 + 0.5074077844619751 + <_> + + <_> + + + + <_>9 5 6 4 -1. + <_>9 5 3 4 2. + 0 + 4.5584561303257942e-004 + 0.3805277049541473 + 0.5402569770812988 + <_> + + <_> + + + + <_>0 0 18 10 -1. + <_>6 0 6 10 3. + 0 + -0.0542606003582478 + 0.6843714714050293 + 0.4595097005367279 + <_> + + <_> + + + + <_>10 6 4 14 -1. + <_>10 6 2 14 2. + 0 + 6.0600461438298225e-003 + 0.5502905249595642 + 0.4500527977943420 + <_> + + <_> + + + + <_>6 6 4 14 -1. + <_>8 6 2 14 2. + 0 + -6.4791832119226456e-003 + 0.3368858098983765 + 0.5310757160186768 + <_> + + <_> + + + + <_>13 4 1 3 -1. + <_>13 5 1 1 3. + 0 + -1.4939469983801246e-003 + 0.6487640142440796 + 0.4756175875663757 + <_> + + <_> + + + + <_>5 1 2 3 -1. + <_>6 1 1 3 2. + 0 + 1.4610530342906713e-005 + 0.4034579098224640 + 0.5451064109802246 + <_> + + <_> + + + + <_>18 1 2 18 -1. + <_>19 1 1 9 2. + <_>18 10 1 9 2. + 0 + -7.2321938350796700e-003 + 0.6386873722076416 + 0.4824739992618561 + <_> + + <_> + + + + <_>2 1 4 3 -1. + <_>2 2 4 1 3. + 0 + -4.0645818226039410e-003 + 0.2986421883106232 + 0.5157335996627808 + <_> + + <_> + + + + <_>18 1 2 18 -1. + <_>19 1 1 9 2. + <_>18 10 1 9 2. + 0 + 0.0304630808532238 + 0.5022199749946594 + 0.7159956097602844 + <_> + + <_> + + + + <_>1 14 4 6 -1. + <_>1 14 2 3 2. + <_>3 17 2 3 2. + 0 + -8.0544911324977875e-003 + 0.6492452025413513 + 0.4619275033473969 + <_> + + <_> + + + + <_>10 11 7 6 -1. + <_>10 13 7 2 3. + 0 + 0.0395051389932632 + 0.5150570869445801 + 0.2450613975524902 + <_> + + <_> + + + + <_>0 10 6 10 -1. + <_>0 10 3 5 2. + <_>3 15 3 5 2. + 0 + 8.4530208259820938e-003 + 0.4573669135570526 + 0.6394037008285523 + <_> + + <_> + + + + <_>11 0 3 4 -1. + <_>12 0 1 4 3. + 0 + -1.1688120430335402e-003 + 0.3865512013435364 + 0.5483661293983460 + <_> + + <_> + + + + <_>5 10 5 6 -1. + <_>5 13 5 3 2. + 0 + 2.8070670086890459e-003 + 0.5128579139709473 + 0.2701480090618134 + <_> + + <_> + + + + <_>14 6 1 8 -1. + <_>14 10 1 4 2. + 0 + 4.7365209320560098e-004 + 0.4051581919193268 + 0.5387461185455322 + <_> + + <_> + + + + <_>1 7 18 6 -1. + <_>1 7 9 3 2. + <_>10 10 9 3 2. + 0 + 0.0117410803213716 + 0.5295950174331665 + 0.3719413876533508 + <_> + + <_> + + + + <_>9 7 2 2 -1. + <_>9 7 1 2 2. + 0 + 3.1833238899707794e-003 + 0.4789406955242157 + 0.6895126104354858 + <_> + + <_> + + + + <_>5 9 4 5 -1. + <_>7 9 2 5 2. + 0 + 7.0241501089185476e-004 + 0.5384489297866821 + 0.3918080925941467 + 54.6200714111328130 + 11 + -1 + <_> + + + <_> + + <_> + + + + <_>7 6 6 3 -1. + <_>9 6 2 3 3. + 0 + 0.0170599296689034 + 0.3948527872562408 + 0.7142534852027893 + <_> + + <_> + + + + <_>1 0 18 4 -1. + <_>7 0 6 4 3. + 0 + 0.0218408405780792 + 0.3370316028594971 + 0.6090016961097717 + <_> + + <_> + + + + <_>7 15 2 4 -1. + <_>7 17 2 2 2. + 0 + 2.4520049919374287e-004 + 0.3500576019287109 + 0.5987902283668518 + <_> + + <_> + + + + <_>1 0 19 9 -1. + <_>1 3 19 3 3. + 0 + 8.3272606134414673e-003 + 0.3267528116703033 + 0.5697240829467773 + <_> + + <_> + + + + <_>3 7 3 6 -1. + <_>3 9 3 2 3. + 0 + 5.7148298947140574e-004 + 0.3044599890708923 + 0.5531656742095947 + <_> + + <_> + + + + <_>13 7 4 4 -1. + <_>15 7 2 2 2. + <_>13 9 2 2 2. + 0 + 6.7373987985774875e-004 + 0.3650012016296387 + 0.5672631263732910 + <_> + + <_> + + + + <_>3 7 4 4 -1. + <_>3 7 2 2 2. + <_>5 9 2 2 2. + 0 + 3.4681590477703139e-005 + 0.3313541114330292 + 0.5388727188110352 + <_> + + <_> + + + + <_>9 6 10 8 -1. + <_>9 10 10 4 2. + 0 + -5.8563398197293282e-003 + 0.2697942852973938 + 0.5498778820037842 + <_> + + <_> + + + + <_>3 8 14 12 -1. + <_>3 14 14 6 2. + 0 + 8.5102273151278496e-003 + 0.5269358158111572 + 0.2762879133224487 + <_> + + <_> + + + + <_>6 5 10 12 -1. + <_>11 5 5 6 2. + <_>6 11 5 6 2. + 0 + -0.0698172077536583 + 0.2909603118896484 + 0.5259246826171875 + <_> + + <_> + + + + <_>9 11 2 3 -1. + <_>9 12 2 1 3. + 0 + -8.6113670840859413e-004 + 0.5892577171325684 + 0.4073697924613953 + <_> + + <_> + + + + <_>9 5 6 5 -1. + <_>9 5 3 5 2. + 0 + 9.7149249631911516e-004 + 0.3523564040660858 + 0.5415862202644348 + <_> + + <_> + + + + <_>9 4 2 4 -1. + <_>9 6 2 2 2. + 0 + -1.4727490452060010e-005 + 0.5423017740249634 + 0.3503156006336212 + <_> + + <_> + + + + <_>9 5 6 5 -1. + <_>9 5 3 5 2. + 0 + 0.0484202913939953 + 0.5193945765495300 + 0.3411195874214172 + <_> + + <_> + + + + <_>5 5 6 5 -1. + <_>8 5 3 5 2. + 0 + 1.3257140526548028e-003 + 0.3157769143581390 + 0.5335376262664795 + <_> + + <_> + + + + <_>11 2 6 1 -1. + <_>13 2 2 1 3. + 0 + 1.4922149603080470e-005 + 0.4451299905776978 + 0.5536553859710693 + <_> + + <_> + + + + <_>3 2 6 1 -1. + <_>5 2 2 1 3. + 0 + -2.7173398993909359e-003 + 0.3031741976737976 + 0.5248088836669922 + <_> + + <_> + + + + <_>13 5 2 3 -1. + <_>13 6 2 1 3. + 0 + 2.9219500720500946e-003 + 0.4781453013420105 + 0.6606041789054871 + <_> + + <_> + + + + <_>0 10 1 4 -1. + <_>0 12 1 2 2. + 0 + -1.9804988987743855e-003 + 0.3186308145523071 + 0.5287625193595886 + <_> + + <_> + + + + <_>13 5 2 3 -1. + <_>13 6 2 1 3. + 0 + -4.0012109093368053e-003 + 0.6413596868515015 + 0.4749928116798401 + <_> + + <_> + + + + <_>8 18 3 2 -1. + <_>9 18 1 2 3. + 0 + -4.3491991236805916e-003 + 0.1507498025894165 + 0.5098996758460999 + <_> + + <_> + + + + <_>6 15 9 2 -1. + <_>6 16 9 1 2. + 0 + 1.3490889687091112e-003 + 0.4316158890724182 + 0.5881167054176331 + <_> + + <_> + + + + <_>8 14 4 3 -1. + <_>8 15 4 1 3. + 0 + 0.0185970701277256 + 0.4735553860664368 + 0.9089794158935547 + <_> + + <_> + + + + <_>18 4 2 4 -1. + <_>18 6 2 2 2. + 0 + -1.8562379991635680e-003 + 0.3553189039230347 + 0.5577837228775024 + <_> + + <_> + + + + <_>5 5 2 3 -1. + <_>5 6 2 1 3. + 0 + 2.2940430790185928e-003 + 0.4500094950199127 + 0.6580877900123596 + <_> + + <_> + + + + <_>15 16 3 2 -1. + <_>15 17 3 1 2. + 0 + 2.9982850537635386e-004 + 0.5629242062568665 + 0.3975878953933716 + <_> + + <_> + + + + <_>0 0 3 9 -1. + <_>0 3 3 3 3. + 0 + 3.5455459728837013e-003 + 0.5381547212600708 + 0.3605485856533051 + <_> + + <_> + + + + <_>9 7 3 3 -1. + <_>9 8 3 1 3. + 0 + 9.6104722470045090e-003 + 0.5255997180938721 + 0.1796745955944061 + <_> + + <_> + + + + <_>8 7 3 3 -1. + <_>8 8 3 1 3. + 0 + -6.2783220782876015e-003 + 0.2272856980562210 + 0.5114030241966248 + <_> + + <_> + + + + <_>9 5 2 6 -1. + <_>9 5 1 6 2. + 0 + 3.4598479978740215e-003 + 0.4626308083534241 + 0.6608219146728516 + <_> + + <_> + + + + <_>8 6 3 4 -1. + <_>9 6 1 4 3. + 0 + -1.3112019514665008e-003 + 0.6317539811134338 + 0.4436857998371124 + <_> + + <_> + + + + <_>7 6 8 12 -1. + <_>11 6 4 6 2. + <_>7 12 4 6 2. + 0 + 2.6876179035753012e-003 + 0.5421109795570374 + 0.4054022133350372 + <_> + + <_> + + + + <_>5 6 8 12 -1. + <_>5 6 4 6 2. + <_>9 12 4 6 2. + 0 + 3.9118169806897640e-003 + 0.5358477830886841 + 0.3273454904556274 + <_> + + <_> + + + + <_>12 4 3 3 -1. + <_>12 5 3 1 3. + 0 + -0.0142064504325390 + 0.7793576717376709 + 0.4975781142711639 + <_> + + <_> + + + + <_>2 16 3 2 -1. + <_>2 17 3 1 2. + 0 + 7.1705528534948826e-004 + 0.5297319889068604 + 0.3560903966426849 + <_> + + <_> + + + + <_>12 4 3 3 -1. + <_>12 5 3 1 3. + 0 + 1.6635019565001130e-003 + 0.4678094089031220 + 0.5816481709480286 + <_> + + <_> + + + + <_>2 12 6 6 -1. + <_>2 14 6 2 3. + 0 + 3.3686188980937004e-003 + 0.5276734232902527 + 0.3446420133113861 + <_> + + <_> + + + + <_>7 13 6 3 -1. + <_>7 14 6 1 3. + 0 + 0.0127995302900672 + 0.4834679961204529 + 0.7472159266471863 + <_> + + <_> + + + + <_>6 14 6 3 -1. + <_>6 15 6 1 3. + 0 + 3.3901201095432043e-003 + 0.4511859118938446 + 0.6401721239089966 + <_> + + <_> + + + + <_>14 15 5 3 -1. + <_>14 16 5 1 3. + 0 + 4.7070779837667942e-003 + 0.5335658788681030 + 0.3555220961570740 + <_> + + <_> + + + + <_>5 4 3 3 -1. + <_>5 5 3 1 3. + 0 + 1.4819339849054813e-003 + 0.4250707030296326 + 0.5772724151611328 + <_> + + <_> + + + + <_>14 15 5 3 -1. + <_>14 16 5 1 3. + 0 + -6.9995759986341000e-003 + 0.3003320097923279 + 0.5292900204658508 + <_> + + <_> + + + + <_>5 3 6 2 -1. + <_>7 3 2 2 3. + 0 + 0.0159390103071928 + 0.5067319273948669 + 0.1675581932067871 + <_> + + <_> + + + + <_>8 15 4 3 -1. + <_>8 16 4 1 3. + 0 + 7.6377349905669689e-003 + 0.4795069992542267 + 0.7085601091384888 + <_> + + <_> + + + + <_>1 15 5 3 -1. + <_>1 16 5 1 3. + 0 + 6.7334040068089962e-003 + 0.5133113265037537 + 0.2162470072507858 + <_> + + <_> + + + + <_>8 13 4 6 -1. + <_>10 13 2 3 2. + <_>8 16 2 3 2. + 0 + -0.0128588099032640 + 0.1938841938972473 + 0.5251371860504150 + <_> + + <_> + + + + <_>7 8 3 3 -1. + <_>8 8 1 3 3. + 0 + -6.2270800117403269e-004 + 0.5686538219451904 + 0.4197868108749390 + <_> + + <_> + + + + <_>12 0 5 4 -1. + <_>12 2 5 2 2. + 0 + -5.2651681471616030e-004 + 0.4224168956279755 + 0.5429695844650269 + <_> + + <_> + + + + <_>0 2 20 2 -1. + <_>0 2 10 1 2. + <_>10 3 10 1 2. + 0 + 0.0110750999301672 + 0.5113775134086609 + 0.2514517903327942 + <_> + + <_> + + + + <_>1 0 18 4 -1. + <_>7 0 6 4 3. + 0 + -0.0367282517254353 + 0.7194662094116211 + 0.4849618971347809 + <_> + + <_> + + + + <_>4 3 6 1 -1. + <_>6 3 2 1 3. + 0 + -2.8207109426148236e-004 + 0.3840261995792389 + 0.5394446253776550 + <_> + + <_> + + + + <_>4 18 13 2 -1. + <_>4 19 13 1 2. + 0 + -2.7489690110087395e-003 + 0.5937088727951050 + 0.4569182097911835 + <_> + + <_> + + + + <_>2 10 3 6 -1. + <_>2 12 3 2 3. + 0 + 0.0100475195795298 + 0.5138576030731201 + 0.2802298069000244 + <_> + + <_> + + + + <_>14 12 6 8 -1. + <_>17 12 3 4 2. + <_>14 16 3 4 2. + 0 + -8.1497840583324432e-003 + 0.6090037226676941 + 0.4636121094226837 + <_> + + <_> + + + + <_>4 13 10 6 -1. + <_>4 13 5 3 2. + <_>9 16 5 3 2. + 0 + -6.8833888508379459e-003 + 0.3458611071109772 + 0.5254660248756409 + <_> + + <_> + + + + <_>14 12 1 2 -1. + <_>14 13 1 1 2. + 0 + -1.4039360394235700e-005 + 0.5693104267120361 + 0.4082083106040955 + <_> + + <_> + + + + <_>8 13 4 3 -1. + <_>8 14 4 1 3. + 0 + 1.5498419525101781e-003 + 0.4350537061691284 + 0.5806517004966736 + <_> + + <_> + + + + <_>14 12 2 2 -1. + <_>14 13 2 1 2. + 0 + -6.7841499112546444e-003 + 0.1468873023986816 + 0.5182775259017944 + <_> + + <_> + + + + <_>4 12 2 2 -1. + <_>4 13 2 1 2. + 0 + 2.1705629478674382e-004 + 0.5293524265289307 + 0.3456174135208130 + <_> + + <_> + + + + <_>8 12 9 2 -1. + <_>8 13 9 1 2. + 0 + 3.1198898795992136e-004 + 0.4652450978755951 + 0.5942413806915283 + <_> + + <_> + + + + <_>9 14 2 3 -1. + <_>9 15 2 1 3. + 0 + 5.4507530294358730e-003 + 0.4653508961200714 + 0.7024846076965332 + <_> + + <_> + + + + <_>11 10 3 6 -1. + <_>11 13 3 3 2. + 0 + -2.5818689027801156e-004 + 0.5497295260429382 + 0.3768967092037201 + <_> + + <_> + + + + <_>5 6 9 12 -1. + <_>5 12 9 6 2. + 0 + -0.0174425393342972 + 0.3919087946414948 + 0.5457497835159302 + <_> + + <_> + + + + <_>11 10 3 6 -1. + <_>11 13 3 3 2. + 0 + -0.0453435294330120 + 0.1631357073783875 + 0.5154908895492554 + <_> + + <_> + + + + <_>6 10 3 6 -1. + <_>6 13 3 3 2. + 0 + 1.9190689781680703e-003 + 0.5145897865295410 + 0.2791895866394043 + <_> + + <_> + + + + <_>5 4 11 3 -1. + <_>5 5 11 1 3. + 0 + -6.0177869163453579e-003 + 0.6517636179924011 + 0.4756332933902741 + <_> + + <_> + + + + <_>7 1 5 10 -1. + <_>7 6 5 5 2. + 0 + -4.0720738470554352e-003 + 0.5514652729034424 + 0.4092685878276825 + <_> + + <_> + + + + <_>2 8 18 2 -1. + <_>2 9 18 1 2. + 0 + 3.9855059003457427e-004 + 0.3165240883827210 + 0.5285550951957703 + <_> + + <_> + + + + <_>7 17 5 3 -1. + <_>7 18 5 1 3. + 0 + -6.5418570302426815e-003 + 0.6853377819061279 + 0.4652808904647827 + <_> + + <_> + + + + <_>5 9 12 1 -1. + <_>9 9 4 1 3. + 0 + 3.4845089539885521e-003 + 0.5484588146209717 + 0.4502759873867035 + <_> + + <_> + + + + <_>0 14 6 6 -1. + <_>0 14 3 3 2. + <_>3 17 3 3 2. + 0 + -0.0136967804282904 + 0.6395779848098755 + 0.4572555124759674 + <_> + + <_> + + + + <_>5 9 12 1 -1. + <_>9 9 4 1 3. + 0 + -0.0173471402376890 + 0.2751072943210602 + 0.5181614756584168 + <_> + + <_> + + + + <_>3 9 12 1 -1. + <_>7 9 4 1 3. + 0 + -4.0885428898036480e-003 + 0.3325636088848114 + 0.5194984078407288 + <_> + + <_> + + + + <_>14 10 6 7 -1. + <_>14 10 3 7 2. + 0 + -9.4687901437282562e-003 + 0.5942280888557434 + 0.4851819872856140 + <_> + + <_> + + + + <_>1 0 16 2 -1. + <_>1 1 16 1 2. + 0 + 1.7084840219467878e-003 + 0.4167110919952393 + 0.5519806146621704 + <_> + + <_> + + + + <_>10 9 10 9 -1. + <_>10 12 10 3 3. + 0 + 9.4809094443917274e-003 + 0.5433894991874695 + 0.4208514988422394 + <_> + + <_> + + + + <_>0 1 10 2 -1. + <_>5 1 5 2 2. + 0 + -4.7389650717377663e-003 + 0.6407189965248108 + 0.4560655057430267 + <_> + + <_> + + + + <_>17 3 2 3 -1. + <_>17 4 2 1 3. + 0 + 6.5761050209403038e-003 + 0.5214555263519287 + 0.2258227020502091 + <_> + + <_> + + + + <_>1 3 2 3 -1. + <_>1 4 2 1 3. + 0 + -2.1690549328923225e-003 + 0.3151527941226959 + 0.5156704783439636 + <_> + + <_> + + + + <_>9 7 3 6 -1. + <_>10 7 1 6 3. + 0 + 0.0146601703017950 + 0.4870837032794952 + 0.6689941287040710 + <_> + + <_> + + + + <_>6 5 4 3 -1. + <_>8 5 2 3 2. + 0 + 1.7231999663636088e-004 + 0.3569748997688294 + 0.5251078009605408 + <_> + + <_> + + + + <_>7 5 6 6 -1. + <_>9 5 2 6 3. + 0 + -0.0218037609010935 + 0.8825920820236206 + 0.4966329932212830 + <_> + + <_> + + + + <_>3 4 12 12 -1. + <_>3 4 6 6 2. + <_>9 10 6 6 2. + 0 + -0.0947361066937447 + 0.1446162015199661 + 0.5061113834381104 + <_> + + <_> + + + + <_>9 2 6 15 -1. + <_>11 2 2 15 3. + 0 + 5.5825551971793175e-003 + 0.5396478772163391 + 0.4238066077232361 + <_> + + <_> + + + + <_>2 2 6 17 -1. + <_>4 2 2 17 3. + 0 + 1.9517090404406190e-003 + 0.4170410931110382 + 0.5497786998748779 + <_> + + <_> + + + + <_>14 10 6 7 -1. + <_>14 10 3 7 2. + 0 + 0.0121499001979828 + 0.4698367118835449 + 0.5664274096488953 + <_> + + <_> + + + + <_>0 10 6 7 -1. + <_>3 10 3 7 2. + 0 + -7.5169620104134083e-003 + 0.6267772912979126 + 0.4463135898113251 + <_> + + <_> + + + + <_>9 2 6 15 -1. + <_>11 2 2 15 3. + 0 + -0.0716679096221924 + 0.3097011148929596 + 0.5221003293991089 + <_> + + <_> + + + + <_>5 2 6 15 -1. + <_>7 2 2 15 3. + 0 + -0.0882924199104309 + 0.0811238884925842 + 0.5006365180015564 + <_> + + <_> + + + + <_>17 9 3 6 -1. + <_>17 11 3 2 3. + 0 + 0.0310630798339844 + 0.5155503749847412 + 0.1282255947589874 + <_> + + <_> + + + + <_>6 7 6 6 -1. + <_>8 7 2 6 3. + 0 + 0.0466218404471874 + 0.4699777960777283 + 0.7363960742950440 + <_> + + <_> + + + + <_>1 10 18 6 -1. + <_>10 10 9 3 2. + <_>1 13 9 3 2. + 0 + -0.0121894897893071 + 0.3920530080795288 + 0.5518996715545654 + <_> + + <_> + + + + <_>0 9 10 9 -1. + <_>0 12 10 3 3. + 0 + 0.0130161102861166 + 0.5260658264160156 + 0.3685136139392853 + <_> + + <_> + + + + <_>8 15 4 3 -1. + <_>8 16 4 1 3. + 0 + -3.4952899441123009e-003 + 0.6339294910430908 + 0.4716280996799469 + <_> + + <_> + + + + <_>5 12 3 4 -1. + <_>5 14 3 2 2. + 0 + -4.4015039748046547e-005 + 0.5333027243614197 + 0.3776184916496277 + <_> + + <_> + + + + <_>3 3 16 12 -1. + <_>3 9 16 6 2. + 0 + -0.1096649020910263 + 0.1765342056751251 + 0.5198346972465515 + <_> + + <_> + + + + <_>1 1 12 12 -1. + <_>1 1 6 6 2. + <_>7 7 6 6 2. + 0 + -9.0279558207839727e-004 + 0.5324159860610962 + 0.3838908076286316 + <_> + + <_> + + + + <_>10 4 2 4 -1. + <_>11 4 1 2 2. + <_>10 6 1 2 2. + 0 + 7.1126641705632210e-004 + 0.4647929966449738 + 0.5755224227905273 + <_> + + <_> + + + + <_>0 9 10 2 -1. + <_>0 9 5 1 2. + <_>5 10 5 1 2. + 0 + -3.1250279862433672e-003 + 0.3236708939075470 + 0.5166770815849304 + <_> + + <_> + + + + <_>9 11 3 3 -1. + <_>9 12 3 1 3. + 0 + 2.4144679773598909e-003 + 0.4787439107894898 + 0.6459717750549316 + <_> + + <_> + + + + <_>3 12 9 2 -1. + <_>3 13 9 1 2. + 0 + 4.4391240226104856e-004 + 0.4409308135509491 + 0.6010255813598633 + <_> + + <_> + + + + <_>9 9 2 2 -1. + <_>9 10 2 1 2. + 0 + -2.2611189342569560e-004 + 0.4038113951683044 + 0.5493255853652954 + 50.1697311401367190 + 12 + -1 + <_> + + + <_> + + <_> + + + + <_>3 4 13 6 -1. + <_>3 6 13 2 3. + 0 + -0.0469012893736362 + 0.6600171923637390 + 0.3743801116943359 + <_> + + <_> + + + + <_>9 7 6 4 -1. + <_>12 7 3 2 2. + <_>9 9 3 2 2. + 0 + -1.4568349579349160e-003 + 0.5783991217613220 + 0.3437797129154205 + <_> + + <_> + + + + <_>1 0 6 8 -1. + <_>4 0 3 8 2. + 0 + 5.5598369799554348e-003 + 0.3622266948223114 + 0.5908216238021851 + <_> + + <_> + + + + <_>9 5 2 12 -1. + <_>9 11 2 6 2. + 0 + 7.3170487303286791e-004 + 0.5500419139862061 + 0.2873558104038239 + <_> + + <_> + + + + <_>4 4 3 10 -1. + <_>4 9 3 5 2. + 0 + 1.3318009441718459e-003 + 0.2673169970512390 + 0.5431019067764282 + <_> + + <_> + + + + <_>6 17 8 3 -1. + <_>6 18 8 1 3. + 0 + 2.4347059661522508e-004 + 0.3855027854442596 + 0.5741388797760010 + <_> + + <_> + + + + <_>0 5 10 6 -1. + <_>0 7 10 2 3. + 0 + -3.0512469820678234e-003 + 0.5503209829330444 + 0.3462845087051392 + <_> + + <_> + + + + <_>13 2 3 2 -1. + <_>13 3 3 1 2. + 0 + -6.8657199153676629e-004 + 0.3291221857070923 + 0.5429509282112122 + <_> + + <_> + + + + <_>7 5 4 5 -1. + <_>9 5 2 5 2. + 0 + 1.4668200165033340e-003 + 0.3588382005691528 + 0.5351811051368713 + <_> + + <_> + + + + <_>12 14 3 6 -1. + <_>12 16 3 2 3. + 0 + 3.2021870720200241e-004 + 0.4296841919422150 + 0.5700234174728394 + <_> + + <_> + + + + <_>1 11 8 2 -1. + <_>1 12 8 1 2. + 0 + 7.4122188379988074e-004 + 0.5282164812088013 + 0.3366870880126953 + <_> + + <_> + + + + <_>7 13 6 3 -1. + <_>7 14 6 1 3. + 0 + 3.8330298848450184e-003 + 0.4559567868709564 + 0.6257336139678955 + <_> + + <_> + + + + <_>0 5 3 6 -1. + <_>0 7 3 2 3. + 0 + -0.0154564399272203 + 0.2350116968154907 + 0.5129452943801880 + <_> + + <_> + + + + <_>13 2 3 2 -1. + <_>13 3 3 1 2. + 0 + 2.6796779129654169e-003 + 0.5329415202140808 + 0.4155062139034271 + <_> + + <_> + + + + <_>4 14 4 6 -1. + <_>4 14 2 3 2. + <_>6 17 2 3 2. + 0 + 2.8296569362282753e-003 + 0.4273087978363037 + 0.5804538130760193 + <_> + + <_> + + + + <_>13 2 3 2 -1. + <_>13 3 3 1 2. + 0 + -3.9444249123334885e-003 + 0.2912611961364746 + 0.5202686190605164 + <_> + + <_> + + + + <_>8 2 4 12 -1. + <_>8 6 4 4 3. + 0 + 2.7179559692740440e-003 + 0.5307688117027283 + 0.3585677146911621 + <_> + + <_> + + + + <_>14 0 6 8 -1. + <_>17 0 3 4 2. + <_>14 4 3 4 2. + 0 + 5.9077627956867218e-003 + 0.4703775048255920 + 0.5941585898399353 + <_> + + <_> + + + + <_>7 17 3 2 -1. + <_>8 17 1 2 3. + 0 + -4.2240349575877190e-003 + 0.2141567021608353 + 0.5088796019554138 + <_> + + <_> + + + + <_>8 12 4 2 -1. + <_>8 13 4 1 2. + 0 + 4.0725888684391975e-003 + 0.4766413867473602 + 0.6841061115264893 + <_> + + <_> + + + + <_>6 0 8 12 -1. + <_>6 0 4 6 2. + <_>10 6 4 6 2. + 0 + 0.0101495301350951 + 0.5360798835754395 + 0.3748497068881989 + <_> + + <_> + + + + <_>14 0 2 10 -1. + <_>15 0 1 5 2. + <_>14 5 1 5 2. + 0 + -1.8864999583456665e-004 + 0.5720130205154419 + 0.3853805065155029 + <_> + + <_> + + + + <_>5 3 8 6 -1. + <_>5 3 4 3 2. + <_>9 6 4 3 2. + 0 + -4.8864358104765415e-003 + 0.3693122863769531 + 0.5340958833694458 + <_> + + <_> + + + + <_>14 0 6 10 -1. + <_>17 0 3 5 2. + <_>14 5 3 5 2. + 0 + 0.0261584799736738 + 0.4962374866008759 + 0.6059989929199219 + <_> + + <_> + + + + <_>9 14 1 2 -1. + <_>9 15 1 1 2. + 0 + 4.8560759751126170e-004 + 0.4438945949077606 + 0.6012468934059143 + <_> + + <_> + + + + <_>15 10 4 3 -1. + <_>15 11 4 1 3. + 0 + 0.0112687097862363 + 0.5244250297546387 + 0.1840388029813767 + <_> + + <_> + + + + <_>8 14 2 3 -1. + <_>8 15 2 1 3. + 0 + -2.8114619199186563e-003 + 0.6060283780097961 + 0.4409897029399872 + <_> + + <_> + + + + <_>3 13 14 4 -1. + <_>10 13 7 2 2. + <_>3 15 7 2 2. + 0 + -5.6112729944288731e-003 + 0.3891170918941498 + 0.5589237213134766 + <_> + + <_> + + + + <_>1 10 4 3 -1. + <_>1 11 4 1 3. + 0 + 8.5680093616247177e-003 + 0.5069345831871033 + 0.2062619030475617 + <_> + + <_> + + + + <_>9 11 6 1 -1. + <_>11 11 2 1 3. + 0 + -3.8172779022715986e-004 + 0.5882201790809631 + 0.4192610979080200 + <_> + + <_> + + + + <_>5 11 6 1 -1. + <_>7 11 2 1 3. + 0 + -1.7680290329735726e-004 + 0.5533605813980103 + 0.4003368914127350 + <_> + + <_> + + + + <_>3 5 16 15 -1. + <_>3 10 16 5 3. + 0 + 6.5112537704408169e-003 + 0.3310146927833557 + 0.5444191098213196 + <_> + + <_> + + + + <_>6 12 4 2 -1. + <_>8 12 2 2 2. + 0 + -6.5948683186434209e-005 + 0.5433831810951233 + 0.3944905996322632 + <_> + + <_> + + + + <_>4 4 12 10 -1. + <_>10 4 6 5 2. + <_>4 9 6 5 2. + 0 + 6.9939051754772663e-003 + 0.5600358247756958 + 0.4192714095115662 + <_> + + <_> + + + + <_>8 6 3 4 -1. + <_>9 6 1 4 3. + 0 + -4.6744439750909805e-003 + 0.6685466766357422 + 0.4604960978031158 + <_> + + <_> + + + + <_>8 12 4 8 -1. + <_>10 12 2 4 2. + <_>8 16 2 4 2. + 0 + 0.0115898502990603 + 0.5357121229171753 + 0.2926830053329468 + <_> + + <_> + + + + <_>8 14 4 3 -1. + <_>8 15 4 1 3. + 0 + 0.0130078401416540 + 0.4679817855358124 + 0.7307463288307190 + <_> + + <_> + + + + <_>12 2 3 2 -1. + <_>13 2 1 2 3. + 0 + -1.1008579749614000e-003 + 0.3937501013278961 + 0.5415065288543701 + <_> + + <_> + + + + <_>8 15 3 2 -1. + <_>8 16 3 1 2. + 0 + 6.0472649056464434e-004 + 0.4242376089096069 + 0.5604041218757629 + <_> + + <_> + + + + <_>6 0 9 14 -1. + <_>9 0 3 14 3. + 0 + -0.0144948400557041 + 0.3631210029125214 + 0.5293182730674744 + <_> + + <_> + + + + <_>9 6 2 3 -1. + <_>10 6 1 3 2. + 0 + -5.3056948818266392e-003 + 0.6860452294349670 + 0.4621821045875549 + <_> + + <_> + + + + <_>10 8 2 3 -1. + <_>10 9 2 1 3. + 0 + -8.1829127157106996e-004 + 0.3944096863269806 + 0.5420439243316650 + <_> + + <_> + + + + <_>0 9 4 6 -1. + <_>0 11 4 2 3. + 0 + -0.0190775208175182 + 0.1962621957063675 + 0.5037891864776611 + <_> + + <_> + + + + <_>6 0 8 2 -1. + <_>6 1 8 1 2. + 0 + 3.5549470339901745e-004 + 0.4086259007453919 + 0.5613973140716553 + <_> + + <_> + + + + <_>6 14 7 3 -1. + <_>6 15 7 1 3. + 0 + 1.9679730758070946e-003 + 0.4489121139049530 + 0.5926123261451721 + <_> + + <_> + + + + <_>8 10 8 9 -1. + <_>8 13 8 3 3. + 0 + 6.9189141504466534e-003 + 0.5335925817489624 + 0.3728385865688324 + <_> + + <_> + + + + <_>5 2 3 2 -1. + <_>6 2 1 2 3. + 0 + 2.9872779268771410e-003 + 0.5111321210861206 + 0.2975643873214722 + <_> + + <_> + + + + <_>14 1 6 8 -1. + <_>17 1 3 4 2. + <_>14 5 3 4 2. + 0 + -6.2264618463814259e-003 + 0.5541489720344544 + 0.4824537932872772 + <_> + + <_> + + + + <_>0 1 6 8 -1. + <_>0 1 3 4 2. + <_>3 5 3 4 2. + 0 + 0.0133533002808690 + 0.4586423933506012 + 0.6414797902107239 + <_> + + <_> + + + + <_>1 2 18 6 -1. + <_>10 2 9 3 2. + <_>1 5 9 3 2. + 0 + 0.0335052385926247 + 0.5392425060272217 + 0.3429994881153107 + <_> + + <_> + + + + <_>9 3 2 1 -1. + <_>10 3 1 1 2. + 0 + -2.5294460356235504e-003 + 0.1703713983297348 + 0.5013315081596375 + <_> + + <_> + + + + <_>13 2 4 6 -1. + <_>15 2 2 3 2. + <_>13 5 2 3 2. + 0 + -1.2801629491150379e-003 + 0.5305461883544922 + 0.4697405099868774 + <_> + + <_> + + + + <_>5 4 3 3 -1. + <_>5 5 3 1 3. + 0 + 7.0687388069927692e-003 + 0.4615545868873596 + 0.6436504721641541 + <_> + + <_> + + + + <_>13 5 1 3 -1. + <_>13 6 1 1 3. + 0 + 9.6880499040707946e-004 + 0.4833599030971527 + 0.6043894290924072 + <_> + + <_> + + + + <_>2 16 5 3 -1. + <_>2 17 5 1 3. + 0 + 3.9647659286856651e-003 + 0.5187637209892273 + 0.3231816887855530 + <_> + + <_> + + + + <_>13 2 4 6 -1. + <_>15 2 2 3 2. + <_>13 5 2 3 2. + 0 + -0.0220577307045460 + 0.4079256951808929 + 0.5200980901718140 + <_> + + <_> + + + + <_>3 2 4 6 -1. + <_>3 2 2 3 2. + <_>5 5 2 3 2. + 0 + -6.6906312713399529e-004 + 0.5331609249114990 + 0.3815600872039795 + <_> + + <_> + + + + <_>13 5 1 2 -1. + <_>13 6 1 1 2. + 0 + -6.7009328631684184e-004 + 0.5655422210693359 + 0.4688901901245117 + <_> + + <_> + + + + <_>5 5 2 2 -1. + <_>5 6 2 1 2. + 0 + 7.4284552829340100e-004 + 0.4534381031990051 + 0.6287400126457214 + <_> + + <_> + + + + <_>13 9 2 2 -1. + <_>13 9 1 2 2. + 0 + 2.2227810695767403e-003 + 0.5350633263587952 + 0.3303655982017517 + <_> + + <_> + + + + <_>5 9 2 2 -1. + <_>6 9 1 2 2. + 0 + -5.4130521602928638e-003 + 0.1113687008619309 + 0.5005434751510620 + <_> + + <_> + + + + <_>13 17 3 2 -1. + <_>13 18 3 1 2. + 0 + -1.4520040167553816e-005 + 0.5628737807273865 + 0.4325133860111237 + <_> + + <_> + + + + <_>6 16 4 4 -1. + <_>6 16 2 2 2. + <_>8 18 2 2 2. + 0 + 2.3369169502984732e-004 + 0.4165835082530975 + 0.5447791218757629 + <_> + + <_> + + + + <_>9 16 2 3 -1. + <_>9 17 2 1 3. + 0 + 4.2894547805190086e-003 + 0.4860391020774841 + 0.6778649091720581 + <_> + + <_> + + + + <_>0 13 9 6 -1. + <_>0 15 9 2 3. + 0 + 5.9103150852024555e-003 + 0.5262305140495300 + 0.3612113893032074 + <_> + + <_> + + + + <_>9 14 2 6 -1. + <_>9 17 2 3 2. + 0 + 0.0129005396738648 + 0.5319377183914185 + 0.3250288069248200 + <_> + + <_> + + + + <_>9 15 2 3 -1. + <_>9 16 2 1 3. + 0 + 4.6982979401946068e-003 + 0.4618245065212250 + 0.6665925979614258 + <_> + + <_> + + + + <_>1 10 18 6 -1. + <_>1 12 18 2 3. + 0 + 0.0104398597031832 + 0.5505670905113220 + 0.3883604109287262 + <_> + + <_> + + + + <_>8 11 4 2 -1. + <_>8 12 4 1 2. + 0 + 3.0443191062659025e-003 + 0.4697853028774262 + 0.7301844954490662 + <_> + + <_> + + + + <_>7 9 6 2 -1. + <_>7 10 6 1 2. + 0 + -6.1593751888722181e-004 + 0.3830839097499847 + 0.5464984178543091 + <_> + + <_> + + + + <_>8 8 2 3 -1. + <_>8 9 2 1 3. + 0 + -3.4247159492224455e-003 + 0.2566300034523010 + 0.5089530944824219 + <_> + + <_> + + + + <_>17 5 3 4 -1. + <_>18 5 1 4 3. + 0 + -9.3538565561175346e-003 + 0.6469966173171997 + 0.4940795898437500 + <_> + + <_> + + + + <_>1 19 18 1 -1. + <_>7 19 6 1 3. + 0 + 0.0523389987647533 + 0.4745982885360718 + 0.7878770828247070 + <_> + + <_> + + + + <_>9 0 3 2 -1. + <_>10 0 1 2 3. + 0 + 3.5765620414167643e-003 + 0.5306664705276489 + 0.2748498022556305 + <_> + + <_> + + + + <_>1 8 1 6 -1. + <_>1 10 1 2 3. + 0 + 7.1555317845195532e-004 + 0.5413125753402710 + 0.4041908979415894 + <_> + + <_> + + + + <_>12 17 8 3 -1. + <_>12 17 4 3 2. + 0 + -0.0105166798457503 + 0.6158512234687805 + 0.4815283119678497 + <_> + + <_> + + + + <_>0 5 3 4 -1. + <_>1 5 1 4 3. + 0 + 7.7347927726805210e-003 + 0.4695805907249451 + 0.7028980851173401 + <_> + + <_> + + + + <_>9 7 2 3 -1. + <_>9 8 2 1 3. + 0 + -4.3226778507232666e-003 + 0.2849566042423248 + 0.5304684042930603 + <_> + + <_> + + + + <_>7 11 2 2 -1. + <_>7 11 1 1 2. + <_>8 12 1 1 2. + 0 + -2.5534399319440126e-003 + 0.7056984901428223 + 0.4688892066478729 + <_> + + <_> + + + + <_>11 3 2 5 -1. + <_>11 3 1 5 2. + 0 + 1.0268510231981054e-004 + 0.3902932107448578 + 0.5573464035987854 + <_> + + <_> + + + + <_>7 3 2 5 -1. + <_>8 3 1 5 2. + 0 + 7.1395188570022583e-006 + 0.3684231936931610 + 0.5263987779617310 + <_> + + <_> + + + + <_>15 13 2 3 -1. + <_>15 14 2 1 3. + 0 + -1.6711989883333445e-003 + 0.3849175870418549 + 0.5387271046638489 + <_> + + <_> + + + + <_>5 6 2 3 -1. + <_>5 7 2 1 3. + 0 + 4.9260449595749378e-003 + 0.4729771912097931 + 0.7447251081466675 + <_> + + <_> + + + + <_>4 19 15 1 -1. + <_>9 19 5 1 3. + 0 + 4.3908702209591866e-003 + 0.4809181094169617 + 0.5591921806335449 + <_> + + <_> + + + + <_>1 19 15 1 -1. + <_>6 19 5 1 3. + 0 + -0.0177936293184757 + 0.6903678178787231 + 0.4676927030086517 + <_> + + <_> + + + + <_>15 13 2 3 -1. + <_>15 14 2 1 3. + 0 + 2.0469669252634048e-003 + 0.5370690226554871 + 0.3308162093162537 + <_> + + <_> + + + + <_>5 0 4 15 -1. + <_>7 0 2 15 2. + 0 + 0.0298914890736341 + 0.5139865279197693 + 0.3309059143066406 + <_> + + <_> + + + + <_>9 6 2 5 -1. + <_>9 6 1 5 2. + 0 + 1.5494900289922953e-003 + 0.4660237133502960 + 0.6078342795372009 + <_> + + <_> + + + + <_>9 5 2 7 -1. + <_>10 5 1 7 2. + 0 + 1.4956969534978271e-003 + 0.4404835999011993 + 0.5863919854164124 + <_> + + <_> + + + + <_>16 11 3 3 -1. + <_>16 12 3 1 3. + 0 + 9.5885928021743894e-004 + 0.5435971021652222 + 0.4208523035049439 + <_> + + <_> + + + + <_>1 11 3 3 -1. + <_>1 12 3 1 3. + 0 + 4.9643701640889049e-004 + 0.5370578169822693 + 0.4000622034072876 + <_> + + <_> + + + + <_>6 6 8 3 -1. + <_>6 7 8 1 3. + 0 + -2.7280810754746199e-003 + 0.5659412741661072 + 0.4259642958641052 + <_> + + <_> + + + + <_>0 15 6 2 -1. + <_>0 16 6 1 2. + 0 + 2.3026480339467525e-003 + 0.5161657929420471 + 0.3350869119167328 + <_> + + <_> + + + + <_>1 0 18 6 -1. + <_>7 0 6 6 3. + 0 + 0.2515163123607636 + 0.4869661927223206 + 0.7147309780120850 + <_> + + <_> + + + + <_>6 0 3 4 -1. + <_>7 0 1 4 3. + 0 + -4.6328022144734859e-003 + 0.2727448940277100 + 0.5083789825439453 + <_> + + <_> + + + + <_>14 10 4 10 -1. + <_>16 10 2 5 2. + <_>14 15 2 5 2. + 0 + -0.0404344908893108 + 0.6851438879966736 + 0.5021767020225525 + <_> + + <_> + + + + <_>3 2 3 2 -1. + <_>4 2 1 2 3. + 0 + 1.4972220014897175e-005 + 0.4284465014934540 + 0.5522555112838745 + <_> + + <_> + + + + <_>11 2 2 2 -1. + <_>11 3 2 1 2. + 0 + -2.4050309730228037e-004 + 0.4226118922233582 + 0.5390074849128723 + <_> + + <_> + + + + <_>2 10 4 10 -1. + <_>2 10 2 5 2. + <_>4 15 2 5 2. + 0 + 0.0236578397452831 + 0.4744631946086884 + 0.7504366040229797 + <_> + + <_> + + + + <_>0 13 20 6 -1. + <_>10 13 10 3 2. + <_>0 16 10 3 2. + 0 + -8.1449104472994804e-003 + 0.4245058894157410 + 0.5538362860679627 + <_> + + <_> + + + + <_>0 5 2 15 -1. + <_>1 5 1 15 2. + 0 + -3.6992130335420370e-003 + 0.5952357053756714 + 0.4529713094234467 + <_> + + <_> + + + + <_>1 7 18 4 -1. + <_>10 7 9 2 2. + <_>1 9 9 2 2. + 0 + -6.7718601785600185e-003 + 0.4137794077396393 + 0.5473399758338928 + <_> + + <_> + + + + <_>0 0 2 17 -1. + <_>1 0 1 17 2. + 0 + 4.2669530957937241e-003 + 0.4484114944934845 + 0.5797994136810303 + <_> + + <_> + + + + <_>2 6 16 6 -1. + <_>10 6 8 3 2. + <_>2 9 8 3 2. + 0 + 1.7791989957913756e-003 + 0.5624858736991882 + 0.4432444870471954 + <_> + + <_> + + + + <_>8 14 1 3 -1. + <_>8 15 1 1 3. + 0 + 1.6774770338088274e-003 + 0.4637751877307892 + 0.6364241838455200 + <_> + + <_> + + + + <_>8 15 4 2 -1. + <_>8 16 4 1 2. + 0 + 1.1732629500329494e-003 + 0.4544503092765808 + 0.5914415717124939 + <_> + + <_> + + + + <_>5 2 8 2 -1. + <_>5 2 4 1 2. + <_>9 3 4 1 2. + 0 + 8.6998171173036098e-004 + 0.5334752798080444 + 0.3885917961597443 + <_> + + <_> + + + + <_>6 11 8 6 -1. + <_>6 14 8 3 2. + 0 + 7.6378340600058436e-004 + 0.5398585200309753 + 0.3744941949844360 + <_> + + <_> + + + + <_>9 13 2 2 -1. + <_>9 14 2 1 2. + 0 + 1.5684569370932877e-004 + 0.4317873120307922 + 0.5614616274833679 + <_> + + <_> + + + + <_>18 4 2 6 -1. + <_>18 6 2 2 3. + 0 + -0.0215113703161478 + 0.1785925030708313 + 0.5185542702674866 + <_> + + <_> + + + + <_>9 12 2 2 -1. + <_>9 13 2 1 2. + 0 + 1.3081369979772717e-004 + 0.4342499077320099 + 0.5682849884033203 + <_> + + <_> + + + + <_>18 4 2 6 -1. + <_>18 6 2 2 3. + 0 + 0.0219920407980680 + 0.5161716938018799 + 0.2379394024610519 + <_> + + <_> + + + + <_>9 13 1 3 -1. + <_>9 14 1 1 3. + 0 + -8.0136500764638186e-004 + 0.5986763238906860 + 0.4466426968574524 + <_> + + <_> + + + + <_>18 4 2 6 -1. + <_>18 6 2 2 3. + 0 + -8.2736099138855934e-003 + 0.4108217954635620 + 0.5251057147979736 + <_> + + <_> + + + + <_>0 4 2 6 -1. + <_>0 6 2 2 3. + 0 + 3.6831789184361696e-003 + 0.5173814296722412 + 0.3397518098354340 + <_> + + <_> + + + + <_>9 12 3 3 -1. + <_>9 13 3 1 3. + 0 + -7.9525681212544441e-003 + 0.6888983249664307 + 0.4845924079418182 + <_> + + <_> + + + + <_>3 13 2 3 -1. + <_>3 14 2 1 3. + 0 + 1.5382299898192286e-003 + 0.5178567171096802 + 0.3454113900661469 + <_> + + <_> + + + + <_>13 13 4 3 -1. + <_>13 14 4 1 3. + 0 + -0.0140435304492712 + 0.1678421050310135 + 0.5188667774200440 + <_> + + <_> + + + + <_>5 4 3 3 -1. + <_>5 5 3 1 3. + 0 + 1.4315890148282051e-003 + 0.4368256926536560 + 0.5655773878097534 + <_> + + <_> + + + + <_>5 2 10 6 -1. + <_>5 4 10 2 3. + 0 + -0.0340142287313938 + 0.7802296280860901 + 0.4959217011928558 + <_> + + <_> + + + + <_>3 13 4 3 -1. + <_>3 14 4 1 3. + 0 + -0.0120272999629378 + 0.1585101038217545 + 0.5032231807708740 + <_> + + <_> + + + + <_>3 7 15 5 -1. + <_>8 7 5 5 3. + 0 + 0.1331661939620972 + 0.5163304805755615 + 0.2755128145217896 + <_> + + <_> + + + + <_>3 7 12 2 -1. + <_>7 7 4 2 3. + 0 + -1.5221949433907866e-003 + 0.3728317916393280 + 0.5214552283287048 + <_> + + <_> + + + + <_>10 3 3 9 -1. + <_>11 3 1 9 3. + 0 + -9.3929271679371595e-004 + 0.5838379263877869 + 0.4511165022850037 + <_> + + <_> + + + + <_>8 6 4 6 -1. + <_>10 6 2 6 2. + 0 + 0.0277197398245335 + 0.4728286862373352 + 0.7331544756889343 + <_> + + <_> + + + + <_>9 7 4 3 -1. + <_>9 8 4 1 3. + 0 + 3.1030150130391121e-003 + 0.5302202105522156 + 0.4101563096046448 + <_> + + <_> + + + + <_>0 9 4 9 -1. + <_>2 9 2 9 2. + 0 + 0.0778612196445465 + 0.4998334050178528 + 0.1272961944341660 + <_> + + <_> + + + + <_>9 13 3 5 -1. + <_>10 13 1 5 3. + 0 + -0.0158549398183823 + 0.0508333593606949 + 0.5165656208992004 + <_> + + <_> + + + + <_>7 7 6 3 -1. + <_>9 7 2 3 3. + 0 + -4.9725300632417202e-003 + 0.6798133850097656 + 0.4684231877326965 + <_> + + <_> + + + + <_>9 7 3 5 -1. + <_>10 7 1 5 3. + 0 + -9.7676506265997887e-004 + 0.6010771989822388 + 0.4788931906223297 + <_> + + <_> + + + + <_>5 7 8 2 -1. + <_>9 7 4 2 2. + 0 + -2.4647710379213095e-003 + 0.3393397927284241 + 0.5220503807067871 + <_> + + <_> + + + + <_>5 9 12 2 -1. + <_>9 9 4 2 3. + 0 + -6.7937700077891350e-003 + 0.4365136921405792 + 0.5239663124084473 + <_> + + <_> + + + + <_>5 6 10 3 -1. + <_>10 6 5 3 2. + 0 + 0.0326080210506916 + 0.5052723884582520 + 0.2425214946269989 + <_> + + <_> + + + + <_>10 12 3 1 -1. + <_>11 12 1 1 3. + 0 + -5.8514421107247472e-004 + 0.5733973979949951 + 0.4758574068546295 + <_> + + <_> + + + + <_>0 1 11 15 -1. + <_>0 6 11 5 3. + 0 + -0.0296326000243425 + 0.3892289102077484 + 0.5263597965240479 + 66.6691207885742190 + 13 + -1 + <_> + + + <_> + + <_> + + + + <_>1 0 18 6 -1. + <_>7 0 6 6 3. + 0 + 0.0465508513152599 + 0.3276950120925903 + 0.6240522861480713 + <_> + + <_> + + + + <_>7 7 6 1 -1. + <_>9 7 2 1 3. + 0 + 7.9537127166986465e-003 + 0.4256485104560852 + 0.6942939162254334 + <_> + + <_> + + + + <_>5 16 6 4 -1. + <_>5 16 3 2 2. + <_>8 18 3 2 2. + 0 + 6.8221561377868056e-004 + 0.3711487054824829 + 0.5900732874870300 + <_> + + <_> + + + + <_>6 5 9 8 -1. + <_>6 9 9 4 2. + 0 + -1.9348249770700932e-004 + 0.2041133940219879 + 0.5300545096397400 + <_> + + <_> + + + + <_>5 10 2 6 -1. + <_>5 13 2 3 2. + 0 + -2.6710508973337710e-004 + 0.5416126251220703 + 0.3103179037570953 + <_> + + <_> + + + + <_>7 6 8 10 -1. + <_>11 6 4 5 2. + <_>7 11 4 5 2. + 0 + 2.7818060480058193e-003 + 0.5277832746505737 + 0.3467069864273071 + <_> + + <_> + + + + <_>5 6 8 10 -1. + <_>5 6 4 5 2. + <_>9 11 4 5 2. + 0 + -4.6779078547842801e-004 + 0.5308231115341187 + 0.3294492065906525 + <_> + + <_> + + + + <_>9 5 2 2 -1. + <_>9 6 2 1 2. + 0 + -3.0335160772665404e-005 + 0.5773872733116150 + 0.3852097094058991 + <_> + + <_> + + + + <_>5 12 8 2 -1. + <_>5 13 8 1 2. + 0 + 7.8038009814918041e-004 + 0.4317438900470734 + 0.6150057911872864 + <_> + + <_> + + + + <_>10 2 8 2 -1. + <_>10 3 8 1 2. + 0 + -4.2553851380944252e-003 + 0.2933903932571411 + 0.5324292778968811 + <_> + + <_> + + + + <_>4 0 2 10 -1. + <_>4 0 1 5 2. + <_>5 5 1 5 2. + 0 + -2.4735610350035131e-004 + 0.5468844771385193 + 0.3843030035495758 + <_> + + <_> + + + + <_>9 10 2 2 -1. + <_>9 11 2 1 2. + 0 + -1.4724259381182492e-004 + 0.4281542897224426 + 0.5755587220191956 + <_> + + <_> + + + + <_>2 8 15 3 -1. + <_>2 9 15 1 3. + 0 + 1.1864770203828812e-003 + 0.3747301101684570 + 0.5471466183662415 + <_> + + <_> + + + + <_>8 13 4 3 -1. + <_>8 14 4 1 3. + 0 + 2.3936580400913954e-003 + 0.4537783861160278 + 0.6111528873443604 + <_> + + <_> + + + + <_>7 2 3 2 -1. + <_>8 2 1 2 3. + 0 + -1.5390539774671197e-003 + 0.2971341907978058 + 0.5189538002014160 + <_> + + <_> + + + + <_>7 13 6 3 -1. + <_>7 14 6 1 3. + 0 + -7.1968790143728256e-003 + 0.6699066758155823 + 0.4726476967334747 + <_> + + <_> + + + + <_>9 9 2 2 -1. + <_>9 10 2 1 2. + 0 + -4.1499789222143590e-004 + 0.3384954035282135 + 0.5260317921638489 + <_> + + <_> + + + + <_>17 2 3 6 -1. + <_>17 4 3 2 3. + 0 + 4.4359830208122730e-003 + 0.5399122238159180 + 0.3920140862464905 + <_> + + <_> + + + + <_>1 5 3 4 -1. + <_>2 5 1 4 3. + 0 + 2.6606200262904167e-003 + 0.4482578039169312 + 0.6119617819786072 + <_> + + <_> + + + + <_>14 8 4 6 -1. + <_>14 10 4 2 3. + 0 + -1.5287200221791863e-003 + 0.3711237907409668 + 0.5340266227722168 + <_> + + <_> + + + + <_>1 4 3 8 -1. + <_>2 4 1 8 3. + 0 + -4.7397250309586525e-003 + 0.6031088232994080 + 0.4455145001411438 + <_> + + <_> + + + + <_>8 13 4 6 -1. + <_>8 16 4 3 2. + 0 + -0.0148291299119592 + 0.2838754057884216 + 0.5341861844062805 + <_> + + <_> + + + + <_>3 14 2 2 -1. + <_>3 15 2 1 2. + 0 + 9.2275557108223438e-004 + 0.5209547281265259 + 0.3361653983592987 + <_> + + <_> + + + + <_>14 8 4 6 -1. + <_>14 10 4 2 3. + 0 + 0.0835298076272011 + 0.5119969844818115 + 0.0811644494533539 + <_> + + <_> + + + + <_>2 8 4 6 -1. + <_>2 10 4 2 3. + 0 + -7.5633148662745953e-004 + 0.3317120075225830 + 0.5189831256866455 + <_> + + <_> + + + + <_>10 14 1 6 -1. + <_>10 17 1 3 2. + 0 + 9.8403859883546829e-003 + 0.5247598290443420 + 0.2334959059953690 + <_> + + <_> + + + + <_>7 5 3 6 -1. + <_>8 5 1 6 3. + 0 + -1.5953830443322659e-003 + 0.5750094056129456 + 0.4295622110366821 + <_> + + <_> + + + + <_>11 2 2 6 -1. + <_>12 2 1 3 2. + <_>11 5 1 3 2. + 0 + 3.4766020689858124e-005 + 0.4342445135116577 + 0.5564029216766357 + <_> + + <_> + + + + <_>6 6 6 5 -1. + <_>8 6 2 5 3. + 0 + 0.0298629105091095 + 0.4579147100448608 + 0.6579188108444214 + <_> + + <_> + + + + <_>17 1 3 6 -1. + <_>17 3 3 2 3. + 0 + 0.0113255903124809 + 0.5274311900138855 + 0.3673888146877289 + <_> + + <_> + + + + <_>8 7 3 5 -1. + <_>9 7 1 5 3. + 0 + -8.7828645482659340e-003 + 0.7100368738174439 + 0.4642167091369629 + <_> + + <_> + + + + <_>9 18 3 2 -1. + <_>10 18 1 2 3. + 0 + 4.3639959767460823e-003 + 0.5279216170310974 + 0.2705877125263214 + <_> + + <_> + + + + <_>8 18 3 2 -1. + <_>9 18 1 2 3. + 0 + 4.1804728098213673e-003 + 0.5072525143623352 + 0.2449083030223846 + <_> + + <_> + + + + <_>12 3 5 2 -1. + <_>12 4 5 1 2. + 0 + -4.5668511302210391e-004 + 0.4283105134963989 + 0.5548691153526306 + <_> + + <_> + + + + <_>7 1 5 12 -1. + <_>7 7 5 6 2. + 0 + -3.7140368949621916e-003 + 0.5519387722015381 + 0.4103653132915497 + <_> + + <_> + + + + <_>1 0 18 4 -1. + <_>7 0 6 4 3. + 0 + -0.0253042895346880 + 0.6867002248764038 + 0.4869889020919800 + <_> + + <_> + + + + <_>4 2 2 2 -1. + <_>4 3 2 1 2. + 0 + -3.4454080741852522e-004 + 0.3728874027729034 + 0.5287693142890930 + <_> + + <_> + + + + <_>11 14 4 2 -1. + <_>13 14 2 1 2. + <_>11 15 2 1 2. + 0 + -8.3935231668874621e-004 + 0.6060152053833008 + 0.4616062045097351 + <_> + + <_> + + + + <_>0 2 3 6 -1. + <_>0 4 3 2 3. + 0 + 0.0172800496220589 + 0.5049635767936707 + 0.1819823980331421 + <_> + + <_> + + + + <_>9 7 2 3 -1. + <_>9 8 2 1 3. + 0 + -6.3595077954232693e-003 + 0.1631239950656891 + 0.5232778787612915 + <_> + + <_> + + + + <_>5 5 1 3 -1. + <_>5 6 1 1 3. + 0 + 1.0298109846189618e-003 + 0.4463278055191040 + 0.6176549196243286 + <_> + + <_> + + + + <_>10 10 6 1 -1. + <_>10 10 3 1 2. + 0 + 1.0117109632119536e-003 + 0.5473384857177734 + 0.4300698935985565 + <_> + + <_> + + + + <_>4 10 6 1 -1. + <_>7 10 3 1 2. + 0 + -0.0103088002651930 + 0.1166985034942627 + 0.5000867247581482 + <_> + + <_> + + + + <_>9 17 3 3 -1. + <_>9 18 3 1 3. + 0 + 5.4682018235325813e-003 + 0.4769287109375000 + 0.6719213724136353 + <_> + + <_> + + + + <_>4 14 1 3 -1. + <_>4 15 1 1 3. + 0 + -9.1696460731327534e-004 + 0.3471089899539948 + 0.5178164839744568 + <_> + + <_> + + + + <_>12 5 3 3 -1. + <_>12 6 3 1 3. + 0 + 2.3922820109874010e-003 + 0.4785236120223999 + 0.6216310858726502 + <_> + + <_> + + + + <_>4 5 12 3 -1. + <_>4 6 12 1 3. + 0 + -7.5573818758130074e-003 + 0.5814796090126038 + 0.4410085082054138 + <_> + + <_> + + + + <_>9 8 2 3 -1. + <_>9 9 2 1 3. + 0 + -7.7024032361805439e-004 + 0.3878000080585480 + 0.5465722084045410 + <_> + + <_> + + + + <_>4 9 3 3 -1. + <_>5 9 1 3 3. + 0 + -8.7125990539789200e-003 + 0.1660051047801971 + 0.4995836019515991 + <_> + + <_> + + + + <_>6 0 9 17 -1. + <_>9 0 3 17 3. + 0 + -0.0103063201531768 + 0.4093391001224518 + 0.5274233818054199 + <_> + + <_> + + + + <_>9 12 1 3 -1. + <_>9 13 1 1 3. + 0 + -2.0940979011356831e-003 + 0.6206194758415222 + 0.4572280049324036 + <_> + + <_> + + + + <_>9 5 2 15 -1. + <_>9 10 2 5 3. + 0 + 6.8099051713943481e-003 + 0.5567759275436401 + 0.4155600070953369 + <_> + + <_> + + + + <_>8 14 2 3 -1. + <_>8 15 2 1 3. + 0 + -1.0746059706434608e-003 + 0.5638927817344666 + 0.4353024959564209 + <_> + + <_> + + + + <_>10 14 1 3 -1. + <_>10 15 1 1 3. + 0 + 2.1550289820879698e-003 + 0.4826265871524811 + 0.6749758124351502 + <_> + + <_> + + + + <_>7 1 6 5 -1. + <_>9 1 2 5 3. + 0 + 0.0317423194646835 + 0.5048379898071289 + 0.1883248984813690 + <_> + + <_> + + + + <_>0 0 20 2 -1. + <_>0 0 10 2 2. + 0 + -0.0783827230334282 + 0.2369548976421356 + 0.5260158181190491 + <_> + + <_> + + + + <_>2 13 5 3 -1. + <_>2 14 5 1 3. + 0 + 5.7415119372308254e-003 + 0.5048828721046448 + 0.2776469886302948 + <_> + + <_> + + + + <_>9 11 2 3 -1. + <_>9 12 2 1 3. + 0 + -2.9014600440859795e-003 + 0.6238604784011841 + 0.4693317115306854 + <_> + + <_> + + + + <_>2 5 9 15 -1. + <_>2 10 9 5 3. + 0 + -2.6427931152284145e-003 + 0.3314141929149628 + 0.5169777274131775 + <_> + + <_> + + + + <_>5 0 12 10 -1. + <_>11 0 6 5 2. + <_>5 5 6 5 2. + 0 + -0.1094966009259224 + 0.2380045056343079 + 0.5183441042900085 + <_> + + <_> + + + + <_>5 1 2 3 -1. + <_>6 1 1 3 2. + 0 + 7.4075913289561868e-005 + 0.4069635868072510 + 0.5362150073051453 + <_> + + <_> + + + + <_>10 7 6 1 -1. + <_>12 7 2 1 3. + 0 + -5.0593802006915212e-004 + 0.5506706237792969 + 0.4374594092369080 + <_> + + <_> + + + + <_>3 1 2 10 -1. + <_>3 1 1 5 2. + <_>4 6 1 5 2. + 0 + -8.2131777890026569e-004 + 0.5525709986686707 + 0.4209375977516174 + <_> + + <_> + + + + <_>13 7 2 1 -1. + <_>13 7 1 1 2. + 0 + -6.0276539443293586e-005 + 0.5455474853515625 + 0.4748266041278839 + <_> + + <_> + + + + <_>4 13 4 6 -1. + <_>4 15 4 2 3. + 0 + 6.8065142259001732e-003 + 0.5157995820045471 + 0.3424577116966248 + <_> + + <_> + + + + <_>13 7 2 1 -1. + <_>13 7 1 1 2. + 0 + 1.7202789895236492e-003 + 0.5013207793235779 + 0.6331263780593872 + <_> + + <_> + + + + <_>5 7 2 1 -1. + <_>6 7 1 1 2. + 0 + -1.3016929733566940e-004 + 0.5539718270301819 + 0.4226869940757752 + <_> + + <_> + + + + <_>2 12 18 4 -1. + <_>11 12 9 2 2. + <_>2 14 9 2 2. + 0 + -4.8016388900578022e-003 + 0.4425095021724701 + 0.5430780053138733 + <_> + + <_> + + + + <_>5 7 2 2 -1. + <_>5 7 1 1 2. + <_>6 8 1 1 2. + 0 + -2.5399310979992151e-003 + 0.7145782113075256 + 0.4697605073451996 + <_> + + <_> + + + + <_>16 3 4 2 -1. + <_>16 4 4 1 2. + 0 + -1.4278929447755218e-003 + 0.4070445001125336 + 0.5399605035781860 + <_> + + <_> + + + + <_>0 2 2 18 -1. + <_>0 2 1 9 2. + <_>1 11 1 9 2. + 0 + -0.0251425504684448 + 0.7884690761566162 + 0.4747352004051209 + <_> + + <_> + + + + <_>1 2 18 4 -1. + <_>10 2 9 2 2. + <_>1 4 9 2 2. + 0 + -3.8899609353393316e-003 + 0.4296191930770874 + 0.5577110052108765 + <_> + + <_> + + + + <_>9 14 1 3 -1. + <_>9 15 1 1 3. + 0 + 4.3947459198534489e-003 + 0.4693162143230438 + 0.7023944258689880 + <_> + + <_> + + + + <_>2 12 18 4 -1. + <_>11 12 9 2 2. + <_>2 14 9 2 2. + 0 + 0.0246784202754498 + 0.5242322087287903 + 0.3812510073184967 + <_> + + <_> + + + + <_>0 12 18 4 -1. + <_>0 12 9 2 2. + <_>9 14 9 2 2. + 0 + 0.0380476787686348 + 0.5011739730834961 + 0.1687828004360199 + <_> + + <_> + + + + <_>11 4 5 3 -1. + <_>11 5 5 1 3. + 0 + 7.9424865543842316e-003 + 0.4828582108020783 + 0.6369568109512329 + <_> + + <_> + + + + <_>6 4 7 3 -1. + <_>6 5 7 1 3. + 0 + -1.5110049862414598e-003 + 0.5906485915184021 + 0.4487667977809906 + <_> + + <_> + + + + <_>13 17 3 3 -1. + <_>13 18 3 1 3. + 0 + 6.4201741479337215e-003 + 0.5241097807884216 + 0.2990570068359375 + <_> + + <_> + + + + <_>8 1 3 4 -1. + <_>9 1 1 4 3. + 0 + -2.9802159406244755e-003 + 0.3041465878486633 + 0.5078489780426025 + <_> + + <_> + + + + <_>11 4 2 4 -1. + <_>11 4 1 4 2. + 0 + -7.4580078944563866e-004 + 0.4128139019012451 + 0.5256826281547546 + <_> + + <_> + + + + <_>0 17 9 3 -1. + <_>3 17 3 3 3. + 0 + -0.0104709500446916 + 0.5808395147323608 + 0.4494296014308929 + <_> + + <_> + + + + <_>11 0 2 8 -1. + <_>12 0 1 4 2. + <_>11 4 1 4 2. + 0 + 9.3369204550981522e-003 + 0.5246552824974060 + 0.2658948898315430 + <_> + + <_> + + + + <_>0 8 6 12 -1. + <_>0 8 3 6 2. + <_>3 14 3 6 2. + 0 + 0.0279369000345469 + 0.4674955010414124 + 0.7087256908416748 + <_> + + <_> + + + + <_>10 7 4 12 -1. + <_>10 13 4 6 2. + 0 + 7.4277678504586220e-003 + 0.5409486889839172 + 0.3758518099784851 + <_> + + <_> + + + + <_>5 3 8 14 -1. + <_>5 10 8 7 2. + 0 + -0.0235845092684031 + 0.3758639991283417 + 0.5238550901412964 + <_> + + <_> + + + + <_>14 10 6 1 -1. + <_>14 10 3 1 2. + 0 + 1.1452640173956752e-003 + 0.4329578876495361 + 0.5804247260093689 + <_> + + <_> + + + + <_>0 4 10 4 -1. + <_>0 6 10 2 2. + 0 + -4.3468660442158580e-004 + 0.5280618071556091 + 0.3873069882392883 + <_> + + <_> + + + + <_>10 0 5 8 -1. + <_>10 4 5 4 2. + 0 + 0.0106485402211547 + 0.4902113080024719 + 0.5681251883506775 + <_> + + <_> + + + + <_>8 1 4 8 -1. + <_>8 1 2 4 2. + <_>10 5 2 4 2. + 0 + -3.9418050437234342e-004 + 0.5570880174636841 + 0.4318251013755798 + <_> + + <_> + + + + <_>9 11 6 1 -1. + <_>11 11 2 1 3. + 0 + -1.3270479394122958e-004 + 0.5658439993858337 + 0.4343554973602295 + <_> + + <_> + + + + <_>8 9 3 4 -1. + <_>9 9 1 4 3. + 0 + -2.0125510636717081e-003 + 0.6056739091873169 + 0.4537523984909058 + <_> + + <_> + + + + <_>18 4 2 6 -1. + <_>18 6 2 2 3. + 0 + 2.4854319635778666e-003 + 0.5390477180480957 + 0.4138010144233704 + <_> + + <_> + + + + <_>8 8 3 4 -1. + <_>9 8 1 4 3. + 0 + 1.8237880431115627e-003 + 0.4354828894138336 + 0.5717188715934753 + <_> + + <_> + + + + <_>7 1 13 3 -1. + <_>7 2 13 1 3. + 0 + -0.0166566595435143 + 0.3010913133621216 + 0.5216122865676880 + <_> + + <_> + + + + <_>7 13 6 1 -1. + <_>9 13 2 1 3. + 0 + 8.0349558265879750e-004 + 0.5300151109695435 + 0.3818396925926209 + <_> + + <_> + + + + <_>12 11 3 6 -1. + <_>12 13 3 2 3. + 0 + 3.4170378930866718e-003 + 0.5328028798103333 + 0.4241400063037872 + <_> + + <_> + + + + <_>5 11 6 1 -1. + <_>7 11 2 1 3. + 0 + -3.6222729249857366e-004 + 0.5491728186607361 + 0.4186977148056030 + <_> + + <_> + + + + <_>1 4 18 10 -1. + <_>10 4 9 5 2. + <_>1 9 9 5 2. + 0 + -0.1163002029061317 + 0.1440722048282623 + 0.5226451158523560 + <_> + + <_> + + + + <_>8 6 4 9 -1. + <_>8 9 4 3 3. + 0 + -0.0146950101479888 + 0.7747725248336792 + 0.4715717136859894 + <_> + + <_> + + + + <_>8 6 4 3 -1. + <_>8 7 4 1 3. + 0 + 2.1972130052745342e-003 + 0.5355433821678162 + 0.3315644860267639 + <_> + + <_> + + + + <_>8 7 3 3 -1. + <_>9 7 1 3 3. + 0 + -4.6965209185145795e-004 + 0.5767235159873962 + 0.4458136856555939 + <_> + + <_> + + + + <_>14 15 4 3 -1. + <_>14 16 4 1 3. + 0 + 6.5144998952746391e-003 + 0.5215674042701721 + 0.3647888898849487 + <_> + + <_> + + + + <_>5 10 3 10 -1. + <_>6 10 1 10 3. + 0 + 0.0213000606745481 + 0.4994204938411713 + 0.1567950993776321 + <_> + + <_> + + + + <_>8 15 4 3 -1. + <_>8 16 4 1 3. + 0 + 3.1881409231573343e-003 + 0.4742200076580048 + 0.6287270188331604 + <_> + + <_> + + + + <_>0 8 1 6 -1. + <_>0 10 1 2 3. + 0 + 9.0019777417182922e-004 + 0.5347954034805298 + 0.3943752050399780 + <_> + + <_> + + + + <_>10 15 1 3 -1. + <_>10 16 1 1 3. + 0 + -5.1772277802228928e-003 + 0.6727191805839539 + 0.5013138055801392 + <_> + + <_> + + + + <_>2 15 4 3 -1. + <_>2 16 4 1 3. + 0 + -4.3764649890363216e-003 + 0.3106675148010254 + 0.5128793120384216 + <_> + + <_> + + + + <_>18 3 2 8 -1. + <_>19 3 1 4 2. + <_>18 7 1 4 2. + 0 + 2.6299960445612669e-003 + 0.4886310100555420 + 0.5755215883255005 + <_> + + <_> + + + + <_>0 3 2 8 -1. + <_>0 3 1 4 2. + <_>1 7 1 4 2. + 0 + -2.0458688959479332e-003 + 0.6025794148445129 + 0.4558076858520508 + <_> + + <_> + + + + <_>3 7 14 10 -1. + <_>10 7 7 5 2. + <_>3 12 7 5 2. + 0 + 0.0694827064871788 + 0.5240747928619385 + 0.2185259014368057 + <_> + + <_> + + + + <_>0 7 19 3 -1. + <_>0 8 19 1 3. + 0 + 0.0240489393472672 + 0.5011867284774780 + 0.2090622037649155 + <_> + + <_> + + + + <_>12 6 3 3 -1. + <_>12 7 3 1 3. + 0 + 3.1095340382307768e-003 + 0.4866712093353272 + 0.7108548283576965 + <_> + + <_> + + + + <_>0 6 1 3 -1. + <_>0 7 1 1 3. + 0 + -1.2503260513767600e-003 + 0.3407891094684601 + 0.5156195163726807 + <_> + + <_> + + + + <_>12 6 3 3 -1. + <_>12 7 3 1 3. + 0 + -1.0281190043315291e-003 + 0.5575572252273560 + 0.4439432024955750 + <_> + + <_> + + + + <_>5 6 3 3 -1. + <_>5 7 3 1 3. + 0 + -8.8893622159957886e-003 + 0.6402000784873962 + 0.4620442092418671 + <_> + + <_> + + + + <_>8 2 4 2 -1. + <_>8 3 4 1 2. + 0 + -6.1094801640138030e-004 + 0.3766441941261292 + 0.5448899865150452 + <_> + + <_> + + + + <_>6 3 4 12 -1. + <_>8 3 2 12 2. + 0 + -5.7686357758939266e-003 + 0.3318648934364319 + 0.5133677124977112 + <_> + + <_> + + + + <_>13 6 2 3 -1. + <_>13 7 2 1 3. + 0 + 1.8506490159779787e-003 + 0.4903570115566254 + 0.6406934857368469 + <_> + + <_> + + + + <_>0 10 20 4 -1. + <_>0 12 20 2 2. + 0 + -0.0997994691133499 + 0.1536051034927368 + 0.5015562176704407 + <_> + + <_> + + + + <_>2 0 17 14 -1. + <_>2 7 17 7 2. + 0 + -0.3512834906578064 + 0.0588231310248375 + 0.5174378752708435 + <_> + + <_> + + + + <_>0 0 6 10 -1. + <_>0 0 3 5 2. + <_>3 5 3 5 2. + 0 + -0.0452445708215237 + 0.6961488723754883 + 0.4677872955799103 + <_> + + <_> + + + + <_>14 6 6 4 -1. + <_>14 6 3 4 2. + 0 + 0.0714815780520439 + 0.5167986154556274 + 0.1038092970848084 + <_> + + <_> + + + + <_>0 6 6 4 -1. + <_>3 6 3 4 2. + 0 + 2.1895780228078365e-003 + 0.4273078143596649 + 0.5532060861587524 + <_> + + <_> + + + + <_>13 2 7 2 -1. + <_>13 3 7 1 2. + 0 + -5.9242651332169771e-004 + 0.4638943970203400 + 0.5276389122009277 + <_> + + <_> + + + + <_>0 2 7 2 -1. + <_>0 3 7 1 2. + 0 + 1.6788389766588807e-003 + 0.5301648974418640 + 0.3932034969329834 + <_> + + <_> + + + + <_>6 11 14 2 -1. + <_>13 11 7 1 2. + <_>6 12 7 1 2. + 0 + -2.2163488902151585e-003 + 0.5630694031715393 + 0.4757033884525299 + <_> + + <_> + + + + <_>8 5 2 2 -1. + <_>8 5 1 1 2. + <_>9 6 1 1 2. + 0 + 1.1568699846975505e-004 + 0.4307535886764526 + 0.5535702705383301 + <_> + + <_> + + + + <_>13 9 2 3 -1. + <_>13 9 1 3 2. + 0 + -7.2017288766801357e-003 + 0.1444882005453110 + 0.5193064212799072 + <_> + + <_> + + + + <_>1 1 3 12 -1. + <_>2 1 1 12 3. + 0 + 8.9081272017210722e-004 + 0.4384432137012482 + 0.5593621134757996 + <_> + + <_> + + + + <_>17 4 1 3 -1. + <_>17 5 1 1 3. + 0 + 1.9605009583756328e-004 + 0.5340415835380554 + 0.4705956876277924 + <_> + + <_> + + + + <_>2 4 1 3 -1. + <_>2 5 1 1 3. + 0 + 5.2022142335772514e-004 + 0.5213856101036072 + 0.3810079097747803 + <_> + + <_> + + + + <_>14 5 1 3 -1. + <_>14 6 1 1 3. + 0 + 9.4588572392240167e-004 + 0.4769414961338043 + 0.6130738854408264 + <_> + + <_> + + + + <_>7 16 2 3 -1. + <_>7 17 2 1 3. + 0 + 9.1698471806012094e-005 + 0.4245009124279022 + 0.5429363250732422 + <_> + + <_> + + + + <_>8 13 4 6 -1. + <_>10 13 2 3 2. + <_>8 16 2 3 2. + 0 + 2.1833200007677078e-003 + 0.5457730889320374 + 0.4191075861454010 + <_> + + <_> + + + + <_>5 5 1 3 -1. + <_>5 6 1 1 3. + 0 + -8.6039671441540122e-004 + 0.5764588713645935 + 0.4471659958362579 + <_> + + <_> + + + + <_>16 0 4 20 -1. + <_>16 0 2 20 2. + 0 + -0.0132362395524979 + 0.6372823119163513 + 0.4695009887218475 + <_> + + <_> + + + + <_>5 1 2 6 -1. + <_>5 1 1 3 2. + <_>6 4 1 3 2. + 0 + 4.3376701069064438e-004 + 0.5317873954772949 + 0.3945829868316650 + 67.6989212036132810 + 14 + -1 + <_> + + + <_> + + <_> + + + + <_>5 4 10 4 -1. + <_>5 6 10 2 2. + 0 + -0.0248471498489380 + 0.6555516719818115 + 0.3873311877250671 + <_> + + <_> + + + + <_>15 2 4 12 -1. + <_>15 2 2 12 2. + 0 + 6.1348611488938332e-003 + 0.3748072087764740 + 0.5973997712135315 + <_> + + <_> + + + + <_>7 6 4 12 -1. + <_>7 12 4 6 2. + 0 + 6.4498498104512691e-003 + 0.5425491929054260 + 0.2548811137676239 + <_> + + <_> + + + + <_>14 5 1 8 -1. + <_>14 9 1 4 2. + 0 + 6.3491211039945483e-004 + 0.2462442070245743 + 0.5387253761291504 + <_> + + <_> + + + + <_>1 4 14 10 -1. + <_>1 4 7 5 2. + <_>8 9 7 5 2. + 0 + 1.4023890253156424e-003 + 0.5594322085380554 + 0.3528657853603363 + <_> + + <_> + + + + <_>11 6 6 14 -1. + <_>14 6 3 7 2. + <_>11 13 3 7 2. + 0 + 3.0044000595808029e-004 + 0.3958503901958466 + 0.5765938162803650 + <_> + + <_> + + + + <_>3 6 6 14 -1. + <_>3 6 3 7 2. + <_>6 13 3 7 2. + 0 + 1.0042409849120304e-004 + 0.3698996901512146 + 0.5534998178482056 + <_> + + <_> + + + + <_>4 9 15 2 -1. + <_>9 9 5 2 3. + 0 + -5.0841490738093853e-003 + 0.3711090981960297 + 0.5547800064086914 + <_> + + <_> + + + + <_>7 14 6 3 -1. + <_>7 15 6 1 3. + 0 + -0.0195372607558966 + 0.7492755055427551 + 0.4579297006130219 + <_> + + <_> + + + + <_>6 3 14 4 -1. + <_>13 3 7 2 2. + <_>6 5 7 2 2. + 0 + -7.4532740654831287e-006 + 0.5649787187576294 + 0.3904069960117340 + <_> + + <_> + + + + <_>1 9 15 2 -1. + <_>6 9 5 2 3. + 0 + -3.6079459823668003e-003 + 0.3381088078022003 + 0.5267801284790039 + <_> + + <_> + + + + <_>6 11 8 9 -1. + <_>6 14 8 3 3. + 0 + 2.0697501022368670e-003 + 0.5519291162490845 + 0.3714388906955719 + <_> + + <_> + + + + <_>7 4 3 8 -1. + <_>8 4 1 8 3. + 0 + -4.6463840408250690e-004 + 0.5608214735984802 + 0.4113566875457764 + <_> + + <_> + + + + <_>14 6 2 6 -1. + <_>14 9 2 3 2. + 0 + 7.5490452582016587e-004 + 0.3559206128120422 + 0.5329356193542481 + <_> + + <_> + + + + <_>5 7 6 4 -1. + <_>5 7 3 2 2. + <_>8 9 3 2 2. + 0 + -9.8322238773107529e-004 + 0.5414795875549316 + 0.3763205111026764 + <_> + + <_> + + + + <_>1 1 18 19 -1. + <_>7 1 6 19 3. + 0 + -0.0199406407773495 + 0.6347903013229370 + 0.4705299139022827 + <_> + + <_> + + + + <_>1 2 6 5 -1. + <_>4 2 3 5 2. + 0 + 3.7680300883948803e-003 + 0.3913489878177643 + 0.5563716292381287 + <_> + + <_> + + + + <_>12 17 6 2 -1. + <_>12 18 6 1 2. + 0 + -9.4528505578637123e-003 + 0.2554892897605896 + 0.5215116739273071 + <_> + + <_> + + + + <_>2 17 6 2 -1. + <_>2 18 6 1 2. + 0 + 2.9560849070549011e-003 + 0.5174679160118103 + 0.3063920140266419 + <_> + + <_> + + + + <_>17 3 3 6 -1. + <_>17 5 3 2 3. + 0 + 9.1078737750649452e-003 + 0.5388448238372803 + 0.2885963022708893 + <_> + + <_> + + + + <_>8 17 3 3 -1. + <_>8 18 3 1 3. + 0 + 1.8219229532405734e-003 + 0.4336043000221252 + 0.5852196812629700 + <_> + + <_> + + + + <_>10 13 2 6 -1. + <_>10 16 2 3 2. + 0 + 0.0146887395530939 + 0.5287361741065979 + 0.2870005965232849 + <_> + + <_> + + + + <_>7 13 6 3 -1. + <_>7 14 6 1 3. + 0 + -0.0143879903480411 + 0.7019448876380920 + 0.4647370874881744 + <_> + + <_> + + + + <_>17 3 3 6 -1. + <_>17 5 3 2 3. + 0 + -0.0189866498112679 + 0.2986552119255066 + 0.5247011780738831 + <_> + + <_> + + + + <_>8 13 2 3 -1. + <_>8 14 2 1 3. + 0 + 1.1527639580890536e-003 + 0.4323473870754242 + 0.5931661725044251 + <_> + + <_> + + + + <_>9 3 6 2 -1. + <_>11 3 2 2 3. + 0 + 0.0109336702153087 + 0.5286864042282105 + 0.3130319118499756 + <_> + + <_> + + + + <_>0 3 3 6 -1. + <_>0 5 3 2 3. + 0 + -0.0149327302351594 + 0.2658419013023377 + 0.5084077119827271 + <_> + + <_> + + + + <_>8 5 4 6 -1. + <_>8 7 4 2 3. + 0 + -2.9970539617352188e-004 + 0.5463526844978333 + 0.3740724027156830 + <_> + + <_> + + + + <_>5 5 3 2 -1. + <_>5 6 3 1 2. + 0 + 4.1677621193230152e-003 + 0.4703496992588043 + 0.7435721755027771 + <_> + + <_> + + + + <_>10 1 3 4 -1. + <_>11 1 1 4 3. + 0 + -6.3905320130288601e-003 + 0.2069258987903595 + 0.5280538201332092 + <_> + + <_> + + + + <_>1 2 5 9 -1. + <_>1 5 5 3 3. + 0 + 4.5029609464108944e-003 + 0.5182648897171021 + 0.3483543097972870 + <_> + + <_> + + + + <_>13 6 2 3 -1. + <_>13 7 2 1 3. + 0 + -9.2040365561842918e-003 + 0.6803777217864990 + 0.4932360053062439 + <_> + + <_> + + + + <_>0 6 14 3 -1. + <_>7 6 7 3 2. + 0 + 0.0813272595405579 + 0.5058398842811585 + 0.2253051996231079 + <_> + + <_> + + + + <_>2 11 18 8 -1. + <_>2 15 18 4 2. + 0 + -0.1507928073406220 + 0.2963424921035767 + 0.5264679789543152 + <_> + + <_> + + + + <_>5 6 2 3 -1. + <_>5 7 2 1 3. + 0 + 3.3179009333252907e-003 + 0.4655495882034302 + 0.7072932124137878 + <_> + + <_> + + + + <_>10 6 4 2 -1. + <_>12 6 2 1 2. + <_>10 7 2 1 2. + 0 + 7.7402801252901554e-004 + 0.4780347943305969 + 0.5668237805366516 + <_> + + <_> + + + + <_>6 6 4 2 -1. + <_>6 6 2 1 2. + <_>8 7 2 1 2. + 0 + 6.8199541419744492e-004 + 0.4286996126174927 + 0.5722156763076782 + <_> + + <_> + + + + <_>10 1 3 4 -1. + <_>11 1 1 4 3. + 0 + 5.3671570494771004e-003 + 0.5299307107925415 + 0.3114621937274933 + <_> + + <_> + + + + <_>7 1 2 7 -1. + <_>8 1 1 7 2. + 0 + 9.7018666565418243e-005 + 0.3674638867378235 + 0.5269461870193481 + <_> + + <_> + + + + <_>4 2 15 14 -1. + <_>4 9 15 7 2. + 0 + -0.1253408938646317 + 0.2351492047309876 + 0.5245791077613831 + <_> + + <_> + + + + <_>8 7 3 2 -1. + <_>9 7 1 2 3. + 0 + -5.2516269497573376e-003 + 0.7115936875343323 + 0.4693767130374908 + <_> + + <_> + + + + <_>2 3 18 4 -1. + <_>11 3 9 2 2. + <_>2 5 9 2 2. + 0 + -7.8342109918594360e-003 + 0.4462651014328003 + 0.5409085750579834 + <_> + + <_> + + + + <_>9 7 2 2 -1. + <_>10 7 1 2 2. + 0 + -1.1310069821774960e-003 + 0.5945618748664856 + 0.4417662024497986 + <_> + + <_> + + + + <_>13 9 2 3 -1. + <_>13 9 1 3 2. + 0 + 1.7601120052859187e-003 + 0.5353249907493591 + 0.3973453044891357 + <_> + + <_> + + + + <_>5 2 6 2 -1. + <_>7 2 2 2 3. + 0 + -8.1581249833106995e-004 + 0.3760268092155457 + 0.5264726877212524 + <_> + + <_> + + + + <_>9 5 2 7 -1. + <_>9 5 1 7 2. + 0 + -3.8687589112669230e-003 + 0.6309912800788879 + 0.4749819934368134 + <_> + + <_> + + + + <_>5 9 2 3 -1. + <_>6 9 1 3 2. + 0 + 1.5207129763439298e-003 + 0.5230181813240051 + 0.3361223936080933 + <_> + + <_> + + + + <_>6 0 14 18 -1. + <_>6 9 14 9 2. + 0 + 0.5458673834800720 + 0.5167139768600464 + 0.1172635033726692 + <_> + + <_> + + + + <_>2 16 6 3 -1. + <_>2 17 6 1 3. + 0 + 0.0156501904129982 + 0.4979439079761505 + 0.1393294930458069 + <_> + + <_> + + + + <_>9 7 3 6 -1. + <_>10 7 1 6 3. + 0 + -0.0117318602278829 + 0.7129650712013245 + 0.4921196103096008 + <_> + + <_> + + + + <_>7 8 4 3 -1. + <_>7 9 4 1 3. + 0 + -6.1765122227370739e-003 + 0.2288102954626083 + 0.5049701929092407 + <_> + + <_> + + + + <_>7 12 6 3 -1. + <_>7 13 6 1 3. + 0 + 2.2457661107182503e-003 + 0.4632433950901032 + 0.6048725843429565 + <_> + + <_> + + + + <_>9 12 2 3 -1. + <_>9 13 2 1 3. + 0 + -5.1915869116783142e-003 + 0.6467421054840088 + 0.4602192938327789 + <_> + + <_> + + + + <_>7 12 6 2 -1. + <_>9 12 2 2 3. + 0 + -0.0238278806209564 + 0.1482000946998596 + 0.5226079225540161 + <_> + + <_> + + + + <_>5 11 4 6 -1. + <_>5 14 4 3 2. + 0 + 1.0284580057486892e-003 + 0.5135489106178284 + 0.3375957012176514 + <_> + + <_> + + + + <_>11 12 7 2 -1. + <_>11 13 7 1 2. + 0 + -0.0100788502022624 + 0.2740561068058014 + 0.5303567051887512 + <_> + + <_> + + + + <_>6 10 8 6 -1. + <_>6 10 4 3 2. + <_>10 13 4 3 2. + 0 + 2.6168930344283581e-003 + 0.5332670807838440 + 0.3972454071044922 + <_> + + <_> + + + + <_>11 10 3 4 -1. + <_>11 12 3 2 2. + 0 + 5.4385367548093200e-004 + 0.5365604162216187 + 0.4063411951065064 + <_> + + <_> + + + + <_>9 16 2 3 -1. + <_>9 17 2 1 3. + 0 + 5.3510512225329876e-003 + 0.4653759002685547 + 0.6889045834541321 + <_> + + <_> + + + + <_>13 3 1 9 -1. + <_>13 6 1 3 3. + 0 + -1.5274790348485112e-003 + 0.5449501276016235 + 0.3624723851680756 + <_> + + <_> + + + + <_>1 13 14 6 -1. + <_>1 15 14 2 3. + 0 + -0.0806244164705276 + 0.1656087040901184 + 0.5000287294387817 + <_> + + <_> + + + + <_>13 6 1 6 -1. + <_>13 9 1 3 2. + 0 + 0.0221920292824507 + 0.5132731199264526 + 0.2002808004617691 + <_> + + <_> + + + + <_>0 4 3 8 -1. + <_>1 4 1 8 3. + 0 + 7.3100631125271320e-003 + 0.4617947936058044 + 0.6366536021232605 + <_> + + <_> + + + + <_>18 0 2 18 -1. + <_>18 0 1 18 2. + 0 + -6.4063072204589844e-003 + 0.5916250944137573 + 0.4867860972881317 + <_> + + <_> + + + + <_>2 3 6 2 -1. + <_>2 4 6 1 2. + 0 + -7.6415040530264378e-004 + 0.3888409137725830 + 0.5315797924995422 + <_> + + <_> + + + + <_>9 0 8 6 -1. + <_>9 2 8 2 3. + 0 + 7.6734489994123578e-004 + 0.4159064888954163 + 0.5605279803276062 + <_> + + <_> + + + + <_>6 6 1 6 -1. + <_>6 9 1 3 2. + 0 + 6.1474501853808761e-004 + 0.3089022040367127 + 0.5120148062705994 + <_> + + <_> + + + + <_>14 8 6 3 -1. + <_>14 9 6 1 3. + 0 + -5.0105270929634571e-003 + 0.3972199857234955 + 0.5207306146621704 + <_> + + <_> + + + + <_>0 0 2 18 -1. + <_>1 0 1 18 2. + 0 + -8.6909132078289986e-003 + 0.6257408261299133 + 0.4608575999736786 + <_> + + <_> + + + + <_>1 18 18 2 -1. + <_>10 18 9 1 2. + <_>1 19 9 1 2. + 0 + -0.0163914598524570 + 0.2085209935903549 + 0.5242266058921814 + <_> + + <_> + + + + <_>3 15 2 2 -1. + <_>3 16 2 1 2. + 0 + 4.0973909199237823e-004 + 0.5222427248954773 + 0.3780320882797241 + <_> + + <_> + + + + <_>8 14 5 3 -1. + <_>8 15 5 1 3. + 0 + -2.5242289993911982e-003 + 0.5803927183151245 + 0.4611890017986298 + <_> + + <_> + + + + <_>8 14 2 3 -1. + <_>8 15 2 1 3. + 0 + 5.0945312250405550e-004 + 0.4401271939277649 + 0.5846015810966492 + <_> + + <_> + + + + <_>12 3 3 3 -1. + <_>13 3 1 3 3. + 0 + 1.9656419754028320e-003 + 0.5322325229644775 + 0.4184590876102448 + <_> + + <_> + + + + <_>7 5 6 2 -1. + <_>9 5 2 2 3. + 0 + 5.6298897834494710e-004 + 0.3741844892501831 + 0.5234565734863281 + <_> + + <_> + + + + <_>15 5 5 2 -1. + <_>15 6 5 1 2. + 0 + -6.7946797935292125e-004 + 0.4631041884422302 + 0.5356478095054627 + <_> + + <_> + + + + <_>0 5 5 2 -1. + <_>0 6 5 1 2. + 0 + 7.2856349870562553e-003 + 0.5044670104980469 + 0.2377564013004303 + <_> + + <_> + + + + <_>17 14 1 6 -1. + <_>17 17 1 3 2. + 0 + -0.0174594894051552 + 0.7289121150970459 + 0.5050435066223145 + <_> + + <_> + + + + <_>2 9 9 3 -1. + <_>5 9 3 3 3. + 0 + -0.0254217498004436 + 0.6667134761810303 + 0.4678100049495697 + <_> + + <_> + + + + <_>12 3 3 3 -1. + <_>13 3 1 3 3. + 0 + -1.5647639520466328e-003 + 0.4391759037971497 + 0.5323626995086670 + <_> + + <_> + + + + <_>0 0 4 18 -1. + <_>2 0 2 18 2. + 0 + 0.0114443600177765 + 0.4346440136432648 + 0.5680012106895447 + <_> + + <_> + + + + <_>17 6 1 3 -1. + <_>17 7 1 1 3. + 0 + -6.7352550104260445e-004 + 0.4477140903472900 + 0.5296812057495117 + <_> + + <_> + + + + <_>2 14 1 6 -1. + <_>2 17 1 3 2. + 0 + 9.3194209039211273e-003 + 0.4740200042724609 + 0.7462607026100159 + <_> + + <_> + + + + <_>19 8 1 2 -1. + <_>19 9 1 1 2. + 0 + 1.3328490604180843e-004 + 0.5365061759948731 + 0.4752134978771210 + <_> + + <_> + + + + <_>5 3 3 3 -1. + <_>6 3 1 3 3. + 0 + -7.8815799206495285e-003 + 0.1752219051122665 + 0.5015255212783814 + <_> + + <_> + + + + <_>9 16 2 3 -1. + <_>9 17 2 1 3. + 0 + -5.7985680177807808e-003 + 0.7271236777305603 + 0.4896200895309448 + <_> + + <_> + + + + <_>2 6 1 3 -1. + <_>2 7 1 1 3. + 0 + -3.8922499516047537e-004 + 0.4003908932209015 + 0.5344941020011902 + <_> + + <_> + + + + <_>12 4 8 2 -1. + <_>16 4 4 1 2. + <_>12 5 4 1 2. + 0 + -1.9288610201328993e-003 + 0.5605612993240356 + 0.4803955852985382 + <_> + + <_> + + + + <_>0 4 8 2 -1. + <_>0 4 4 1 2. + <_>4 5 4 1 2. + 0 + 8.4214154630899429e-003 + 0.4753246903419495 + 0.7623608708381653 + <_> + + <_> + + + + <_>2 16 18 4 -1. + <_>2 18 18 2 2. + 0 + 8.1655876711010933e-003 + 0.5393261909484863 + 0.4191643893718720 + <_> + + <_> + + + + <_>7 15 2 4 -1. + <_>7 17 2 2 2. + 0 + 4.8280550981871784e-004 + 0.4240800142288208 + 0.5399821996688843 + <_> + + <_> + + + + <_>4 0 14 3 -1. + <_>4 1 14 1 3. + 0 + -2.7186630759388208e-003 + 0.4244599938392639 + 0.5424923896789551 + <_> + + <_> + + + + <_>0 0 4 20 -1. + <_>2 0 2 20 2. + 0 + -0.0125072300434113 + 0.5895841717720032 + 0.4550411105155945 + <_> + + <_> + + + + <_>12 4 4 8 -1. + <_>14 4 2 4 2. + <_>12 8 2 4 2. + 0 + -0.0242865197360516 + 0.2647134959697723 + 0.5189179778099060 + <_> + + <_> + + + + <_>6 7 2 2 -1. + <_>6 7 1 1 2. + <_>7 8 1 1 2. + 0 + -2.9676330741494894e-003 + 0.7347682714462280 + 0.4749749898910523 + <_> + + <_> + + + + <_>10 6 2 3 -1. + <_>10 7 2 1 3. + 0 + -0.0125289997085929 + 0.2756049931049347 + 0.5177599787712097 + <_> + + <_> + + + + <_>8 7 3 2 -1. + <_>8 8 3 1 2. + 0 + -1.0104000102728605e-003 + 0.3510560989379883 + 0.5144724249839783 + <_> + + <_> + + + + <_>8 2 6 12 -1. + <_>8 8 6 6 2. + 0 + -2.1348530426621437e-003 + 0.5637925863265991 + 0.4667319953441620 + <_> + + <_> + + + + <_>4 0 11 12 -1. + <_>4 4 11 4 3. + 0 + 0.0195642597973347 + 0.4614573121070862 + 0.6137639880180359 + <_> + + <_> + + + + <_>14 9 6 11 -1. + <_>16 9 2 11 3. + 0 + -0.0971463471651077 + 0.2998378872871399 + 0.5193555951118469 + <_> + + <_> + + + + <_>0 14 4 3 -1. + <_>0 15 4 1 3. + 0 + 4.5014568604528904e-003 + 0.5077884793281555 + 0.3045755922794342 + <_> + + <_> + + + + <_>9 10 2 3 -1. + <_>9 11 2 1 3. + 0 + 6.3706971704959869e-003 + 0.4861018955707550 + 0.6887500882148743 + <_> + + <_> + + + + <_>5 11 3 2 -1. + <_>5 12 3 1 2. + 0 + -9.0721528977155685e-003 + 0.1673395931720734 + 0.5017563104629517 + <_> + + <_> + + + + <_>9 15 3 3 -1. + <_>10 15 1 3 3. + 0 + -5.3537208586931229e-003 + 0.2692756950855255 + 0.5242633223533630 + <_> + + <_> + + + + <_>8 8 3 4 -1. + <_>9 8 1 4 3. + 0 + -0.0109328404068947 + 0.7183864116668701 + 0.4736028909683228 + <_> + + <_> + + + + <_>9 15 3 3 -1. + <_>10 15 1 3 3. + 0 + 8.2356072962284088e-003 + 0.5223966836929321 + 0.2389862984418869 + <_> + + <_> + + + + <_>7 7 3 2 -1. + <_>8 7 1 2 3. + 0 + -1.0038160253316164e-003 + 0.5719355940818787 + 0.4433943033218384 + <_> + + <_> + + + + <_>2 10 16 4 -1. + <_>10 10 8 2 2. + <_>2 12 8 2 2. + 0 + 4.0859128348529339e-003 + 0.5472841858863831 + 0.4148836135864258 + <_> + + <_> + + + + <_>2 3 4 17 -1. + <_>4 3 2 17 2. + 0 + 0.1548541933298111 + 0.4973812103271484 + 0.0610615983605385 + <_> + + <_> + + + + <_>15 13 2 7 -1. + <_>15 13 1 7 2. + 0 + 2.0897459762636572e-004 + 0.4709174036979675 + 0.5423889160156250 + <_> + + <_> + + + + <_>2 2 6 1 -1. + <_>5 2 3 1 2. + 0 + 3.3316991175524890e-004 + 0.4089626967906952 + 0.5300992131233215 + <_> + + <_> + + + + <_>5 2 12 4 -1. + <_>9 2 4 4 3. + 0 + -0.0108134001493454 + 0.6104369759559631 + 0.4957334101200104 + <_> + + <_> + + + + <_>6 0 8 12 -1. + <_>6 0 4 6 2. + <_>10 6 4 6 2. + 0 + 0.0456560105085373 + 0.5069689154624939 + 0.2866660058498383 + <_> + + <_> + + + + <_>13 7 2 2 -1. + <_>14 7 1 1 2. + <_>13 8 1 1 2. + 0 + 1.2569549726322293e-003 + 0.4846917092800140 + 0.6318171024322510 + <_> + + <_> + + + + <_>0 12 20 6 -1. + <_>0 14 20 2 3. + 0 + -0.1201507002115250 + 0.0605261400341988 + 0.4980959892272949 + <_> + + <_> + + + + <_>14 7 2 3 -1. + <_>14 7 1 3 2. + 0 + -1.0533799650147557e-004 + 0.5363109707832336 + 0.4708042144775391 + <_> + + <_> + + + + <_>0 8 9 12 -1. + <_>3 8 3 12 3. + 0 + -0.2070319056510925 + 0.0596603304147720 + 0.4979098141193390 + <_> + + <_> + + + + <_>3 0 16 2 -1. + <_>3 0 8 2 2. + 0 + 1.2909180077258497e-004 + 0.4712977111339569 + 0.5377997756004334 + <_> + + <_> + + + + <_>6 15 3 3 -1. + <_>6 16 3 1 3. + 0 + 3.8818528992123902e-004 + 0.4363538026809692 + 0.5534191131591797 + <_> + + <_> + + + + <_>8 15 6 3 -1. + <_>8 16 6 1 3. + 0 + -2.9243610333651304e-003 + 0.5811185836791992 + 0.4825215935707092 + <_> + + <_> + + + + <_>0 10 1 6 -1. + <_>0 12 1 2 3. + 0 + 8.3882332546636462e-004 + 0.5311700105667114 + 0.4038138985633850 + <_> + + <_> + + + + <_>10 9 4 3 -1. + <_>10 10 4 1 3. + 0 + -1.9061550265178084e-003 + 0.3770701885223389 + 0.5260015130043030 + <_> + + <_> + + + + <_>9 15 2 3 -1. + <_>9 16 2 1 3. + 0 + 8.9514348655939102e-003 + 0.4766167998313904 + 0.7682183980941773 + <_> + + <_> + + + + <_>5 7 10 1 -1. + <_>5 7 5 1 2. + 0 + 0.0130834598094225 + 0.5264462828636169 + 0.3062222003936768 + <_> + + <_> + + + + <_>4 0 12 19 -1. + <_>10 0 6 19 2. + 0 + -0.2115933001041412 + 0.6737198233604431 + 0.4695810079574585 + <_> + + <_> + + + + <_>0 6 20 6 -1. + <_>10 6 10 3 2. + <_>0 9 10 3 2. + 0 + 3.1493250280618668e-003 + 0.5644835233688355 + 0.4386953115463257 + <_> + + <_> + + + + <_>3 6 2 2 -1. + <_>3 6 1 1 2. + <_>4 7 1 1 2. + 0 + 3.9754100725986063e-004 + 0.4526061117649078 + 0.5895630121231079 + <_> + + <_> + + + + <_>15 6 2 2 -1. + <_>16 6 1 1 2. + <_>15 7 1 1 2. + 0 + -1.3814480043947697e-003 + 0.6070582270622253 + 0.4942413866519928 + <_> + + <_> + + + + <_>3 6 2 2 -1. + <_>3 6 1 1 2. + <_>4 7 1 1 2. + 0 + -5.8122188784182072e-004 + 0.5998213291168213 + 0.4508252143859863 + <_> + + <_> + + + + <_>14 4 1 12 -1. + <_>14 10 1 6 2. + 0 + -2.3905329871922731e-003 + 0.4205588996410370 + 0.5223848223686218 + <_> + + <_> + + + + <_>2 5 16 10 -1. + <_>2 5 8 5 2. + <_>10 10 8 5 2. + 0 + 0.0272689294070005 + 0.5206447243690491 + 0.3563301861286163 + <_> + + <_> + + + + <_>9 17 3 2 -1. + <_>10 17 1 2 3. + 0 + -3.7658358924090862e-003 + 0.3144704103469849 + 0.5218814015388489 + <_> + + <_> + + + + <_>1 4 2 2 -1. + <_>1 5 2 1 2. + 0 + -1.4903489500284195e-003 + 0.3380196094512940 + 0.5124437212944031 + <_> + + <_> + + + + <_>5 0 15 5 -1. + <_>10 0 5 5 3. + 0 + -0.0174282304942608 + 0.5829960703849793 + 0.4919725954532623 + <_> + + <_> + + + + <_>0 0 15 5 -1. + <_>5 0 5 5 3. + 0 + -0.0152780301868916 + 0.6163144707679749 + 0.4617887139320374 + <_> + + <_> + + + + <_>11 2 2 17 -1. + <_>11 2 1 17 2. + 0 + 0.0319956094026566 + 0.5166357159614563 + 0.1712764054536820 + <_> + + <_> + + + + <_>7 2 2 17 -1. + <_>8 2 1 17 2. + 0 + -3.8256710395216942e-003 + 0.3408012092113495 + 0.5131387710571289 + <_> + + <_> + + + + <_>15 11 2 9 -1. + <_>15 11 1 9 2. + 0 + -8.5186436772346497e-003 + 0.6105518937110901 + 0.4997941851615906 + <_> + + <_> + + + + <_>3 11 2 9 -1. + <_>4 11 1 9 2. + 0 + 9.0641621500253677e-004 + 0.4327270984649658 + 0.5582311153411865 + <_> + + <_> + + + + <_>5 16 14 4 -1. + <_>5 16 7 4 2. + 0 + 0.0103448498994112 + 0.4855653047561646 + 0.5452420115470886 + 69.2298736572265630 + 15 + -1 + <_> + + + <_> + + <_> + + + + <_>1 4 18 1 -1. + <_>7 4 6 1 3. + 0 + 7.8981826081871986e-003 + 0.3332524895668030 + 0.5946462154388428 + <_> + + <_> + + + + <_>13 7 6 4 -1. + <_>16 7 3 2 2. + <_>13 9 3 2 2. + 0 + 1.6170160379260778e-003 + 0.3490641117095947 + 0.5577868819236755 + <_> + + <_> + + + + <_>9 8 2 12 -1. + <_>9 12 2 4 3. + 0 + -5.5449741194024682e-004 + 0.5542566180229187 + 0.3291530013084412 + <_> + + <_> + + + + <_>12 1 6 6 -1. + <_>12 3 6 2 3. + 0 + 1.5428980113938451e-003 + 0.3612579107284546 + 0.5545979142189026 + <_> + + <_> + + + + <_>5 2 6 6 -1. + <_>5 2 3 3 2. + <_>8 5 3 3 2. + 0 + -1.0329450014978647e-003 + 0.3530139029026032 + 0.5576140284538269 + <_> + + <_> + + + + <_>9 16 6 4 -1. + <_>12 16 3 2 2. + <_>9 18 3 2 2. + 0 + 7.7698158565908670e-004 + 0.3916778862476349 + 0.5645321011543274 + <_> + + <_> + + + + <_>1 2 18 3 -1. + <_>7 2 6 3 3. + 0 + 0.1432030051946640 + 0.4667482078075409 + 0.7023633122444153 + <_> + + <_> + + + + <_>7 4 9 10 -1. + <_>7 9 9 5 2. + 0 + -7.3866490274667740e-003 + 0.3073684871196747 + 0.5289257764816284 + <_> + + <_> + + + + <_>5 9 4 4 -1. + <_>7 9 2 4 2. + 0 + -6.2936742324382067e-004 + 0.5622118115425110 + 0.4037049114704132 + <_> + + <_> + + + + <_>11 10 3 6 -1. + <_>11 13 3 3 2. + 0 + 7.8893528552725911e-004 + 0.5267661213874817 + 0.3557874858379364 + <_> + + <_> + + + + <_>7 11 5 3 -1. + <_>7 12 5 1 3. + 0 + -0.0122280502691865 + 0.6668320894241333 + 0.4625549912452698 + <_> + + <_> + + + + <_>7 11 6 6 -1. + <_>10 11 3 3 2. + <_>7 14 3 3 2. + 0 + 3.5420239437371492e-003 + 0.5521438121795654 + 0.3869673013687134 + <_> + + <_> + + + + <_>0 0 10 9 -1. + <_>0 3 10 3 3. + 0 + -1.0585320414975286e-003 + 0.3628678023815155 + 0.5320926904678345 + <_> + + <_> + + + + <_>13 14 1 6 -1. + <_>13 16 1 2 3. + 0 + 1.4935660146875307e-005 + 0.4632444977760315 + 0.5363323092460632 + <_> + + <_> + + + + <_>0 2 3 6 -1. + <_>0 4 3 2 3. + 0 + 5.2537708543241024e-003 + 0.5132231712341309 + 0.3265708982944489 + <_> + + <_> + + + + <_>8 14 4 3 -1. + <_>8 15 4 1 3. + 0 + -8.2338023930788040e-003 + 0.6693689823150635 + 0.4774140119552612 + <_> + + <_> + + + + <_>6 14 1 6 -1. + <_>6 16 1 2 3. + 0 + 2.1866810129722580e-005 + 0.4053862094879150 + 0.5457931160926819 + <_> + + <_> + + + + <_>9 15 2 3 -1. + <_>9 16 2 1 3. + 0 + -3.8150229956954718e-003 + 0.6454995870590210 + 0.4793178141117096 + <_> + + <_> + + + + <_>6 4 3 3 -1. + <_>7 4 1 3 3. + 0 + 1.1105879675596952e-003 + 0.5270407199859619 + 0.3529678881168366 + <_> + + <_> + + + + <_>9 0 11 3 -1. + <_>9 1 11 1 3. + 0 + -5.7707689702510834e-003 + 0.3803547024726868 + 0.5352957844734192 + <_> + + <_> + + + + <_>0 6 20 3 -1. + <_>0 7 20 1 3. + 0 + -3.0158339068293571e-003 + 0.5339403152465820 + 0.3887133002281189 + <_> + + <_> + + + + <_>10 1 1 2 -1. + <_>10 2 1 1 2. + 0 + -8.5453689098358154e-004 + 0.3564616143703461 + 0.5273603796958923 + <_> + + <_> + + + + <_>9 6 2 6 -1. + <_>10 6 1 6 2. + 0 + 0.0110505102202296 + 0.4671907126903534 + 0.6849737763404846 + <_> + + <_> + + + + <_>5 8 12 1 -1. + <_>9 8 4 1 3. + 0 + 0.0426058396697044 + 0.5151473283767700 + 0.0702200904488564 + <_> + + <_> + + + + <_>3 8 12 1 -1. + <_>7 8 4 1 3. + 0 + -3.0781750101596117e-003 + 0.3041661083698273 + 0.5152602195739746 + <_> + + <_> + + + + <_>9 7 3 5 -1. + <_>10 7 1 5 3. + 0 + -5.4815728217363358e-003 + 0.6430295705795288 + 0.4897229969501495 + <_> + + <_> + + + + <_>3 9 6 2 -1. + <_>6 9 3 2 2. + 0 + 3.1881860923022032e-003 + 0.5307493209838867 + 0.3826209902763367 + <_> + + <_> + + + + <_>12 9 3 3 -1. + <_>12 10 3 1 3. + 0 + 3.5947180003859103e-004 + 0.4650047123432159 + 0.5421904921531677 + <_> + + <_> + + + + <_>7 0 6 1 -1. + <_>9 0 2 1 3. + 0 + -4.0705031715333462e-003 + 0.2849679887294769 + 0.5079116225242615 + <_> + + <_> + + + + <_>12 9 3 3 -1. + <_>12 10 3 1 3. + 0 + -0.0145941702648997 + 0.2971645891666412 + 0.5128461718559265 + <_> + + <_> + + + + <_>7 10 2 1 -1. + <_>8 10 1 1 2. + 0 + -1.1947689927183092e-004 + 0.5631098151206970 + 0.4343082010746002 + <_> + + <_> + + + + <_>6 4 9 13 -1. + <_>9 4 3 13 3. + 0 + -6.9344649091362953e-004 + 0.4403578042984009 + 0.5359959006309509 + <_> + + <_> + + + + <_>6 8 4 2 -1. + <_>6 9 4 1 2. + 0 + 1.4834799912932795e-005 + 0.3421008884906769 + 0.5164697766304016 + <_> + + <_> + + + + <_>16 2 4 6 -1. + <_>16 2 2 6 2. + 0 + 9.0296985581517220e-003 + 0.4639343023300171 + 0.6114075183868408 + <_> + + <_> + + + + <_>0 17 6 3 -1. + <_>0 18 6 1 3. + 0 + -8.0640818923711777e-003 + 0.2820158898830414 + 0.5075494050979614 + <_> + + <_> + + + + <_>10 10 3 10 -1. + <_>10 15 3 5 2. + 0 + 0.0260621197521687 + 0.5208905935287476 + 0.2688778042793274 + <_> + + <_> + + + + <_>8 7 3 5 -1. + <_>9 7 1 5 3. + 0 + 0.0173146594315767 + 0.4663713872432709 + 0.6738539934158325 + <_> + + <_> + + + + <_>10 4 4 3 -1. + <_>10 4 2 3 2. + 0 + 0.0226666405797005 + 0.5209349989891052 + 0.2212723940610886 + <_> + + <_> + + + + <_>8 4 3 8 -1. + <_>9 4 1 8 3. + 0 + -2.1965929772704840e-003 + 0.6063101291656494 + 0.4538190066814423 + <_> + + <_> + + + + <_>6 6 9 13 -1. + <_>9 6 3 13 3. + 0 + -9.5282476395368576e-003 + 0.4635204970836639 + 0.5247430801391602 + <_> + + <_> + + + + <_>6 0 8 12 -1. + <_>6 0 4 6 2. + <_>10 6 4 6 2. + 0 + 8.0943619832396507e-003 + 0.5289440155029297 + 0.3913882076740265 + <_> + + <_> + + + + <_>14 2 6 8 -1. + <_>16 2 2 8 3. + 0 + -0.0728773325681686 + 0.7752001881599426 + 0.4990234971046448 + <_> + + <_> + + + + <_>6 0 3 6 -1. + <_>7 0 1 6 3. + 0 + -6.9009521976113319e-003 + 0.2428039014339447 + 0.5048090219497681 + <_> + + <_> + + + + <_>14 2 6 8 -1. + <_>16 2 2 8 3. + 0 + -0.0113082397729158 + 0.5734364986419678 + 0.4842376112937927 + <_> + + <_> + + + + <_>0 5 6 6 -1. + <_>0 8 6 3 2. + 0 + 0.0596132017672062 + 0.5029836297035217 + 0.2524977028369904 + <_> + + <_> + + + + <_>9 12 6 2 -1. + <_>12 12 3 1 2. + <_>9 13 3 1 2. + 0 + -2.8624620754271746e-003 + 0.6073045134544373 + 0.4898459911346436 + <_> + + <_> + + + + <_>8 17 3 2 -1. + <_>9 17 1 2 3. + 0 + 4.4781449250876904e-003 + 0.5015289187431335 + 0.2220316976308823 + <_> + + <_> + + + + <_>11 6 2 2 -1. + <_>12 6 1 1 2. + <_>11 7 1 1 2. + 0 + -1.7513240454718471e-003 + 0.6614428758621216 + 0.4933868944644928 + <_> + + <_> + + + + <_>1 9 18 2 -1. + <_>7 9 6 2 3. + 0 + 0.0401634201407433 + 0.5180878043174744 + 0.3741044998168945 + <_> + + <_> + + + + <_>11 6 2 2 -1. + <_>12 6 1 1 2. + <_>11 7 1 1 2. + 0 + 3.4768949262797832e-004 + 0.4720416963100433 + 0.5818032026290894 + <_> + + <_> + + + + <_>3 4 12 8 -1. + <_>7 4 4 8 3. + 0 + 2.6551650371402502e-003 + 0.3805010914802551 + 0.5221335887908936 + <_> + + <_> + + + + <_>13 11 5 3 -1. + <_>13 12 5 1 3. + 0 + -8.7706279009580612e-003 + 0.2944166064262390 + 0.5231295228004456 + <_> + + <_> + + + + <_>9 10 2 3 -1. + <_>9 11 2 1 3. + 0 + -5.5122091434895992e-003 + 0.7346177101135254 + 0.4722816944122315 + <_> + + <_> + + + + <_>14 7 2 3 -1. + <_>14 7 1 3 2. + 0 + 6.8672042107209563e-004 + 0.5452876091003418 + 0.4242413043975830 + <_> + + <_> + + + + <_>5 4 1 3 -1. + <_>5 5 1 1 3. + 0 + 5.6019669864326715e-004 + 0.4398862123489380 + 0.5601285099983215 + <_> + + <_> + + + + <_>13 4 2 3 -1. + <_>13 5 2 1 3. + 0 + 2.4143769405782223e-003 + 0.4741686880588532 + 0.6136621832847595 + <_> + + <_> + + + + <_>5 4 2 3 -1. + <_>5 5 2 1 3. + 0 + -1.5680900542065501e-003 + 0.6044552922248840 + 0.4516409933567047 + <_> + + <_> + + + + <_>9 8 2 3 -1. + <_>9 9 2 1 3. + 0 + -3.6827491130679846e-003 + 0.2452459037303925 + 0.5294982194900513 + <_> + + <_> + + + + <_>8 9 2 2 -1. + <_>8 10 2 1 2. + 0 + -2.9409190756268799e-004 + 0.3732838034629822 + 0.5251451134681702 + <_> + + <_> + + + + <_>15 14 1 4 -1. + <_>15 16 1 2 2. + 0 + 4.2847759323194623e-004 + 0.5498809814453125 + 0.4065535068511963 + <_> + + <_> + + + + <_>3 12 2 2 -1. + <_>3 13 2 1 2. + 0 + -4.8817070201039314e-003 + 0.2139908969402313 + 0.4999957084655762 + <_> + + <_> + + + + <_>12 15 2 2 -1. + <_>13 15 1 1 2. + <_>12 16 1 1 2. + 0 + 2.7272020815871656e-004 + 0.4650287032127380 + 0.5813428759574890 + <_> + + <_> + + + + <_>9 13 2 2 -1. + <_>9 14 2 1 2. + 0 + 2.0947199664078653e-004 + 0.4387486875057221 + 0.5572792887687683 + <_> + + <_> + + + + <_>4 11 14 9 -1. + <_>4 14 14 3 3. + 0 + 0.0485011897981167 + 0.5244972705841065 + 0.3212889134883881 + <_> + + <_> + + + + <_>7 13 4 3 -1. + <_>7 14 4 1 3. + 0 + -4.5166411437094212e-003 + 0.6056813001632690 + 0.4545882046222687 + <_> + + <_> + + + + <_>15 14 1 4 -1. + <_>15 16 1 2 2. + 0 + -0.0122916800901294 + 0.2040929049253464 + 0.5152214169502258 + <_> + + <_> + + + + <_>4 14 1 4 -1. + <_>4 16 1 2 2. + 0 + 4.8549679922871292e-004 + 0.5237604975700378 + 0.3739503026008606 + <_> + + <_> + + + + <_>14 0 6 13 -1. + <_>16 0 2 13 3. + 0 + 0.0305560491979122 + 0.4960533976554871 + 0.5938246250152588 + <_> + + <_> + + + + <_>4 1 2 12 -1. + <_>4 1 1 6 2. + <_>5 7 1 6 2. + 0 + -1.5105320198927075e-004 + 0.5351303815841675 + 0.4145204126834869 + <_> + + <_> + + + + <_>11 14 6 6 -1. + <_>14 14 3 3 2. + <_>11 17 3 3 2. + 0 + 2.4937440175563097e-003 + 0.4693366885185242 + 0.5514941215515137 + <_> + + <_> + + + + <_>3 14 6 6 -1. + <_>3 14 3 3 2. + <_>6 17 3 3 2. + 0 + -0.0123821301385760 + 0.6791396737098694 + 0.4681667983531952 + <_> + + <_> + + + + <_>14 17 3 2 -1. + <_>14 18 3 1 2. + 0 + -5.1333461888134480e-003 + 0.3608739078044891 + 0.5229160189628601 + <_> + + <_> + + + + <_>3 17 3 2 -1. + <_>3 18 3 1 2. + 0 + 5.1919277757406235e-004 + 0.5300073027610779 + 0.3633613884449005 + <_> + + <_> + + + + <_>14 0 6 13 -1. + <_>16 0 2 13 3. + 0 + 0.1506042033433914 + 0.5157316923141480 + 0.2211782038211823 + <_> + + <_> + + + + <_>0 0 6 13 -1. + <_>2 0 2 13 3. + 0 + 7.7144149690866470e-003 + 0.4410496950149536 + 0.5776609182357788 + <_> + + <_> + + + + <_>10 10 7 6 -1. + <_>10 12 7 2 3. + 0 + 9.4443522393703461e-003 + 0.5401855111122131 + 0.3756650090217590 + <_> + + <_> + + + + <_>6 15 2 2 -1. + <_>6 15 1 1 2. + <_>7 16 1 1 2. + 0 + 2.5006249779835343e-004 + 0.4368270933628082 + 0.5607374906539917 + <_> + + <_> + + + + <_>6 11 8 6 -1. + <_>10 11 4 3 2. + <_>6 14 4 3 2. + 0 + -3.3077150583267212e-003 + 0.4244799017906189 + 0.5518230795860291 + <_> + + <_> + + + + <_>7 6 2 2 -1. + <_>7 6 1 1 2. + <_>8 7 1 1 2. + 0 + 7.4048910755664110e-004 + 0.4496962130069733 + 0.5900576710700989 + <_> + + <_> + + + + <_>2 2 16 6 -1. + <_>10 2 8 3 2. + <_>2 5 8 3 2. + 0 + 0.0440920516848564 + 0.5293493270874023 + 0.3156355023384094 + <_> + + <_> + + + + <_>5 4 3 3 -1. + <_>5 5 3 1 3. + 0 + 3.3639909233897924e-003 + 0.4483296871185303 + 0.5848662257194519 + <_> + + <_> + + + + <_>11 7 3 10 -1. + <_>11 12 3 5 2. + 0 + -3.9760079234838486e-003 + 0.4559507071971893 + 0.5483639240264893 + <_> + + <_> + + + + <_>6 7 3 10 -1. + <_>6 12 3 5 2. + 0 + 2.7716930489987135e-003 + 0.5341786146163940 + 0.3792484104633331 + <_> + + <_> + + + + <_>10 7 3 2 -1. + <_>11 7 1 2 3. + 0 + -2.4123019829858094e-004 + 0.5667188763618469 + 0.4576973021030426 + <_> + + <_> + + + + <_>8 12 4 2 -1. + <_>8 13 4 1 2. + 0 + 4.9425667384639382e-004 + 0.4421244859695435 + 0.5628787279129028 + <_> + + <_> + + + + <_>10 1 1 3 -1. + <_>10 2 1 1 3. + 0 + -3.8876468897797167e-004 + 0.4288370907306671 + 0.5391063094139099 + <_> + + <_> + + + + <_>1 2 4 18 -1. + <_>1 2 2 9 2. + <_>3 11 2 9 2. + 0 + -0.0500488989055157 + 0.6899513006210327 + 0.4703742861747742 + <_> + + <_> + + + + <_>12 4 4 12 -1. + <_>12 10 4 6 2. + 0 + -0.0366354808211327 + 0.2217779010534287 + 0.5191826224327087 + <_> + + <_> + + + + <_>0 0 1 6 -1. + <_>0 2 1 2 3. + 0 + 2.4273579474538565e-003 + 0.5136224031448364 + 0.3497397899627686 + <_> + + <_> + + + + <_>9 11 2 3 -1. + <_>9 12 2 1 3. + 0 + 1.9558030180633068e-003 + 0.4826192855834961 + 0.6408380866050720 + <_> + + <_> + + + + <_>8 7 4 3 -1. + <_>8 8 4 1 3. + 0 + -1.7494610510766506e-003 + 0.3922835886478424 + 0.5272685289382935 + <_> + + <_> + + + + <_>10 7 3 2 -1. + <_>11 7 1 2 3. + 0 + 0.0139550799503922 + 0.5078201889991760 + 0.8416504859924316 + <_> + + <_> + + + + <_>7 7 3 2 -1. + <_>8 7 1 2 3. + 0 + -2.1896739781368524e-004 + 0.5520489811897278 + 0.4314234852790833 + <_> + + <_> + + + + <_>9 4 6 1 -1. + <_>11 4 2 1 3. + 0 + -1.5131309628486633e-003 + 0.3934605121612549 + 0.5382571220397949 + <_> + + <_> + + + + <_>8 7 2 3 -1. + <_>9 7 1 3 2. + 0 + -4.3622800149023533e-003 + 0.7370628714561462 + 0.4736475944519043 + <_> + + <_> + + + + <_>12 7 8 6 -1. + <_>16 7 4 3 2. + <_>12 10 4 3 2. + 0 + 0.0651605874300003 + 0.5159279704093933 + 0.3281595110893250 + <_> + + <_> + + + + <_>0 7 8 6 -1. + <_>0 7 4 3 2. + <_>4 10 4 3 2. + 0 + -2.3567399475723505e-003 + 0.3672826886177063 + 0.5172886252403259 + <_> + + <_> + + + + <_>18 2 2 10 -1. + <_>19 2 1 5 2. + <_>18 7 1 5 2. + 0 + 0.0151466596871614 + 0.5031493902206421 + 0.6687604188919067 + <_> + + <_> + + + + <_>0 2 6 4 -1. + <_>3 2 3 4 2. + 0 + -0.0228509604930878 + 0.6767519712448120 + 0.4709596931934357 + <_> + + <_> + + + + <_>9 4 6 1 -1. + <_>11 4 2 1 3. + 0 + 4.8867650330066681e-003 + 0.5257998108863831 + 0.4059878885746002 + <_> + + <_> + + + + <_>7 15 2 2 -1. + <_>7 15 1 1 2. + <_>8 16 1 1 2. + 0 + 1.7619599821045995e-003 + 0.4696272909641266 + 0.6688278913497925 + <_> + + <_> + + + + <_>11 13 1 6 -1. + <_>11 16 1 3 2. + 0 + -1.2942519970238209e-003 + 0.4320712983608246 + 0.5344281792640686 + <_> + + <_> + + + + <_>8 13 1 6 -1. + <_>8 16 1 3 2. + 0 + 0.0109299495816231 + 0.4997706115245819 + 0.1637486070394516 + <_> + + <_> + + + + <_>14 3 2 1 -1. + <_>14 3 1 1 2. + 0 + 2.9958489903947338e-005 + 0.4282417893409729 + 0.5633224248886108 + <_> + + <_> + + + + <_>8 15 2 3 -1. + <_>8 16 2 1 3. + 0 + -6.5884361974895000e-003 + 0.6772121191024780 + 0.4700526893138886 + <_> + + <_> + + + + <_>12 15 7 4 -1. + <_>12 17 7 2 2. + 0 + 3.2527779694646597e-003 + 0.5313397049903870 + 0.4536148905754089 + <_> + + <_> + + + + <_>4 14 12 3 -1. + <_>4 15 12 1 3. + 0 + -4.0435739792883396e-003 + 0.5660061836242676 + 0.4413388967514038 + <_> + + <_> + + + + <_>10 3 3 2 -1. + <_>11 3 1 2 3. + 0 + -1.2523540062829852e-003 + 0.3731913864612579 + 0.5356451869010925 + <_> + + <_> + + + + <_>4 12 2 2 -1. + <_>4 13 2 1 2. + 0 + 1.9246719602961093e-004 + 0.5189986228942871 + 0.3738811016082764 + <_> + + <_> + + + + <_>10 11 4 6 -1. + <_>10 14 4 3 2. + 0 + -0.0385896712541580 + 0.2956373989582062 + 0.5188810825347900 + <_> + + <_> + + + + <_>7 13 2 2 -1. + <_>7 13 1 1 2. + <_>8 14 1 1 2. + 0 + 1.5489870565943420e-004 + 0.4347135126590729 + 0.5509533286094666 + <_> + + <_> + + + + <_>4 11 14 4 -1. + <_>11 11 7 2 2. + <_>4 13 7 2 2. + 0 + -0.0337638482451439 + 0.3230330049991608 + 0.5195475816726685 + <_> + + <_> + + + + <_>1 18 18 2 -1. + <_>7 18 6 2 3. + 0 + -8.2657067105174065e-003 + 0.5975489020347595 + 0.4552114009857178 + <_> + + <_> + + + + <_>11 18 2 2 -1. + <_>12 18 1 1 2. + <_>11 19 1 1 2. + 0 + 1.4481440302915871e-005 + 0.4745678007602692 + 0.5497426986694336 + <_> + + <_> + + + + <_>7 18 2 2 -1. + <_>7 18 1 1 2. + <_>8 19 1 1 2. + 0 + 1.4951299817766994e-005 + 0.4324473142623901 + 0.5480644106864929 + <_> + + <_> + + + + <_>12 18 8 2 -1. + <_>12 19 8 1 2. + 0 + -0.0187417995184660 + 0.1580052971839905 + 0.5178533196449280 + <_> + + <_> + + + + <_>7 14 6 2 -1. + <_>7 15 6 1 2. + 0 + 1.7572239739820361e-003 + 0.4517636895179749 + 0.5773764252662659 + <_> + + <_> + + + + <_>8 12 4 8 -1. + <_>10 12 2 4 2. + <_>8 16 2 4 2. + 0 + -3.1391119118779898e-003 + 0.4149647951126099 + 0.5460842251777649 + <_> + + <_> + + + + <_>4 9 3 3 -1. + <_>4 10 3 1 3. + 0 + 6.6656779381446540e-005 + 0.4039090871810913 + 0.5293084979057312 + <_> + + <_> + + + + <_>7 10 6 2 -1. + <_>9 10 2 2 3. + 0 + 6.7743421532213688e-003 + 0.4767651855945587 + 0.6121956110000610 + <_> + + <_> + + + + <_>5 0 4 15 -1. + <_>7 0 2 15 2. + 0 + -7.3868161998689175e-003 + 0.3586258888244629 + 0.5187280774116516 + <_> + + <_> + + + + <_>8 6 12 14 -1. + <_>12 6 4 14 3. + 0 + 0.0140409301966429 + 0.4712139964103699 + 0.5576155781745911 + <_> + + <_> + + + + <_>5 16 3 3 -1. + <_>5 17 3 1 3. + 0 + -5.5258329957723618e-003 + 0.2661027014255524 + 0.5039281249046326 + <_> + + <_> + + + + <_>8 1 12 19 -1. + <_>12 1 4 19 3. + 0 + 0.3868423998355866 + 0.5144339799880981 + 0.2525899112224579 + <_> + + <_> + + + + <_>3 0 3 2 -1. + <_>3 1 3 1 2. + 0 + 1.1459240340627730e-004 + 0.4284994900226593 + 0.5423371195793152 + <_> + + <_> + + + + <_>10 12 4 5 -1. + <_>10 12 2 5 2. + 0 + -0.0184675697237253 + 0.3885835111141205 + 0.5213062167167664 + <_> + + <_> + + + + <_>6 12 4 5 -1. + <_>8 12 2 5 2. + 0 + -4.5907011372037232e-004 + 0.5412563085556030 + 0.4235909879207611 + <_> + + <_> + + + + <_>11 11 2 2 -1. + <_>12 11 1 1 2. + <_>11 12 1 1 2. + 0 + 1.2527540093287826e-003 + 0.4899305105209351 + 0.6624091267585754 + <_> + + <_> + + + + <_>0 2 3 6 -1. + <_>0 4 3 2 3. + 0 + 1.4910609461367130e-003 + 0.5286778211593628 + 0.4040051996707916 + <_> + + <_> + + + + <_>11 11 2 2 -1. + <_>12 11 1 1 2. + <_>11 12 1 1 2. + 0 + -7.5435562757775187e-004 + 0.6032990217208862 + 0.4795120060443878 + <_> + + <_> + + + + <_>7 6 4 10 -1. + <_>7 11 4 5 2. + 0 + -6.9478838704526424e-003 + 0.4084401130676270 + 0.5373504161834717 + <_> + + <_> + + + + <_>11 11 2 2 -1. + <_>12 11 1 1 2. + <_>11 12 1 1 2. + 0 + 2.8092920547351241e-004 + 0.4846062958240509 + 0.5759382247924805 + <_> + + <_> + + + + <_>2 13 5 2 -1. + <_>2 14 5 1 2. + 0 + 9.6073717577382922e-004 + 0.5164741277694702 + 0.3554979860782623 + <_> + + <_> + + + + <_>11 11 2 2 -1. + <_>12 11 1 1 2. + <_>11 12 1 1 2. + 0 + -2.6883929967880249e-004 + 0.5677582025527954 + 0.4731765985488892 + <_> + + <_> + + + + <_>7 11 2 2 -1. + <_>7 11 1 1 2. + <_>8 12 1 1 2. + 0 + 2.1599370520561934e-003 + 0.4731487035751343 + 0.7070567011833191 + <_> + + <_> + + + + <_>14 13 3 3 -1. + <_>14 14 3 1 3. + 0 + 5.6235301308333874e-003 + 0.5240243077278137 + 0.2781791985034943 + <_> + + <_> + + + + <_>3 13 3 3 -1. + <_>3 14 3 1 3. + 0 + -5.0243991427123547e-003 + 0.2837013900279999 + 0.5062304139137268 + <_> + + <_> + + + + <_>9 14 2 3 -1. + <_>9 15 2 1 3. + 0 + -9.7611639648675919e-003 + 0.7400717735290527 + 0.4934569001197815 + <_> + + <_> + + + + <_>8 7 3 3 -1. + <_>8 8 3 1 3. + 0 + 4.1515100747346878e-003 + 0.5119131207466126 + 0.3407008051872253 + <_> + + <_> + + + + <_>13 5 3 3 -1. + <_>13 6 3 1 3. + 0 + 6.2465080991387367e-003 + 0.4923788011074066 + 0.6579058766365051 + <_> + + <_> + + + + <_>0 9 5 3 -1. + <_>0 10 5 1 3. + 0 + -7.0597478188574314e-003 + 0.2434711009263992 + 0.5032842159271240 + <_> + + <_> + + + + <_>13 5 3 3 -1. + <_>13 6 3 1 3. + 0 + -2.0587709732353687e-003 + 0.5900310873985291 + 0.4695087075233460 + <_> + + <_> + + + + <_>9 12 2 8 -1. + <_>9 12 1 4 2. + <_>10 16 1 4 2. + 0 + -2.4146060459315777e-003 + 0.3647317886352539 + 0.5189201831817627 + <_> + + <_> + + + + <_>11 7 2 2 -1. + <_>12 7 1 1 2. + <_>11 8 1 1 2. + 0 + -1.4817609917372465e-003 + 0.6034948229789734 + 0.4940128028392792 + <_> + + <_> + + + + <_>0 16 6 4 -1. + <_>3 16 3 4 2. + 0 + -6.3016400672495365e-003 + 0.5818989872932434 + 0.4560427963733673 + <_> + + <_> + + + + <_>10 6 2 3 -1. + <_>10 7 2 1 3. + 0 + 3.4763428848236799e-003 + 0.5217475891113281 + 0.3483993113040924 + <_> + + <_> + + + + <_>9 5 2 6 -1. + <_>9 7 2 2 3. + 0 + -0.0222508702427149 + 0.2360700070858002 + 0.5032082796096802 + <_> + + <_> + + + + <_>12 15 8 4 -1. + <_>12 15 4 4 2. + 0 + -0.0306125506758690 + 0.6499186754226685 + 0.4914919137954712 + <_> + + <_> + + + + <_>0 14 8 6 -1. + <_>4 14 4 6 2. + 0 + 0.0130574796348810 + 0.4413323104381561 + 0.5683764219284058 + <_> + + <_> + + + + <_>9 0 3 2 -1. + <_>10 0 1 2 3. + 0 + -6.0095742810517550e-004 + 0.4359731078147888 + 0.5333483219146729 + <_> + + <_> + + + + <_>4 15 4 2 -1. + <_>6 15 2 2 2. + 0 + -4.1514250915497541e-004 + 0.5504062771797180 + 0.4326060116291046 + <_> + + <_> + + + + <_>12 7 3 13 -1. + <_>13 7 1 13 3. + 0 + -0.0137762902304530 + 0.4064112901687622 + 0.5201548933982849 + <_> + + <_> + + + + <_>5 7 3 13 -1. + <_>6 7 1 13 3. + 0 + -0.0322965085506439 + 0.0473519712686539 + 0.4977194964885712 + <_> + + <_> + + + + <_>9 6 3 9 -1. + <_>9 9 3 3 3. + 0 + 0.0535569787025452 + 0.4881733059883118 + 0.6666939258575440 + <_> + + <_> + + + + <_>4 4 7 12 -1. + <_>4 10 7 6 2. + 0 + 8.1889545544981956e-003 + 0.5400037169456482 + 0.4240820109844208 + <_> + + <_> + + + + <_>12 12 2 2 -1. + <_>13 12 1 1 2. + <_>12 13 1 1 2. + 0 + 2.1055320394225419e-004 + 0.4802047908306122 + 0.5563852787017822 + <_> + + <_> + + + + <_>6 12 2 2 -1. + <_>6 12 1 1 2. + <_>7 13 1 1 2. + 0 + -2.4382730480283499e-003 + 0.7387793064117432 + 0.4773685038089752 + <_> + + <_> + + + + <_>8 9 4 2 -1. + <_>10 9 2 1 2. + <_>8 10 2 1 2. + 0 + 3.2835570164024830e-003 + 0.5288546085357666 + 0.3171291947364807 + <_> + + <_> + + + + <_>3 6 2 2 -1. + <_>3 6 1 1 2. + <_>4 7 1 1 2. + 0 + 2.3729570675641298e-003 + 0.4750812947750092 + 0.7060170769691467 + <_> + + <_> + + + + <_>16 6 3 2 -1. + <_>16 7 3 1 2. + 0 + -1.4541699783876538e-003 + 0.3811730146408081 + 0.5330739021301270 + 79.2490768432617190 + 16 + -1 + <_> + + + <_> + + <_> + + + + <_>0 7 19 4 -1. + <_>0 9 19 2 2. + 0 + 0.0557552389800549 + 0.4019156992435455 + 0.6806036829948425 + <_> + + <_> + + + + <_>10 2 10 1 -1. + <_>10 2 5 1 2. + 0 + 2.4730248842388391e-003 + 0.3351148962974548 + 0.5965719819068909 + <_> + + <_> + + + + <_>9 4 2 12 -1. + <_>9 10 2 6 2. + 0 + -3.5031698644161224e-004 + 0.5557708144187927 + 0.3482286930084229 + <_> + + <_> + + + + <_>12 18 4 1 -1. + <_>12 18 2 1 2. + 0 + 5.4167630150914192e-004 + 0.4260858893394470 + 0.5693380832672119 + <_> + + <_> + + + + <_>1 7 6 4 -1. + <_>1 7 3 2 2. + <_>4 9 3 2 2. + 0 + 7.7193678589537740e-004 + 0.3494240045547485 + 0.5433688759803772 + <_> + + <_> + + + + <_>12 0 6 13 -1. + <_>14 0 2 13 3. + 0 + -1.5999219613149762e-003 + 0.4028499126434326 + 0.5484359264373779 + <_> + + <_> + + + + <_>2 0 6 13 -1. + <_>4 0 2 13 3. + 0 + -1.1832080053864047e-004 + 0.3806901872158051 + 0.5425465106964111 + <_> + + <_> + + + + <_>10 5 8 8 -1. + <_>10 9 8 4 2. + 0 + 3.2909031142480671e-004 + 0.2620100080966950 + 0.5429521799087524 + <_> + + <_> + + + + <_>8 3 2 5 -1. + <_>9 3 1 5 2. + 0 + 2.9518108931370080e-004 + 0.3799768984317780 + 0.5399264097213745 + <_> + + <_> + + + + <_>8 4 9 1 -1. + <_>11 4 3 1 3. + 0 + 9.0466710389591753e-005 + 0.4433645009994507 + 0.5440226197242737 + <_> + + <_> + + + + <_>3 4 9 1 -1. + <_>6 4 3 1 3. + 0 + 1.5007190086180344e-005 + 0.3719654977321625 + 0.5409119725227356 + <_> + + <_> + + + + <_>1 0 18 10 -1. + <_>7 0 6 10 3. + 0 + 0.1393561065196991 + 0.5525395870208740 + 0.4479042887687683 + <_> + + <_> + + + + <_>7 17 5 3 -1. + <_>7 18 5 1 3. + 0 + 1.6461990308016539e-003 + 0.4264501035213471 + 0.5772169828414917 + <_> + + <_> + + + + <_>7 11 6 1 -1. + <_>9 11 2 1 3. + 0 + 4.9984431825578213e-004 + 0.4359526038169861 + 0.5685871243476868 + <_> + + <_> + + + + <_>2 2 3 2 -1. + <_>2 3 3 1 2. + 0 + -1.0971280280500650e-003 + 0.3390136957168579 + 0.5205408930778503 + <_> + + <_> + + + + <_>8 12 4 2 -1. + <_>8 13 4 1 2. + 0 + 6.6919892560690641e-004 + 0.4557456076145172 + 0.5980659723281860 + <_> + + <_> + + + + <_>6 10 3 6 -1. + <_>6 13 3 3 2. + 0 + 8.6471042595803738e-004 + 0.5134841203689575 + 0.2944033145904541 + <_> + + <_> + + + + <_>11 4 2 4 -1. + <_>11 4 1 4 2. + 0 + -2.7182599296793342e-004 + 0.3906578123569489 + 0.5377181172370911 + <_> + + <_> + + + + <_>7 4 2 4 -1. + <_>8 4 1 4 2. + 0 + 3.0249499104684219e-005 + 0.3679609894752502 + 0.5225688815116882 + <_> + + <_> + + + + <_>9 6 2 4 -1. + <_>9 6 1 4 2. + 0 + -8.5225896909832954e-003 + 0.7293102145195007 + 0.4892365038394928 + <_> + + <_> + + + + <_>6 13 8 3 -1. + <_>6 14 8 1 3. + 0 + 1.6705560265108943e-003 + 0.4345324933528900 + 0.5696138143539429 + <_> + + <_> + + + + <_>9 15 3 4 -1. + <_>10 15 1 4 3. + 0 + -7.1433838456869125e-003 + 0.2591280043125153 + 0.5225623846054077 + <_> + + <_> + + + + <_>9 2 2 17 -1. + <_>10 2 1 17 2. + 0 + -0.0163193698972464 + 0.6922279000282288 + 0.4651575982570648 + <_> + + <_> + + + + <_>7 0 6 1 -1. + <_>9 0 2 1 3. + 0 + 4.8034260980784893e-003 + 0.5352262854576111 + 0.3286302983760834 + <_> + + <_> + + + + <_>8 15 3 4 -1. + <_>9 15 1 4 3. + 0 + -7.5421929359436035e-003 + 0.2040544003248215 + 0.5034546256065369 + <_> + + <_> + + + + <_>7 13 7 3 -1. + <_>7 14 7 1 3. + 0 + -0.0143631100654602 + 0.6804888844490051 + 0.4889059066772461 + <_> + + <_> + + + + <_>8 16 3 3 -1. + <_>9 16 1 3 3. + 0 + 8.9063588529825211e-004 + 0.5310695767402649 + 0.3895480930805206 + <_> + + <_> + + + + <_>6 2 8 10 -1. + <_>6 7 8 5 2. + 0 + -4.4060191139578819e-003 + 0.5741562843322754 + 0.4372426867485046 + <_> + + <_> + + + + <_>2 5 8 8 -1. + <_>2 9 8 4 2. + 0 + -1.8862540309783071e-004 + 0.2831785976886749 + 0.5098205208778381 + <_> + + <_> + + + + <_>14 16 2 2 -1. + <_>14 17 2 1 2. + 0 + -3.7979281041771173e-003 + 0.3372507989406586 + 0.5246580243110657 + <_> + + <_> + + + + <_>4 16 2 2 -1. + <_>4 17 2 1 2. + 0 + 1.4627049677073956e-004 + 0.5306674242019653 + 0.3911710083484650 + <_> + + <_> + + + + <_>10 11 4 6 -1. + <_>10 14 4 3 2. + 0 + -4.9164638767251745e-005 + 0.5462496280670166 + 0.3942720890045166 + <_> + + <_> + + + + <_>6 11 4 6 -1. + <_>6 14 4 3 2. + 0 + -0.0335825011134148 + 0.2157824039459229 + 0.5048211812973023 + <_> + + <_> + + + + <_>10 14 1 3 -1. + <_>10 15 1 1 3. + 0 + -3.5339309833943844e-003 + 0.6465312242507935 + 0.4872696995735169 + <_> + + <_> + + + + <_>8 14 4 3 -1. + <_>8 15 4 1 3. + 0 + 5.0144111737608910e-003 + 0.4617668092250824 + 0.6248074769973755 + <_> + + <_> + + + + <_>10 0 4 6 -1. + <_>12 0 2 3 2. + <_>10 3 2 3 2. + 0 + 0.0188173707574606 + 0.5220689177513123 + 0.2000052034854889 + <_> + + <_> + + + + <_>0 3 20 2 -1. + <_>0 4 20 1 2. + 0 + -1.3434339780360460e-003 + 0.4014537930488586 + 0.5301619768142700 + <_> + + <_> + + + + <_>12 0 8 2 -1. + <_>16 0 4 1 2. + <_>12 1 4 1 2. + 0 + 1.7557960236445069e-003 + 0.4794039130210877 + 0.5653169751167297 + <_> + + <_> + + + + <_>2 12 10 8 -1. + <_>2 16 10 4 2. + 0 + -0.0956374630331993 + 0.2034195065498352 + 0.5006706714630127 + <_> + + <_> + + + + <_>17 7 2 10 -1. + <_>18 7 1 5 2. + <_>17 12 1 5 2. + 0 + -0.0222412291914225 + 0.7672473192214966 + 0.5046340227127075 + <_> + + <_> + + + + <_>1 7 2 10 -1. + <_>1 7 1 5 2. + <_>2 12 1 5 2. + 0 + -0.0155758196488023 + 0.7490342259407044 + 0.4755851030349731 + <_> + + <_> + + + + <_>15 10 3 6 -1. + <_>15 12 3 2 3. + 0 + 5.3599118255078793e-003 + 0.5365303754806519 + 0.4004670977592468 + <_> + + <_> + + + + <_>4 4 6 2 -1. + <_>6 4 2 2 3. + 0 + -0.0217634998261929 + 0.0740154981613159 + 0.4964174926280975 + <_> + + <_> + + + + <_>0 5 20 6 -1. + <_>0 7 20 2 3. + 0 + -0.1656159013509750 + 0.2859103083610535 + 0.5218086242675781 + <_> + + <_> + + + + <_>0 0 8 2 -1. + <_>0 0 4 1 2. + <_>4 1 4 1 2. + 0 + 1.6461320046801120e-004 + 0.4191615879535675 + 0.5380793213844299 + <_> + + <_> + + + + <_>1 0 18 4 -1. + <_>7 0 6 4 3. + 0 + -8.9077502489089966e-003 + 0.6273192763328552 + 0.4877404868602753 + <_> + + <_> + + + + <_>1 13 6 2 -1. + <_>1 14 6 1 2. + 0 + 8.6346449097618461e-004 + 0.5159940719604492 + 0.3671025931835175 + <_> + + <_> + + + + <_>10 8 3 4 -1. + <_>11 8 1 4 3. + 0 + -1.3751760125160217e-003 + 0.5884376764297485 + 0.4579083919525147 + <_> + + <_> + + + + <_>6 1 6 1 -1. + <_>8 1 2 1 3. + 0 + -1.4081239933148026e-003 + 0.3560509979724884 + 0.5139945149421692 + <_> + + <_> + + + + <_>8 14 4 3 -1. + <_>8 15 4 1 3. + 0 + -3.9342888630926609e-003 + 0.5994288921356201 + 0.4664272069931030 + <_> + + <_> + + + + <_>1 6 18 2 -1. + <_>10 6 9 2 2. + 0 + -0.0319669283926487 + 0.3345462083816528 + 0.5144183039665222 + <_> + + <_> + + + + <_>15 11 1 2 -1. + <_>15 12 1 1 2. + 0 + -1.5089280168467667e-005 + 0.5582656264305115 + 0.4414057135581970 + <_> + + <_> + + + + <_>6 5 1 2 -1. + <_>6 6 1 1 2. + 0 + 5.1994470413774252e-004 + 0.4623680114746094 + 0.6168993711471558 + <_> + + <_> + + + + <_>13 4 1 3 -1. + <_>13 5 1 1 3. + 0 + -3.4220460802316666e-003 + 0.6557074785232544 + 0.4974805116653442 + <_> + + <_> + + + + <_>2 15 1 2 -1. + <_>2 16 1 1 2. + 0 + 1.7723299970384687e-004 + 0.5269501805305481 + 0.3901908099651337 + <_> + + <_> + + + + <_>12 4 4 3 -1. + <_>12 5 4 1 3. + 0 + 1.5716759953647852e-003 + 0.4633373022079468 + 0.5790457725524902 + <_> + + <_> + + + + <_>0 0 7 3 -1. + <_>0 1 7 1 3. + 0 + -8.9041329920291901e-003 + 0.2689608037471771 + 0.5053591132164002 + <_> + + <_> + + + + <_>9 12 6 2 -1. + <_>9 12 3 2 2. + 0 + 4.0677518700249493e-004 + 0.5456603169441223 + 0.4329898953437805 + <_> + + <_> + + + + <_>5 4 2 3 -1. + <_>5 5 2 1 3. + 0 + 6.7604780197143555e-003 + 0.4648993909358978 + 0.6689761877059937 + <_> + + <_> + + + + <_>18 4 2 3 -1. + <_>18 5 2 1 3. + 0 + 2.9100088868290186e-003 + 0.5309703946113586 + 0.3377839922904968 + <_> + + <_> + + + + <_>3 0 8 6 -1. + <_>3 2 8 2 3. + 0 + 1.3885459629818797e-003 + 0.4074738919734955 + 0.5349133014678955 + <_> + + <_> + + + + <_>0 2 20 6 -1. + <_>10 2 10 3 2. + <_>0 5 10 3 2. + 0 + -0.0767642632126808 + 0.1992176026105881 + 0.5228242278099060 + <_> + + <_> + + + + <_>4 7 2 4 -1. + <_>5 7 1 4 2. + 0 + -2.2688310127705336e-004 + 0.5438501834869385 + 0.4253072142601013 + <_> + + <_> + + + + <_>3 10 15 2 -1. + <_>8 10 5 2 3. + 0 + -6.3094152137637138e-003 + 0.4259178936481476 + 0.5378909707069397 + <_> + + <_> + + + + <_>3 0 12 11 -1. + <_>9 0 6 11 2. + 0 + -0.1100727990269661 + 0.6904156804084778 + 0.4721749126911163 + <_> + + <_> + + + + <_>13 0 2 6 -1. + <_>13 0 1 6 2. + 0 + 2.8619659133255482e-004 + 0.4524914920330048 + 0.5548306107521057 + <_> + + <_> + + + + <_>0 19 2 1 -1. + <_>1 19 1 1 2. + 0 + 2.9425329557852820e-005 + 0.5370373725891113 + 0.4236463904380798 + <_> + + <_> + + + + <_>16 10 4 10 -1. + <_>18 10 2 5 2. + <_>16 15 2 5 2. + 0 + -0.0248865708708763 + 0.6423557996749878 + 0.4969303905963898 + <_> + + <_> + + + + <_>4 8 10 3 -1. + <_>4 9 10 1 3. + 0 + 0.0331488512456417 + 0.4988475143909454 + 0.1613811999559403 + <_> + + <_> + + + + <_>14 12 3 3 -1. + <_>14 13 3 1 3. + 0 + 7.8491691965609789e-004 + 0.5416026115417481 + 0.4223009049892426 + <_> + + <_> + + + + <_>0 10 4 10 -1. + <_>0 10 2 5 2. + <_>2 15 2 5 2. + 0 + 4.7087189741432667e-003 + 0.4576328992843628 + 0.6027557849884033 + <_> + + <_> + + + + <_>18 3 2 6 -1. + <_>18 5 2 2 3. + 0 + 2.4144479539245367e-003 + 0.5308973193168640 + 0.4422498941421509 + <_> + + <_> + + + + <_>6 6 1 3 -1. + <_>6 7 1 1 3. + 0 + 1.9523180089890957e-003 + 0.4705634117126465 + 0.6663324832916260 + <_> + + <_> + + + + <_>7 7 7 2 -1. + <_>7 8 7 1 2. + 0 + 1.3031980488449335e-003 + 0.4406126141548157 + 0.5526962280273438 + <_> + + <_> + + + + <_>0 3 2 6 -1. + <_>0 5 2 2 3. + 0 + 4.4735497795045376e-003 + 0.5129023790359497 + 0.3301498889923096 + <_> + + <_> + + + + <_>11 1 3 1 -1. + <_>12 1 1 1 3. + 0 + -2.6652868837118149e-003 + 0.3135471045970917 + 0.5175036191940308 + <_> + + <_> + + + + <_>5 0 2 6 -1. + <_>6 0 1 6 2. + 0 + 1.3666770246345550e-004 + 0.4119370877742767 + 0.5306876897811890 + <_> + + <_> + + + + <_>1 1 18 14 -1. + <_>7 1 6 14 3. + 0 + -0.0171264503151178 + 0.6177806258201599 + 0.4836578965187073 + <_> + + <_> + + + + <_>4 6 8 3 -1. + <_>8 6 4 3 2. + 0 + -2.6601430727168918e-004 + 0.3654330968856812 + 0.5169736742973328 + <_> + + <_> + + + + <_>9 12 6 2 -1. + <_>9 12 3 2 2. + 0 + -0.0229323804378510 + 0.3490915000438690 + 0.5163992047309876 + <_> + + <_> + + + + <_>5 12 6 2 -1. + <_>8 12 3 2 2. + 0 + 2.3316550068557262e-003 + 0.5166299939155579 + 0.3709389865398407 + <_> + + <_> + + + + <_>10 7 3 5 -1. + <_>11 7 1 5 3. + 0 + 0.0169256608933210 + 0.5014736056327820 + 0.8053988218307495 + <_> + + <_> + + + + <_>7 7 3 5 -1. + <_>8 7 1 5 3. + 0 + -8.9858826249837875e-003 + 0.6470788717269898 + 0.4657020866870880 + <_> + + <_> + + + + <_>13 0 3 10 -1. + <_>14 0 1 10 3. + 0 + -0.0118746999651194 + 0.3246378898620606 + 0.5258755087852478 + <_> + + <_> + + + + <_>4 11 3 2 -1. + <_>4 12 3 1 2. + 0 + 1.9350569345988333e-004 + 0.5191941857337952 + 0.3839643895626068 + <_> + + <_> + + + + <_>17 3 3 6 -1. + <_>18 3 1 6 3. + 0 + 5.8713490143418312e-003 + 0.4918133914470673 + 0.6187043190002441 + <_> + + <_> + + + + <_>1 8 18 10 -1. + <_>1 13 18 5 2. + 0 + -0.2483879029750824 + 0.1836802959442139 + 0.4988150000572205 + <_> + + <_> + + + + <_>13 0 3 10 -1. + <_>14 0 1 10 3. + 0 + 0.0122560001909733 + 0.5227053761482239 + 0.3632029891014099 + <_> + + <_> + + + + <_>9 14 2 3 -1. + <_>9 15 2 1 3. + 0 + 8.3990179700776935e-004 + 0.4490250051021576 + 0.5774148106575012 + <_> + + <_> + + + + <_>16 3 3 7 -1. + <_>17 3 1 7 3. + 0 + 2.5407369248569012e-003 + 0.4804787039756775 + 0.5858299136161804 + <_> + + <_> + + + + <_>4 0 3 10 -1. + <_>5 0 1 10 3. + 0 + -0.0148224299773574 + 0.2521049976348877 + 0.5023537278175354 + <_> + + <_> + + + + <_>16 3 3 7 -1. + <_>17 3 1 7 3. + 0 + -5.7973959483206272e-003 + 0.5996695756912231 + 0.4853715002536774 + <_> + + <_> + + + + <_>0 9 1 2 -1. + <_>0 10 1 1 2. + 0 + 7.2662148158997297e-004 + 0.5153716802597046 + 0.3671779930591583 + <_> + + <_> + + + + <_>18 1 2 10 -1. + <_>18 1 1 10 2. + 0 + -0.0172325801104307 + 0.6621719002723694 + 0.4994656145572662 + <_> + + <_> + + + + <_>0 1 2 10 -1. + <_>1 1 1 10 2. + 0 + 7.8624086454510689e-003 + 0.4633395075798035 + 0.6256101727485657 + <_> + + <_> + + + + <_>10 16 3 4 -1. + <_>11 16 1 4 3. + 0 + -4.7343620099127293e-003 + 0.3615573048591614 + 0.5281885266304016 + <_> + + <_> + + + + <_>2 8 3 3 -1. + <_>3 8 1 3 3. + 0 + 8.3048478700220585e-004 + 0.4442889094352722 + 0.5550957918167114 + <_> + + <_> + + + + <_>11 0 2 6 -1. + <_>12 0 1 3 2. + <_>11 3 1 3 2. + 0 + 7.6602199114859104e-003 + 0.5162935256958008 + 0.2613354921340942 + <_> + + <_> + + + + <_>7 0 2 6 -1. + <_>7 0 1 3 2. + <_>8 3 1 3 2. + 0 + -4.1048377752304077e-003 + 0.2789632081985474 + 0.5019031763076782 + <_> + + <_> + + + + <_>16 3 3 7 -1. + <_>17 3 1 7 3. + 0 + 4.8512578941881657e-003 + 0.4968984127044678 + 0.5661668181419373 + <_> + + <_> + + + + <_>1 3 3 7 -1. + <_>2 3 1 7 3. + 0 + 9.9896453320980072e-004 + 0.4445607960224152 + 0.5551813244819641 + <_> + + <_> + + + + <_>14 1 6 16 -1. + <_>16 1 2 16 3. + 0 + -0.2702363133430481 + 0.0293882098048925 + 0.5151314139366150 + <_> + + <_> + + + + <_>0 1 6 16 -1. + <_>2 1 2 16 3. + 0 + -0.0130906803533435 + 0.5699399709701538 + 0.4447459876537323 + <_> + + <_> + + + + <_>2 0 16 8 -1. + <_>10 0 8 4 2. + <_>2 4 8 4 2. + 0 + -9.4342790544033051e-003 + 0.4305466115474701 + 0.5487895011901856 + <_> + + <_> + + + + <_>6 8 5 3 -1. + <_>6 9 5 1 3. + 0 + -1.5482039889320731e-003 + 0.3680317103862763 + 0.5128080844879150 + <_> + + <_> + + + + <_>9 7 3 3 -1. + <_>10 7 1 3 3. + 0 + 5.3746132180094719e-003 + 0.4838916957378388 + 0.6101555824279785 + <_> + + <_> + + + + <_>8 8 4 3 -1. + <_>8 9 4 1 3. + 0 + 1.5786769799888134e-003 + 0.5325223207473755 + 0.4118548035621643 + <_> + + <_> + + + + <_>9 6 2 4 -1. + <_>9 6 1 4 2. + 0 + 3.6856050137430429e-003 + 0.4810948073863983 + 0.6252303123474121 + <_> + + <_> + + + + <_>0 7 15 1 -1. + <_>5 7 5 1 3. + 0 + 9.3887019902467728e-003 + 0.5200229883193970 + 0.3629410862922669 + <_> + + <_> + + + + <_>8 2 7 9 -1. + <_>8 5 7 3 3. + 0 + 0.0127926301211119 + 0.4961709976196289 + 0.6738016009330750 + <_> + + <_> + + + + <_>1 7 16 4 -1. + <_>1 7 8 2 2. + <_>9 9 8 2 2. + 0 + -3.3661040943115950e-003 + 0.4060279130935669 + 0.5283598899841309 + <_> + + <_> + + + + <_>6 12 8 2 -1. + <_>6 13 8 1 2. + 0 + 3.9771420415490866e-004 + 0.4674113988876343 + 0.5900775194168091 + <_> + + <_> + + + + <_>8 11 3 3 -1. + <_>8 12 3 1 3. + 0 + 1.4868030557408929e-003 + 0.4519116878509522 + 0.6082053780555725 + <_> + + <_> + + + + <_>4 5 14 10 -1. + <_>11 5 7 5 2. + <_>4 10 7 5 2. + 0 + -0.0886867493391037 + 0.2807899117469788 + 0.5180991888046265 + <_> + + <_> + + + + <_>4 12 3 2 -1. + <_>4 13 3 1 2. + 0 + -7.4296112870797515e-005 + 0.5295584201812744 + 0.4087625145912170 + <_> + + <_> + + + + <_>9 11 6 1 -1. + <_>11 11 2 1 3. + 0 + -1.4932939848222304e-005 + 0.5461400151252747 + 0.4538542926311493 + <_> + + <_> + + + + <_>4 9 7 6 -1. + <_>4 11 7 2 3. + 0 + 5.9162238612771034e-003 + 0.5329161286354065 + 0.4192134141921997 + <_> + + <_> + + + + <_>7 10 6 3 -1. + <_>7 11 6 1 3. + 0 + 1.1141640134155750e-003 + 0.4512017965316773 + 0.5706217288970947 + <_> + + <_> + + + + <_>9 11 2 2 -1. + <_>9 12 2 1 2. + 0 + 8.9249362645205110e-005 + 0.4577805995941162 + 0.5897638201713562 + <_> + + <_> + + + + <_>0 5 20 6 -1. + <_>0 7 20 2 3. + 0 + 2.5319510605186224e-003 + 0.5299603939056397 + 0.3357639014720917 + <_> + + <_> + + + + <_>6 4 6 1 -1. + <_>8 4 2 1 3. + 0 + 0.0124262003228068 + 0.4959059059619904 + 0.1346601992845535 + <_> + + <_> + + + + <_>9 11 6 1 -1. + <_>11 11 2 1 3. + 0 + 0.0283357501029968 + 0.5117079019546509 + 6.1043637106195092e-004 + <_> + + <_> + + + + <_>5 11 6 1 -1. + <_>7 11 2 1 3. + 0 + 6.6165882162749767e-003 + 0.4736349880695343 + 0.7011628150939941 + <_> + + <_> + + + + <_>10 16 3 4 -1. + <_>11 16 1 4 3. + 0 + 8.0468766391277313e-003 + 0.5216417908668518 + 0.3282819986343384 + <_> + + <_> + + + + <_>8 7 3 3 -1. + <_>9 7 1 3 3. + 0 + -1.1193980462849140e-003 + 0.5809860825538635 + 0.4563739001750946 + <_> + + <_> + + + + <_>2 12 16 8 -1. + <_>2 16 16 4 2. + 0 + 0.0132775902748108 + 0.5398362278938294 + 0.4103901088237763 + <_> + + <_> + + + + <_>0 15 15 2 -1. + <_>0 16 15 1 2. + 0 + 4.8794739996083081e-004 + 0.4249286055564880 + 0.5410590767860413 + <_> + + <_> + + + + <_>15 4 5 6 -1. + <_>15 6 5 2 3. + 0 + 0.0112431701272726 + 0.5269963741302490 + 0.3438215851783752 + <_> + + <_> + + + + <_>9 5 2 4 -1. + <_>10 5 1 4 2. + 0 + -8.9896668214350939e-004 + 0.5633075833320618 + 0.4456613063812256 + <_> + + <_> + + + + <_>8 10 9 6 -1. + <_>8 12 9 2 3. + 0 + 6.6677159629762173e-003 + 0.5312889218330383 + 0.4362679123878479 + <_> + + <_> + + + + <_>2 19 15 1 -1. + <_>7 19 5 1 3. + 0 + 0.0289472993463278 + 0.4701794981956482 + 0.6575797796249390 + <_> + + <_> + + + + <_>10 16 3 4 -1. + <_>11 16 1 4 3. + 0 + -0.0234000496566296 + 0. + 0.5137398838996887 + <_> + + <_> + + + + <_>0 15 20 4 -1. + <_>0 17 20 2 2. + 0 + -0.0891170501708984 + 0.0237452797591686 + 0.4942430853843689 + <_> + + <_> + + + + <_>10 16 3 4 -1. + <_>11 16 1 4 3. + 0 + -0.0140546001493931 + 0.3127323091030121 + 0.5117511153221130 + <_> + + <_> + + + + <_>7 16 3 4 -1. + <_>8 16 1 4 3. + 0 + 8.1239398568868637e-003 + 0.5009049177169800 + 0.2520025968551636 + <_> + + <_> + + + + <_>9 16 3 3 -1. + <_>9 17 3 1 3. + 0 + -4.9964650534093380e-003 + 0.6387143731117249 + 0.4927811920642853 + <_> + + <_> + + + + <_>8 11 4 6 -1. + <_>8 14 4 3 2. + 0 + 3.1253970228135586e-003 + 0.5136849880218506 + 0.3680452108383179 + <_> + + <_> + + + + <_>9 6 2 12 -1. + <_>9 10 2 4 3. + 0 + 6.7669642157852650e-003 + 0.5509843826293945 + 0.4363631904125214 + <_> + + <_> + + + + <_>8 17 4 3 -1. + <_>8 18 4 1 3. + 0 + -2.3711440153419971e-003 + 0.6162335276603699 + 0.4586946964263916 + <_> + + <_> + + + + <_>9 18 8 2 -1. + <_>13 18 4 1 2. + <_>9 19 4 1 2. + 0 + -5.3522791713476181e-003 + 0.6185457706451416 + 0.4920490980148315 + <_> + + <_> + + + + <_>1 18 8 2 -1. + <_>1 19 8 1 2. + 0 + -0.0159688591957092 + 0.1382617950439453 + 0.4983252882957459 + <_> + + <_> + + + + <_>13 5 6 15 -1. + <_>15 5 2 15 3. + 0 + 4.7676060348749161e-003 + 0.4688057899475098 + 0.5490046143531799 + <_> + + <_> + + + + <_>9 8 2 2 -1. + <_>9 9 2 1 2. + 0 + -2.4714691098779440e-003 + 0.2368514984846115 + 0.5003952980041504 + <_> + + <_> + + + + <_>9 5 2 3 -1. + <_>9 5 1 3 2. + 0 + -7.1033788844943047e-004 + 0.5856394171714783 + 0.4721533060073853 + <_> + + <_> + + + + <_>1 5 6 15 -1. + <_>3 5 2 15 3. + 0 + -0.1411755979061127 + 0.0869000628590584 + 0.4961591064929962 + <_> + + <_> + + + + <_>4 1 14 8 -1. + <_>11 1 7 4 2. + <_>4 5 7 4 2. + 0 + 0.1065180972218514 + 0.5138837099075317 + 0.1741005033254623 + <_> + + <_> + + + + <_>2 4 4 16 -1. + <_>2 4 2 8 2. + <_>4 12 2 8 2. + 0 + -0.0527447499334812 + 0.7353636026382446 + 0.4772881865501404 + <_> + + <_> + + + + <_>12 4 3 12 -1. + <_>12 10 3 6 2. + 0 + -4.7431760467588902e-003 + 0.3884406089782715 + 0.5292701721191406 + <_> + + <_> + + + + <_>4 5 10 12 -1. + <_>4 5 5 6 2. + <_>9 11 5 6 2. + 0 + 9.9676765967160463e-004 + 0.5223492980003357 + 0.4003424048423767 + <_> + + <_> + + + + <_>9 14 2 3 -1. + <_>9 15 2 1 3. + 0 + 8.0284131690859795e-003 + 0.4959106147289276 + 0.7212964296340942 + <_> + + <_> + + + + <_>5 4 2 3 -1. + <_>5 5 2 1 3. + 0 + 8.6025858763605356e-004 + 0.4444884061813355 + 0.5538476109504700 + <_> + + <_> + + + + <_>12 2 4 10 -1. + <_>14 2 2 5 2. + <_>12 7 2 5 2. + 0 + 9.3191501218825579e-004 + 0.5398371219635010 + 0.4163244068622589 + <_> + + <_> + + + + <_>6 4 7 3 -1. + <_>6 5 7 1 3. + 0 + -2.5082060601562262e-003 + 0.5854265093803406 + 0.4562500119209290 + <_> + + <_> + + + + <_>2 0 18 2 -1. + <_>11 0 9 1 2. + <_>2 1 9 1 2. + 0 + -2.1378761157393456e-003 + 0.4608069062232971 + 0.5280259251594544 + <_> + + <_> + + + + <_>0 0 18 2 -1. + <_>0 0 9 1 2. + <_>9 1 9 1 2. + 0 + -2.1546049974858761e-003 + 0.3791126906871796 + 0.5255997180938721 + <_> + + <_> + + + + <_>13 13 4 6 -1. + <_>15 13 2 3 2. + <_>13 16 2 3 2. + 0 + -7.6214009895920753e-003 + 0.5998609066009522 + 0.4952073991298676 + <_> + + <_> + + + + <_>3 13 4 6 -1. + <_>3 13 2 3 2. + <_>5 16 2 3 2. + 0 + 2.2055360022932291e-003 + 0.4484206140041351 + 0.5588530898094177 + <_> + + <_> + + + + <_>10 12 2 6 -1. + <_>10 15 2 3 2. + 0 + 1.2586950324475765e-003 + 0.5450747013092041 + 0.4423840939998627 + <_> + + <_> + + + + <_>5 9 10 10 -1. + <_>5 9 5 5 2. + <_>10 14 5 5 2. + 0 + -5.0926720723509789e-003 + 0.4118275046348572 + 0.5263035893440247 + <_> + + <_> + + + + <_>11 4 4 2 -1. + <_>13 4 2 1 2. + <_>11 5 2 1 2. + 0 + -2.5095739401876926e-003 + 0.5787907838821411 + 0.4998494982719421 + <_> + + <_> + + + + <_>7 12 6 8 -1. + <_>10 12 3 8 2. + 0 + -0.0773275569081306 + 0.8397865891456604 + 0.4811120033264160 + <_> + + <_> + + + + <_>12 2 4 10 -1. + <_>14 2 2 5 2. + <_>12 7 2 5 2. + 0 + -0.0414858199656010 + 0.2408611029386520 + 0.5176993012428284 + <_> + + <_> + + + + <_>8 11 2 1 -1. + <_>9 11 1 1 2. + 0 + 1.0355669655837119e-004 + 0.4355360865592957 + 0.5417054295539856 + <_> + + <_> + + + + <_>10 5 1 12 -1. + <_>10 9 1 4 3. + 0 + 1.3255809899419546e-003 + 0.5453971028327942 + 0.4894095063209534 + <_> + + <_> + + + + <_>0 11 6 9 -1. + <_>3 11 3 9 2. + 0 + -8.0598732456564903e-003 + 0.5771024227142334 + 0.4577918946743012 + <_> + + <_> + + + + <_>12 2 4 10 -1. + <_>14 2 2 5 2. + <_>12 7 2 5 2. + 0 + 0.0190586205571890 + 0.5169867873191834 + 0.3400475084781647 + <_> + + <_> + + + + <_>4 2 4 10 -1. + <_>4 2 2 5 2. + <_>6 7 2 5 2. + 0 + -0.0350578911602497 + 0.2203243970870972 + 0.5000503063201904 + <_> + + <_> + + + + <_>11 4 4 2 -1. + <_>13 4 2 1 2. + <_>11 5 2 1 2. + 0 + 5.7296059094369411e-003 + 0.5043408274650574 + 0.6597570776939392 + <_> + + <_> + + + + <_>0 14 6 3 -1. + <_>0 15 6 1 3. + 0 + -0.0116483299061656 + 0.2186284959316254 + 0.4996652901172638 + <_> + + <_> + + + + <_>11 4 4 2 -1. + <_>13 4 2 1 2. + <_>11 5 2 1 2. + 0 + 1.4544479781761765e-003 + 0.5007681846618652 + 0.5503727793693543 + <_> + + <_> + + + + <_>6 1 3 2 -1. + <_>7 1 1 2 3. + 0 + -2.5030909455381334e-004 + 0.4129841029644013 + 0.5241670012474060 + <_> + + <_> + + + + <_>11 4 4 2 -1. + <_>13 4 2 1 2. + <_>11 5 2 1 2. + 0 + -8.2907272735610604e-004 + 0.5412868261337280 + 0.4974496066570282 + <_> + + <_> + + + + <_>5 4 4 2 -1. + <_>5 4 2 1 2. + <_>7 5 2 1 2. + 0 + 1.0862209601327777e-003 + 0.4605529904365540 + 0.5879228711128235 + <_> + + <_> + + + + <_>13 0 2 12 -1. + <_>14 0 1 6 2. + <_>13 6 1 6 2. + 0 + 2.0000500080641359e-004 + 0.5278854966163635 + 0.4705209136009216 + <_> + + <_> + + + + <_>6 0 3 10 -1. + <_>7 0 1 10 3. + 0 + 2.9212920926511288e-003 + 0.5129609704017639 + 0.3755536973476410 + <_> + + <_> + + + + <_>3 0 17 8 -1. + <_>3 4 17 4 2. + 0 + 0.0253874007612467 + 0.4822691977024078 + 0.5790768265724182 + <_> + + <_> + + + + <_>0 4 20 4 -1. + <_>0 6 20 2 2. + 0 + -3.1968469265848398e-003 + 0.5248395204544067 + 0.3962840139865875 + 87.6960296630859380 + 17 + -1 + <_> + + + <_> + + <_> + + + + <_>0 3 8 2 -1. + <_>4 3 4 2 2. + 0 + 5.8031738735735416e-003 + 0.3498983979225159 + 0.5961983203887940 + <_> + + <_> + + + + <_>8 11 4 3 -1. + <_>8 12 4 1 3. + 0 + -9.0003069490194321e-003 + 0.6816636919975281 + 0.4478552043437958 + <_> + + <_> + + + + <_>5 7 6 4 -1. + <_>5 7 3 2 2. + <_>8 9 3 2 2. + 0 + -1.1549659539014101e-003 + 0.5585706233978272 + 0.3578251004219055 + <_> + + <_> + + + + <_>8 3 4 9 -1. + <_>8 6 4 3 3. + 0 + -1.1069850297644734e-003 + 0.5365036129951477 + 0.3050428032875061 + <_> + + <_> + + + + <_>8 15 1 4 -1. + <_>8 17 1 2 2. + 0 + 1.0308309720130637e-004 + 0.3639095127582550 + 0.5344635844230652 + <_> + + <_> + + + + <_>4 5 12 7 -1. + <_>8 5 4 7 3. + 0 + -5.0984839908778667e-003 + 0.2859157025814056 + 0.5504264831542969 + <_> + + <_> + + + + <_>4 2 4 10 -1. + <_>4 2 2 5 2. + <_>6 7 2 5 2. + 0 + 8.2572200335562229e-004 + 0.5236523747444153 + 0.3476041853427887 + <_> + + <_> + + + + <_>3 0 17 2 -1. + <_>3 1 17 1 2. + 0 + 9.9783325567841530e-003 + 0.4750322103500366 + 0.6219646930694580 + <_> + + <_> + + + + <_>2 2 16 15 -1. + <_>2 7 16 5 3. + 0 + -0.0374025292694569 + 0.3343375921249390 + 0.5278062820434570 + <_> + + <_> + + + + <_>15 2 5 2 -1. + <_>15 3 5 1 2. + 0 + 4.8548257909715176e-003 + 0.5192180871963501 + 0.3700444102287293 + <_> + + <_> + + + + <_>9 3 2 2 -1. + <_>10 3 1 2 2. + 0 + -1.8664470408111811e-003 + 0.2929843962192535 + 0.5091944932937622 + <_> + + <_> + + + + <_>4 5 16 15 -1. + <_>4 10 16 5 3. + 0 + 0.0168888904154301 + 0.3686845898628235 + 0.5431225895881653 + <_> + + <_> + + + + <_>7 13 5 6 -1. + <_>7 16 5 3 2. + 0 + -5.8372621424496174e-003 + 0.3632183969020844 + 0.5221335887908936 + <_> + + <_> + + + + <_>10 7 3 2 -1. + <_>11 7 1 2 3. + 0 + -1.4713739510625601e-003 + 0.5870683789253235 + 0.4700650870800018 + <_> + + <_> + + + + <_>8 3 3 1 -1. + <_>9 3 1 1 3. + 0 + -1.1522950371727347e-003 + 0.3195894956588745 + 0.5140954256057739 + <_> + + <_> + + + + <_>9 16 3 3 -1. + <_>9 17 3 1 3. + 0 + -4.2560300789773464e-003 + 0.6301859021186829 + 0.4814921021461487 + <_> + + <_> + + + + <_>0 2 5 2 -1. + <_>0 3 5 1 2. + 0 + -6.7378291860222816e-003 + 0.1977048069238663 + 0.5025808215141296 + <_> + + <_> + + + + <_>12 5 4 3 -1. + <_>12 6 4 1 3. + 0 + 0.0113826701417565 + 0.4954132139682770 + 0.6867045760154724 + <_> + + <_> + + + + <_>1 7 12 1 -1. + <_>5 7 4 1 3. + 0 + 5.1794708706438541e-003 + 0.5164427757263184 + 0.3350647985935211 + <_> + + <_> + + + + <_>7 5 6 14 -1. + <_>7 12 6 7 2. + 0 + -0.1174378991127014 + 0.2315246015787125 + 0.5234413743019104 + <_> + + <_> + + + + <_>0 0 8 10 -1. + <_>0 0 4 5 2. + <_>4 5 4 5 2. + 0 + 0.0287034492939711 + 0.4664297103881836 + 0.6722521185874939 + <_> + + <_> + + + + <_>9 1 3 2 -1. + <_>10 1 1 2 3. + 0 + 4.8231030814349651e-003 + 0.5220875144004822 + 0.2723532915115356 + <_> + + <_> + + + + <_>8 1 3 2 -1. + <_>9 1 1 2 3. + 0 + 2.6798530016094446e-003 + 0.5079277157783508 + 0.2906948924064636 + <_> + + <_> + + + + <_>12 4 3 3 -1. + <_>12 5 3 1 3. + 0 + 8.0504082143306732e-003 + 0.4885950982570648 + 0.6395021080970764 + <_> + + <_> + + + + <_>7 4 6 16 -1. + <_>7 12 6 8 2. + 0 + 4.8054959625005722e-003 + 0.5197256803512573 + 0.3656663894653320 + <_> + + <_> + + + + <_>12 4 3 3 -1. + <_>12 5 3 1 3. + 0 + -2.2420159075409174e-003 + 0.6153467893600464 + 0.4763701856136322 + <_> + + <_> + + + + <_>2 3 2 6 -1. + <_>2 5 2 2 3. + 0 + -0.0137577103450894 + 0.2637344896793366 + 0.5030903220176697 + <_> + + <_> + + + + <_>14 2 6 9 -1. + <_>14 5 6 3 3. + 0 + -0.1033829972147942 + 0.2287521958351135 + 0.5182461142539978 + <_> + + <_> + + + + <_>5 4 3 3 -1. + <_>5 5 3 1 3. + 0 + -9.4432085752487183e-003 + 0.6953303813934326 + 0.4694949090480804 + <_> + + <_> + + + + <_>9 17 3 2 -1. + <_>10 17 1 2 3. + 0 + 8.0271181650459766e-004 + 0.5450655221939087 + 0.4268783926963806 + <_> + + <_> + + + + <_>5 5 2 3 -1. + <_>5 6 2 1 3. + 0 + -4.1945669800043106e-003 + 0.6091387867927551 + 0.4571642875671387 + <_> + + <_> + + + + <_>13 11 3 6 -1. + <_>13 13 3 2 3. + 0 + 0.0109422104433179 + 0.5241063237190247 + 0.3284547030925751 + <_> + + <_> + + + + <_>3 14 2 6 -1. + <_>3 17 2 3 2. + 0 + -5.7841069065034389e-004 + 0.5387929081916809 + 0.4179368913173676 + <_> + + <_> + + + + <_>14 3 6 2 -1. + <_>14 4 6 1 2. + 0 + -2.0888620056211948e-003 + 0.4292691051959992 + 0.5301715731620789 + <_> + + <_> + + + + <_>0 8 16 2 -1. + <_>0 9 16 1 2. + 0 + 3.2383969519287348e-003 + 0.3792347908020020 + 0.5220744013786316 + <_> + + <_> + + + + <_>14 3 6 2 -1. + <_>14 4 6 1 2. + 0 + 4.9075027927756310e-003 + 0.5237283110618591 + 0.4126757979393005 + <_> + + <_> + + + + <_>0 0 5 6 -1. + <_>0 2 5 2 3. + 0 + -0.0322779417037964 + 0.1947655975818634 + 0.4994502067565918 + <_> + + <_> + + + + <_>12 5 4 3 -1. + <_>12 6 4 1 3. + 0 + -8.9711230248212814e-003 + 0.6011285185813904 + 0.4929032027721405 + <_> + + <_> + + + + <_>4 11 3 6 -1. + <_>4 13 3 2 3. + 0 + 0.0153210898861289 + 0.5009753704071045 + 0.2039822041988373 + <_> + + <_> + + + + <_>12 5 4 3 -1. + <_>12 6 4 1 3. + 0 + 2.0855569746345282e-003 + 0.4862189888954163 + 0.5721694827079773 + <_> + + <_> + + + + <_>9 5 1 3 -1. + <_>9 6 1 1 3. + 0 + 5.0615021027624607e-003 + 0.5000218749046326 + 0.1801805943250656 + <_> + + <_> + + + + <_>12 5 4 3 -1. + <_>12 6 4 1 3. + 0 + -3.7174751050770283e-003 + 0.5530117154121399 + 0.4897592961788178 + <_> + + <_> + + + + <_>6 6 8 12 -1. + <_>6 12 8 6 2. + 0 + -0.0121705001220107 + 0.4178605973720551 + 0.5383723974227905 + <_> + + <_> + + + + <_>12 5 4 3 -1. + <_>12 6 4 1 3. + 0 + 4.6248398721218109e-003 + 0.4997169971466065 + 0.5761327147483826 + <_> + + <_> + + + + <_>5 12 9 2 -1. + <_>8 12 3 2 3. + 0 + -2.1040429419372231e-004 + 0.5331807136535645 + 0.4097681045532227 + <_> + + <_> + + + + <_>12 5 4 3 -1. + <_>12 6 4 1 3. + 0 + -0.0146417804062366 + 0.5755925178527832 + 0.5051776170730591 + <_> + + <_> + + + + <_>4 5 4 3 -1. + <_>4 6 4 1 3. + 0 + 3.3199489116668701e-003 + 0.4576976895332336 + 0.6031805872917175 + <_> + + <_> + + + + <_>6 6 9 2 -1. + <_>9 6 3 2 3. + 0 + 3.7236879579722881e-003 + 0.4380396902561188 + 0.5415883064270020 + <_> + + <_> + + + + <_>4 11 1 3 -1. + <_>4 12 1 1 3. + 0 + 8.2951161311939359e-004 + 0.5163031816482544 + 0.3702219128608704 + <_> + + <_> + + + + <_>14 12 6 6 -1. + <_>14 12 3 6 2. + 0 + -0.0114084901288152 + 0.6072946786880493 + 0.4862565100193024 + <_> + + <_> + + + + <_>7 0 3 7 -1. + <_>8 0 1 7 3. + 0 + -4.5320121571421623e-003 + 0.3292475938796997 + 0.5088962912559509 + <_> + + <_> + + + + <_>9 8 3 3 -1. + <_>10 8 1 3 3. + 0 + 5.1276017911732197e-003 + 0.4829767942428589 + 0.6122708916664124 + <_> + + <_> + + + + <_>8 8 3 3 -1. + <_>9 8 1 3 3. + 0 + 9.8583158105611801e-003 + 0.4660679996013641 + 0.6556177139282227 + <_> + + <_> + + + + <_>5 10 11 3 -1. + <_>5 11 11 1 3. + 0 + 0.0369859188795090 + 0.5204849243164063 + 0.1690472066402435 + <_> + + <_> + + + + <_>5 7 10 1 -1. + <_>10 7 5 1 2. + 0 + 4.6491161920130253e-003 + 0.5167322158813477 + 0.3725225031375885 + <_> + + <_> + + + + <_>9 7 3 2 -1. + <_>10 7 1 2 3. + 0 + -4.2664702050387859e-003 + 0.6406493186950684 + 0.4987342953681946 + <_> + + <_> + + + + <_>8 7 3 2 -1. + <_>9 7 1 2 3. + 0 + -4.7956590424291790e-004 + 0.5897293090820313 + 0.4464873969554901 + <_> + + <_> + + + + <_>11 9 4 2 -1. + <_>11 9 2 2 2. + 0 + 3.6827160511165857e-003 + 0.5441560745239258 + 0.3472662866115570 + <_> + + <_> + + + + <_>5 9 4 2 -1. + <_>7 9 2 2 2. + 0 + -0.0100598800927401 + 0.2143162935972214 + 0.5004829764366150 + <_> + + <_> + + + + <_>14 10 2 4 -1. + <_>14 12 2 2 2. + 0 + -3.0361840617842972e-004 + 0.5386424064636231 + 0.4590323865413666 + <_> + + <_> + + + + <_>7 7 3 2 -1. + <_>8 7 1 2 3. + 0 + -1.4545479789376259e-003 + 0.5751184225082398 + 0.4497095048427582 + <_> + + <_> + + + + <_>14 17 6 3 -1. + <_>14 18 6 1 3. + 0 + 1.6515209572389722e-003 + 0.5421937704086304 + 0.4238520860671997 + <_> + + <_> + + + + <_>4 5 12 12 -1. + <_>4 5 6 6 2. + <_>10 11 6 6 2. + 0 + -7.8468639403581619e-003 + 0.4077920913696289 + 0.5258157253265381 + <_> + + <_> + + + + <_>6 9 8 8 -1. + <_>10 9 4 4 2. + <_>6 13 4 4 2. + 0 + -5.1259850151836872e-003 + 0.4229275882244110 + 0.5479453206062317 + <_> + + <_> + + + + <_>0 4 15 4 -1. + <_>5 4 5 4 3. + 0 + -0.0368909612298012 + 0.6596375703811646 + 0.4674678146839142 + <_> + + <_> + + + + <_>13 2 4 1 -1. + <_>13 2 2 1 2. + 0 + 2.4035639944486320e-004 + 0.4251135885715485 + 0.5573202967643738 + <_> + + <_> + + + + <_>4 12 2 2 -1. + <_>4 13 2 1 2. + 0 + -1.5150169929256663e-005 + 0.5259246826171875 + 0.4074114859104157 + <_> + + <_> + + + + <_>8 13 4 3 -1. + <_>8 14 4 1 3. + 0 + 2.2108471021056175e-003 + 0.4671722948551178 + 0.5886352062225342 + <_> + + <_> + + + + <_>9 13 2 3 -1. + <_>9 14 2 1 3. + 0 + -1.1568620102480054e-003 + 0.5711066126823425 + 0.4487161934375763 + <_> + + <_> + + + + <_>13 11 2 3 -1. + <_>13 12 2 1 3. + 0 + 4.9996292218565941e-003 + 0.5264198184013367 + 0.2898327112197876 + <_> + + <_> + + + + <_>7 12 4 4 -1. + <_>7 12 2 2 2. + <_>9 14 2 2 2. + 0 + -1.4656189596280456e-003 + 0.3891738057136536 + 0.5197871923446655 + <_> + + <_> + + + + <_>10 11 2 2 -1. + <_>11 11 1 1 2. + <_>10 12 1 1 2. + 0 + -1.1975039960816503e-003 + 0.5795872807502747 + 0.4927955865859985 + <_> + + <_> + + + + <_>8 17 3 2 -1. + <_>9 17 1 2 3. + 0 + -4.4954330660402775e-003 + 0.2377603054046631 + 0.5012555122375488 + <_> + + <_> + + + + <_>10 11 2 2 -1. + <_>11 11 1 1 2. + <_>10 12 1 1 2. + 0 + 1.4997160178609192e-004 + 0.4876626133918762 + 0.5617607831954956 + <_> + + <_> + + + + <_>0 17 6 3 -1. + <_>0 18 6 1 3. + 0 + 2.6391509454697371e-003 + 0.5168088078498840 + 0.3765509128570557 + <_> + + <_> + + + + <_>10 11 2 2 -1. + <_>11 11 1 1 2. + <_>10 12 1 1 2. + 0 + -2.9368131072260439e-004 + 0.5446649193763733 + 0.4874630868434906 + <_> + + <_> + + + + <_>8 11 2 2 -1. + <_>8 11 1 1 2. + <_>9 12 1 1 2. + 0 + 1.4211760135367513e-003 + 0.4687897861003876 + 0.6691331863403320 + <_> + + <_> + + + + <_>12 5 8 4 -1. + <_>12 5 4 4 2. + 0 + 0.0794276371598244 + 0.5193443894386292 + 0.2732945978641510 + <_> + + <_> + + + + <_>0 5 8 4 -1. + <_>4 5 4 4 2. + 0 + 0.0799375027418137 + 0.4971731007099152 + 0.1782083958387375 + <_> + + <_> + + + + <_>13 2 4 1 -1. + <_>13 2 2 1 2. + 0 + 0.0110892597585917 + 0.5165994763374329 + 0.3209475874900818 + <_> + + <_> + + + + <_>3 2 4 1 -1. + <_>5 2 2 1 2. + 0 + 1.6560709627810866e-004 + 0.4058471918106079 + 0.5307276248931885 + <_> + + <_> + + + + <_>10 0 4 2 -1. + <_>12 0 2 1 2. + <_>10 1 2 1 2. + 0 + -5.3354292176663876e-003 + 0.3445056974887848 + 0.5158129930496216 + <_> + + <_> + + + + <_>7 12 3 1 -1. + <_>8 12 1 1 3. + 0 + 1.1287260567769408e-003 + 0.4594863057136536 + 0.6075533032417297 + <_> + + <_> + + + + <_>8 11 4 8 -1. + <_>10 11 2 4 2. + <_>8 15 2 4 2. + 0 + -0.0219692196696997 + 0.1680400967597961 + 0.5228595733642578 + <_> + + <_> + + + + <_>9 9 2 2 -1. + <_>9 10 2 1 2. + 0 + -2.1775320055894554e-004 + 0.3861596882343292 + 0.5215672850608826 + <_> + + <_> + + + + <_>3 18 15 2 -1. + <_>3 19 15 1 2. + 0 + 2.0200149447191507e-004 + 0.5517979264259338 + 0.4363039135932922 + <_> + + <_> + + + + <_>2 6 2 12 -1. + <_>2 6 1 6 2. + <_>3 12 1 6 2. + 0 + -0.0217331498861313 + 0.7999460101127625 + 0.4789851009845734 + <_> + + <_> + + + + <_>9 8 2 3 -1. + <_>9 9 2 1 3. + 0 + -8.4399932529777288e-004 + 0.4085975885391235 + 0.5374773144721985 + <_> + + <_> + + + + <_>7 10 3 2 -1. + <_>8 10 1 2 3. + 0 + -4.3895249837078154e-004 + 0.5470405220985413 + 0.4366143047809601 + <_> + + <_> + + + + <_>11 11 3 1 -1. + <_>12 11 1 1 3. + 0 + 1.5092400135472417e-003 + 0.4988996982574463 + 0.5842149257659912 + <_> + + <_> + + + + <_>6 11 3 1 -1. + <_>7 11 1 1 3. + 0 + -3.5547839943319559e-003 + 0.6753690242767334 + 0.4721005856990814 + <_> + + <_> + + + + <_>9 2 4 2 -1. + <_>11 2 2 1 2. + <_>9 3 2 1 2. + 0 + 4.8191400128416717e-004 + 0.5415853857994080 + 0.4357109069824219 + <_> + + <_> + + + + <_>4 12 2 3 -1. + <_>4 13 2 1 3. + 0 + -6.0264398343861103e-003 + 0.2258509993553162 + 0.4991880953311920 + <_> + + <_> + + + + <_>2 1 18 3 -1. + <_>8 1 6 3 3. + 0 + -0.0116681400686502 + 0.6256554722785950 + 0.4927498996257782 + <_> + + <_> + + + + <_>5 1 4 14 -1. + <_>7 1 2 14 2. + 0 + -2.8718370012938976e-003 + 0.3947784900665283 + 0.5245801806449890 + <_> + + <_> + + + + <_>8 16 12 3 -1. + <_>8 16 6 3 2. + 0 + 0.0170511696487665 + 0.4752511084079742 + 0.5794224143028259 + <_> + + <_> + + + + <_>1 17 18 3 -1. + <_>7 17 6 3 3. + 0 + -0.0133520802482963 + 0.6041104793548584 + 0.4544535875320435 + <_> + + <_> + + + + <_>9 14 2 6 -1. + <_>9 17 2 3 2. + 0 + -3.9301801007241011e-004 + 0.4258275926113129 + 0.5544905066490173 + <_> + + <_> + + + + <_>9 12 1 8 -1. + <_>9 16 1 4 2. + 0 + 3.0483349692076445e-003 + 0.5233420133590698 + 0.3780272901058197 + <_> + + <_> + + + + <_>9 14 2 3 -1. + <_>9 15 2 1 3. + 0 + -4.3579288758337498e-003 + 0.6371889114379883 + 0.4838674068450928 + <_> + + <_> + + + + <_>9 6 2 12 -1. + <_>9 10 2 4 3. + 0 + 5.6661018170416355e-003 + 0.5374705791473389 + 0.4163666069507599 + <_> + + <_> + + + + <_>12 9 3 3 -1. + <_>12 10 3 1 3. + 0 + 6.0677339206449687e-005 + 0.4638795852661133 + 0.5311625003814697 + <_> + + <_> + + + + <_>0 1 4 8 -1. + <_>2 1 2 8 2. + 0 + 0.0367381609976292 + 0.4688656032085419 + 0.6466524004936218 + <_> + + <_> + + + + <_>9 1 6 2 -1. + <_>12 1 3 1 2. + <_>9 2 3 1 2. + 0 + 8.6528137326240540e-003 + 0.5204318761825562 + 0.2188657969236374 + <_> + + <_> + + + + <_>1 3 12 14 -1. + <_>1 10 12 7 2. + 0 + -0.1537135988473892 + 0.1630371958017349 + 0.4958840012550354 + <_> + + <_> + + + + <_>8 12 4 2 -1. + <_>10 12 2 1 2. + <_>8 13 2 1 2. + 0 + -4.1560421232134104e-004 + 0.5774459242820740 + 0.4696458876132965 + <_> + + <_> + + + + <_>1 9 10 2 -1. + <_>1 9 5 1 2. + <_>6 10 5 1 2. + 0 + -1.2640169588848948e-003 + 0.3977175951004028 + 0.5217198133468628 + <_> + + <_> + + + + <_>8 15 4 3 -1. + <_>8 16 4 1 3. + 0 + -3.5473341122269630e-003 + 0.6046528220176697 + 0.4808315038681030 + <_> + + <_> + + + + <_>6 8 8 3 -1. + <_>6 9 8 1 3. + 0 + 3.0019069527043030e-005 + 0.3996723890304565 + 0.5228201150894165 + <_> + + <_> + + + + <_>9 15 5 3 -1. + <_>9 16 5 1 3. + 0 + 1.3113019522279501e-003 + 0.4712158143520355 + 0.5765997767448425 + <_> + + <_> + + + + <_>8 7 4 3 -1. + <_>8 8 4 1 3. + 0 + -1.3374709524214268e-003 + 0.4109584987163544 + 0.5253170132637024 + <_> + + <_> + + + + <_>7 7 6 2 -1. + <_>7 8 6 1 2. + 0 + 0.0208767093718052 + 0.5202993750572205 + 0.1757981926202774 + <_> + + <_> + + + + <_>5 7 8 2 -1. + <_>5 7 4 1 2. + <_>9 8 4 1 2. + 0 + -7.5497948564589024e-003 + 0.6566609740257263 + 0.4694975018501282 + <_> + + <_> + + + + <_>12 9 3 3 -1. + <_>12 10 3 1 3. + 0 + 0.0241885501891375 + 0.5128673911094666 + 0.3370220959186554 + <_> + + <_> + + + + <_>4 7 4 2 -1. + <_>4 8 4 1 2. + 0 + -2.9358828905969858e-003 + 0.6580786705017090 + 0.4694541096687317 + <_> + + <_> + + + + <_>14 2 6 9 -1. + <_>14 5 6 3 3. + 0 + 0.0575579293072224 + 0.5146445035934448 + 0.2775259912014008 + <_> + + <_> + + + + <_>4 9 3 3 -1. + <_>5 9 1 3 3. + 0 + -1.1343370424583554e-003 + 0.3836601972579956 + 0.5192667245864868 + <_> + + <_> + + + + <_>12 9 3 3 -1. + <_>12 10 3 1 3. + 0 + 0.0168169997632504 + 0.5085592865943909 + 0.6177260875701904 + <_> + + <_> + + + + <_>0 2 6 9 -1. + <_>0 5 6 3 3. + 0 + 5.0535178743302822e-003 + 0.5138763189315796 + 0.3684791922569275 + <_> + + <_> + + + + <_>17 3 3 6 -1. + <_>18 3 1 6 3. + 0 + -4.5874710194766521e-003 + 0.5989655256271362 + 0.4835202097892761 + <_> + + <_> + + + + <_>0 3 3 6 -1. + <_>1 3 1 6 3. + 0 + 1.6882460331544280e-003 + 0.4509486854076386 + 0.5723056793212891 + <_> + + <_> + + + + <_>17 14 1 2 -1. + <_>17 15 1 1 2. + 0 + -1.6554000321775675e-003 + 0.3496770858764648 + 0.5243319272994995 + <_> + + <_> + + + + <_>4 9 4 3 -1. + <_>6 9 2 3 2. + 0 + -0.0193738006055355 + 0.1120536997914314 + 0.4968712925910950 + <_> + + <_> + + + + <_>12 9 3 3 -1. + <_>12 10 3 1 3. + 0 + 0.0103744501248002 + 0.5148196816444397 + 0.4395213127136231 + <_> + + <_> + + + + <_>5 9 3 3 -1. + <_>5 10 3 1 3. + 0 + 1.4973050565458834e-004 + 0.4084999859333038 + 0.5269886851310730 + <_> + + <_> + + + + <_>9 5 6 8 -1. + <_>12 5 3 4 2. + <_>9 9 3 4 2. + 0 + -0.0429819300770760 + 0.6394104957580566 + 0.5018504261970520 + <_> + + <_> + + + + <_>5 5 6 8 -1. + <_>5 5 3 4 2. + <_>8 9 3 4 2. + 0 + 8.3065936341881752e-003 + 0.4707553982734680 + 0.6698353290557861 + <_> + + <_> + + + + <_>16 1 4 6 -1. + <_>16 4 4 3 2. + 0 + -4.1285790503025055e-003 + 0.4541369080543518 + 0.5323647260665894 + <_> + + <_> + + + + <_>1 0 6 20 -1. + <_>3 0 2 20 3. + 0 + 1.7399420030415058e-003 + 0.4333961904048920 + 0.5439866185188294 + <_> + + <_> + + + + <_>12 11 3 2 -1. + <_>13 11 1 2 3. + 0 + 1.1739750334527344e-004 + 0.4579687118530273 + 0.5543426275253296 + <_> + + <_> + + + + <_>5 11 3 2 -1. + <_>6 11 1 2 3. + 0 + 1.8585780344437808e-004 + 0.4324643909931183 + 0.5426754951477051 + <_> + + <_> + + + + <_>9 4 6 1 -1. + <_>11 4 2 1 3. + 0 + 5.5587692186236382e-003 + 0.5257220864295960 + 0.3550611138343811 + <_> + + <_> + + + + <_>0 0 8 3 -1. + <_>4 0 4 3 2. + 0 + -7.9851560294628143e-003 + 0.6043018102645874 + 0.4630635976791382 + <_> + + <_> + + + + <_>15 0 2 5 -1. + <_>15 0 1 5 2. + 0 + 6.0594122624024749e-004 + 0.4598254859447479 + 0.5533195137977600 + <_> + + <_> + + + + <_>4 1 3 2 -1. + <_>5 1 1 2 3. + 0 + -2.2983040253166109e-004 + 0.4130752086639404 + 0.5322461128234863 + <_> + + <_> + + + + <_>7 0 6 15 -1. + <_>9 0 2 15 3. + 0 + 4.3740210821852088e-004 + 0.4043039977550507 + 0.5409289002418518 + <_> + + <_> + + + + <_>6 11 3 1 -1. + <_>7 11 1 1 3. + 0 + 2.9482020181603730e-004 + 0.4494963884353638 + 0.5628852248191834 + <_> + + <_> + + + + <_>12 0 3 4 -1. + <_>13 0 1 4 3. + 0 + 0.0103126596659422 + 0.5177510976791382 + 0.2704316973686218 + <_> + + <_> + + + + <_>5 4 6 1 -1. + <_>7 4 2 1 3. + 0 + -7.7241109684109688e-003 + 0.1988019049167633 + 0.4980553984642029 + <_> + + <_> + + + + <_>12 7 3 2 -1. + <_>12 8 3 1 2. + 0 + -4.6797208487987518e-003 + 0.6644750237464905 + 0.5018296241760254 + <_> + + <_> + + + + <_>0 1 4 6 -1. + <_>0 4 4 3 2. + 0 + -5.0755459815263748e-003 + 0.3898304998874664 + 0.5185269117355347 + <_> + + <_> + + + + <_>12 7 3 2 -1. + <_>12 8 3 1 2. + 0 + 2.2479740437120199e-003 + 0.4801808893680573 + 0.5660336017608643 + <_> + + <_> + + + + <_>2 16 3 3 -1. + <_>2 17 3 1 3. + 0 + 8.3327008178457618e-004 + 0.5210919976234436 + 0.3957188129425049 + <_> + + <_> + + + + <_>13 8 6 10 -1. + <_>16 8 3 5 2. + <_>13 13 3 5 2. + 0 + -0.0412793308496475 + 0.6154541969299316 + 0.5007054209709168 + <_> + + <_> + + + + <_>0 9 5 2 -1. + <_>0 10 5 1 2. + 0 + -5.0930189900100231e-004 + 0.3975942134857178 + 0.5228403806686401 + <_> + + <_> + + + + <_>12 11 2 2 -1. + <_>13 11 1 1 2. + <_>12 12 1 1 2. + 0 + 1.2568780221045017e-003 + 0.4979138076305389 + 0.5939183235168457 + <_> + + <_> + + + + <_>3 15 3 3 -1. + <_>3 16 3 1 3. + 0 + 8.0048497766256332e-003 + 0.4984497129917145 + 0.1633366048336029 + <_> + + <_> + + + + <_>12 7 3 2 -1. + <_>12 8 3 1 2. + 0 + -1.1879300000146031e-003 + 0.5904964804649353 + 0.4942624866962433 + <_> + + <_> + + + + <_>5 7 3 2 -1. + <_>5 8 3 1 2. + 0 + 6.1948952497914433e-004 + 0.4199557900428772 + 0.5328726172447205 + <_> + + <_> + + + + <_>9 5 9 9 -1. + <_>9 8 9 3 3. + 0 + 6.6829859279096127e-003 + 0.5418602824211121 + 0.4905889034271240 + <_> + + <_> + + + + <_>5 0 3 7 -1. + <_>6 0 1 7 3. + 0 + -3.7062340416014194e-003 + 0.3725939095020294 + 0.5138000249862671 + <_> + + <_> + + + + <_>5 2 12 5 -1. + <_>9 2 4 5 3. + 0 + -0.0397394113242626 + 0.6478961110115051 + 0.5050346851348877 + <_> + + <_> + + + + <_>6 11 2 2 -1. + <_>6 11 1 1 2. + <_>7 12 1 1 2. + 0 + 1.4085009461268783e-003 + 0.4682339131832123 + 0.6377884149551392 + <_> + + <_> + + + + <_>15 15 3 2 -1. + <_>15 16 3 1 2. + 0 + 3.9322688826359808e-004 + 0.5458530187606812 + 0.4150482118129730 + <_> + + <_> + + + + <_>2 15 3 2 -1. + <_>2 16 3 1 2. + 0 + -1.8979819724336267e-003 + 0.3690159916877747 + 0.5149704217910767 + <_> + + <_> + + + + <_>14 12 6 8 -1. + <_>17 12 3 4 2. + <_>14 16 3 4 2. + 0 + -0.0139704402536154 + 0.6050562858581543 + 0.4811357855796814 + <_> + + <_> + + + + <_>2 8 15 6 -1. + <_>7 8 5 6 3. + 0 + -0.1010081991553307 + 0.2017080038785934 + 0.4992361962795258 + <_> + + <_> + + + + <_>2 2 18 17 -1. + <_>8 2 6 17 3. + 0 + -0.0173469204455614 + 0.5713148713111877 + 0.4899486005306244 + <_> + + <_> + + + + <_>5 1 4 1 -1. + <_>7 1 2 1 2. + 0 + 1.5619759506080300e-004 + 0.4215388894081116 + 0.5392642021179199 + <_> + + <_> + + + + <_>5 2 12 5 -1. + <_>9 2 4 5 3. + 0 + 0.1343892961740494 + 0.5136151909828186 + 0.3767612874507904 + <_> + + <_> + + + + <_>3 2 12 5 -1. + <_>7 2 4 5 3. + 0 + -0.0245822407305241 + 0.7027357816696167 + 0.4747906923294067 + <_> + + <_> + + + + <_>4 9 12 4 -1. + <_>10 9 6 2 2. + <_>4 11 6 2 2. + 0 + -3.8553720805794001e-003 + 0.4317409098148346 + 0.5427716970443726 + <_> + + <_> + + + + <_>5 15 6 2 -1. + <_>5 15 3 1 2. + <_>8 16 3 1 2. + 0 + -2.3165249731391668e-003 + 0.5942698717117310 + 0.4618647992610931 + <_> + + <_> + + + + <_>10 14 2 3 -1. + <_>10 15 2 1 3. + 0 + -4.8518120311200619e-003 + 0.6191568970680237 + 0.4884895086288452 + <_> + + <_> + + + + <_>0 13 20 2 -1. + <_>0 13 10 1 2. + <_>10 14 10 1 2. + 0 + 2.4699938949197531e-003 + 0.5256664752960205 + 0.4017199873924255 + <_> + + <_> + + + + <_>4 9 12 8 -1. + <_>10 9 6 4 2. + <_>4 13 6 4 2. + 0 + 0.0454969592392445 + 0.5237867832183838 + 0.2685773968696594 + <_> + + <_> + + + + <_>8 13 3 6 -1. + <_>8 16 3 3 2. + 0 + -0.0203195996582508 + 0.2130445986986160 + 0.4979738891124725 + <_> + + <_> + + + + <_>10 12 2 2 -1. + <_>10 13 2 1 2. + 0 + 2.6994998916052282e-004 + 0.4814041852951050 + 0.5543122291564941 + <_> + + <_> + + + + <_>9 12 2 2 -1. + <_>9 12 1 1 2. + <_>10 13 1 1 2. + 0 + -1.8232699949294329e-003 + 0.6482579708099365 + 0.4709989130496979 + <_> + + <_> + + + + <_>4 11 14 4 -1. + <_>11 11 7 2 2. + <_>4 13 7 2 2. + 0 + -6.3015790656208992e-003 + 0.4581927955150604 + 0.5306236147880554 + <_> + + <_> + + + + <_>8 5 4 2 -1. + <_>8 6 4 1 2. + 0 + -2.4139499873854220e-004 + 0.5232086777687073 + 0.4051763117313385 + <_> + + <_> + + + + <_>10 10 6 3 -1. + <_>12 10 2 3 3. + 0 + -1.0330369696021080e-003 + 0.5556201934814453 + 0.4789193868637085 + <_> + + <_> + + + + <_>2 14 1 2 -1. + <_>2 15 1 1 2. + 0 + 1.8041160365100950e-004 + 0.5229442715644836 + 0.4011810123920441 + <_> + + <_> + + + + <_>13 8 6 12 -1. + <_>16 8 3 6 2. + <_>13 14 3 6 2. + 0 + -0.0614078603684902 + 0.6298682093620300 + 0.5010703206062317 + <_> + + <_> + + + + <_>1 8 6 12 -1. + <_>1 8 3 6 2. + <_>4 14 3 6 2. + 0 + -0.0695439130067825 + 0.7228280901908875 + 0.4773184061050415 + <_> + + <_> + + + + <_>10 0 6 10 -1. + <_>12 0 2 10 3. + 0 + -0.0705426633358002 + 0.2269513010978699 + 0.5182529091835022 + <_> + + <_> + + + + <_>5 11 8 4 -1. + <_>5 11 4 2 2. + <_>9 13 4 2 2. + 0 + 2.4423799477517605e-003 + 0.5237097144126892 + 0.4098151028156281 + <_> + + <_> + + + + <_>10 16 8 4 -1. + <_>14 16 4 2 2. + <_>10 18 4 2 2. + 0 + 1.5494349645450711e-003 + 0.4773750901222229 + 0.5468043088912964 + <_> + + <_> + + + + <_>7 7 6 6 -1. + <_>9 7 2 6 3. + 0 + -0.0239142198115587 + 0.7146975994110107 + 0.4783824980258942 + <_> + + <_> + + + + <_>10 2 4 10 -1. + <_>10 2 2 10 2. + 0 + -0.0124536901712418 + 0.2635296881198883 + 0.5241122841835022 + <_> + + <_> + + + + <_>6 1 4 9 -1. + <_>8 1 2 9 2. + 0 + -2.0760179904755205e-004 + 0.3623757064342499 + 0.5113608837127686 + <_> + + <_> + + + + <_>12 19 2 1 -1. + <_>12 19 1 1 2. + 0 + 2.9781080229440704e-005 + 0.4705932140350342 + 0.5432801842689514 + 90.2533493041992190 + 18 + -1 + <_> + + + <_> + + <_> + + + + <_>1 2 4 9 -1. + <_>3 2 2 9 2. + 0 + 0.0117727499455214 + 0.3860518932342529 + 0.6421167254447937 + <_> + + <_> + + + + <_>7 5 6 4 -1. + <_>9 5 2 4 3. + 0 + 0.0270375702530146 + 0.4385654926300049 + 0.6754038929939270 + <_> + + <_> + + + + <_>9 4 2 4 -1. + <_>9 6 2 2 2. + 0 + -3.6419500247575343e-005 + 0.5487101078033447 + 0.3423315882682800 + <_> + + <_> + + + + <_>14 5 2 8 -1. + <_>14 9 2 4 2. + 0 + 1.9995409529656172e-003 + 0.3230532109737396 + 0.5400317907333374 + <_> + + <_> + + + + <_>7 6 5 12 -1. + <_>7 12 5 6 2. + 0 + 4.5278300531208515e-003 + 0.5091639757156372 + 0.2935043871402741 + <_> + + <_> + + + + <_>14 6 2 6 -1. + <_>14 9 2 3 2. + 0 + 4.7890920541249216e-004 + 0.4178153872489929 + 0.5344064235687256 + <_> + + <_> + + + + <_>4 6 2 6 -1. + <_>4 9 2 3 2. + 0 + 1.1720920447260141e-003 + 0.2899182140827179 + 0.5132070779800415 + <_> + + <_> + + + + <_>8 15 10 4 -1. + <_>13 15 5 2 2. + <_>8 17 5 2 2. + 0 + 9.5305702416226268e-004 + 0.4280124902725220 + 0.5560845136642456 + <_> + + <_> + + + + <_>6 18 2 2 -1. + <_>7 18 1 2 2. + 0 + 1.5099150004971307e-005 + 0.4044871926307678 + 0.5404760241508484 + <_> + + <_> + + + + <_>11 3 6 2 -1. + <_>11 4 6 1 2. + 0 + -6.0817901976406574e-004 + 0.4271768927574158 + 0.5503466129302979 + <_> + + <_> + + + + <_>2 0 16 6 -1. + <_>2 2 16 2 3. + 0 + 3.3224520739167929e-003 + 0.3962723910808563 + 0.5369734764099121 + <_> + + <_> + + + + <_>11 3 6 2 -1. + <_>11 4 6 1 2. + 0 + -1.1037490330636501e-003 + 0.4727177917957306 + 0.5237749814987183 + <_> + + <_> + + + + <_>4 11 10 3 -1. + <_>4 12 10 1 3. + 0 + -1.4350269921123981e-003 + 0.5603008270263672 + 0.4223509132862091 + <_> + + <_> + + + + <_>11 3 6 2 -1. + <_>11 4 6 1 2. + 0 + 2.0767399109899998e-003 + 0.5225917100906372 + 0.4732725918292999 + <_> + + <_> + + + + <_>3 3 6 2 -1. + <_>3 4 6 1 2. + 0 + -1.6412809782195836e-004 + 0.3999075889587402 + 0.5432739853858948 + <_> + + <_> + + + + <_>16 0 4 7 -1. + <_>16 0 2 7 2. + 0 + 8.8302437216043472e-003 + 0.4678385853767395 + 0.6027327179908752 + <_> + + <_> + + + + <_>0 14 9 6 -1. + <_>0 16 9 2 3. + 0 + -0.0105520701035857 + 0.3493967056274414 + 0.5213974714279175 + <_> + + <_> + + + + <_>9 16 3 3 -1. + <_>9 17 3 1 3. + 0 + -2.2731600329279900e-003 + 0.6185818910598755 + 0.4749062955379486 + <_> + + <_> + + + + <_>4 6 6 2 -1. + <_>6 6 2 2 3. + 0 + -8.4786332445219159e-004 + 0.5285341143608093 + 0.3843482136726379 + <_> + + <_> + + + + <_>15 11 1 3 -1. + <_>15 12 1 1 3. + 0 + 1.2081359745934606e-003 + 0.5360640883445740 + 0.3447335958480835 + <_> + + <_> + + + + <_>5 5 2 3 -1. + <_>5 6 2 1 3. + 0 + 2.6512730401009321e-003 + 0.4558292031288147 + 0.6193962097167969 + <_> + + <_> + + + + <_>10 9 2 2 -1. + <_>10 10 2 1 2. + 0 + -1.1012479662895203e-003 + 0.3680230081081390 + 0.5327628254890442 + <_> + + <_> + + + + <_>3 1 4 3 -1. + <_>5 1 2 3 2. + 0 + 4.9561518244445324e-004 + 0.3960595130920410 + 0.5274940729141235 + <_> + + <_> + + + + <_>16 0 4 7 -1. + <_>16 0 2 7 2. + 0 + -0.0439017713069916 + 0.7020444869995117 + 0.4992839097976685 + <_> + + <_> + + + + <_>0 0 20 1 -1. + <_>10 0 10 1 2. + 0 + 0.0346903502941132 + 0.5049164295196533 + 0.2766602933406830 + <_> + + <_> + + + + <_>15 11 1 3 -1. + <_>15 12 1 1 3. + 0 + -2.7442190330475569e-003 + 0.2672632932662964 + 0.5274971127510071 + <_> + + <_> + + + + <_>0 4 3 4 -1. + <_>1 4 1 4 3. + 0 + 3.3316588960587978e-003 + 0.4579482972621918 + 0.6001101732254028 + <_> + + <_> + + + + <_>16 3 3 6 -1. + <_>16 5 3 2 3. + 0 + -0.0200445707887411 + 0.3171594142913818 + 0.5235717892646790 + <_> + + <_> + + + + <_>1 3 3 6 -1. + <_>1 5 3 2 3. + 0 + 1.3492030557245016e-003 + 0.5265362858772278 + 0.4034324884414673 + <_> + + <_> + + + + <_>6 2 12 6 -1. + <_>12 2 6 3 2. + <_>6 5 6 3 2. + 0 + 2.9702018946409225e-003 + 0.5332456827163696 + 0.4571984112262726 + <_> + + <_> + + + + <_>8 10 4 3 -1. + <_>8 11 4 1 3. + 0 + 6.3039981760084629e-003 + 0.4593310952186585 + 0.6034635901451111 + <_> + + <_> + + + + <_>4 2 14 6 -1. + <_>11 2 7 3 2. + <_>4 5 7 3 2. + 0 + -0.0129365902394056 + 0.4437963962554932 + 0.5372971296310425 + <_> + + <_> + + + + <_>9 11 2 3 -1. + <_>9 12 2 1 3. + 0 + 4.0148729458451271e-003 + 0.4680323898792267 + 0.6437833905220032 + <_> + + <_> + + + + <_>15 13 2 3 -1. + <_>15 14 2 1 3. + 0 + -2.6401679497212172e-003 + 0.3709631860256195 + 0.5314332842826843 + <_> + + <_> + + + + <_>8 12 4 3 -1. + <_>8 13 4 1 3. + 0 + 0.0139184398576617 + 0.4723555147647858 + 0.7130808830261231 + <_> + + <_> + + + + <_>15 11 1 3 -1. + <_>15 12 1 1 3. + 0 + -4.5087869511917233e-004 + 0.4492394030094147 + 0.5370404124259949 + <_> + + <_> + + + + <_>7 13 5 2 -1. + <_>7 14 5 1 2. + 0 + 2.5384349282830954e-004 + 0.4406864047050476 + 0.5514402985572815 + <_> + + <_> + + + + <_>7 12 6 3 -1. + <_>7 13 6 1 3. + 0 + 2.2710000630468130e-003 + 0.4682416915893555 + 0.5967984199523926 + <_> + + <_> + + + + <_>5 11 4 4 -1. + <_>5 13 4 2 2. + 0 + 2.4120779708027840e-003 + 0.5079392194747925 + 0.3018598854541779 + <_> + + <_> + + + + <_>11 4 3 3 -1. + <_>12 4 1 3 3. + 0 + -3.6025670851813629e-005 + 0.5601037144660950 + 0.4471096992492676 + <_> + + <_> + + + + <_>6 4 3 3 -1. + <_>7 4 1 3 3. + 0 + -7.4905529618263245e-003 + 0.2207535058259964 + 0.4989944100379944 + <_> + + <_> + + + + <_>16 5 3 6 -1. + <_>17 5 1 6 3. + 0 + -0.0175131205469370 + 0.6531215906143189 + 0.5017648935317993 + <_> + + <_> + + + + <_>3 6 12 7 -1. + <_>7 6 4 7 3. + 0 + 0.1428163051605225 + 0.4967963099479675 + 0.1482062041759491 + <_> + + <_> + + + + <_>16 5 3 6 -1. + <_>17 5 1 6 3. + 0 + 5.5345268920063972e-003 + 0.4898946881294251 + 0.5954223871231079 + <_> + + <_> + + + + <_>3 13 2 3 -1. + <_>3 14 2 1 3. + 0 + -9.6323591424152255e-004 + 0.3927116990089417 + 0.5196074247360230 + <_> + + <_> + + + + <_>16 5 3 6 -1. + <_>17 5 1 6 3. + 0 + -2.0370010752230883e-003 + 0.5613325238227844 + 0.4884858131408691 + <_> + + <_> + + + + <_>1 5 3 6 -1. + <_>2 5 1 6 3. + 0 + 1.6614829655736685e-003 + 0.4472880065441132 + 0.5578880906105042 + <_> + + <_> + + + + <_>1 9 18 1 -1. + <_>7 9 6 1 3. + 0 + -3.1188090797513723e-003 + 0.3840532898902893 + 0.5397477746009827 + <_> + + <_> + + + + <_>0 9 8 7 -1. + <_>4 9 4 7 2. + 0 + -6.4000617712736130e-003 + 0.5843983888626099 + 0.4533218145370483 + <_> + + <_> + + + + <_>12 11 8 2 -1. + <_>12 12 8 1 2. + 0 + 3.1319601112045348e-004 + 0.5439221858978272 + 0.4234727919101715 + <_> + + <_> + + + + <_>0 11 8 2 -1. + <_>0 12 8 1 2. + 0 + -0.0182220991700888 + 0.1288464963436127 + 0.4958404898643494 + <_> + + <_> + + + + <_>9 13 2 3 -1. + <_>9 14 2 1 3. + 0 + 8.7969247251749039e-003 + 0.4951297938823700 + 0.7153480052947998 + <_> + + <_> + + + + <_>4 10 12 4 -1. + <_>4 10 6 2 2. + <_>10 12 6 2 2. + 0 + -4.2395070195198059e-003 + 0.3946599960327148 + 0.5194936990737915 + <_> + + <_> + + + + <_>9 3 3 7 -1. + <_>10 3 1 7 3. + 0 + 9.7086271271109581e-003 + 0.4897503852844238 + 0.6064900159835815 + <_> + + <_> + + + + <_>7 2 3 5 -1. + <_>8 2 1 5 3. + 0 + -3.9934171363711357e-003 + 0.3245440125465393 + 0.5060828924179077 + <_> + + <_> + + + + <_>9 12 4 6 -1. + <_>11 12 2 3 2. + <_>9 15 2 3 2. + 0 + -0.0167850591242313 + 0.1581953018903732 + 0.5203778743743897 + <_> + + <_> + + + + <_>8 7 3 6 -1. + <_>9 7 1 6 3. + 0 + 0.0182720907032490 + 0.4680935144424439 + 0.6626979112625122 + <_> + + <_> + + + + <_>15 4 4 2 -1. + <_>15 5 4 1 2. + 0 + 5.6872838176786900e-003 + 0.5211697816848755 + 0.3512184917926788 + <_> + + <_> + + + + <_>8 7 3 3 -1. + <_>9 7 1 3 3. + 0 + -1.0739039862528443e-003 + 0.5768386125564575 + 0.4529845118522644 + <_> + + <_> + + + + <_>14 2 6 4 -1. + <_>14 4 6 2 2. + 0 + -3.7093870341777802e-003 + 0.4507763087749481 + 0.5313581228256226 + <_> + + <_> + + + + <_>7 16 6 1 -1. + <_>9 16 2 1 3. + 0 + -2.1110709349159151e-004 + 0.5460820198059082 + 0.4333376884460449 + <_> + + <_> + + + + <_>15 13 2 3 -1. + <_>15 14 2 1 3. + 0 + 1.0670139454305172e-003 + 0.5371856093406677 + 0.4078390896320343 + <_> + + <_> + + + + <_>8 7 3 10 -1. + <_>9 7 1 10 3. + 0 + 3.5943021066486835e-003 + 0.4471287131309509 + 0.5643836259841919 + <_> + + <_> + + + + <_>11 10 2 6 -1. + <_>11 12 2 2 3. + 0 + -5.1776031032204628e-003 + 0.4499393105506897 + 0.5280330181121826 + <_> + + <_> + + + + <_>6 10 4 1 -1. + <_>8 10 2 1 2. + 0 + -2.5414369883947074e-004 + 0.5516173243522644 + 0.4407708048820496 + <_> + + <_> + + + + <_>10 9 2 2 -1. + <_>10 10 2 1 2. + 0 + 6.3522560521960258e-003 + 0.5194190144538879 + 0.2465227991342545 + <_> + + <_> + + + + <_>8 9 2 2 -1. + <_>8 10 2 1 2. + 0 + -4.4205080484971404e-004 + 0.3830705881118774 + 0.5139682292938232 + <_> + + <_> + + + + <_>12 7 2 2 -1. + <_>13 7 1 1 2. + <_>12 8 1 1 2. + 0 + 7.4488727841526270e-004 + 0.4891090989112854 + 0.5974786877632141 + <_> + + <_> + + + + <_>5 7 2 2 -1. + <_>5 7 1 1 2. + <_>6 8 1 1 2. + 0 + -3.5116379149258137e-003 + 0.7413681745529175 + 0.4768764972686768 + <_> + + <_> + + + + <_>13 0 3 14 -1. + <_>14 0 1 14 3. + 0 + -0.0125409103929996 + 0.3648819029331207 + 0.5252826809883118 + <_> + + <_> + + + + <_>4 0 3 14 -1. + <_>5 0 1 14 3. + 0 + 9.4931852072477341e-003 + 0.5100492835044861 + 0.3629586994647980 + <_> + + <_> + + + + <_>13 4 3 14 -1. + <_>14 4 1 14 3. + 0 + 0.0129611501470208 + 0.5232442021369934 + 0.4333561062812805 + <_> + + <_> + + + + <_>9 14 2 3 -1. + <_>9 15 2 1 3. + 0 + 4.7209449112415314e-003 + 0.4648149013519287 + 0.6331052780151367 + <_> + + <_> + + + + <_>8 14 4 3 -1. + <_>8 15 4 1 3. + 0 + -2.3119079414755106e-003 + 0.5930309891700745 + 0.4531058073043823 + <_> + + <_> + + + + <_>4 2 3 16 -1. + <_>5 2 1 16 3. + 0 + -2.8262299019843340e-003 + 0.3870477974414825 + 0.5257101058959961 + <_> + + <_> + + + + <_>7 2 8 10 -1. + <_>7 7 8 5 2. + 0 + -1.4311339473351836e-003 + 0.5522503256797791 + 0.4561854898929596 + <_> + + <_> + + + + <_>6 14 7 3 -1. + <_>6 15 7 1 3. + 0 + 1.9378310535103083e-003 + 0.4546220898628235 + 0.5736966729164124 + <_> + + <_> + + + + <_>9 2 10 12 -1. + <_>14 2 5 6 2. + <_>9 8 5 6 2. + 0 + 2.6343559147790074e-004 + 0.5345739126205444 + 0.4571875035762787 + <_> + + <_> + + + + <_>6 7 8 2 -1. + <_>6 8 8 1 2. + 0 + 7.8257522545754910e-004 + 0.3967815935611725 + 0.5220187902450562 + <_> + + <_> + + + + <_>8 13 4 6 -1. + <_>8 16 4 3 2. + 0 + -0.0195504408329725 + 0.2829642891883850 + 0.5243508219718933 + <_> + + <_> + + + + <_>6 6 1 3 -1. + <_>6 7 1 1 3. + 0 + 4.3914958951063454e-004 + 0.4590066969394684 + 0.5899090170860291 + <_> + + <_> + + + + <_>16 2 4 6 -1. + <_>16 4 4 2 3. + 0 + 0.0214520003646612 + 0.5231410861015320 + 0.2855378985404968 + <_> + + <_> + + + + <_>6 6 4 2 -1. + <_>6 6 2 1 2. + <_>8 7 2 1 2. + 0 + 5.8973580598831177e-004 + 0.4397256970405579 + 0.5506421923637390 + <_> + + <_> + + + + <_>16 2 4 6 -1. + <_>16 4 4 2 3. + 0 + -0.0261576101183891 + 0.3135079145431519 + 0.5189175009727478 + <_> + + <_> + + + + <_>0 2 4 6 -1. + <_>0 4 4 2 3. + 0 + -0.0139598604291677 + 0.3213272988796234 + 0.5040717720985413 + <_> + + <_> + + + + <_>9 6 2 6 -1. + <_>9 6 1 6 2. + 0 + -6.3699018210172653e-003 + 0.6387544870376587 + 0.4849506914615631 + <_> + + <_> + + + + <_>3 4 6 10 -1. + <_>3 9 6 5 2. + 0 + -8.5613820701837540e-003 + 0.2759132087230682 + 0.5032019019126892 + <_> + + <_> + + + + <_>9 5 2 6 -1. + <_>9 5 1 6 2. + 0 + 9.6622901037335396e-004 + 0.4685640931129456 + 0.5834879279136658 + <_> + + <_> + + + + <_>3 13 2 3 -1. + <_>3 14 2 1 3. + 0 + 7.6550268568098545e-004 + 0.5175207257270813 + 0.3896422088146210 + <_> + + <_> + + + + <_>13 13 3 2 -1. + <_>13 14 3 1 2. + 0 + -8.1833340227603912e-003 + 0.2069136947393417 + 0.5208122134208679 + <_> + + <_> + + + + <_>2 16 10 4 -1. + <_>2 16 5 2 2. + <_>7 18 5 2 2. + 0 + -9.3976939097046852e-003 + 0.6134091019630432 + 0.4641222953796387 + <_> + + <_> + + + + <_>5 6 10 6 -1. + <_>10 6 5 3 2. + <_>5 9 5 3 2. + 0 + 4.8028980381786823e-003 + 0.5454108119010925 + 0.4395219981670380 + <_> + + <_> + + + + <_>7 14 1 3 -1. + <_>7 15 1 1 3. + 0 + -3.5680569708347321e-003 + 0.6344485282897949 + 0.4681093990802765 + <_> + + <_> + + + + <_>14 16 6 3 -1. + <_>14 17 6 1 3. + 0 + 4.0733120404183865e-003 + 0.5292683243751526 + 0.4015620052814484 + <_> + + <_> + + + + <_>5 4 3 3 -1. + <_>5 5 3 1 3. + 0 + 1.2568129459396005e-003 + 0.4392988085746765 + 0.5452824831008911 + <_> + + <_> + + + + <_>7 4 10 3 -1. + <_>7 5 10 1 3. + 0 + -2.9065010603517294e-003 + 0.5898832082748413 + 0.4863379895687103 + <_> + + <_> + + + + <_>0 4 5 4 -1. + <_>0 6 5 2 2. + 0 + -2.4409340694546700e-003 + 0.4069364964962006 + 0.5247421860694885 + <_> + + <_> + + + + <_>13 11 3 9 -1. + <_>13 14 3 3 3. + 0 + 0.0248307008296251 + 0.5182725787162781 + 0.3682524859905243 + <_> + + <_> + + + + <_>4 11 3 9 -1. + <_>4 14 3 3 3. + 0 + -0.0488540083169937 + 0.1307577937841415 + 0.4961281120777130 + <_> + + <_> + + + + <_>9 7 2 1 -1. + <_>9 7 1 1 2. + 0 + -1.6110379947349429e-003 + 0.6421005725860596 + 0.4872662127017975 + <_> + + <_> + + + + <_>5 0 6 17 -1. + <_>7 0 2 17 3. + 0 + -0.0970094799995422 + 0.0477693490684032 + 0.4950988888740540 + <_> + + <_> + + + + <_>10 3 6 3 -1. + <_>10 3 3 3 2. + 0 + 1.1209240183234215e-003 + 0.4616267085075378 + 0.5354745984077454 + <_> + + <_> + + + + <_>2 2 15 4 -1. + <_>7 2 5 4 3. + 0 + -1.3064090162515640e-003 + 0.6261854171752930 + 0.4638805985450745 + <_> + + <_> + + + + <_>8 2 8 2 -1. + <_>12 2 4 1 2. + <_>8 3 4 1 2. + 0 + 4.5771620352752507e-004 + 0.5384417772293091 + 0.4646640121936798 + <_> + + <_> + + + + <_>8 1 3 6 -1. + <_>8 3 3 2 3. + 0 + -6.3149951165542006e-004 + 0.3804047107696533 + 0.5130257010459900 + <_> + + <_> + + + + <_>9 17 2 2 -1. + <_>9 18 2 1 2. + 0 + 1.4505970466416329e-004 + 0.4554310142993927 + 0.5664461851119995 + <_> + + <_> + + + + <_>0 0 2 14 -1. + <_>1 0 1 14 2. + 0 + -0.0164745505899191 + 0.6596958041191101 + 0.4715859889984131 + <_> + + <_> + + + + <_>12 0 7 3 -1. + <_>12 1 7 1 3. + 0 + 0.0133695797994733 + 0.5195466279983521 + 0.3035964965820313 + <_> + + <_> + + + + <_>1 14 1 2 -1. + <_>1 15 1 1 2. + 0 + 1.0271780047332868e-004 + 0.5229176282882690 + 0.4107066094875336 + <_> + + <_> + + + + <_>14 12 2 8 -1. + <_>15 12 1 4 2. + <_>14 16 1 4 2. + 0 + -5.5311559699475765e-003 + 0.6352887749671936 + 0.4960907101631165 + <_> + + <_> + + + + <_>1 0 7 3 -1. + <_>1 1 7 1 3. + 0 + -2.6187049224972725e-003 + 0.3824546039104462 + 0.5140984058380127 + <_> + + <_> + + + + <_>14 12 2 8 -1. + <_>15 12 1 4 2. + <_>14 16 1 4 2. + 0 + 5.0834268331527710e-003 + 0.4950439929962158 + 0.6220818758010864 + <_> + + <_> + + + + <_>6 0 8 12 -1. + <_>6 0 4 6 2. + <_>10 6 4 6 2. + 0 + 0.0798181593418121 + 0.4952335953712463 + 0.1322475969791412 + <_> + + <_> + + + + <_>6 1 8 9 -1. + <_>6 4 8 3 3. + 0 + -0.0992265865206718 + 0.7542728781700134 + 0.5008416771888733 + <_> + + <_> + + + + <_>5 2 2 2 -1. + <_>5 3 2 1 2. + 0 + -6.5174017800018191e-004 + 0.3699302971363068 + 0.5130121111869812 + <_> + + <_> + + + + <_>13 14 6 6 -1. + <_>16 14 3 3 2. + <_>13 17 3 3 2. + 0 + -0.0189968496561050 + 0.6689178943634033 + 0.4921202957630158 + <_> + + <_> + + + + <_>0 17 20 2 -1. + <_>0 17 10 1 2. + <_>10 18 10 1 2. + 0 + 0.0173468999564648 + 0.4983300864696503 + 0.1859198063611984 + <_> + + <_> + + + + <_>10 3 2 6 -1. + <_>11 3 1 3 2. + <_>10 6 1 3 2. + 0 + 5.5082101607695222e-004 + 0.4574424028396606 + 0.5522121787071228 + <_> + + <_> + + + + <_>5 12 6 2 -1. + <_>8 12 3 2 2. + 0 + 2.0056050270795822e-003 + 0.5131744742393494 + 0.3856469988822937 + <_> + + <_> + + + + <_>10 7 6 13 -1. + <_>10 7 3 13 2. + 0 + -7.7688191086053848e-003 + 0.4361700117588043 + 0.5434309244155884 + <_> + + <_> + + + + <_>5 15 10 5 -1. + <_>10 15 5 5 2. + 0 + 0.0508782789111137 + 0.4682720899581909 + 0.6840639710426331 + <_> + + <_> + + + + <_>10 4 4 10 -1. + <_>10 4 2 10 2. + 0 + -2.2901780903339386e-003 + 0.4329245090484619 + 0.5306099057197571 + <_> + + <_> + + + + <_>5 7 2 1 -1. + <_>6 7 1 1 2. + 0 + -1.5715380141045898e-004 + 0.5370057225227356 + 0.4378164112567902 + <_> + + <_> + + + + <_>10 3 6 7 -1. + <_>10 3 3 7 2. + 0 + 0.1051924005150795 + 0.5137274265289307 + 0.0673614665865898 + <_> + + <_> + + + + <_>4 3 6 7 -1. + <_>7 3 3 7 2. + 0 + 2.7198919560760260e-003 + 0.4112060964107513 + 0.5255665183067322 + <_> + + <_> + + + + <_>1 7 18 5 -1. + <_>7 7 6 5 3. + 0 + 0.0483377799391747 + 0.5404623746871948 + 0.4438967108726502 + <_> + + <_> + + + + <_>3 17 4 3 -1. + <_>5 17 2 3 2. + 0 + 9.5703761326149106e-004 + 0.4355969130992889 + 0.5399510860443115 + <_> + + <_> + + + + <_>8 14 12 6 -1. + <_>14 14 6 3 2. + <_>8 17 6 3 2. + 0 + -0.0253712590783834 + 0.5995175242424011 + 0.5031024813652039 + <_> + + <_> + + + + <_>0 13 20 4 -1. + <_>0 13 10 2 2. + <_>10 15 10 2 2. + 0 + 0.0524579510092735 + 0.4950287938117981 + 0.1398351043462753 + <_> + + <_> + + + + <_>4 5 14 2 -1. + <_>11 5 7 1 2. + <_>4 6 7 1 2. + 0 + -0.0123656298965216 + 0.6397299170494080 + 0.4964106082916260 + <_> + + <_> + + + + <_>1 2 10 12 -1. + <_>1 2 5 6 2. + <_>6 8 5 6 2. + 0 + -0.1458971947431564 + 0.1001669988036156 + 0.4946322143077850 + <_> + + <_> + + + + <_>6 1 14 3 -1. + <_>6 2 14 1 3. + 0 + -0.0159086007624865 + 0.3312329947948456 + 0.5208340883255005 + <_> + + <_> + + + + <_>8 16 2 3 -1. + <_>8 17 2 1 3. + 0 + 3.9486068999394774e-004 + 0.4406363964080811 + 0.5426102876663208 + <_> + + <_> + + + + <_>9 17 3 2 -1. + <_>10 17 1 2 3. + 0 + -5.2454001270234585e-003 + 0.2799589931964874 + 0.5189967155456543 + <_> + + <_> + + + + <_>5 15 4 2 -1. + <_>5 15 2 1 2. + <_>7 16 2 1 2. + 0 + -5.0421799533069134e-003 + 0.6987580060958862 + 0.4752142131328583 + <_> + + <_> + + + + <_>10 15 1 3 -1. + <_>10 16 1 1 3. + 0 + 2.9812189750373363e-003 + 0.4983288943767548 + 0.6307479739189148 + <_> + + <_> + + + + <_>8 16 4 4 -1. + <_>8 16 2 2 2. + <_>10 18 2 2 2. + 0 + -7.2884308174252510e-003 + 0.2982333004474640 + 0.5026869773864746 + <_> + + <_> + + + + <_>6 11 8 6 -1. + <_>6 14 8 3 2. + 0 + 1.5094350092113018e-003 + 0.5308442115783691 + 0.3832970857620239 + <_> + + <_> + + + + <_>2 13 5 2 -1. + <_>2 14 5 1 2. + 0 + -9.3340799212455750e-003 + 0.2037964016199112 + 0.4969817101955414 + <_> + + <_> + + + + <_>13 14 6 6 -1. + <_>16 14 3 3 2. + <_>13 17 3 3 2. + 0 + 0.0286671407520771 + 0.5025696754455566 + 0.6928027272224426 + <_> + + <_> + + + + <_>1 9 18 4 -1. + <_>7 9 6 4 3. + 0 + 0.1701968014240265 + 0.4960052967071533 + 0.1476442962884903 + <_> + + <_> + + + + <_>13 14 6 6 -1. + <_>16 14 3 3 2. + <_>13 17 3 3 2. + 0 + -3.2614478841423988e-003 + 0.5603063702583313 + 0.4826056063175201 + <_> + + <_> + + + + <_>0 2 1 6 -1. + <_>0 4 1 2 3. + 0 + 5.5769277969375253e-004 + 0.5205562114715576 + 0.4129633009433746 + <_> + + <_> + + + + <_>5 0 15 20 -1. + <_>5 10 15 10 2. + 0 + 0.3625833988189697 + 0.5221652984619141 + 0.3768612146377564 + <_> + + <_> + + + + <_>1 14 6 6 -1. + <_>1 14 3 3 2. + <_>4 17 3 3 2. + 0 + -0.0116151301190257 + 0.6022682785987854 + 0.4637489914894104 + <_> + + <_> + + + + <_>8 14 4 6 -1. + <_>10 14 2 3 2. + <_>8 17 2 3 2. + 0 + -4.0795197710394859e-003 + 0.4070447087287903 + 0.5337479114532471 + <_> + + <_> + + + + <_>7 11 2 1 -1. + <_>8 11 1 1 2. + 0 + 5.7204300537705421e-004 + 0.4601835012435913 + 0.5900393128395081 + <_> + + <_> + + + + <_>9 17 3 2 -1. + <_>10 17 1 2 3. + 0 + 6.7543348995968699e-004 + 0.5398252010345459 + 0.4345428943634033 + <_> + + <_> + + + + <_>8 17 3 2 -1. + <_>9 17 1 2 3. + 0 + 6.3295697327703238e-004 + 0.5201563239097595 + 0.4051358997821808 + <_> + + <_> + + + + <_>12 14 4 6 -1. + <_>14 14 2 3 2. + <_>12 17 2 3 2. + 0 + 1.2435320531949401e-003 + 0.4642387926578522 + 0.5547441244125366 + <_> + + <_> + + + + <_>4 14 4 6 -1. + <_>4 14 2 3 2. + <_>6 17 2 3 2. + 0 + -4.7363857738673687e-003 + 0.6198567152023315 + 0.4672552049160004 + <_> + + <_> + + + + <_>13 14 2 6 -1. + <_>14 14 1 3 2. + <_>13 17 1 3 2. + 0 + -6.4658462069928646e-003 + 0.6837332844734192 + 0.5019000768661499 + <_> + + <_> + + + + <_>5 14 2 6 -1. + <_>5 14 1 3 2. + <_>6 17 1 3 2. + 0 + 3.5017321351915598e-004 + 0.4344803094863892 + 0.5363622903823853 + <_> + + <_> + + + + <_>7 0 6 12 -1. + <_>7 4 6 4 3. + 0 + 1.5754920605104417e-004 + 0.4760079085826874 + 0.5732020735740662 + <_> + + <_> + + + + <_>0 7 12 2 -1. + <_>4 7 4 2 3. + 0 + 9.9774366244673729e-003 + 0.5090985894203186 + 0.3635039925575256 + <_> + + <_> + + + + <_>10 3 3 13 -1. + <_>11 3 1 13 3. + 0 + -4.1464529931545258e-004 + 0.5570064783096314 + 0.4593802094459534 + <_> + + <_> + + + + <_>7 3 3 13 -1. + <_>8 3 1 13 3. + 0 + -3.5888899583369493e-004 + 0.5356845855712891 + 0.4339134991168976 + <_> + + <_> + + + + <_>10 8 6 3 -1. + <_>10 9 6 1 3. + 0 + 4.0463250479660928e-004 + 0.4439803063869476 + 0.5436776876449585 + <_> + + <_> + + + + <_>3 11 3 2 -1. + <_>4 11 1 2 3. + 0 + -8.2184787606820464e-004 + 0.4042294919490814 + 0.5176299214363098 + <_> + + <_> + + + + <_>13 12 6 8 -1. + <_>16 12 3 4 2. + <_>13 16 3 4 2. + 0 + 5.9467419050633907e-003 + 0.4927651882171631 + 0.5633779764175415 + <_> + + <_> + + + + <_>7 6 6 5 -1. + <_>9 6 2 5 3. + 0 + -0.0217533893883228 + 0.8006293773651123 + 0.4800840914249420 + <_> + + <_> + + + + <_>17 11 2 7 -1. + <_>17 11 1 7 2. + 0 + -0.0145403798669577 + 0.3946054875850678 + 0.5182222723960877 + <_> + + <_> + + + + <_>3 13 8 2 -1. + <_>7 13 4 2 2. + 0 + -0.0405107699334621 + 0.0213249903172255 + 0.4935792982578278 + <_> + + <_> + + + + <_>6 9 8 3 -1. + <_>6 10 8 1 3. + 0 + -5.8458268176764250e-004 + 0.4012795984745026 + 0.5314025282859802 + <_> + + <_> + + + + <_>4 3 4 3 -1. + <_>4 4 4 1 3. + 0 + 5.5151800625026226e-003 + 0.4642418920993805 + 0.5896260738372803 + <_> + + <_> + + + + <_>11 3 4 3 -1. + <_>11 4 4 1 3. + 0 + -6.0626221820712090e-003 + 0.6502159237861633 + 0.5016477704048157 + <_> + + <_> + + + + <_>1 4 17 12 -1. + <_>1 8 17 4 3. + 0 + 0.0945358425378799 + 0.5264708995819092 + 0.4126827120780945 + <_> + + <_> + + + + <_>11 3 4 3 -1. + <_>11 4 4 1 3. + 0 + 4.7315051779150963e-003 + 0.4879199862480164 + 0.5892447829246521 + <_> + + <_> + + + + <_>4 8 6 3 -1. + <_>4 9 6 1 3. + 0 + -5.2571471314877272e-004 + 0.3917280137538910 + 0.5189412832260132 + <_> + + <_> + + + + <_>12 3 5 3 -1. + <_>12 4 5 1 3. + 0 + -2.5464049540460110e-003 + 0.5837599039077759 + 0.4985705912113190 + <_> + + <_> + + + + <_>1 11 2 7 -1. + <_>2 11 1 7 2. + 0 + -0.0260756891220808 + 0.1261983960866928 + 0.4955821931362152 + <_> + + <_> + + + + <_>15 12 2 8 -1. + <_>16 12 1 4 2. + <_>15 16 1 4 2. + 0 + -5.4779709316790104e-003 + 0.5722513794898987 + 0.5010265707969666 + <_> + + <_> + + + + <_>4 8 11 3 -1. + <_>4 9 11 1 3. + 0 + 5.1337741315364838e-003 + 0.5273262262344360 + 0.4226376116275787 + <_> + + <_> + + + + <_>9 13 6 2 -1. + <_>12 13 3 1 2. + <_>9 14 3 1 2. + 0 + 4.7944980906322598e-004 + 0.4450066983699799 + 0.5819587111473084 + <_> + + <_> + + + + <_>6 13 4 3 -1. + <_>6 14 4 1 3. + 0 + -2.1114079281687737e-003 + 0.5757653117179871 + 0.4511714875698090 + <_> + + <_> + + + + <_>9 12 3 3 -1. + <_>10 12 1 3 3. + 0 + -0.0131799904629588 + 0.1884381026029587 + 0.5160734057426453 + <_> + + <_> + + + + <_>5 3 3 3 -1. + <_>5 4 3 1 3. + 0 + -4.7968099825084209e-003 + 0.6589789986610413 + 0.4736118912696838 + <_> + + <_> + + + + <_>9 4 2 3 -1. + <_>9 5 2 1 3. + 0 + 6.7483168095350266e-003 + 0.5259429812431335 + 0.3356395065784454 + <_> + + <_> + + + + <_>0 2 16 3 -1. + <_>0 3 16 1 3. + 0 + 1.4623369788751006e-003 + 0.5355271100997925 + 0.4264092147350311 + <_> + + <_> + + + + <_>15 12 2 8 -1. + <_>16 12 1 4 2. + <_>15 16 1 4 2. + 0 + 4.7645159065723419e-003 + 0.5034406781196594 + 0.5786827802658081 + <_> + + <_> + + + + <_>3 12 2 8 -1. + <_>3 12 1 4 2. + <_>4 16 1 4 2. + 0 + 6.8066660314798355e-003 + 0.4756605029106140 + 0.6677829027175903 + <_> + + <_> + + + + <_>14 13 3 6 -1. + <_>14 15 3 2 3. + 0 + 3.6608621012419462e-003 + 0.5369611978530884 + 0.4311546981334686 + <_> + + <_> + + + + <_>3 13 3 6 -1. + <_>3 15 3 2 3. + 0 + 0.0214496403932571 + 0.4968641996383667 + 0.1888816058635712 + <_> + + <_> + + + + <_>6 5 10 2 -1. + <_>11 5 5 1 2. + <_>6 6 5 1 2. + 0 + 4.1678901761770248e-003 + 0.4930733144283295 + 0.5815368890762329 + <_> + + <_> + + + + <_>2 14 14 6 -1. + <_>2 17 14 3 2. + 0 + 8.6467564105987549e-003 + 0.5205205082893372 + 0.4132595062255859 + <_> + + <_> + + + + <_>10 14 1 3 -1. + <_>10 15 1 1 3. + 0 + -3.6114078829996288e-004 + 0.5483555197715759 + 0.4800927937030792 + <_> + + <_> + + + + <_>4 16 2 2 -1. + <_>4 16 1 1 2. + <_>5 17 1 1 2. + 0 + 1.0808729566633701e-003 + 0.4689902067184448 + 0.6041421294212341 + <_> + + <_> + + + + <_>10 6 2 3 -1. + <_>10 7 2 1 3. + 0 + 5.7719959877431393e-003 + 0.5171142220497131 + 0.3053277134895325 + <_> + + <_> + + + + <_>0 17 20 2 -1. + <_>0 17 10 1 2. + <_>10 18 10 1 2. + 0 + 1.5720770461484790e-003 + 0.5219978094100952 + 0.4178803861141205 + <_> + + <_> + + + + <_>13 6 1 3 -1. + <_>13 7 1 1 3. + 0 + -1.9307859474793077e-003 + 0.5860369801521301 + 0.4812920093536377 + <_> + + <_> + + + + <_>8 13 3 2 -1. + <_>9 13 1 2 3. + 0 + -7.8926272690296173e-003 + 0.1749276965856552 + 0.4971733987331390 + <_> + + <_> + + + + <_>12 2 3 3 -1. + <_>13 2 1 3 3. + 0 + -2.2224679123610258e-003 + 0.4342589080333710 + 0.5212848186492920 + <_> + + <_> + + + + <_>3 18 2 2 -1. + <_>3 18 1 1 2. + <_>4 19 1 1 2. + 0 + 1.9011989934369922e-003 + 0.4765186905860901 + 0.6892055273056030 + <_> + + <_> + + + + <_>9 16 3 4 -1. + <_>10 16 1 4 3. + 0 + 2.7576119173318148e-003 + 0.5262191295623779 + 0.4337486028671265 + <_> + + <_> + + + + <_>6 6 1 3 -1. + <_>6 7 1 1 3. + 0 + 5.1787449046969414e-003 + 0.4804069101810455 + 0.7843729257583618 + <_> + + <_> + + + + <_>13 1 5 2 -1. + <_>13 2 5 1 2. + 0 + -9.0273341629654169e-004 + 0.4120846986770630 + 0.5353423953056335 + <_> + + <_> + + + + <_>7 14 6 2 -1. + <_>7 14 3 1 2. + <_>10 15 3 1 2. + 0 + 5.1797959022223949e-003 + 0.4740372896194458 + 0.6425960063934326 + <_> + + <_> + + + + <_>11 3 3 4 -1. + <_>12 3 1 4 3. + 0 + -0.0101140001788735 + 0.2468792051076889 + 0.5175017714500427 + <_> + + <_> + + + + <_>1 13 12 6 -1. + <_>5 13 4 6 3. + 0 + -0.0186170600354671 + 0.5756294131278992 + 0.4628978967666626 + <_> + + <_> + + + + <_>14 11 5 2 -1. + <_>14 12 5 1 2. + 0 + 5.9225959703326225e-003 + 0.5169625878334045 + 0.3214271068572998 + <_> + + <_> + + + + <_>2 15 14 4 -1. + <_>2 15 7 2 2. + <_>9 17 7 2 2. + 0 + -6.2945079989731312e-003 + 0.3872014880180359 + 0.5141636729240418 + <_> + + <_> + + + + <_>3 7 14 2 -1. + <_>10 7 7 1 2. + <_>3 8 7 1 2. + 0 + 6.5353019163012505e-003 + 0.4853048920631409 + 0.6310489773750305 + <_> + + <_> + + + + <_>1 11 4 2 -1. + <_>1 12 4 1 2. + 0 + 1.0878399480134249e-003 + 0.5117315053939819 + 0.3723258972167969 + <_> + + <_> + + + + <_>14 0 6 14 -1. + <_>16 0 2 14 3. + 0 + -0.0225422400981188 + 0.5692740082740784 + 0.4887112975120544 + <_> + + <_> + + + + <_>4 11 1 3 -1. + <_>4 12 1 1 3. + 0 + -3.0065660830587149e-003 + 0.2556012868881226 + 0.5003992915153503 + <_> + + <_> + + + + <_>14 0 6 14 -1. + <_>16 0 2 14 3. + 0 + 7.4741272255778313e-003 + 0.4810872972011566 + 0.5675926804542542 + <_> + + <_> + + + + <_>1 10 3 7 -1. + <_>2 10 1 7 3. + 0 + 0.0261623207479715 + 0.4971194863319397 + 0.1777237057685852 + <_> + + <_> + + + + <_>8 12 9 2 -1. + <_>8 13 9 1 2. + 0 + 9.4352738233283162e-004 + 0.4940010905265808 + 0.5491250753402710 + <_> + + <_> + + + + <_>0 6 20 1 -1. + <_>10 6 10 1 2. + 0 + 0.0333632417023182 + 0.5007612109184265 + 0.2790724039077759 + <_> + + <_> + + + + <_>8 4 4 4 -1. + <_>8 4 2 4 2. + 0 + -0.0151186501607299 + 0.7059578895568848 + 0.4973031878471375 + <_> + + <_> + + + + <_>0 0 2 2 -1. + <_>0 1 2 1 2. + 0 + 9.8648946732282639e-004 + 0.5128620266914368 + 0.3776761889457703 + 104.7491989135742200 + 19 + -1 + <_> + + + <_> + + <_> + + + + <_>5 3 10 9 -1. + <_>5 6 10 3 3. + 0 + -0.0951507985591888 + 0.6470757126808167 + 0.4017286896705627 + <_> + + <_> + + + + <_>15 2 4 10 -1. + <_>15 2 2 10 2. + 0 + 6.2702340073883533e-003 + 0.3999822139739990 + 0.5746449232101440 + <_> + + <_> + + + + <_>8 2 2 7 -1. + <_>9 2 1 7 2. + 0 + 3.0018089455552399e-004 + 0.3558770120143890 + 0.5538809895515442 + <_> + + <_> + + + + <_>7 4 12 1 -1. + <_>11 4 4 1 3. + 0 + 1.1757409665733576e-003 + 0.4256534874439240 + 0.5382617712020874 + <_> + + <_> + + + + <_>3 4 9 1 -1. + <_>6 4 3 1 3. + 0 + 4.4235268433112651e-005 + 0.3682908117771149 + 0.5589926838874817 + <_> + + <_> + + + + <_>15 10 1 4 -1. + <_>15 12 1 2 2. + 0 + -2.9936920327600092e-005 + 0.5452470183372498 + 0.4020367860794067 + <_> + + <_> + + + + <_>4 10 6 4 -1. + <_>7 10 3 4 2. + 0 + 3.0073199886828661e-003 + 0.5239058136940002 + 0.3317843973636627 + <_> + + <_> + + + + <_>15 9 1 6 -1. + <_>15 12 1 3 2. + 0 + -0.0105138896033168 + 0.4320689141750336 + 0.5307983756065369 + <_> + + <_> + + + + <_>7 17 6 3 -1. + <_>7 18 6 1 3. + 0 + 8.3476826548576355e-003 + 0.4504637122154236 + 0.6453298926353455 + <_> + + <_> + + + + <_>14 3 2 16 -1. + <_>15 3 1 8 2. + <_>14 11 1 8 2. + 0 + -3.1492270063608885e-003 + 0.4313425123691559 + 0.5370525121688843 + <_> + + <_> + + + + <_>4 9 1 6 -1. + <_>4 12 1 3 2. + 0 + -1.4435649973165710e-005 + 0.5326603055000305 + 0.3817971944808960 + <_> + + <_> + + + + <_>12 1 5 2 -1. + <_>12 2 5 1 2. + 0 + -4.2855090578086674e-004 + 0.4305163919925690 + 0.5382009744644165 + <_> + + <_> + + + + <_>6 18 4 2 -1. + <_>6 18 2 1 2. + <_>8 19 2 1 2. + 0 + 1.5062429883982986e-004 + 0.4235970973968506 + 0.5544965267181397 + <_> + + <_> + + + + <_>2 4 16 10 -1. + <_>10 4 8 5 2. + <_>2 9 8 5 2. + 0 + 0.0715598315000534 + 0.5303059816360474 + 0.2678802907466888 + <_> + + <_> + + + + <_>6 5 1 10 -1. + <_>6 10 1 5 2. + 0 + 8.4095180500298738e-004 + 0.3557108938694000 + 0.5205433964729309 + <_> + + <_> + + + + <_>4 8 15 2 -1. + <_>9 8 5 2 3. + 0 + 0.0629865005612373 + 0.5225362777709961 + 0.2861376106739044 + <_> + + <_> + + + + <_>1 8 15 2 -1. + <_>6 8 5 2 3. + 0 + -3.3798629883676767e-003 + 0.3624185919761658 + 0.5201697945594788 + <_> + + <_> + + + + <_>9 5 3 6 -1. + <_>9 7 3 2 3. + 0 + -1.1810739670181647e-004 + 0.5474476814270020 + 0.3959893882274628 + <_> + + <_> + + + + <_>5 7 8 2 -1. + <_>9 7 4 2 2. + 0 + -5.4505601292476058e-004 + 0.3740422129631043 + 0.5215715765953064 + <_> + + <_> + + + + <_>9 11 2 3 -1. + <_>9 12 2 1 3. + 0 + -1.8454910023137927e-003 + 0.5893052220344544 + 0.4584448933601379 + <_> + + <_> + + + + <_>1 0 16 3 -1. + <_>1 1 16 1 3. + 0 + -4.3832371011376381e-004 + 0.4084582030773163 + 0.5385351181030273 + <_> + + <_> + + + + <_>11 2 7 2 -1. + <_>11 3 7 1 2. + 0 + -2.4000830017030239e-003 + 0.3777455091476440 + 0.5293580293655396 + <_> + + <_> + + + + <_>5 1 10 18 -1. + <_>5 7 10 6 3. + 0 + -0.0987957417964935 + 0.2963612079620361 + 0.5070089101791382 + <_> + + <_> + + + + <_>17 4 3 2 -1. + <_>18 4 1 2 3. + 0 + 3.1798239797353745e-003 + 0.4877632856369019 + 0.6726443767547607 + <_> + + <_> + + + + <_>8 13 1 3 -1. + <_>8 14 1 1 3. + 0 + 3.2406419632025063e-004 + 0.4366911053657532 + 0.5561109781265259 + <_> + + <_> + + + + <_>3 14 14 6 -1. + <_>3 16 14 2 3. + 0 + -0.0325472503900528 + 0.3128157854080200 + 0.5308616161346436 + <_> + + <_> + + + + <_>0 2 3 4 -1. + <_>1 2 1 4 3. + 0 + -7.7561130747199059e-003 + 0.6560224890708923 + 0.4639872014522553 + <_> + + <_> + + + + <_>12 1 5 2 -1. + <_>12 2 5 1 2. + 0 + 0.0160272493958473 + 0.5172680020332336 + 0.3141897916793823 + <_> + + <_> + + + + <_>3 1 5 2 -1. + <_>3 2 5 1 2. + 0 + 7.1002350523485802e-006 + 0.4084446132183075 + 0.5336294770240784 + <_> + + <_> + + + + <_>10 13 2 3 -1. + <_>10 14 2 1 3. + 0 + 7.3422808200120926e-003 + 0.4966922104358673 + 0.6603465080261231 + <_> + + <_> + + + + <_>8 13 2 3 -1. + <_>8 14 2 1 3. + 0 + -1.6970280557870865e-003 + 0.5908237099647522 + 0.4500182867050171 + <_> + + <_> + + + + <_>14 12 2 3 -1. + <_>14 13 2 1 3. + 0 + 2.4118260480463505e-003 + 0.5315160751342773 + 0.3599720895290375 + <_> + + <_> + + + + <_>7 2 2 3 -1. + <_>7 3 2 1 3. + 0 + -5.5300937965512276e-003 + 0.2334040999412537 + 0.4996814131736755 + <_> + + <_> + + + + <_>5 6 10 4 -1. + <_>10 6 5 2 2. + <_>5 8 5 2 2. + 0 + -2.6478730142116547e-003 + 0.5880935788154602 + 0.4684734046459198 + <_> + + <_> + + + + <_>9 13 1 6 -1. + <_>9 16 1 3 2. + 0 + 0.0112956296652555 + 0.4983777105808258 + 0.1884590983390808 + <_> + + <_> + + + + <_>10 12 2 2 -1. + <_>11 12 1 1 2. + <_>10 13 1 1 2. + 0 + -6.6952878842130303e-004 + 0.5872138142585754 + 0.4799019992351532 + <_> + + <_> + + + + <_>4 12 2 3 -1. + <_>4 13 2 1 3. + 0 + 1.4410680159926414e-003 + 0.5131189227104187 + 0.3501011133193970 + <_> + + <_> + + + + <_>14 4 6 6 -1. + <_>14 6 6 2 3. + 0 + 2.4637870956212282e-003 + 0.5339372158050537 + 0.4117639064788818 + <_> + + <_> + + + + <_>8 17 2 3 -1. + <_>8 18 2 1 3. + 0 + 3.3114518737420440e-004 + 0.4313383102416992 + 0.5398246049880981 + <_> + + <_> + + + + <_>16 4 4 6 -1. + <_>16 6 4 2 3. + 0 + -0.0335572697222233 + 0.2675336897373200 + 0.5179154872894287 + <_> + + <_> + + + + <_>0 4 4 6 -1. + <_>0 6 4 2 3. + 0 + 0.0185394193977118 + 0.4973869919776917 + 0.2317177057266235 + <_> + + <_> + + + + <_>14 6 2 3 -1. + <_>14 6 1 3 2. + 0 + -2.9698139405809343e-004 + 0.5529708266258240 + 0.4643664062023163 + <_> + + <_> + + + + <_>4 9 8 1 -1. + <_>8 9 4 1 2. + 0 + -4.5577259152196348e-004 + 0.5629584193229675 + 0.4469191133975983 + <_> + + <_> + + + + <_>8 12 4 3 -1. + <_>8 13 4 1 3. + 0 + -0.0101589802652597 + 0.6706212759017944 + 0.4925918877124786 + <_> + + <_> + + + + <_>5 12 10 6 -1. + <_>5 14 10 2 3. + 0 + -2.2413829356082715e-005 + 0.5239421725273132 + 0.3912901878356934 + <_> + + <_> + + + + <_>11 12 1 2 -1. + <_>11 13 1 1 2. + 0 + 7.2034963523037732e-005 + 0.4799438118934631 + 0.5501788854598999 + <_> + + <_> + + + + <_>8 15 4 2 -1. + <_>8 16 4 1 2. + 0 + -6.9267209619283676e-003 + 0.6930009722709656 + 0.4698084890842438 + <_> + + <_> + + + + <_>6 9 8 8 -1. + <_>10 9 4 4 2. + <_>6 13 4 4 2. + 0 + -7.6997838914394379e-003 + 0.4099623858928680 + 0.5480883121490479 + <_> + + <_> + + + + <_>7 12 4 6 -1. + <_>7 12 2 3 2. + <_>9 15 2 3 2. + 0 + -7.3130549862980843e-003 + 0.3283475935459137 + 0.5057886242866516 + <_> + + <_> + + + + <_>10 11 3 1 -1. + <_>11 11 1 1 3. + 0 + 1.9650589674711227e-003 + 0.4978047013282776 + 0.6398249864578247 + <_> + + <_> + + + + <_>9 7 2 10 -1. + <_>9 7 1 5 2. + <_>10 12 1 5 2. + 0 + 7.1647600270807743e-003 + 0.4661160111427307 + 0.6222137212753296 + <_> + + <_> + + + + <_>8 0 6 6 -1. + <_>10 0 2 6 3. + 0 + -0.0240786392241716 + 0.2334644943475723 + 0.5222162008285523 + <_> + + <_> + + + + <_>3 11 2 6 -1. + <_>3 13 2 2 3. + 0 + -0.0210279691964388 + 0.1183653995394707 + 0.4938226044178009 + <_> + + <_> + + + + <_>16 12 1 2 -1. + <_>16 13 1 1 2. + 0 + 3.6017020465806127e-004 + 0.5325019955635071 + 0.4116711020469666 + <_> + + <_> + + + + <_>1 14 6 6 -1. + <_>1 14 3 3 2. + <_>4 17 3 3 2. + 0 + -0.0172197297215462 + 0.6278762221336365 + 0.4664269089698792 + <_> + + <_> + + + + <_>13 1 3 6 -1. + <_>14 1 1 6 3. + 0 + -7.8672142699360847e-003 + 0.3403415083885193 + 0.5249736905097961 + <_> + + <_> + + + + <_>8 8 2 2 -1. + <_>8 9 2 1 2. + 0 + -4.4777389848604798e-004 + 0.3610411882400513 + 0.5086259245872498 + <_> + + <_> + + + + <_>9 9 3 3 -1. + <_>10 9 1 3 3. + 0 + 5.5486010387539864e-003 + 0.4884265959262848 + 0.6203498244285584 + <_> + + <_> + + + + <_>8 7 3 3 -1. + <_>8 8 3 1 3. + 0 + -6.9461148232221603e-003 + 0.2625930011272430 + 0.5011097192764282 + <_> + + <_> + + + + <_>14 0 2 3 -1. + <_>14 0 1 3 2. + 0 + 1.3569870498031378e-004 + 0.4340794980525971 + 0.5628312230110169 + <_> + + <_> + + + + <_>1 0 18 9 -1. + <_>7 0 6 9 3. + 0 + -0.0458802506327629 + 0.6507998704910278 + 0.4696274995803833 + <_> + + <_> + + + + <_>11 5 4 15 -1. + <_>11 5 2 15 2. + 0 + -0.0215825606137514 + 0.3826502859592438 + 0.5287616848945618 + <_> + + <_> + + + + <_>5 5 4 15 -1. + <_>7 5 2 15 2. + 0 + -0.0202095396816731 + 0.3233368098735809 + 0.5074477195739746 + <_> + + <_> + + + + <_>14 0 2 3 -1. + <_>14 0 1 3 2. + 0 + 5.8496710844337940e-003 + 0.5177603960037231 + 0.4489670991897583 + <_> + + <_> + + + + <_>4 0 2 3 -1. + <_>5 0 1 3 2. + 0 + -5.7476379879517481e-005 + 0.4020850956439972 + 0.5246363878250122 + <_> + + <_> + + + + <_>11 12 2 2 -1. + <_>12 12 1 1 2. + <_>11 13 1 1 2. + 0 + -1.1513100471347570e-003 + 0.6315072178840637 + 0.4905154109001160 + <_> + + <_> + + + + <_>7 12 2 2 -1. + <_>7 12 1 1 2. + <_>8 13 1 1 2. + 0 + 1.9862831104546785e-003 + 0.4702459871768951 + 0.6497151255607605 + <_> + + <_> + + + + <_>12 0 3 4 -1. + <_>13 0 1 4 3. + 0 + -5.2719512023031712e-003 + 0.3650383949279785 + 0.5227652788162231 + <_> + + <_> + + + + <_>4 11 3 3 -1. + <_>4 12 3 1 3. + 0 + 1.2662699446082115e-003 + 0.5166100859642029 + 0.3877618014812470 + <_> + + <_> + + + + <_>12 7 4 2 -1. + <_>12 8 4 1 2. + 0 + -6.2919440679252148e-003 + 0.7375894188880920 + 0.5023847818374634 + <_> + + <_> + + + + <_>8 10 3 2 -1. + <_>9 10 1 2 3. + 0 + 6.7360111279413104e-004 + 0.4423226118087769 + 0.5495585799217224 + <_> + + <_> + + + + <_>9 9 3 2 -1. + <_>10 9 1 2 3. + 0 + -1.0523450328037143e-003 + 0.5976396203041077 + 0.4859583079814911 + <_> + + <_> + + + + <_>8 9 3 2 -1. + <_>9 9 1 2 3. + 0 + -4.4216238893568516e-004 + 0.5955939292907715 + 0.4398930966854096 + <_> + + <_> + + + + <_>12 0 3 4 -1. + <_>13 0 1 4 3. + 0 + 1.1747940443456173e-003 + 0.5349888205528259 + 0.4605058133602142 + <_> + + <_> + + + + <_>5 0 3 4 -1. + <_>6 0 1 4 3. + 0 + 5.2457437850534916e-003 + 0.5049191117286682 + 0.2941577136516571 + <_> + + <_> + + + + <_>4 14 12 4 -1. + <_>10 14 6 2 2. + <_>4 16 6 2 2. + 0 + -0.0245397202670574 + 0.2550177872180939 + 0.5218586921691895 + <_> + + <_> + + + + <_>8 13 2 3 -1. + <_>8 14 2 1 3. + 0 + 7.3793041519820690e-004 + 0.4424861073493958 + 0.5490816235542297 + <_> + + <_> + + + + <_>10 10 3 8 -1. + <_>10 14 3 4 2. + 0 + 1.4233799884095788e-003 + 0.5319514274597168 + 0.4081355929374695 + <_> + + <_> + + + + <_>8 10 4 8 -1. + <_>8 10 2 4 2. + <_>10 14 2 4 2. + 0 + -2.4149110540747643e-003 + 0.4087659120559692 + 0.5238950252532959 + <_> + + <_> + + + + <_>10 8 3 1 -1. + <_>11 8 1 1 3. + 0 + -1.2165299849584699e-003 + 0.5674579143524170 + 0.4908052980899811 + <_> + + <_> + + + + <_>9 12 1 6 -1. + <_>9 15 1 3 2. + 0 + -1.2438809499144554e-003 + 0.4129425883293152 + 0.5256118178367615 + <_> + + <_> + + + + <_>10 8 3 1 -1. + <_>11 8 1 1 3. + 0 + 6.1942739412188530e-003 + 0.5060194134712219 + 0.7313653230667114 + <_> + + <_> + + + + <_>7 8 3 1 -1. + <_>8 8 1 1 3. + 0 + -1.6607169527560472e-003 + 0.5979632139205933 + 0.4596369862556458 + <_> + + <_> + + + + <_>5 2 15 14 -1. + <_>5 9 15 7 2. + 0 + -0.0273162592202425 + 0.4174365103244782 + 0.5308842062950134 + <_> + + <_> + + + + <_>2 1 2 10 -1. + <_>2 1 1 5 2. + <_>3 6 1 5 2. + 0 + -1.5845570014789701e-003 + 0.5615804791450501 + 0.4519486129283905 + <_> + + <_> + + + + <_>14 14 2 3 -1. + <_>14 15 2 1 3. + 0 + -1.5514739789068699e-003 + 0.4076187014579773 + 0.5360785126686096 + <_> + + <_> + + + + <_>2 7 3 3 -1. + <_>3 7 1 3 3. + 0 + 3.8446558755822480e-004 + 0.4347293972969055 + 0.5430442094802856 + <_> + + <_> + + + + <_>17 4 3 3 -1. + <_>17 5 3 1 3. + 0 + -0.0146722598001361 + 0.1659304946660996 + 0.5146093964576721 + <_> + + <_> + + + + <_>0 4 3 3 -1. + <_>0 5 3 1 3. + 0 + 8.1608882173895836e-003 + 0.4961819052696228 + 0.1884745955467224 + <_> + + <_> + + + + <_>13 5 6 2 -1. + <_>16 5 3 1 2. + <_>13 6 3 1 2. + 0 + 1.1121659772470593e-003 + 0.4868263900279999 + 0.6093816161155701 + <_> + + <_> + + + + <_>4 19 12 1 -1. + <_>8 19 4 1 3. + 0 + -7.2603770531713963e-003 + 0.6284325122833252 + 0.4690375924110413 + <_> + + <_> + + + + <_>12 12 2 4 -1. + <_>12 14 2 2 2. + 0 + -2.4046430189628154e-004 + 0.5575000047683716 + 0.4046044051647186 + <_> + + <_> + + + + <_>3 15 1 3 -1. + <_>3 16 1 1 3. + 0 + -2.3348190006799996e-004 + 0.4115762114524841 + 0.5252848267555237 + <_> + + <_> + + + + <_>11 16 6 4 -1. + <_>11 16 3 4 2. + 0 + 5.5736480280756950e-003 + 0.4730072915554047 + 0.5690100789070129 + <_> + + <_> + + + + <_>2 10 3 10 -1. + <_>3 10 1 10 3. + 0 + 0.0306237693876028 + 0.4971886873245239 + 0.1740095019340515 + <_> + + <_> + + + + <_>12 8 2 4 -1. + <_>12 8 1 4 2. + 0 + 9.2074798885732889e-004 + 0.5372117757797241 + 0.4354872107505798 + <_> + + <_> + + + + <_>6 8 2 4 -1. + <_>7 8 1 4 2. + 0 + -4.3550739064812660e-005 + 0.5366883873939514 + 0.4347316920757294 + <_> + + <_> + + + + <_>10 14 2 3 -1. + <_>10 14 1 3 2. + 0 + -6.6452710889279842e-003 + 0.3435518145561218 + 0.5160533189773560 + <_> + + <_> + + + + <_>5 1 10 3 -1. + <_>10 1 5 3 2. + 0 + 0.0432219989597797 + 0.4766792058944702 + 0.7293652892112732 + <_> + + <_> + + + + <_>10 7 3 2 -1. + <_>11 7 1 2 3. + 0 + 2.2331769578158855e-003 + 0.5029315948486328 + 0.5633171200752258 + <_> + + <_> + + + + <_>5 6 9 2 -1. + <_>8 6 3 2 3. + 0 + 3.1829739455133677e-003 + 0.4016092121601105 + 0.5192136764526367 + <_> + + <_> + + + + <_>9 8 2 2 -1. + <_>9 9 2 1 2. + 0 + -1.8027749320026487e-004 + 0.4088315963745117 + 0.5417919754981995 + <_> + + <_> + + + + <_>2 11 16 6 -1. + <_>2 11 8 3 2. + <_>10 14 8 3 2. + 0 + -5.2934689447283745e-003 + 0.4075677096843720 + 0.5243561863899231 + <_> + + <_> + + + + <_>12 7 2 2 -1. + <_>13 7 1 1 2. + <_>12 8 1 1 2. + 0 + 1.2750959722325206e-003 + 0.4913282990455627 + 0.6387010812759399 + <_> + + <_> + + + + <_>9 5 2 3 -1. + <_>9 6 2 1 3. + 0 + 4.3385322205722332e-003 + 0.5031672120094299 + 0.2947346866130829 + <_> + + <_> + + + + <_>9 7 3 2 -1. + <_>10 7 1 2 3. + 0 + 8.5250744596123695e-003 + 0.4949789047241211 + 0.6308869123458862 + <_> + + <_> + + + + <_>5 1 8 12 -1. + <_>5 7 8 6 2. + 0 + -9.4266352243721485e-004 + 0.5328366756439209 + 0.4285649955272675 + <_> + + <_> + + + + <_>13 5 2 2 -1. + <_>13 6 2 1 2. + 0 + 1.3609660090878606e-003 + 0.4991525113582611 + 0.5941501259803772 + <_> + + <_> + + + + <_>5 5 2 2 -1. + <_>5 6 2 1 2. + 0 + 4.4782509212382138e-004 + 0.4573504030704498 + 0.5854480862617493 + <_> + + <_> + + + + <_>12 4 3 3 -1. + <_>12 5 3 1 3. + 0 + 1.3360050506889820e-003 + 0.4604358971118927 + 0.5849052071571350 + <_> + + <_> + + + + <_>4 14 2 3 -1. + <_>4 15 2 1 3. + 0 + -6.0967548051849008e-004 + 0.3969388902187347 + 0.5229423046112061 + <_> + + <_> + + + + <_>12 4 3 3 -1. + <_>12 5 3 1 3. + 0 + -2.3656780831515789e-003 + 0.5808320045471191 + 0.4898357093334198 + <_> + + <_> + + + + <_>5 4 3 3 -1. + <_>5 5 3 1 3. + 0 + 1.0734340175986290e-003 + 0.4351210892200470 + 0.5470039248466492 + <_> + + <_> + + + + <_>9 14 2 6 -1. + <_>10 14 1 3 2. + <_>9 17 1 3 2. + 0 + 2.1923359017819166e-003 + 0.5355060100555420 + 0.3842903971672058 + <_> + + <_> + + + + <_>8 14 3 2 -1. + <_>9 14 1 2 3. + 0 + 5.4968618787825108e-003 + 0.5018138885498047 + 0.2827191948890686 + <_> + + <_> + + + + <_>9 5 6 6 -1. + <_>11 5 2 6 3. + 0 + -0.0753688216209412 + 0.1225076019763947 + 0.5148826837539673 + <_> + + <_> + + + + <_>5 5 6 6 -1. + <_>7 5 2 6 3. + 0 + 0.0251344703137875 + 0.4731766879558563 + 0.7025446295738220 + <_> + + <_> + + + + <_>13 13 1 2 -1. + <_>13 14 1 1 2. + 0 + -2.9358599931583740e-005 + 0.5430532097816467 + 0.4656086862087250 + <_> + + <_> + + + + <_>0 2 10 2 -1. + <_>0 3 10 1 2. + 0 + -5.8355910005047917e-004 + 0.4031040072441101 + 0.5190119743347168 + <_> + + <_> + + + + <_>13 13 1 2 -1. + <_>13 14 1 1 2. + 0 + -2.6639450807124376e-003 + 0.4308126866817474 + 0.5161771178245544 + <_> + + <_> + + + + <_>5 7 2 2 -1. + <_>5 7 1 1 2. + <_>6 8 1 1 2. + 0 + -1.3804089976474643e-003 + 0.6219829916954041 + 0.4695515930652618 + <_> + + <_> + + + + <_>13 5 2 7 -1. + <_>13 5 1 7 2. + 0 + 1.2313219485804439e-003 + 0.5379363894462585 + 0.4425831139087677 + <_> + + <_> + + + + <_>6 13 1 2 -1. + <_>6 14 1 1 2. + 0 + -1.4644179827882908e-005 + 0.5281640291213989 + 0.4222503006458283 + <_> + + <_> + + + + <_>11 0 3 7 -1. + <_>12 0 1 7 3. + 0 + -0.0128188095986843 + 0.2582092881202698 + 0.5179932713508606 + <_> + + <_> + + + + <_>0 3 2 16 -1. + <_>0 3 1 8 2. + <_>1 11 1 8 2. + 0 + 0.0228521898388863 + 0.4778693020343781 + 0.7609264254570007 + <_> + + <_> + + + + <_>11 0 3 7 -1. + <_>12 0 1 7 3. + 0 + 8.2305970136076212e-004 + 0.5340992212295532 + 0.4671724140644074 + <_> + + <_> + + + + <_>6 0 3 7 -1. + <_>7 0 1 7 3. + 0 + 0.0127701200544834 + 0.4965761005878449 + 0.1472366005182266 + <_> + + <_> + + + + <_>11 16 8 4 -1. + <_>11 16 4 4 2. + 0 + -0.0500515103340149 + 0.6414994001388550 + 0.5016592144966126 + <_> + + <_> + + + + <_>1 16 8 4 -1. + <_>5 16 4 4 2. + 0 + 0.0157752707600594 + 0.4522320032119751 + 0.5685362219810486 + <_> + + <_> + + + + <_>13 5 2 7 -1. + <_>13 5 1 7 2. + 0 + -0.0185016207396984 + 0.2764748930931091 + 0.5137959122657776 + <_> + + <_> + + + + <_>5 5 2 7 -1. + <_>6 5 1 7 2. + 0 + 2.4626250378787518e-003 + 0.5141941905021668 + 0.3795408010482788 + <_> + + <_> + + + + <_>18 6 2 14 -1. + <_>18 13 2 7 2. + 0 + 0.0629161670804024 + 0.5060648918151856 + 0.6580433845520020 + <_> + + <_> + + + + <_>6 10 3 4 -1. + <_>6 12 3 2 2. + 0 + -2.1648500478477217e-005 + 0.5195388197898865 + 0.4019886851310730 + <_> + + <_> + + + + <_>14 7 1 2 -1. + <_>14 8 1 1 2. + 0 + 2.1180990152060986e-003 + 0.4962365031242371 + 0.5954458713531494 + <_> + + <_> + + + + <_>0 1 18 6 -1. + <_>0 1 9 3 2. + <_>9 4 9 3 2. + 0 + -0.0166348908096552 + 0.3757933080196381 + 0.5175446867942810 + <_> + + <_> + + + + <_>14 7 1 2 -1. + <_>14 8 1 1 2. + 0 + -2.8899470344185829e-003 + 0.6624013781547546 + 0.5057178735733032 + <_> + + <_> + + + + <_>0 6 2 14 -1. + <_>0 13 2 7 2. + 0 + 0.0767832621932030 + 0.4795796871185303 + 0.8047714829444885 + <_> + + <_> + + + + <_>17 0 3 12 -1. + <_>18 0 1 12 3. + 0 + 3.9170677773654461e-003 + 0.4937882125377655 + 0.5719941854476929 + <_> + + <_> + + + + <_>0 6 18 3 -1. + <_>0 7 18 1 3. + 0 + -0.0726706013083458 + 0.0538945607841015 + 0.4943903982639313 + <_> + + <_> + + + + <_>6 0 14 16 -1. + <_>6 8 14 8 2. + 0 + 0.5403950214385986 + 0.5129774212837219 + 0.1143338978290558 + <_> + + <_> + + + + <_>0 0 3 12 -1. + <_>1 0 1 12 3. + 0 + 2.9510019812732935e-003 + 0.4528343975543976 + 0.5698574185371399 + <_> + + <_> + + + + <_>13 0 3 7 -1. + <_>14 0 1 7 3. + 0 + 3.4508369863033295e-003 + 0.5357726812362671 + 0.4218730926513672 + <_> + + <_> + + + + <_>5 7 1 2 -1. + <_>5 8 1 1 2. + 0 + -4.2077939724549651e-004 + 0.5916172862052918 + 0.4637925922870636 + <_> + + <_> + + + + <_>14 4 6 6 -1. + <_>14 6 6 2 3. + 0 + 3.3051050268113613e-003 + 0.5273385047912598 + 0.4382042884826660 + <_> + + <_> + + + + <_>5 7 7 2 -1. + <_>5 8 7 1 2. + 0 + 4.7735060798004270e-004 + 0.4046528041362763 + 0.5181884765625000 + <_> + + <_> + + + + <_>8 6 6 9 -1. + <_>8 9 6 3 3. + 0 + -0.0259285103529692 + 0.7452235817909241 + 0.5089386105537415 + <_> + + <_> + + + + <_>5 4 6 1 -1. + <_>7 4 2 1 3. + 0 + -2.9729790985584259e-003 + 0.3295435905456543 + 0.5058795213699341 + <_> + + <_> + + + + <_>13 0 6 4 -1. + <_>16 0 3 2 2. + <_>13 2 3 2 2. + 0 + 5.8508329093456268e-003 + 0.4857144057750702 + 0.5793024897575378 + <_> + + <_> + + + + <_>1 2 18 12 -1. + <_>1 6 18 4 3. + 0 + -0.0459675192832947 + 0.4312731027603149 + 0.5380653142929077 + <_> + + <_> + + + + <_>3 2 17 12 -1. + <_>3 6 17 4 3. + 0 + 0.1558596044778824 + 0.5196170210838318 + 0.1684713959693909 + <_> + + <_> + + + + <_>5 14 7 3 -1. + <_>5 15 7 1 3. + 0 + 0.0151648297905922 + 0.4735757112503052 + 0.6735026836395264 + <_> + + <_> + + + + <_>10 14 1 3 -1. + <_>10 15 1 1 3. + 0 + -1.0604249546304345e-003 + 0.5822926759719849 + 0.4775702953338623 + <_> + + <_> + + + + <_>3 14 3 3 -1. + <_>3 15 3 1 3. + 0 + 6.6476291976869106e-003 + 0.4999198913574219 + 0.2319535017013550 + <_> + + <_> + + + + <_>14 4 6 6 -1. + <_>14 6 6 2 3. + 0 + -0.0122311301529408 + 0.4750893115997315 + 0.5262982249259949 + <_> + + <_> + + + + <_>0 4 6 6 -1. + <_>0 6 6 2 3. + 0 + 5.6528882123529911e-003 + 0.5069767832756043 + 0.3561818897724152 + <_> + + <_> + + + + <_>12 5 4 3 -1. + <_>12 6 4 1 3. + 0 + 1.2977829901501536e-003 + 0.4875693917274475 + 0.5619062781333923 + <_> + + <_> + + + + <_>4 5 4 3 -1. + <_>4 6 4 1 3. + 0 + 0.0107815898954868 + 0.4750770032405853 + 0.6782308220863342 + <_> + + <_> + + + + <_>18 0 2 6 -1. + <_>18 2 2 2 3. + 0 + 2.8654779307544231e-003 + 0.5305461883544922 + 0.4290736019611359 + <_> + + <_> + + + + <_>8 1 4 9 -1. + <_>10 1 2 9 2. + 0 + 2.8663428965955973e-003 + 0.4518479108810425 + 0.5539351105690002 + <_> + + <_> + + + + <_>6 6 8 2 -1. + <_>6 6 4 2 2. + 0 + -5.1983320154249668e-003 + 0.4149119853973389 + 0.5434188842773438 + <_> + + <_> + + + + <_>6 5 4 2 -1. + <_>6 5 2 1 2. + <_>8 6 2 1 2. + 0 + 5.3739990107715130e-003 + 0.4717896878719330 + 0.6507657170295715 + <_> + + <_> + + + + <_>10 5 2 3 -1. + <_>10 6 2 1 3. + 0 + -0.0146415298804641 + 0.2172164022922516 + 0.5161777138710022 + <_> + + <_> + + + + <_>9 5 1 3 -1. + <_>9 6 1 1 3. + 0 + -1.5042580344015732e-005 + 0.5337383747100830 + 0.4298836886882782 + <_> + + <_> + + + + <_>9 10 2 2 -1. + <_>9 11 2 1 2. + 0 + -1.1875660129589960e-004 + 0.4604594111442566 + 0.5582447052001953 + <_> + + <_> + + + + <_>0 8 4 3 -1. + <_>0 9 4 1 3. + 0 + 0.0169955305755138 + 0.4945895075798035 + 0.0738800764083862 + <_> + + <_> + + + + <_>6 0 8 6 -1. + <_>6 3 8 3 2. + 0 + -0.0350959412753582 + 0.7005509138107300 + 0.4977591037750244 + <_> + + <_> + + + + <_>1 0 6 4 -1. + <_>1 0 3 2 2. + <_>4 2 3 2 2. + 0 + 2.4217350874096155e-003 + 0.4466265141963959 + 0.5477694272994995 + <_> + + <_> + + + + <_>13 0 3 7 -1. + <_>14 0 1 7 3. + 0 + -9.6340337768197060e-004 + 0.4714098870754242 + 0.5313338041305542 + <_> + + <_> + + + + <_>9 16 2 2 -1. + <_>9 17 2 1 2. + 0 + 1.6391130338888615e-004 + 0.4331546127796173 + 0.5342242121696472 + <_> + + <_> + + + + <_>11 4 6 10 -1. + <_>11 9 6 5 2. + 0 + -0.0211414601653814 + 0.2644700109958649 + 0.5204498767852783 + <_> + + <_> + + + + <_>0 10 19 2 -1. + <_>0 11 19 1 2. + 0 + 8.7775202700868249e-004 + 0.5208349823951721 + 0.4152742922306061 + <_> + + <_> + + + + <_>9 5 8 9 -1. + <_>9 8 8 3 3. + 0 + -0.0279439203441143 + 0.6344125270843506 + 0.5018811821937561 + <_> + + <_> + + + + <_>4 0 3 7 -1. + <_>5 0 1 7 3. + 0 + 6.7297378554940224e-003 + 0.5050438046455383 + 0.3500863909721375 + <_> + + <_> + + + + <_>8 6 4 12 -1. + <_>10 6 2 6 2. + <_>8 12 2 6 2. + 0 + 0.0232810396701097 + 0.4966318011283875 + 0.6968677043914795 + <_> + + <_> + + + + <_>0 2 6 4 -1. + <_>0 4 6 2 2. + 0 + -0.0116449799388647 + 0.3300260007381439 + 0.5049629807472229 + <_> + + <_> + + + + <_>8 15 4 3 -1. + <_>8 16 4 1 3. + 0 + 0.0157643090933561 + 0.4991598129272461 + 0.7321153879165649 + <_> + + <_> + + + + <_>8 0 3 7 -1. + <_>9 0 1 7 3. + 0 + -1.3611479662358761e-003 + 0.3911735117435455 + 0.5160670876502991 + <_> + + <_> + + + + <_>9 5 3 4 -1. + <_>10 5 1 4 3. + 0 + -8.1522337859496474e-004 + 0.5628911256790161 + 0.4949719011783600 + <_> + + <_> + + + + <_>8 5 3 4 -1. + <_>9 5 1 4 3. + 0 + -6.0066272271797061e-004 + 0.5853595137596130 + 0.4550595879554749 + <_> + + <_> + + + + <_>7 6 6 1 -1. + <_>9 6 2 1 3. + 0 + 4.9715518252924085e-004 + 0.4271470010280609 + 0.5443599224090576 + <_> + + <_> + + + + <_>7 14 4 4 -1. + <_>7 14 2 2 2. + <_>9 16 2 2 2. + 0 + 2.3475370835512877e-003 + 0.5143110752105713 + 0.3887656927108765 + <_> + + <_> + + + + <_>13 14 4 6 -1. + <_>15 14 2 3 2. + <_>13 17 2 3 2. + 0 + -8.9261569082736969e-003 + 0.6044502258300781 + 0.4971720874309540 + <_> + + <_> + + + + <_>7 8 1 8 -1. + <_>7 12 1 4 2. + 0 + -0.0139199104160070 + 0.2583160996437073 + 0.5000367760658264 + <_> + + <_> + + + + <_>16 0 2 8 -1. + <_>17 0 1 4 2. + <_>16 4 1 4 2. + 0 + 1.0209949687123299e-003 + 0.4857374131679535 + 0.5560358166694641 + <_> + + <_> + + + + <_>2 0 2 8 -1. + <_>2 0 1 4 2. + <_>3 4 1 4 2. + 0 + -2.7441629208624363e-003 + 0.5936884880065918 + 0.4645777046680450 + <_> + + <_> + + + + <_>6 1 14 3 -1. + <_>6 2 14 1 3. + 0 + -0.0162001308053732 + 0.3163014948368073 + 0.5193495154380798 + <_> + + <_> + + + + <_>7 9 3 10 -1. + <_>7 14 3 5 2. + 0 + 4.3331980705261230e-003 + 0.5061224102973938 + 0.3458878993988037 + <_> + + <_> + + + + <_>9 14 2 2 -1. + <_>9 15 2 1 2. + 0 + 5.8497930876910686e-004 + 0.4779017865657806 + 0.5870177745819092 + <_> + + <_> + + + + <_>7 7 6 8 -1. + <_>7 11 6 4 2. + 0 + -2.2466450463980436e-003 + 0.4297851026058197 + 0.5374773144721985 + <_> + + <_> + + + + <_>9 7 3 6 -1. + <_>9 10 3 3 2. + 0 + 2.3146099410951138e-003 + 0.5438671708106995 + 0.4640969932079315 + <_> + + <_> + + + + <_>7 13 3 3 -1. + <_>7 14 3 1 3. + 0 + 8.7679121643304825e-003 + 0.4726893007755280 + 0.6771789789199829 + <_> + + <_> + + + + <_>9 9 2 2 -1. + <_>9 10 2 1 2. + 0 + -2.2448020172305405e-004 + 0.4229173064231873 + 0.5428048968315125 + <_> + + <_> + + + + <_>0 1 18 2 -1. + <_>6 1 6 2 3. + 0 + -7.4336021207273006e-003 + 0.6098880767822266 + 0.4683673977851868 + <_> + + <_> + + + + <_>7 1 6 14 -1. + <_>7 8 6 7 2. + 0 + -2.3189240600913763e-003 + 0.5689436793327332 + 0.4424242079257965 + <_> + + <_> + + + + <_>1 9 18 1 -1. + <_>7 9 6 1 3. + 0 + -2.1042178850620985e-003 + 0.3762221038341522 + 0.5187087059020996 + <_> + + <_> + + + + <_>9 7 2 2 -1. + <_>9 7 1 2 2. + 0 + 4.6034841216169298e-004 + 0.4699405133724213 + 0.5771207213401794 + <_> + + <_> + + + + <_>9 3 2 9 -1. + <_>10 3 1 9 2. + 0 + 1.0547629790380597e-003 + 0.4465216994285584 + 0.5601701736450195 + <_> + + <_> + + + + <_>18 14 2 3 -1. + <_>18 15 2 1 3. + 0 + 8.7148818420246243e-004 + 0.5449805259704590 + 0.3914709091186523 + <_> + + <_> + + + + <_>7 11 3 1 -1. + <_>8 11 1 1 3. + 0 + 3.3364820410497487e-004 + 0.4564009010791779 + 0.5645738840103149 + <_> + + <_> + + + + <_>10 8 3 4 -1. + <_>11 8 1 4 3. + 0 + -1.4853250468149781e-003 + 0.5747377872467041 + 0.4692778885364533 + <_> + + <_> + + + + <_>7 14 3 6 -1. + <_>8 14 1 6 3. + 0 + 3.0251620337367058e-003 + 0.5166196823120117 + 0.3762814104557037 + <_> + + <_> + + + + <_>10 8 3 4 -1. + <_>11 8 1 4 3. + 0 + 5.0280741415917873e-003 + 0.5002111792564392 + 0.6151527166366577 + <_> + + <_> + + + + <_>7 8 3 4 -1. + <_>8 8 1 4 3. + 0 + -5.8164511574432254e-004 + 0.5394598245620728 + 0.4390751123428345 + <_> + + <_> + + + + <_>7 9 6 9 -1. + <_>7 12 6 3 3. + 0 + 0.0451415292918682 + 0.5188326835632324 + 0.2063035964965820 + <_> + + <_> + + + + <_>0 14 2 3 -1. + <_>0 15 2 1 3. + 0 + -1.0795620037242770e-003 + 0.3904685080051422 + 0.5137907266616821 + <_> + + <_> + + + + <_>11 12 1 2 -1. + <_>11 13 1 1 2. + 0 + 1.5995999274309725e-004 + 0.4895322918891907 + 0.5427504181861877 + <_> + + <_> + + + + <_>4 3 8 3 -1. + <_>8 3 4 3 2. + 0 + -0.0193592701107264 + 0.6975228786468506 + 0.4773507118225098 + <_> + + <_> + + + + <_>0 4 20 6 -1. + <_>0 4 10 6 2. + 0 + 0.2072550952434540 + 0.5233635902404785 + 0.3034991919994354 + <_> + + <_> + + + + <_>9 14 1 3 -1. + <_>9 15 1 1 3. + 0 + -4.1953290929086506e-004 + 0.5419396758079529 + 0.4460186064243317 + <_> + + <_> + + + + <_>8 14 4 3 -1. + <_>8 15 4 1 3. + 0 + 2.2582069505006075e-003 + 0.4815764129161835 + 0.6027408838272095 + <_> + + <_> + + + + <_>0 15 14 4 -1. + <_>0 17 14 2 2. + 0 + -6.7811207845807076e-003 + 0.3980278968811035 + 0.5183305740356445 + <_> + + <_> + + + + <_>1 14 18 6 -1. + <_>1 17 18 3 2. + 0 + 0.0111543098464608 + 0.5431231856346130 + 0.4188759922981262 + <_> + + <_> + + + + <_>0 0 10 6 -1. + <_>0 0 5 3 2. + <_>5 3 5 3 2. + 0 + 0.0431624315679073 + 0.4738228023052216 + 0.6522961258888245 + 105.7611007690429700 + 20 + -1 + diff --git a/data/road.png b/data/road.png new file mode 100644 index 0000000..a52c87c Binary files /dev/null and b/data/road.png differ diff --git a/data/rubberwhale1.png b/data/rubberwhale1.png new file mode 100644 index 0000000..e2b08db Binary files /dev/null and b/data/rubberwhale1.png differ diff --git a/data/rubberwhale2.png b/data/rubberwhale2.png new file mode 100644 index 0000000..f365370 Binary files /dev/null and b/data/rubberwhale2.png differ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..1c9c8da --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,44 @@ +SET(prj_name old_perf_ocl) +PROJECT(${prj_name}) +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) + +# fix Visual Studio defaults +if(MSVC) + add_definitions(-D_CRT_SECURE_NO_WARNINGS) + if(NOT OpenCV_SHARED) + foreach(flag_var + CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO + CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) + if(${flag_var} MATCHES "/MD") + string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") + endif() + if(${flag_var} MATCHES "/MDd") + string(REGEX REPLACE "/MDd" "/MTd" ${flag_var} "${${flag_var}}") + endif() + endforeach(flag_var) + + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:atlthunk.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcrtd.lib") + set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:libcmt.lib") + set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:libcmtd.lib") + endif() +endif() + +file(GLOB src RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) +ADD_EXECUTABLE(${prj_name} ${src}) + +FIND_PACKAGE(OpenCV REQUIRED) +TARGET_LINK_LIBRARIES(${prj_name} ${OpenCV_LIBS}) + +if(OpenCV_VERSION VERSION_EQUAL 2.4.6) + message("[OpenCV-2.4.6 fix]: adding opencv_ocl.lib and OpenCL.lib to the project") + TARGET_LINK_LIBRARIES(${prj_name} debug "${OpenCV_LIB_PATH}/opencv_ocl246d.lib" optimized "${OpenCV_LIB_PATH}/opencv_ocl246.lib") + include(OpenCVDetectOpenCL.cmake) + if(OPENCL_FOUND) + TARGET_LINK_LIBRARIES(${prj_name} ${OPENCL_LIBRARY}) + else() + message("Cannot find OpenCL.lib, please configure your project manually") + endif() + +endif() diff --git a/src/OpenCVDetectOpenCL.cmake b/src/OpenCVDetectOpenCL.cmake new file mode 100644 index 0000000..0efbd10 --- /dev/null +++ b/src/OpenCVDetectOpenCL.cmake @@ -0,0 +1,43 @@ +if(APPLE) + set(OPENCL_FOUND YES) + set(OPENCL_LIBRARY "-framework OpenCL" CACHE STRING "OpenCL library") + set(OPENCL_INCLUDE_DIR "" CACHE STRING "OpenCL include directory") + mark_as_advanced(OPENCL_INCLUDE_DIR OPENCL_LIBRARY) +else(APPLE) + #find_package(OpenCL QUIET) + + if (NOT OPENCL_FOUND) + find_path(OPENCL_ROOT_DIR + NAMES OpenCL/cl.h CL/cl.h include/CL/cl.h include/nvidia-current/CL/cl.h + PATHS ENV OCLROOT ENV AMDAPPSDKROOT ENV CUDA_PATH ENV INTELOCLSDKROOT + DOC "OpenCL root directory" + NO_DEFAULT_PATH) + message(" OPENCL_ROOT_DIR = ${OPENCL_ROOT_DIR}") + + find_path(OPENCL_INCLUDE_DIR + NAMES OpenCL/cl.h CL/cl.h + HINTS ${OPENCL_ROOT_DIR} + PATH_SUFFIXES include include/nvidia-current + DOC "OpenCL include directory" + NO_DEFAULT_PATH) + message(" OPENCL_INCLUDE_DIR = ${OPENCL_INCLUDE_DIR}") + + if (CMAKE_SIZEOF_VOID_P EQUAL 8) + set(OPENCL_POSSIBLE_LIB_SUFFIXES lib/Win64 lib/x86_64 lib/x64) + else() + set(OPENCL_POSSIBLE_LIB_SUFFIXES lib/Win32 lib/x86) + endif() + + find_library(OPENCL_LIBRARY + NAMES OpenCL + HINTS ${OPENCL_ROOT_DIR} + PATH_SUFFIXES ${OPENCL_POSSIBLE_LIB_SUFFIXES} + DOC "OpenCL library" + NO_DEFAULT_PATH) + message(" OPENCL_LIBRARY = ${OPENCL_LIBRARY}") + + mark_as_advanced(OPENCL_INCLUDE_DIR OPENCL_LIBRARY) + include(FindPackageHandleStandardArgs) + FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENCL DEFAULT_MSG OPENCL_LIBRARY OPENCL_INCLUDE_DIR ) + endif() +endif(APPLE) diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..6d32d0c --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,204 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. + +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "perf_precomp.hpp" + +int main(int argc, const char *argv[]) +{ + const char *keys = + "{ h | help | false | print help message }" + "{ f | filter | | filter for test }" + "{ w | workdir | | set working directory }" + "{ l | list | false | show all tests }" + "{ d | device | 0 | device id }" + "{ i | iters | 10 | iteration count }" + "{ m | warmup | 1 | gpu warm up iteration count}" + "{ t | xtop | 1.1 | xfactor top boundary}" + "{ b | xbottom | 0.9 | xfactor bottom boundary}" + "{ v | verify | false | only run gpu once to verify if problems occur}"; + + redirectError(cvErrorCallback); + CommandLineParser cmd(argc, argv, keys); + if (cmd.get("help")) + { + cout << "Avaible options:" << endl; + cmd.printParams(); + return 0; + } + + // OpenCV version info + cout << "OpenCV version: " << CV_VERSION << endl; + string buildInfo( cv::getBuildInformation() ); + size_t pos1 = buildInfo.find("Version control"); + size_t pos2 = buildInfo.find('\n', pos1); + if(pos1 != string::npos && pos2 != string::npos) + { + size_t value_start = buildInfo.rfind(' ', pos2) + 1; + string ver( buildInfo.substr(value_start, pos2 - value_start) ); + cout << "OpenCV VCS version: " << ver << endl; + } + + // get ocl devices +#if CV_MAJOR_VERSION == 2 && CV_MINOR_VERSION == 4 && CV_SUBMINOR_VERSION == 6 + bool use_cpu = cmd.get("c"); + vector oclinfo; + int num_devices = 0; + if(use_cpu) + num_devices = getDevice(oclinfo, ocl::CVCL_DEVICE_TYPE_CPU); + else + num_devices = getDevice(oclinfo); + if (num_devices < 1) + { + cerr << "no device found\n"; + return -1; + } + + // show device info + int devidx = 0; + for (size_t i = 0; i < oclinfo.size(); i++) + { + for (size_t j = 0; j < oclinfo[i].DeviceName.size(); j++) + { + cout << "device " << devidx++ << ": " << oclinfo[i].DeviceName[j] << endl; + } + } + + int device = cmd.get("device"); + if (device < 0 || device >= num_devices) + { + cerr << "Invalid device ID" << endl; + return -1; + } + + // set this to overwrite binary cache every time the test starts + ocl::setBinaryDiskCache(ocl::CACHE_UPDATE); + + devidx = 0; + for (size_t i = 0; i < oclinfo.size(); i++) + { + for (size_t j = 0; j < oclinfo[i].DeviceName.size(); j++, devidx++) + { + if (device == devidx) + { + ocl::setDevice(oclinfo[i], (int)j); + TestSystem::instance().setRecordName(oclinfo[i].DeviceName[j]); + cout << "use " << devidx << ": " < 6 + ocl::DevicesInfo di; + if( getOpenCLDevices(di) < 1) + { + cerr << "Error: no OCL device found;" << endl; + return -1; + } + + // show device info + for (size_t i = 0; i < di.size(); i++) + { + cout << "Device " << i << ": " << di[i]->deviceName << " (unified memory: " << (di[i]->isUnifiedMemory ? "yes)":"no)" ) << endl; + } + + int device = cmd.get("device"); + if (device < 0 || device >= di.size()) + { + cerr << "Invalid device ID: " << device << endl; + return -1; + } + + cout << "Using device " << device << ": " << di[device]->deviceName << endl; + ocl::setDevice(di[device]); + TestSystem::instance().setRecordName(di[device]->deviceName); +#else +#error Unsupported OpenCV version +#endif // CV_MAJOR_VERSION ... + + if (cmd.get("verify")) + { + TestSystem::instance().setNumIters(1); + TestSystem::instance().setGPUWarmupIters(0); + TestSystem::instance().setCPUIters(0); + } + + string filter = cmd.get("filter"); + string workdir = cmd.get("workdir"); + bool list = cmd.get("list"); + int iters = cmd.get("iters"); + int wu_iters = cmd.get("warmup"); + double x_top = cmd.get("xtop"); + double x_bottom = cmd.get("xbottom"); + + TestSystem::instance().setTopThreshold(x_top); + TestSystem::instance().setBottomThreshold(x_bottom); + + if (!filter.empty()) + { + TestSystem::instance().setTestFilter(filter); + } + + if (!workdir.empty()) + { + if (workdir[workdir.size() - 1] != '/' && workdir[workdir.size() - 1] != '\\') + { + workdir += '/'; + } + + cout << "Working dir: " << workdir << endl; + TestSystem::instance().setWorkingDir(workdir); + } + + if (list) + { + TestSystem::instance().setListMode(true); + } + + TestSystem::instance().setNumIters(iters); + TestSystem::instance().setGPUWarmupIters(wu_iters); + + TestSystem::instance().run(); + + return 0; +} diff --git a/src/perf_arithm.cpp b/src/perf_arithm.cpp new file mode 100644 index 0000000..f9f2311 --- /dev/null +++ b/src/perf_arithm.cpp @@ -0,0 +1,1199 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "perf_precomp.hpp" +///////////// Lut //////////////////////// +PERFTEST(lut) +{ + Mat src, lut, dst, ocl_dst; + ocl::oclMat d_src, d_lut, d_dst; + + int all_type[] = {CV_8UC1, CV_8UC3}; + std::string type_name[] = {"CV_8UC1", "CV_8UC3"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j]; + + gen(src, size, size, all_type[j], 0, 256); + gen(lut, 1, 256, CV_8UC1, 0, 1); + + LUT(src, lut, dst); + + CPU_ON; + LUT(src, lut, dst); + CPU_OFF; + + d_src.upload(src); + d_lut.upload(lut); + + WARMUP_ON; + ocl::LUT(d_src, d_lut, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::LUT(d_src, d_lut, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + d_lut.upload(lut); + ocl::LUT(d_src, d_lut, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 0); + } + + } +} + +///////////// Exp //////////////////////// +PERFTEST(Exp) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + SUBTEST << size << 'x' << size << "; CV_32FC1"; + + gen(src, size, size, CV_32FC1, 5, 16); + + exp(src, dst); + + CPU_ON; + exp(src, dst); + CPU_OFF; + d_src.upload(src); + + WARMUP_ON; + ocl::exp(d_src, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::exp(d_src, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::exp(d_src, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 2); + } +} + +///////////// LOG //////////////////////// +PERFTEST(Log) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + SUBTEST << size << 'x' << size << "; 32F"; + + gen(src, size, size, CV_32F, 1, 10); + + log(src, dst); + + CPU_ON; + log(src, dst); + CPU_OFF; + d_src.upload(src); + + WARMUP_ON; + ocl::log(d_src, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::log(d_src, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::log(d_src, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 1); + } +} + +///////////// Add //////////////////////// +PERFTEST(Add) +{ + Mat src1, src2, dst, ocl_dst; + ocl::oclMat d_src1, d_src2, d_dst; + + int all_type[] = {CV_8UC1, CV_32FC1}; + std::string type_name[] = {"CV_8UC1", "CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j]; + + gen(src1, size, size, all_type[j], 0, 1); + gen(src2, size, size, all_type[j], 0, 1); + + add(src1, src2, dst); + + CPU_ON; + add(src1, src2, dst); + CPU_OFF; + + d_src1.upload(src1); + d_src2.upload(src2); + + WARMUP_ON; + ocl::add(d_src1, d_src2, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::add(d_src1, d_src2, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + d_src2.upload(src2); + ocl::add(d_src1, d_src2, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 0.0); + } + + } +} + +///////////// Mul //////////////////////// +PERFTEST(Mul) +{ + Mat src1, src2, dst, ocl_dst; + ocl::oclMat d_src1, d_src2, d_dst; + + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src1, size, size, all_type[j], 0, 256); + gen(src2, size, size, all_type[j], 0, 256); + + multiply(src1, src2, dst); + + CPU_ON; + multiply(src1, src2, dst); + CPU_OFF; + d_src1.upload(src1); + d_src2.upload(src2); + + WARMUP_ON; + ocl::multiply(d_src1, d_src2, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::multiply(d_src1, d_src2, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + d_src2.upload(src2); + ocl::multiply(d_src1, d_src2, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 0.0); + } + + } +} + +///////////// Div //////////////////////// +PERFTEST(Div) +{ + Mat src1, src2, dst, ocl_dst; + ocl::oclMat d_src1, d_src2, d_dst; + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j]; + + gen(src1, size, size, all_type[j], 0, 256); + gen(src2, size, size, all_type[j], 0, 256); + + divide(src1, src2, dst); + + CPU_ON; + divide(src1, src2, dst); + CPU_OFF; + + d_src1.upload(src1); + d_src2.upload(src2); + + WARMUP_ON; + ocl::divide(d_src1, d_src2, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::divide(d_src1, d_src2, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + d_src2.upload(src2); + ocl::divide(d_src1, d_src2, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 1); + } + + } +} + +///////////// Absdiff //////////////////////// +PERFTEST(Absdiff) +{ + Mat src1, src2, dst, ocl_dst; + ocl::oclMat d_src1, d_src2, d_dst; + + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src1, size, size, all_type[j], 0, 256); + gen(src2, size, size, all_type[j], 0, 256); + gen(dst, size, size, all_type[j], 0, 256); + + absdiff(src1, src2, dst); + + CPU_ON; + absdiff(src1, src2, dst); + CPU_OFF; + + d_src1.upload(src1); + d_src2.upload(src2); + + WARMUP_ON; + ocl::absdiff(d_src1, d_src2, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::absdiff(d_src1, d_src2, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + d_src2.upload(src2); + ocl::absdiff(d_src1, d_src2, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 0.0); + } + + } +} + +///////////// CartToPolar //////////////////////// +PERFTEST(CartToPolar) +{ + Mat src1, src2, dst, dst1, ocl_dst, ocl_dst1; + ocl::oclMat d_src1, d_src2, d_dst, d_dst1; + + int all_type[] = {CV_32FC1}; + std::string type_name[] = {"CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j]; + + gen(src1, size, size, all_type[j], 0, 256); + gen(src2, size, size, all_type[j], 0, 256); + gen(dst, size, size, all_type[j], 0, 256); + gen(dst1, size, size, all_type[j], 0, 256); + + + cartToPolar(src1, src2, dst, dst1, 1); + + CPU_ON; + cartToPolar(src1, src2, dst, dst1, 1); + CPU_OFF; + + d_src1.upload(src1); + d_src2.upload(src2); + + WARMUP_ON; + ocl::cartToPolar(d_src1, d_src2, d_dst, d_dst1, 1); + WARMUP_OFF; + + GPU_ON; + ocl::cartToPolar(d_src1, d_src2, d_dst, d_dst1, 1); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + d_src2.upload(src2); + ocl::cartToPolar(d_src1, d_src2, d_dst, d_dst1, 1); + d_dst.download(ocl_dst); + d_dst1.download(ocl_dst1); + GPU_FULL_OFF; + + double diff1 = checkNorm(ocl_dst1, dst1); + double diff2 = checkNorm(ocl_dst, dst); + double max_diff = max(diff1, diff2); + TestSystem::instance().setAccurate(max_diff<=.5?1:0, max_diff); + + } + + } +} + +///////////// PolarToCart //////////////////////// +PERFTEST(PolarToCart) +{ + Mat src1, src2, dst, dst1, ocl_dst, ocl_dst1; + ocl::oclMat d_src1, d_src2, d_dst, d_dst1; + + int all_type[] = {CV_32FC1}; + std::string type_name[] = {"CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src1, size, size, all_type[j], 0, 256); + gen(src2, size, size, all_type[j], 0, 256); + gen(dst, size, size, all_type[j], 0, 256); + gen(dst1, size, size, all_type[j], 0, 256); + + + polarToCart(src1, src2, dst, dst1, 1); + + CPU_ON; + polarToCart(src1, src2, dst, dst1, 1); + CPU_OFF; + d_src1.upload(src1); + d_src2.upload(src2); + + WARMUP_ON; + ocl::polarToCart(d_src1, d_src2, d_dst, d_dst1, 1); + WARMUP_OFF; + + GPU_ON; + ocl::polarToCart(d_src1, d_src2, d_dst, d_dst1, 1); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + d_src2.upload(src2); + ocl::polarToCart(d_src1, d_src2, d_dst, d_dst1, 1); + d_dst.download(ocl_dst); + d_dst1.download(ocl_dst1); + GPU_FULL_OFF; + + double diff1 = checkNorm(ocl_dst1, dst1); + double diff2 = checkNorm(ocl_dst, dst); + double max_diff = max(diff1, diff2); + TestSystem::instance().setAccurate(max_diff<=.5?1:0, max_diff); + + } + + } +} + +///////////// Magnitude //////////////////////// +PERFTEST(magnitude) +{ + Mat x, y, mag, ocl_mag; + ocl::oclMat d_x, d_y, d_mag; + + int all_type[] = {CV_32FC1}; + std::string type_name[] = {"CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j]; + + gen(x, size, size, all_type[j], 0, 1); + gen(y, size, size, all_type[j], 0, 1); + + magnitude(x, y, mag); + + CPU_ON; + magnitude(x, y, mag); + CPU_OFF; + d_x.upload(x); + d_y.upload(y); + + WARMUP_ON; + ocl::magnitude(d_x, d_y, d_mag); + WARMUP_OFF; + + GPU_ON; + ocl::magnitude(d_x, d_y, d_mag); + GPU_OFF; + + GPU_FULL_ON; + d_x.upload(x); + d_y.upload(y); + ocl::magnitude(d_x, d_y, d_mag); + d_mag.download(ocl_mag); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_mag, mag, 1e-5); + } + + } +} + +///////////// Transpose //////////////////////// +PERFTEST(Transpose) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j]; + + gen(src, size, size, all_type[j], 0, 256); + gen(dst, size, size, all_type[j], 0, 256); + + transpose(src, dst); + + CPU_ON; + transpose(src, dst); + CPU_OFF; + d_src.upload(src); + + WARMUP_ON; + ocl::transpose(d_src, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::transpose(d_src, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::transpose(d_src, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 1e-5); + } + + } +} + +///////////// Flip //////////////////////// +PERFTEST(Flip) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] << " ; FLIP_BOTH"; + + gen(src, size, size, all_type[j], 0, 256); + gen(dst, size, size, all_type[j], 0, 256); + + flip(src, dst, 0); + + CPU_ON; + flip(src, dst, 0); + CPU_OFF; + d_src.upload(src); + + WARMUP_ON; + ocl::flip(d_src, d_dst, 0); + WARMUP_OFF; + + GPU_ON; + ocl::flip(d_src, d_dst, 0); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::flip(d_src, d_dst, 0); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 1e-5); + } + + } +} + +///////////// minMax //////////////////////// +PERFTEST(minMax) +{ + Mat src; + ocl::oclMat d_src; + + double min_val = 0.0, max_val = 0.0; + double min_val_ = 0.0, max_val_ = 0.0; + Point min_loc, max_loc; + int all_type[] = {CV_8UC1, CV_32FC1}; + std::string type_name[] = {"CV_8UC1", "CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j]; + + gen(src, size, size, all_type[j], 0, 256); + + CPU_ON; + minMaxLoc(src, &min_val, &max_val, &min_loc, &max_loc); + CPU_OFF; + d_src.upload(src); + + WARMUP_ON; + ocl::minMax(d_src, &min_val_, &max_val_); + WARMUP_OFF; + + if(EeceptDoubleEQ(max_val_, max_val) && EeceptDoubleEQ(min_val_, min_val)) + TestSystem::instance().setAccurate(1, max(fabs(max_val_-max_val), fabs(min_val_-min_val))); + else + TestSystem::instance().setAccurate(0, max(fabs(max_val_-max_val), fabs(min_val_-min_val))); + + GPU_ON; + ocl::minMax(d_src, &min_val, &max_val); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::minMax(d_src, &min_val, &max_val); + GPU_FULL_OFF; + + } + + } +} + +///////////// minMaxLoc //////////////////////// +PERFTEST(minMaxLoc) +{ + Mat src; + ocl::oclMat d_src; + + double min_val = 0.0, max_val = 0.0; + double min_val_ = 0.0, max_val_ = 0.0; + Point min_loc, max_loc; + Point min_loc_, max_loc_; + int all_type[] = {CV_8UC1, CV_32FC1}; + std::string type_name[] = {"CV_8UC1", "CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 1); + + CPU_ON; + minMaxLoc(src, &min_val, &max_val, &min_loc, &max_loc); + CPU_OFF; + d_src.upload(src); + + WARMUP_ON; + ocl::minMaxLoc(d_src, &min_val_, &max_val_, &min_loc_, &max_loc_); + WARMUP_OFF; + + double error0 = 0., error1 = 0., minlocVal = 0., minlocVal_ = 0., maxlocVal = 0., maxlocVal_ = 0.; + if(src.depth() == 0) + { + minlocVal = src.at(min_loc); + minlocVal_ = src.at(min_loc_); + maxlocVal = src.at(max_loc); + maxlocVal_ = src.at(max_loc_); + } + if(src.depth() == 1) + { + minlocVal = src.at(min_loc); + minlocVal_ = src.at(min_loc_); + maxlocVal = src.at(max_loc); + maxlocVal_ = src.at(max_loc_); + } + if(src.depth() == 2) + { + minlocVal = src.at(min_loc); + minlocVal_ = src.at(min_loc_); + maxlocVal = src.at(max_loc); + maxlocVal_ = src.at(max_loc_); + } + if(src.depth() == 3) + { + minlocVal = src.at(min_loc); + minlocVal_ = src.at(min_loc_); + maxlocVal = src.at(max_loc); + maxlocVal_ = src.at(max_loc_); + } + if(src.depth() == 4) + { + minlocVal = src.at(min_loc); + minlocVal_ = src.at(min_loc_); + maxlocVal = src.at(max_loc); + maxlocVal_ = src.at(max_loc_); + } + if(src.depth() == 5) + { + minlocVal = src.at(min_loc); + minlocVal_ = src.at(min_loc_); + maxlocVal = src.at(max_loc); + maxlocVal_ = src.at(max_loc_); + } + if(src.depth() == 6) + { + minlocVal = src.at(min_loc); + minlocVal_ = src.at(min_loc_); + maxlocVal = src.at(max_loc); + maxlocVal_ = src.at(max_loc_); + } + error0 = ::abs(minlocVal_ - minlocVal); + error1 = ::abs(maxlocVal_ - maxlocVal); + if( EeceptDoubleEQ(maxlocVal_, maxlocVal) + &&EeceptDoubleEQ(minlocVal_, minlocVal) + &&EeceptDoubleEQ(max_val_, max_val) + &&EeceptDoubleEQ(min_val_, min_val)) + TestSystem::instance().setAccurate(1, 0.); + else + TestSystem::instance().setAccurate(0, max(error0, error1)); + + GPU_ON; + ocl::minMaxLoc(d_src, &min_val, &max_val, &min_loc, &max_loc); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::minMaxLoc(d_src, &min_val, &max_val, &min_loc, &max_loc); + GPU_FULL_OFF; + } + + } +} + +///////////// Sum //////////////////////// +PERFTEST(Sum) +{ + Mat src; + Scalar cpures, gpures; + ocl::oclMat d_src; + + int all_type[] = {CV_8UC1, CV_32SC1}; + std::string type_name[] = {"CV_8UC1", "CV_32SC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 60); + + cpures = sum(src); + + CPU_ON; + cpures = sum(src); + CPU_OFF; + d_src.upload(src); + + WARMUP_ON; + gpures = ocl::sum(d_src); + WARMUP_OFF; + + vector diffs(4); + diffs[3] = fabs(cpures[3] - gpures[3]); + diffs[2] = fabs(cpures[2] - gpures[2]); + diffs[1] = fabs(cpures[1] - gpures[1]); + diffs[0] = fabs(cpures[0] - gpures[0]); + double max_diff = *max_element(diffs.begin(), diffs.end()); + TestSystem::instance().setAccurate(max_diff<0.1?1:0, max_diff); + + GPU_ON; + gpures = ocl::sum(d_src); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + gpures = ocl::sum(d_src); + GPU_FULL_OFF; + } + + } +} + +///////////// countNonZero //////////////////////// +PERFTEST(countNonZero) +{ + Mat src; + ocl::oclMat d_src; + + int all_type[] = {CV_8UC1, CV_32FC1}; + std::string type_name[] = {"CV_8UC1", "CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 256); + + countNonZero(src); + + int cpures = 0, gpures = 0; + CPU_ON; + cpures = countNonZero(src); + CPU_OFF; + d_src.upload(src); + + WARMUP_ON; + gpures = ocl::countNonZero(d_src); + WARMUP_OFF; + + int diff = abs(cpures - gpures); + if(diff == 0) + TestSystem::instance().setAccurate(1, 0); + else + TestSystem::instance().setAccurate(0, diff); + + GPU_ON; + ocl::countNonZero(d_src); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::countNonZero(d_src); + GPU_FULL_OFF; + } + + } +} + +///////////// Phase //////////////////////// +PERFTEST(Phase) +{ + Mat src1, src2, dst, ocl_dst; + ocl::oclMat d_src1, d_src2, d_dst; + + int all_type[] = {CV_32FC1}; + std::string type_name[] = {"CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src1, size, size, all_type[j], 0, 256); + gen(src2, size, size, all_type[j], 0, 256); + gen(dst, size, size, all_type[j], 0, 256); + + phase(src1, src2, dst, 1); + + CPU_ON; + phase(src1, src2, dst, 1); + CPU_OFF; + + d_src1.upload(src1); + d_src2.upload(src2); + + WARMUP_ON; + ocl::phase(d_src1, d_src2, d_dst, 1); + WARMUP_OFF; + + GPU_ON; + ocl::phase(d_src1, d_src2, d_dst, 1); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + d_src2.upload(src2); + ocl::phase(d_src1, d_src2, d_dst, 1); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 1e-2); + } + + } +} + +///////////// bitwise_and//////////////////////// +PERFTEST(bitwise_and) +{ + Mat src1, src2, dst, ocl_dst; + ocl::oclMat d_src1, d_src2, d_dst; + + int all_type[] = {CV_8UC1, CV_32SC1}; + std::string type_name[] = {"CV_8UC1", "CV_32SC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src1, size, size, all_type[j], 0, 256); + gen(src2, size, size, all_type[j], 0, 256); + gen(dst, size, size, all_type[j], 0, 256); + + bitwise_and(src1, src2, dst); + + CPU_ON; + bitwise_and(src1, src2, dst); + CPU_OFF; + d_src1.upload(src1); + d_src2.upload(src2); + + WARMUP_ON; + ocl::bitwise_and(d_src1, d_src2, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::bitwise_and(d_src1, d_src2, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + d_src2.upload(src2); + ocl::bitwise_and(d_src1, d_src2, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 0.0); + } + + } +} + +///////////// bitwise_not//////////////////////// +PERFTEST(bitwise_not) +{ + Mat src1, dst, ocl_dst; + ocl::oclMat d_src1, d_dst; + + int all_type[] = {CV_8UC1, CV_32SC1}; + std::string type_name[] = {"CV_8UC1", "CV_32SC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src1, size, size, all_type[j], 0, 256); + gen(dst, size, size, all_type[j], 0, 256); + + bitwise_not(src1, dst); + + CPU_ON; + bitwise_not(src1, dst); + CPU_OFF; + d_src1.upload(src1); + + WARMUP_ON; + ocl::bitwise_not(d_src1, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::bitwise_not(d_src1, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + ocl::bitwise_not(d_src1, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 0.0); + } + + } +} + +///////////// compare//////////////////////// +PERFTEST(compare) +{ + Mat src1, src2, dst, ocl_dst; + ocl::oclMat d_src1, d_src2, d_dst; + + int CMP_EQ = 0; + int all_type[] = {CV_8UC1, CV_32FC1}; + std::string type_name[] = {"CV_8UC1", "CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src1, size, size, all_type[j], 0, 256); + gen(src2, size, size, all_type[j], 0, 256); + gen(dst, size, size, all_type[j], 0, 256); + + compare(src1, src2, dst, CMP_EQ); + + CPU_ON; + compare(src1, src2, dst, CMP_EQ); + CPU_OFF; + + d_src1.upload(src1); + d_src2.upload(src2); + + WARMUP_ON; + ocl::compare(d_src1, d_src2, d_dst, CMP_EQ); + WARMUP_OFF; + + GPU_ON; + ocl::compare(d_src1, d_src2, d_dst, CMP_EQ); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + d_src2.upload(src2); + ocl::compare(d_src1, d_src2, d_dst, CMP_EQ); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 0.0); + } + + } +} + +///////////// pow //////////////////////// +PERFTEST(pow) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + int all_type[] = {CV_32FC1}; + std::string type_name[] = {"CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 5, 16); + + pow(src, -2.0, dst); + + CPU_ON; + pow(src, -2.0, dst); + CPU_OFF; + d_src.upload(src); + d_dst.upload(dst); + + WARMUP_ON; + ocl::pow(d_src, -2.0, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::pow(d_src, -2.0, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::pow(d_src, -2.0, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 1.0); + } + + } +} + +#if CV_MAJOR_VERSION == 2 && CV_MINOR_VERSION == 4 && CV_SUBMINOR_VERSION == 6 +///////////// MagnitudeSqr//////////////////////// +PERFTEST(MagnitudeSqr) +{ + Mat src1, src2, dst, ocl_dst; + ocl::oclMat d_src1, d_src2, d_dst; + + int all_type[] = {CV_32FC1}; + std::string type_name[] = {"CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t t = 0; t < sizeof(all_type) / sizeof(int); t++) + { + SUBTEST << size << 'x' << size << "; " << type_name[t]; + + gen(src1, size, size, all_type[t], 0, 256); + gen(src2, size, size, all_type[t], 0, 256); + gen(dst, size, size, all_type[t], 0, 256); + + CPU_ON; + for (int i = 0; i < src1.rows; ++i) + for (int j = 0; j < src1.cols; ++j) + { + float val1 = src1.at(i, j); + float val2 = src2.at(i, j); + ((float *)(dst.data))[i * dst.step / 4 + j] = val1 * val1 + val2 * val2; + + } + CPU_OFF; + + d_src1.upload(src1); + d_src2.upload(src2); + + WARMUP_ON; + ocl::magnitudeSqr(d_src1, d_src2, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::magnitudeSqr(d_src1, d_src2, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + d_src2.upload(src2); + ocl::magnitudeSqr(d_src1, d_src2, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 1.0); + } + + } +} +#endif //CV_MAJOR_VERSION + +///////////// AddWeighted//////////////////////// +PERFTEST(AddWeighted) +{ + Mat src1, src2, dst, ocl_dst; + ocl::oclMat d_src1, d_src2, d_dst; + + double alpha = 2.0, beta = 1.0, gama = 3.0; + int all_type[] = {CV_8UC1, CV_32FC1}; + std::string type_name[] = {"CV_8UC1", "CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src1, size, size, all_type[j], 0, 256); + gen(src2, size, size, all_type[j], 0, 256); + gen(dst, size, size, all_type[j], 0, 256); + + + addWeighted(src1, alpha, src2, beta, gama, dst); + + CPU_ON; + addWeighted(src1, alpha, src2, beta, gama, dst); + CPU_OFF; + d_src1.upload(src1); + d_src2.upload(src2); + + WARMUP_ON; + ocl::addWeighted(d_src1, alpha, d_src2, beta, gama, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::addWeighted(d_src1, alpha, d_src2, beta, gama, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + d_src2.upload(src2); + ocl::addWeighted(d_src1, alpha, d_src2, beta, gama, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 1e-5); + } + + } +} \ No newline at end of file diff --git a/src/perf_blend.cpp b/src/perf_blend.cpp new file mode 100644 index 0000000..2213977 --- /dev/null +++ b/src/perf_blend.cpp @@ -0,0 +1,122 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "perf_precomp.hpp" +///////////// blend //////////////////////// +template +void blendLinearGold(const cv::Mat &img1, const cv::Mat &img2, const cv::Mat &weights1, const cv::Mat &weights2, cv::Mat &result_gold) +{ + result_gold.create(img1.size(), img1.type()); + + int cn = img1.channels(); + + for (int y = 0; y < img1.rows; ++y) + { + const float *weights1_row = weights1.ptr(y); + const float *weights2_row = weights2.ptr(y); + const T *img1_row = img1.ptr(y); + const T *img2_row = img2.ptr(y); + T *result_gold_row = result_gold.ptr(y); + + for (int x = 0; x < img1.cols * cn; ++x) + { + float w1 = weights1_row[x / cn]; + float w2 = weights2_row[x / cn]; + result_gold_row[x] = static_cast((img1_row[x] * w1 + img2_row[x] * w2) / (w1 + w2 + 1e-5f)); + } + } +} +PERFTEST(blend) +{ + Mat src1, src2, weights1, weights2, dst, ocl_dst; + ocl::oclMat d_src1, d_src2, d_weights1, d_weights2, d_dst; + + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] << " and CV_32FC1"; + + gen(src1, size, size, all_type[j], 0, 256); + gen(src2, size, size, all_type[j], 0, 256); + gen(weights1, size, size, CV_32FC1, 0, 1); + gen(weights2, size, size, CV_32FC1, 0, 1); + + blendLinearGold(src1, src2, weights1, weights2, dst); + + CPU_ON; + blendLinearGold(src1, src2, weights1, weights2, dst); + CPU_OFF; + + d_src1.upload(src1); + d_src2.upload(src2); + d_weights1.upload(weights1); + d_weights2.upload(weights2); + + WARMUP_ON; + ocl::blendLinear(d_src1, d_src2, d_weights1, d_weights2, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::blendLinear(d_src1, d_src2, d_weights1, d_weights2, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + d_src2.upload(src2); + d_weights1.upload(weights1); + d_weights2.upload(weights2); + ocl::blendLinear(d_src1, d_src2, d_weights1, d_weights2, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 1.f); + } + } +} \ No newline at end of file diff --git a/src/perf_brute_force_matcher.cpp b/src/perf_brute_force_matcher.cpp new file mode 100644 index 0000000..c481766 --- /dev/null +++ b/src/perf_brute_force_matcher.cpp @@ -0,0 +1,167 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" + +//////////////////// BruteForceMatch ///////////////// +PERFTEST(BruteForceMatcher) +{ + Mat trainIdx_cpu; + Mat distance_cpu; + Mat allDist_cpu; + Mat nMatches_cpu; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + // Init CPU matcher + int desc_len = 64; + + BFMatcher matcher(NORM_L2); + + Mat query; + gen(query, size, desc_len, CV_32F, 0, 1); + + Mat train; + gen(train, size, desc_len, CV_32F, 0, 1); + // Output + vector< vector > matches(2); + vector< vector > d_matches(2); + // Init GPU matcher + ocl::BruteForceMatcher_OCL_base d_matcher(ocl::BruteForceMatcher_OCL_base::L2Dist); + + ocl::oclMat d_query(query); + ocl::oclMat d_train(train); + + ocl::oclMat d_trainIdx, d_distance, d_allDist, d_nMatches; + + SUBTEST << size << "; match"; + + matcher.match(query, train, matches[0]); + + CPU_ON; + matcher.match(query, train, matches[0]); + CPU_OFF; + + WARMUP_ON; + d_matcher.matchSingle(d_query, d_train, d_trainIdx, d_distance); + WARMUP_OFF; + + GPU_ON; + d_matcher.matchSingle(d_query, d_train, d_trainIdx, d_distance); + GPU_OFF; + + GPU_FULL_ON; + d_query.upload(query); + d_train.upload(train); + d_matcher.match(d_query, d_train, d_matches[0]); + GPU_FULL_OFF; + + int diff = abs((int)d_matches[0].size() - (int)matches[0].size()); + if(diff == 0) + TestSystem::instance().setAccurate(1, 0); + else + TestSystem::instance().setAccurate(0, diff); + + SUBTEST << size << "; knnMatch"; + + matcher.knnMatch(query, train, matches, 2); + + CPU_ON; + matcher.knnMatch(query, train, matches, 2); + CPU_OFF; + + WARMUP_ON; + d_matcher.knnMatchSingle(d_query, d_train, d_trainIdx, d_distance, d_allDist, 2); + WARMUP_OFF; + + GPU_ON; + d_matcher.knnMatchSingle(d_query, d_train, d_trainIdx, d_distance, d_allDist, 2); + GPU_OFF; + + GPU_FULL_ON; + d_query.upload(query); + d_train.upload(train); + d_matcher.knnMatch(d_query, d_train, d_matches, 2); + GPU_FULL_OFF; + + diff = abs((int)d_matches[0].size() - (int)matches[0].size()); + if(diff == 0) + TestSystem::instance().setAccurate(1, 0); + else + TestSystem::instance().setAccurate(0, diff); + + SUBTEST << size << "; radiusMatch"; + + float max_distance = 2.0f; + + matcher.radiusMatch(query, train, matches, max_distance); + + CPU_ON; + matcher.radiusMatch(query, train, matches, max_distance); + CPU_OFF; + + d_trainIdx.release(); + + WARMUP_ON; + d_matcher.radiusMatchSingle(d_query, d_train, d_trainIdx, d_distance, d_nMatches, max_distance); + WARMUP_OFF; + + GPU_ON; + d_matcher.radiusMatchSingle(d_query, d_train, d_trainIdx, d_distance, d_nMatches, max_distance); + GPU_OFF; + + GPU_FULL_ON; + d_query.upload(query); + d_train.upload(train); + d_matcher.radiusMatch(d_query, d_train, d_matches, max_distance); + GPU_FULL_OFF; + + diff = abs((int)d_matches[0].size() - (int)matches[0].size()); + if(diff == 0) + TestSystem::instance().setAccurate(1, 0); + else + TestSystem::instance().setAccurate(0, diff); + } +} \ No newline at end of file diff --git a/src/perf_calib3d.cpp b/src/perf_calib3d.cpp new file mode 100644 index 0000000..1a2ec2b --- /dev/null +++ b/src/perf_calib3d.cpp @@ -0,0 +1,101 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "perf_precomp.hpp" +///////////// StereoMatchBM //////////////////////// +PERFTEST(StereoMatchBM) +{ + Mat left_image = imread(abspath("aloe-L.png"), cv::IMREAD_GRAYSCALE); + Mat right_image = imread(abspath("aloe-R.png"), cv::IMREAD_GRAYSCALE); + Mat disp,dst; + ocl::oclMat d_left, d_right,d_disp; + int n_disp= 128; + int winSize =19; + + SUBTEST << left_image.cols << 'x' << left_image.rows << "; aloe-L.png ;"<< right_image.cols << 'x' << right_image.rows << "; aloe-R.png "; + + StereoBM bm(0, n_disp, winSize); + bm(left_image, right_image, dst); + + CPU_ON; + bm(left_image, right_image, dst); + CPU_OFF; + + d_left.upload(left_image); + d_right.upload(right_image); + + ocl::StereoBM_OCL d_bm(0, n_disp, winSize); + + WARMUP_ON; + d_bm(d_left, d_right, d_disp); + WARMUP_OFF; + + cv::Mat ocl_mat; + d_disp.download(ocl_mat); + ocl_mat.convertTo(ocl_mat, dst.type()); + + GPU_ON; + d_bm(d_left, d_right, d_disp); + GPU_OFF; + + GPU_FULL_ON; + d_left.upload(left_image); + d_right.upload(right_image); + d_bm(d_left, d_right, d_disp); + d_disp.download(disp); + GPU_FULL_OFF; + + TestSystem::instance().setAccurate(-1, 0.); +} + + + + + + + + + \ No newline at end of file diff --git a/src/perf_canny.cpp b/src/perf_canny.cpp new file mode 100644 index 0000000..ca8934a --- /dev/null +++ b/src/perf_canny.cpp @@ -0,0 +1,85 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" + +///////////// Canny //////////////////////// +PERFTEST(Canny) +{ + Mat img = imread(abspath("aloe-L.png"), CV_LOAD_IMAGE_GRAYSCALE); + + if (img.empty()) + { + throw runtime_error("can't open aloe-L.png"); + } + + SUBTEST << img.cols << 'x' << img.rows << "; aloe-L.png" << "; edges" << "; CV_8UC1"; + + Mat edges(img.size(), CV_8UC1), ocl_edges; + + CPU_ON; + Canny(img, edges, 50.0, 100.0); + CPU_OFF; + + ocl::oclMat d_img(img); + ocl::oclMat d_edges; + ocl::CannyBuf d_buf; + + WARMUP_ON; + ocl::Canny(d_img, d_buf, d_edges, 50.0, 100.0); + WARMUP_OFF; + + GPU_ON; + ocl::Canny(d_img, d_buf, d_edges, 50.0, 100.0); + GPU_OFF; + + GPU_FULL_ON; + d_img.upload(img); + ocl::Canny(d_img, d_buf, d_edges, 50.0, 100.0); + d_edges.download(ocl_edges); + GPU_FULL_OFF; + + TestSystem::instance().ExceptedMatSimilar(edges, ocl_edges, 2e-2); +} \ No newline at end of file diff --git a/src/perf_color.cpp b/src/perf_color.cpp new file mode 100644 index 0000000..4bd5fa5 --- /dev/null +++ b/src/perf_color.cpp @@ -0,0 +1,93 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" + +///////////// cvtColor//////////////////////// +PERFTEST(cvtColor) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + int all_type[] = {CV_8UC4}; + std::string type_name[] = {"CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + gen(src, size, size, all_type[j], 0, 256); + SUBTEST << size << "x" << size << "; " << type_name[j] << " ; CV_RGBA2GRAY"; + + cvtColor(src, dst, CV_RGBA2GRAY, 4); + + CPU_ON; + cvtColor(src, dst, CV_RGBA2GRAY, 4); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::cvtColor(d_src, d_dst, CV_RGBA2GRAY, 4); + WARMUP_OFF; + + GPU_ON; + ocl::cvtColor(d_src, d_dst, CV_RGBA2GRAY, 4); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::cvtColor(d_src, d_dst, CV_RGBA2GRAY, 4); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExceptedMatSimilar(dst, ocl_dst, 1e-5); + } + + + } + + +} \ No newline at end of file diff --git a/src/perf_fft.cpp b/src/perf_fft.cpp new file mode 100644 index 0000000..7073eb6 --- /dev/null +++ b/src/perf_fft.cpp @@ -0,0 +1,91 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" + +///////////// dft //////////////////////// +PERFTEST(dft) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + int all_type[] = {CV_32FC2}; + std::string type_name[] = {"CV_32FC2"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] << " ; complex-to-complex"; + + gen(src, size, size, all_type[j], Scalar::all(0), Scalar::all(1)); + + dft(src, dst); + + CPU_ON; + dft(src, dst); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::dft(d_src, d_dst, Size(size, size)); + WARMUP_OFF; + + GPU_ON; + ocl::dft(d_src, d_dst, Size(size, size)); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::dft(d_src, d_dst, Size(size, size)); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, src.size().area() * 1e-4); + } + + } +} \ No newline at end of file diff --git a/src/perf_filters.cpp b/src/perf_filters.cpp new file mode 100644 index 0000000..be288b4 --- /dev/null +++ b/src/perf_filters.cpp @@ -0,0 +1,377 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" + +///////////// Blur//////////////////////// +PERFTEST(Blur) +{ + Mat src1, dst, ocl_dst; + ocl::oclMat d_src1, d_dst; + + Size ksize = Size(3, 3); + int bordertype = BORDER_CONSTANT; + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src1, size, size, all_type[j], 0, 256); + gen(dst, size, size, all_type[j], 0, 256); + + blur(src1, dst, ksize, Point(-1, -1), bordertype); + + CPU_ON; + blur(src1, dst, ksize, Point(-1, -1), bordertype); + CPU_OFF; + + d_src1.upload(src1); + + WARMUP_ON; + ocl::blur(d_src1, d_dst, ksize, Point(-1, -1), bordertype); + WARMUP_OFF; + + GPU_ON; + ocl::blur(d_src1, d_dst, ksize, Point(-1, -1), bordertype); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + ocl::blur(d_src1, d_dst, ksize, Point(-1, -1), bordertype); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 1.0); + } + + } +} +///////////// Laplacian//////////////////////// +PERFTEST(Laplacian) +{ + Mat src1, dst, ocl_dst; + ocl::oclMat d_src1, d_dst; + + int ksize = 3; + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src1, size, size, all_type[j], 0, 256); + gen(dst, size, size, all_type[j], 0, 256); + + Laplacian(src1, dst, -1, ksize, 1); + + CPU_ON; + Laplacian(src1, dst, -1, ksize, 1); + CPU_OFF; + + d_src1.upload(src1); + + WARMUP_ON; + ocl::Laplacian(d_src1, d_dst, -1, ksize, 1); + WARMUP_OFF; + + GPU_ON; + ocl::Laplacian(d_src1, d_dst, -1, ksize, 1); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + ocl::Laplacian(d_src1, d_dst, -1, ksize, 1); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 1e-5); + } + + } +} + +///////////// Erode //////////////////// +PERFTEST(Erode) +{ + Mat src, dst, ker, ocl_dst; + ocl::oclMat d_src, d_dst; + + int all_type[] = {CV_8UC1, CV_8UC4, CV_32FC1, CV_32FC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4", "CV_32FC1", "CV_32FC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], Scalar::all(0), Scalar::all(256)); + ker = getStructuringElement(MORPH_RECT, Size(3, 3)); + + erode(src, dst, ker); + + CPU_ON; + erode(src, dst, ker); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::erode(d_src, d_dst, ker); + WARMUP_OFF; + + GPU_ON; + ocl::erode(d_src, d_dst, ker); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::erode(d_src, d_dst, ker); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 1e-5); + } + + } +} + +///////////// Sobel //////////////////////// +PERFTEST(Sobel) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + int dx = 1; + int dy = 1; + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 256); + + Sobel(src, dst, -1, dx, dy); + + CPU_ON; + Sobel(src, dst, -1, dx, dy); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::Sobel(d_src, d_dst, -1, dx, dy); + WARMUP_OFF; + + GPU_ON; + ocl::Sobel(d_src, d_dst, -1, dx, dy); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::Sobel(d_src, d_dst, -1, dx, dy); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 1); + } + + } +} +///////////// Scharr //////////////////////// +PERFTEST(Scharr) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + int dx = 1; + int dy = 0; + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 256); + + Scharr(src, dst, -1, dx, dy); + + CPU_ON; + Scharr(src, dst, -1, dx, dy); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::Scharr(d_src, d_dst, -1, dx, dy); + WARMUP_OFF; + + GPU_ON; + ocl::Scharr(d_src, d_dst, -1, dx, dy); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::Scharr(d_src, d_dst, -1, dx, dy); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 1); + } + + } +} + +///////////// GaussianBlur //////////////////////// +PERFTEST(GaussianBlur) +{ + Mat src, dst, ocl_dst; + int all_type[] = {CV_8UC1, CV_8UC4, CV_32FC1, CV_32FC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4", "CV_32FC1", "CV_32FC4"}; + const int ksize = 7; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 256); + + GaussianBlur(src, dst, Size(ksize, ksize), 0); + + CPU_ON; + GaussianBlur(src, dst, Size(ksize, ksize), 0); + CPU_OFF; + + ocl::oclMat d_src(src); + ocl::oclMat d_dst; + + WARMUP_ON; + ocl::GaussianBlur(d_src, d_dst, Size(ksize, ksize), 0); + WARMUP_OFF; + + GPU_ON; + ocl::GaussianBlur(d_src, d_dst, Size(ksize, ksize), 0); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::GaussianBlur(d_src, d_dst, Size(ksize, ksize), 0); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 1.0); + } + + } +} + +///////////// filter2D//////////////////////// +PERFTEST(filter2D) +{ + Mat src; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + gen(src, size, size, all_type[j], 0, 256); + + const int ksize = 3; + + SUBTEST << "ksize = " << ksize << "; " << size << 'x' << size << "; " << type_name[j] ; + + Mat kernel; + gen(kernel, ksize, ksize, CV_32SC1, -3.0, 3.0); + + Mat dst, ocl_dst; + + cv::filter2D(src, dst, -1, kernel); + + CPU_ON; + cv::filter2D(src, dst, -1, kernel); + CPU_OFF; + + ocl::oclMat d_src(src), d_dst; + + WARMUP_ON; + ocl::filter2D(d_src, d_dst, -1, kernel); + WARMUP_OFF; + + GPU_ON; + ocl::filter2D(d_src, d_dst, -1, kernel); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::filter2D(d_src, d_dst, -1, kernel); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, 1e-5); + + } + + + } +} \ No newline at end of file diff --git a/src/perf_gemm.cpp b/src/perf_gemm.cpp new file mode 100644 index 0000000..abaeda3 --- /dev/null +++ b/src/perf_gemm.cpp @@ -0,0 +1,90 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" + +///////////// gemm //////////////////////// +PERFTEST(gemm) +{ + Mat src1, src2, src3, dst, ocl_dst; + ocl::oclMat d_src1, d_src2, d_src3, d_dst; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + SUBTEST << size << 'x' << size; + + gen(src1, size, size, CV_32FC1, Scalar::all(-10), Scalar::all(10)); + gen(src2, size, size, CV_32FC1, Scalar::all(-10), Scalar::all(10)); + gen(src3, size, size, CV_32FC1, Scalar::all(-10), Scalar::all(10)); + + gemm(src1, src2, 1.0, src3, 1.0, dst); + + CPU_ON; + gemm(src1, src2, 1.0, src3, 1.0, dst); + CPU_OFF; + + d_src1.upload(src1); + d_src2.upload(src2); + d_src3.upload(src3); + + WARMUP_ON; + ocl::gemm(d_src1, d_src2, 1.0, d_src3, 1.0, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::gemm(d_src1, d_src2, 1.0, d_src3, 1.0, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + d_src2.upload(src2); + d_src3.upload(src3); + ocl::gemm(d_src1, d_src2, 1.0, d_src3, 1.0, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(ocl_dst, dst, src1.cols * src1.rows * 1e-4); + } +} \ No newline at end of file diff --git a/src/perf_haar.cpp b/src/perf_haar.cpp new file mode 100644 index 0000000..26bed5e --- /dev/null +++ b/src/perf_haar.cpp @@ -0,0 +1,143 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" + +///////////// Haar //////////////////////// +namespace cv +{ +namespace ocl +{ + +struct getRect +{ + Rect operator()(const CvAvgComp &e) const + { + return e.rect; + } +}; + +class CascadeClassifier_GPU : public OclCascadeClassifier +{ +public: + void detectMultiScale(oclMat &image, + CV_OUT std::vector& faces, + double scaleFactor = 1.1, + int minNeighbors = 3, int flags = 0, + Size minSize = Size(), + Size maxSize = Size()) + { + (void)maxSize; + MemStorage storage(cvCreateMemStorage(0)); + //CvMat img=image; + CvSeq *objs = oclHaarDetectObjects(image, storage, scaleFactor, minNeighbors, flags, minSize); + vector vecAvgComp; + Seq(objs).copyTo(vecAvgComp); + faces.resize(vecAvgComp.size()); + std::transform(vecAvgComp.begin(), vecAvgComp.end(), faces.begin(), getRect()); + } + +}; + +} +} +PERFTEST(Haar) +{ + Mat img = imread(abspath("basketball1.png"), CV_LOAD_IMAGE_GRAYSCALE); + + if (img.empty()) + { + throw runtime_error("can't open basketball1.png"); + } + + CascadeClassifier faceCascadeCPU; + + if (!faceCascadeCPU.load(abspath("haarcascade_frontalface_alt.xml"))) + { + throw runtime_error("can't load haarcascade_frontalface_alt.xml"); + } + + vector faces; + + SUBTEST << img.cols << "x" << img.rows << "; scale image"; + CPU_ON; + faceCascadeCPU.detectMultiScale(img, faces, + 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE, Size(30, 30)); + CPU_OFF; + + + vector oclfaces; + ocl::CascadeClassifier_GPU faceCascade; + + if (!faceCascade.load(abspath("haarcascade_frontalface_alt.xml"))) + { + throw runtime_error("can't load haarcascade_frontalface_alt.xml"); + } + + ocl::oclMat d_img(img); + + WARMUP_ON; + faceCascade.detectMultiScale(d_img, oclfaces, + 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE, Size(30, 30)); + WARMUP_OFF; + + if(faces.size() == oclfaces.size()) + TestSystem::instance().setAccurate(1, 0); + else + TestSystem::instance().setAccurate(0, abs((int)faces.size() - (int)oclfaces.size())); + + faces.clear(); + + GPU_ON; + faceCascade.detectMultiScale(d_img, oclfaces, + 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE, Size(30, 30)); + GPU_OFF; + + GPU_FULL_ON; + d_img.upload(img); + faceCascade.detectMultiScale(d_img, oclfaces, + 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE, Size(30, 30)); + GPU_FULL_OFF; +} \ No newline at end of file diff --git a/src/perf_hog.cpp b/src/perf_hog.cpp new file mode 100644 index 0000000..0f05581 --- /dev/null +++ b/src/perf_hog.cpp @@ -0,0 +1,94 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" + +///////////// HOG//////////////////////// + +PERFTEST(HOG) +{ + Mat src = imread(abspath("road.png"), cv::IMREAD_GRAYSCALE); + + if (src.empty()) + { + throw runtime_error("can't open road.png"); + } + + cv::HOGDescriptor hog; + hog.setSVMDetector(hog.getDefaultPeopleDetector()); + std::vector found_locations; + std::vector d_found_locations; + + SUBTEST << src.cols << 'x' << src.rows << "; road.png"; + + hog.detectMultiScale(src, found_locations); + + CPU_ON; + hog.detectMultiScale(src, found_locations); + CPU_OFF; + + cv::ocl::HOGDescriptor ocl_hog; + ocl_hog.setSVMDetector(ocl_hog.getDefaultPeopleDetector()); + ocl::oclMat d_src; + d_src.upload(src); + + WARMUP_ON; + ocl_hog.detectMultiScale(d_src, d_found_locations); + WARMUP_OFF; + + if(d_found_locations.size() == found_locations.size()) + TestSystem::instance().setAccurate(1, 0); + else + TestSystem::instance().setAccurate(0, abs((int)found_locations.size() - (int)d_found_locations.size())); + + GPU_ON; + ocl_hog.detectMultiScale(d_src, found_locations); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl_hog.detectMultiScale(d_src, found_locations); + GPU_FULL_OFF; +} \ No newline at end of file diff --git a/src/perf_imgproc.cpp b/src/perf_imgproc.cpp new file mode 100644 index 0000000..582853d --- /dev/null +++ b/src/perf_imgproc.cpp @@ -0,0 +1,1013 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" + +///////////// equalizeHist //////////////////////// +PERFTEST(equalizeHist) +{ + Mat src, dst, ocl_dst; + int all_type[] = {CV_8UC1}; + std::string type_name[] = {"CV_8UC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 256); + + equalizeHist(src, dst); + + CPU_ON; + equalizeHist(src, dst); + CPU_OFF; + + ocl::oclMat d_src(src); + ocl::oclMat d_dst; + ocl::oclMat d_hist; + ocl::oclMat d_buf; + + WARMUP_ON; + ocl::equalizeHist(d_src, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::equalizeHist(d_src, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::equalizeHist(d_src, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 1.1); + } + + } +} +/////////// CopyMakeBorder ////////////////////// +PERFTEST(CopyMakeBorder) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_dst; + + int bordertype = BORDER_CONSTANT; + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + + gen(src, size, size, all_type[j], 0, 256); + + copyMakeBorder(src, dst, 7, 5, 5, 7, bordertype, cv::Scalar(1.0)); + + CPU_ON; + copyMakeBorder(src, dst, 7, 5, 5, 7, bordertype, cv::Scalar(1.0)); + CPU_OFF; + + ocl::oclMat d_src(src); + + WARMUP_ON; + ocl::copyMakeBorder(d_src, d_dst, 7, 5, 5, 7, bordertype, cv::Scalar(1.0)); + WARMUP_OFF; + + GPU_ON; + ocl::copyMakeBorder(d_src, d_dst, 7, 5, 5, 7, bordertype, cv::Scalar(1.0)); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::copyMakeBorder(d_src, d_dst, 7, 5, 5, 7, bordertype, cv::Scalar(1.0)); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 0.0); + } + + } +} +///////////// cornerMinEigenVal //////////////////////// +PERFTEST(cornerMinEigenVal) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_dst; + + int blockSize = 7, apertureSize = 1 + 2 * (rand() % 4); + int borderType = BORDER_REFLECT; + int all_type[] = {CV_8UC1, CV_32FC1}; + std::string type_name[] = {"CV_8UC1", "CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 256); + + cornerMinEigenVal(src, dst, blockSize, apertureSize, borderType); + + CPU_ON; + cornerMinEigenVal(src, dst, blockSize, apertureSize, borderType); + CPU_OFF; + + ocl::oclMat d_src(src); + + WARMUP_ON; + ocl::cornerMinEigenVal(d_src, d_dst, blockSize, apertureSize, borderType); + WARMUP_OFF; + + GPU_ON; + ocl::cornerMinEigenVal(d_src, d_dst, blockSize, apertureSize, borderType); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::cornerMinEigenVal(d_src, d_dst, blockSize, apertureSize, borderType); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 1.0); + } + + } +} +///////////// cornerHarris //////////////////////// +PERFTEST(cornerHarris) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + int all_type[] = {CV_8UC1, CV_32FC1}; + std::string type_name[] = {"CV_8UC1", "CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] << " ; BORDER_REFLECT"; + + gen(src, size, size, all_type[j], 0, 1); + + cornerHarris(src, dst, 5, 7, 0.1, BORDER_REFLECT); + + CPU_ON; + cornerHarris(src, dst, 5, 7, 0.1, BORDER_REFLECT); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::cornerHarris(d_src, d_dst, 5, 7, 0.1, BORDER_REFLECT); + WARMUP_OFF; + + GPU_ON; + ocl::cornerHarris(d_src, d_dst, 5, 7, 0.1, BORDER_REFLECT); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::cornerHarris(d_src, d_dst, 5, 7, 0.1, BORDER_REFLECT); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 1.0); + } + + + } +} +///////////// integral //////////////////////// +PERFTEST(integral) +{ + Mat src, sum, ocl_sum; + ocl::oclMat d_src, d_sum, d_buf; + + int all_type[] = {CV_8UC1}; + std::string type_name[] = {"CV_8UC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 256); + + integral(src, sum); + + CPU_ON; + integral(src, sum); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::integral(d_src, d_sum); + WARMUP_OFF; + + GPU_ON; + ocl::integral(d_src, d_sum); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::integral(d_src, d_sum); + d_sum.download(ocl_sum); + GPU_FULL_OFF; + + if(sum.type() == ocl_sum.type()) //we won't test accuracy when cpu function overlow + TestSystem::instance().ExpectedMatNear(sum, ocl_sum, 0.0); + + } + + } +} +///////////// WarpAffine //////////////////////// +PERFTEST(WarpAffine) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + static const double coeffs[2][3] = + { + {cos(CV_PI / 6), -sin(CV_PI / 6), 100.0}, + {sin(CV_PI / 6), cos(CV_PI / 6), -100.0} + }; + Mat M(2, 3, CV_64F, (void *)coeffs); + int interpolation = INTER_NEAREST; + + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 256); + gen(dst, size, size, all_type[j], 0, 256); + Size size1 = Size(size, size); + + warpAffine(src, dst, M, size1, interpolation); + + CPU_ON; + warpAffine(src, dst, M, size1, interpolation); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::warpAffine(d_src, d_dst, M, size1, interpolation); + WARMUP_OFF; + + GPU_ON; + ocl::warpAffine(d_src, d_dst, M, size1, interpolation); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::warpAffine(d_src, d_dst, M, size1, interpolation); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 1.0); + } + + } +} +///////////// WarpPerspective //////////////////////// +PERFTEST(WarpPerspective) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + static const double coeffs[3][3] = + { + {cos(CV_PI / 6), -sin(CV_PI / 6), 100.0}, + {sin(CV_PI / 6), cos(CV_PI / 6), -100.0}, + {0.0, 0.0, 1.0} + }; + Mat M(3, 3, CV_64F, (void *)coeffs); + int interpolation = INTER_LINEAR; + + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 256); + gen(dst, size, size, all_type[j], 0, 256); + Size size1 = Size(size, size); + + warpPerspective(src, dst, M, size1, interpolation); + + CPU_ON; + warpPerspective(src, dst, M, size1, interpolation); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::warpPerspective(d_src, d_dst, M, size1, interpolation); + WARMUP_OFF; + + GPU_ON; + ocl::warpPerspective(d_src, d_dst, M, size1, interpolation); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::warpPerspective(d_src, d_dst, M, size1, interpolation); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 1.0); + } + + } +} + +///////////// resize //////////////////////// +PERFTEST(resize) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] << " ; up"; + + gen(src, size, size, all_type[j], 0, 256); + + resize(src, dst, Size(), 2.0, 2.0); + + CPU_ON; + resize(src, dst, Size(), 2.0, 2.0); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::resize(d_src, d_dst, Size(), 2.0, 2.0); + WARMUP_OFF; + + GPU_ON; + ocl::resize(d_src, d_dst, Size(), 2.0, 2.0); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::resize(d_src, d_dst, Size(), 2.0, 2.0); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 1.0); + } + + } + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] << " ; down"; + + gen(src, size, size, all_type[j], 0, 256); + + resize(src, dst, Size(), 0.5, 0.5); + + CPU_ON; + resize(src, dst, Size(), 0.5, 0.5); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::resize(d_src, d_dst, Size(), 0.5, 0.5); + WARMUP_OFF; + + GPU_ON; + ocl::resize(d_src, d_dst, Size(), 0.5, 0.5); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::resize(d_src, d_dst, Size(), 0.5, 0.5); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 1.0); + } + + } +} +///////////// threshold//////////////////////// +PERFTEST(threshold) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + SUBTEST << size << 'x' << size << "; 8UC1; THRESH_BINARY"; + + gen(src, size, size, CV_8U, 0, 100); + + threshold(src, dst, 50.0, 0.0, THRESH_BINARY); + + CPU_ON; + threshold(src, dst, 50.0, 0.0, THRESH_BINARY); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::threshold(d_src, d_dst, 50.0, 0.0, THRESH_BINARY); + WARMUP_OFF; + + GPU_ON; + ocl::threshold(d_src, d_dst, 50.0, 0.0, THRESH_BINARY); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::threshold(d_src, d_dst, 50.0, 0.0, THRESH_BINARY); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 1.0); + } + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + SUBTEST << size << 'x' << size << "; 32FC1; THRESH_TRUNC [NPP]"; + + gen(src, size, size, CV_32FC1, 0, 100); + + threshold(src, dst, 50.0, 0.0, THRESH_TRUNC); + + CPU_ON; + threshold(src, dst, 50.0, 0.0, THRESH_TRUNC); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::threshold(d_src, d_dst, 50.0, 0.0, THRESH_TRUNC); + WARMUP_OFF; + + GPU_ON; + ocl::threshold(d_src, d_dst, 50.0, 0.0, THRESH_TRUNC); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::threshold(d_src, d_dst, 50.0, 0.0, THRESH_TRUNC); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 1.0); + } +} +///////////// meanShiftFiltering//////////////////////// +COOR do_meanShift(int x0, int y0, uchar *sptr, uchar *dptr, int sstep, cv::Size size, int sp, int sr, int maxIter, float eps, int *tab) +{ + + int isr2 = sr * sr; + int c0, c1, c2, c3; + int iter; + uchar *ptr = NULL; + uchar *pstart = NULL; + int revx = 0, revy = 0; + c0 = sptr[0]; + c1 = sptr[1]; + c2 = sptr[2]; + c3 = sptr[3]; + // iterate meanshift procedure + for(iter = 0; iter < maxIter; iter++ ) + { + int count = 0; + int s0 = 0, s1 = 0, s2 = 0, sx = 0, sy = 0; + + //mean shift: process pixels in window (p-sigmaSp)x(p+sigmaSp) + int minx = x0 - sp; + int miny = y0 - sp; + int maxx = x0 + sp; + int maxy = y0 + sp; + + //deal with the image boundary + if(minx < 0) minx = 0; + if(miny < 0) miny = 0; + if(maxx >= size.width) maxx = size.width - 1; + if(maxy >= size.height) maxy = size.height - 1; + if(iter == 0) + { + pstart = sptr; + } + else + { + pstart = pstart + revy * sstep + (revx << 2); //point to the new position + } + ptr = pstart; + ptr = ptr + (miny - y0) * sstep + ((minx - x0) << 2); //point to the start in the row + + for( int y = miny; y <= maxy; y++, ptr += sstep - ((maxx - minx + 1) << 2)) + { + int rowCount = 0; + int x = minx; +#if CV_ENABLE_UNROLLED + for( ; x + 4 <= maxx; x += 4, ptr += 16) + { + int t0, t1, t2; + t0 = ptr[0], t1 = ptr[1], t2 = ptr[2]; + if(tab[t0 - c0 + 255] + tab[t1 - c1 + 255] + tab[t2 - c2 + 255] <= isr2) + { + s0 += t0; + s1 += t1; + s2 += t2; + sx += x; + rowCount++; + } + t0 = ptr[4], t1 = ptr[5], t2 = ptr[6]; + if(tab[t0 - c0 + 255] + tab[t1 - c1 + 255] + tab[t2 - c2 + 255] <= isr2) + { + s0 += t0; + s1 += t1; + s2 += t2; + sx += x + 1; + rowCount++; + } + t0 = ptr[8], t1 = ptr[9], t2 = ptr[10]; + if(tab[t0 - c0 + 255] + tab[t1 - c1 + 255] + tab[t2 - c2 + 255] <= isr2) + { + s0 += t0; + s1 += t1; + s2 += t2; + sx += x + 2; + rowCount++; + } + t0 = ptr[12], t1 = ptr[13], t2 = ptr[14]; + if(tab[t0 - c0 + 255] + tab[t1 - c1 + 255] + tab[t2 - c2 + 255] <= isr2) + { + s0 += t0; + s1 += t1; + s2 += t2; + sx += x + 3; + rowCount++; + } + } +#endif + for(; x <= maxx; x++, ptr += 4) + { + int t0 = ptr[0], t1 = ptr[1], t2 = ptr[2]; + if(tab[t0 - c0 + 255] + tab[t1 - c1 + 255] + tab[t2 - c2 + 255] <= isr2) + { + s0 += t0; + s1 += t1; + s2 += t2; + sx += x; + rowCount++; + } + } + if(rowCount == 0) + continue; + count += rowCount; + sy += y * rowCount; + } + + if( count == 0 ) + break; + + int x1 = sx / count; + int y1 = sy / count; + s0 = s0 / count; + s1 = s1 / count; + s2 = s2 / count; + + bool stopFlag = (x0 == x1 && y0 == y1) || (abs(x1 - x0) + abs(y1 - y0) + + tab[s0 - c0 + 255] + tab[s1 - c1 + 255] + tab[s2 - c2 + 255] <= eps); + + //revise the pointer corresponding to the new (y0,x0) + revx = x1 - x0; + revy = y1 - y0; + + x0 = x1; + y0 = y1; + c0 = s0; + c1 = s1; + c2 = s2; + + if( stopFlag ) + break; + } //for iter + + dptr[0] = (uchar)c0; + dptr[1] = (uchar)c1; + dptr[2] = (uchar)c2; + dptr[3] = (uchar)c3; + + COOR coor; + coor.x = static_cast(x0); + coor.y = static_cast(y0); + return coor; +} + +static void meanShiftFiltering_(const Mat &src_roi, Mat &dst_roi, int sp, int sr, cv::TermCriteria crit) +{ + if( src_roi.empty() ) + CV_Error( CV_StsBadArg, "The input image is empty" ); + + if( src_roi.depth() != CV_8U || src_roi.channels() != 4 ) + CV_Error( CV_StsUnsupportedFormat, "Only 8-bit, 4-channel images are supported" ); + + dst_roi.create(src_roi.size(), src_roi.type()); + + CV_Assert( (src_roi.cols == dst_roi.cols) && (src_roi.rows == dst_roi.rows) ); + CV_Assert( !(dst_roi.step & 0x3) ); + + if( !(crit.type & cv::TermCriteria::MAX_ITER) ) + crit.maxCount = 5; + int maxIter = std::min(std::max(crit.maxCount, 1), 100); + float eps; + if( !(crit.type & cv::TermCriteria::EPS) ) + eps = 1.f; + eps = (float)std::max(crit.epsilon, 0.0); + + int tab[512]; + for(int i = 0; i < 512; i++) + tab[i] = (i - 255) * (i - 255); + uchar *sptr = src_roi.data; + uchar *dptr = dst_roi.data; + int sstep = (int)src_roi.step; + int dstep = (int)dst_roi.step; + cv::Size size = src_roi.size(); + + for(int i = 0; i < size.height; i++, sptr += sstep - (size.width << 2), + dptr += dstep - (size.width << 2)) + { + for(int j = 0; j < size.width; j++, sptr += 4, dptr += 4) + { + do_meanShift(j, i, sptr, dptr, sstep, size, sp, sr, maxIter, eps, tab); + } + } +} + +PERFTEST(meanShiftFiltering) +{ + int sp = 5, sr = 6; + Mat src, dst, ocl_dst; + + ocl::oclMat d_src, d_dst; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + SUBTEST << size << 'x' << size << "; 8UC3 vs 8UC4"; + + gen(src, size, size, CV_8UC4, Scalar::all(0), Scalar::all(256)); + + cv::TermCriteria crit(cv::TermCriteria::COUNT + cv::TermCriteria::EPS, 5, 1); + + meanShiftFiltering_(src, dst, sp, sr, crit); + + CPU_ON; + meanShiftFiltering_(src, dst, sp, sr, crit); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::meanShiftFiltering(d_src, d_dst, sp, sr, crit); + WARMUP_OFF; + + GPU_ON; + ocl::meanShiftFiltering(d_src, d_dst, sp, sr, crit); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::meanShiftFiltering(d_src, d_dst, sp, sr, crit); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 0.0); + } +} + +void meanShiftProc_(const Mat &src_roi, Mat &dst_roi, Mat &dstCoor_roi, int sp, int sr, cv::TermCriteria crit) +{ + if (src_roi.empty()) + { + CV_Error(CV_StsBadArg, "The input image is empty"); + } + if (src_roi.depth() != CV_8U || src_roi.channels() != 4) + { + CV_Error(CV_StsUnsupportedFormat, "Only 8-bit, 4-channel images are supported"); + } + + dst_roi.create(src_roi.size(), src_roi.type()); + dstCoor_roi.create(src_roi.size(), CV_16SC2); + + CV_Assert((src_roi.cols == dst_roi.cols) && (src_roi.rows == dst_roi.rows) && + (src_roi.cols == dstCoor_roi.cols) && (src_roi.rows == dstCoor_roi.rows)); + CV_Assert(!(dstCoor_roi.step & 0x3)); + + if (!(crit.type & cv::TermCriteria::MAX_ITER)) + { + crit.maxCount = 5; + } + + int maxIter = std::min(std::max(crit.maxCount, 1), 100); + float eps; + + if (!(crit.type & cv::TermCriteria::EPS)) + { + eps = 1.f; + } + + eps = (float)std::max(crit.epsilon, 0.0); + + int tab[512]; + + for (int i = 0; i < 512; i++) + { + tab[i] = (i - 255) * (i - 255); + } + + uchar *sptr = src_roi.data; + uchar *dptr = dst_roi.data; + short *dCoorptr = (short *)dstCoor_roi.data; + int sstep = (int)src_roi.step; + int dstep = (int)dst_roi.step; + int dCoorstep = (int)dstCoor_roi.step >> 1; + cv::Size size = src_roi.size(); + + for (int i = 0; i < size.height; i++, sptr += sstep - (size.width << 2), + dptr += dstep - (size.width << 2), dCoorptr += dCoorstep - (size.width << 1)) + { + for (int j = 0; j < size.width; j++, sptr += 4, dptr += 4, dCoorptr += 2) + { + *((COOR *)dCoorptr) = do_meanShift(j, i, sptr, dptr, sstep, size, sp, sr, maxIter, eps, tab); + } + } + +} +PERFTEST(meanShiftProc) +{ + Mat src; + vector dst(2), ocl_dst(2); + ocl::oclMat d_src, d_dst, d_dstCoor; + + TermCriteria crit(TermCriteria::COUNT + TermCriteria::EPS, 5, 1); + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + SUBTEST << size << 'x' << size << "; 8UC4 and CV_16SC2 "; + + gen(src, size, size, CV_8UC4, Scalar::all(0), Scalar::all(256)); + + meanShiftProc_(src, dst[0], dst[1], 5, 6, crit); + + CPU_ON; + meanShiftProc_(src, dst[0], dst[1], 5, 6, crit); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::meanShiftProc(d_src, d_dst, d_dstCoor, 5, 6, crit); + WARMUP_OFF; + + GPU_ON; + ocl::meanShiftProc(d_src, d_dst, d_dstCoor, 5, 6, crit); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::meanShiftProc(d_src, d_dst, d_dstCoor, 5, 6, crit); + d_dst.download(ocl_dst[0]); + d_dstCoor.download(ocl_dst[1]); + GPU_FULL_OFF; + + vector eps(2, 0.); + TestSystem::instance().ExpectMatsNear(dst, ocl_dst, eps); + } +} + +///////////// remap//////////////////////// +PERFTEST(remap) +{ + Mat src, dst, xmap, ymap, ocl_dst; + ocl::oclMat d_src, d_dst, d_xmap, d_ymap; + + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + int interpolation = INTER_LINEAR; + int borderMode = BORDER_CONSTANT; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t t = 0; t < sizeof(all_type) / sizeof(int); t++) + { + SUBTEST << size << 'x' << size << "; src " << type_name[t] << "; map CV_32FC1"; + + gen(src, size, size, all_type[t], 0, 256); + + xmap.create(size, size, CV_32FC1); + dst.create(size, size, CV_32FC1); + ymap.create(size, size, CV_32FC1); + + for (int i = 0; i < size; ++i) + { + float *xmap_row = xmap.ptr(i); + float *ymap_row = ymap.ptr(i); + + for (int j = 0; j < size; ++j) + { + xmap_row[j] = (j - size * 0.5f) * 0.75f + size * 0.5f; + ymap_row[j] = (i - size * 0.5f) * 0.75f + size * 0.5f; + } + } + + remap(src, dst, xmap, ymap, interpolation, borderMode); + + CPU_ON; + remap(src, dst, xmap, ymap, interpolation, borderMode); + CPU_OFF; + + d_src.upload(src); + d_dst.upload(dst); + d_xmap.upload(xmap); + d_ymap.upload(ymap); + + WARMUP_ON; + ocl::remap(d_src, d_dst, d_xmap, d_ymap, interpolation, borderMode); + WARMUP_OFF; + + GPU_ON; + ocl::remap(d_src, d_dst, d_xmap, d_ymap, interpolation, borderMode); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::remap(d_src, d_dst, d_xmap, d_ymap, interpolation, borderMode); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 2.0); + } + + } +} +///////////// CLAHE //////////////////////// +PERFTEST(CLAHE) +{ + Mat src, dst, ocl_dst; + cv::ocl::oclMat d_src, d_dst; + int all_type[] = {CV_8UC1}; + std::string type_name[] = {"CV_8UC1"}; + + double clipLimit = 40.0; + + cv::Ptr clahe = cv::createCLAHE(clipLimit); + cv::Ptr d_clahe = cv::ocl::createCLAHE(clipLimit); + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 256); + + CPU_ON; + clahe->apply(src, dst); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + d_clahe->apply(d_src, d_dst); + WARMUP_OFF; + + ocl_dst = d_dst; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 1.0); + + GPU_ON; + d_clahe->apply(d_src, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + d_clahe->apply(d_src, d_dst); + d_dst.download(dst); + GPU_FULL_OFF; + } + } +} + +///////////// columnSum//////////////////////// +PERFTEST(columnSum) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + SUBTEST << size << 'x' << size << "; CV_32FC1"; + + gen(src, size, size, CV_32FC1, 0, 256); + + CPU_ON; + dst.create(src.size(), src.type()); + for (int j = 0; j < src.cols; j++) + dst.at(0, j) = src.at(0, j); + + for (int i = 1; i < src.rows; ++i) + for (int j = 0; j < src.cols; ++j) + dst.at(i, j) = dst.at(i - 1 , j) + src.at(i , j); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + ocl::columnSum(d_src, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::columnSum(d_src, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::columnSum(d_src, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 5e-1); + } +} diff --git a/src/perf_match_template.cpp b/src/perf_match_template.cpp new file mode 100644 index 0000000..8aafc98 --- /dev/null +++ b/src/perf_match_template.cpp @@ -0,0 +1,145 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" + +/////////// matchTemplate //////////////////////// +//void InitMatchTemplate() +//{ +// Mat src; gen(src, 500, 500, CV_32F, 0, 1); +// Mat templ; gen(templ, 500, 500, CV_32F, 0, 1); +// ocl::oclMat d_src(src), d_templ(templ), d_dst; +// ocl::matchTemplate(d_src, d_templ, d_dst, CV_TM_CCORR); +//} +PERFTEST(matchTemplate) +{ + //InitMatchTemplate(); + Mat src, templ, dst, ocl_dst; + int templ_size = 5; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + int all_type[] = {CV_32FC1, CV_32FC4}; + std::string type_name[] = {"CV_32FC1", "CV_32FC4"}; + + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + for(templ_size = 5; templ_size <= 5; templ_size *= 5) + { + gen(src, size, size, all_type[j], 0, 1); + + SUBTEST << src.cols << 'x' << src.rows << "; " << type_name[j] << "; templ " << templ_size << 'x' << templ_size << "; CCORR"; + + gen(templ, templ_size, templ_size, all_type[j], 0, 1); + + matchTemplate(src, templ, dst, CV_TM_CCORR); + + CPU_ON; + matchTemplate(src, templ, dst, CV_TM_CCORR); + CPU_OFF; + + ocl::oclMat d_src(src), d_templ(templ), d_dst; + + WARMUP_ON; + ocl::matchTemplate(d_src, d_templ, d_dst, CV_TM_CCORR); + WARMUP_OFF; + + GPU_ON; + ocl::matchTemplate(d_src, d_templ, d_dst, CV_TM_CCORR); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + d_templ.upload(templ); + ocl::matchTemplate(d_src, d_templ, d_dst, CV_TM_CCORR); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, templ.rows * templ.cols * 1e-1); + } + } + + int all_type_8U[] = {CV_8UC1}; + std::string type_name_8U[] = {"CV_8UC1"}; + + for (size_t j = 0; j < sizeof(all_type_8U) / sizeof(int); j++) + { + for(templ_size = 5; templ_size <= 5; templ_size *= 5) + { + SUBTEST << src.cols << 'x' << src.rows << "; " << type_name_8U[j] << "; templ " << templ_size << 'x' << templ_size << "; CCORR_NORMED"; + + gen(src, size, size, all_type_8U[j], 0, 255); + + gen(templ, templ_size, templ_size, all_type_8U[j], 0, 255); + + matchTemplate(src, templ, dst, CV_TM_CCORR_NORMED); + + CPU_ON; + matchTemplate(src, templ, dst, CV_TM_CCORR_NORMED); + CPU_OFF; + + ocl::oclMat d_src(src); + ocl::oclMat d_templ(templ), d_dst; + + WARMUP_ON; + ocl::matchTemplate(d_src, d_templ, d_dst, CV_TM_CCORR_NORMED); + WARMUP_OFF; + + GPU_ON; + ocl::matchTemplate(d_src, d_templ, d_dst, CV_TM_CCORR_NORMED); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + d_templ.upload(templ); + ocl::matchTemplate(d_src, d_templ, d_dst, CV_TM_CCORR_NORMED); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, templ.rows * templ.cols * 1e-1); + } + } + } +} \ No newline at end of file diff --git a/src/perf_matrix_operation.cpp b/src/perf_matrix_operation.cpp new file mode 100644 index 0000000..bb407c9 --- /dev/null +++ b/src/perf_matrix_operation.cpp @@ -0,0 +1,186 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" + +///////////// ConvertTo//////////////////////// +PERFTEST(ConvertTo) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] << " to 32FC1"; + + gen(src, size, size, all_type[j], 0, 256); + //gen(dst, size, size, all_type[j], 0, 256); + + //d_dst.upload(dst); + + src.convertTo(dst, CV_32FC1); + + CPU_ON; + src.convertTo(dst, CV_32FC1); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + d_src.convertTo(d_dst, CV_32FC1); + WARMUP_OFF; + + GPU_ON; + d_src.convertTo(d_dst, CV_32FC1); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + d_src.convertTo(d_dst, CV_32FC1); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 0.0); + } + + } +} +///////////// copyTo//////////////////////// +PERFTEST(copyTo) +{ + Mat src, dst, ocl_dst; + ocl::oclMat d_src, d_dst; + + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 256); + //gen(dst, size, size, all_type[j], 0, 256); + + //d_dst.upload(dst); + + src.copyTo(dst); + + CPU_ON; + src.copyTo(dst); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + d_src.copyTo(d_dst); + WARMUP_OFF; + + GPU_ON; + d_src.copyTo(d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + d_src.copyTo(d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 0.0); + } + + } +} +///////////// setTo//////////////////////// +PERFTEST(setTo) +{ + Mat src, ocl_src; + Scalar val(1, 2, 3, 4); + ocl::oclMat d_src; + + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 256); + + src.setTo(val); + + CPU_ON; + src.setTo(val); + CPU_OFF; + + d_src.upload(src); + + WARMUP_ON; + d_src.setTo(val); + WARMUP_OFF; + + d_src.download(ocl_src); + TestSystem::instance().ExpectedMatNear(src, ocl_src, 1.0); + + GPU_ON;; + d_src.setTo(val); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + d_src.setTo(val); + GPU_FULL_OFF; + } + + } +} \ No newline at end of file diff --git a/src/perf_moments.cpp b/src/perf_moments.cpp new file mode 100644 index 0000000..b53b451 --- /dev/null +++ b/src/perf_moments.cpp @@ -0,0 +1,105 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" +///////////// Moments //////////////////////// +PERFTEST(Moments) +{ + Mat src; + bool binaryImage = 0; + + int all_type[] = {CV_8UC1, CV_16SC1, CV_32FC1, CV_64FC1}; + std::string type_name[] = {"CV_8UC1", "CV_16SC1", "CV_32FC1", "CV_64FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j]; + + gen(src, size, size, all_type[j], 0, 256); + + cv::Moments CvMom = moments(src, binaryImage); + + CPU_ON; + moments(src, binaryImage); + CPU_OFF; + + cv::Moments oclMom; + cv::ocl::oclMat src_ocl(src); + WARMUP_ON; +#if CV_MAJOR_VERSION == 2 && CV_MINOR_VERSION == 4 && CV_SUBMINOR_VERSION == 6 + oclMom = ocl::ocl_moments(src, binaryImage); +#else + oclMom = ocl::ocl_moments(src_ocl, binaryImage); +#endif + WARMUP_OFF; + + Mat gpu_dst, cpu_dst; + HuMoments(CvMom, cpu_dst); + HuMoments(oclMom, gpu_dst); + + GPU_ON; +#if CV_MAJOR_VERSION == 2 && CV_MINOR_VERSION == 4 && CV_SUBMINOR_VERSION == 6 + oclMom = ocl::ocl_moments(src, binaryImage); +#else + ocl::ocl_moments(src_ocl, binaryImage); +#endif + GPU_OFF; + + GPU_FULL_ON; +#if CV_MAJOR_VERSION == 2 && CV_MINOR_VERSION == 4 && CV_SUBMINOR_VERSION == 6 + oclMom = ocl::ocl_moments(src, binaryImage); +#else + ocl::ocl_moments(src_ocl, binaryImage); +#endif + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(gpu_dst, cpu_dst, .5); + + } + + } +} diff --git a/src/perf_norm.cpp b/src/perf_norm.cpp new file mode 100644 index 0000000..fec8d73 --- /dev/null +++ b/src/perf_norm.cpp @@ -0,0 +1,87 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" + +///////////// norm//////////////////////// +PERFTEST(norm) +{ + Mat src1, src2, ocl_src1; + ocl::oclMat d_src1, d_src2; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + SUBTEST << size << 'x' << size << "; CV_8UC1; NORM_INF"; + + gen(src1, size, size, CV_8UC1, Scalar::all(0), Scalar::all(1)); + gen(src2, size, size, CV_8UC1, Scalar::all(0), Scalar::all(1)); + + norm(src1, src2, NORM_INF); + + CPU_ON; + norm(src1, src2, NORM_INF); + CPU_OFF; + + d_src1.upload(src1); + d_src2.upload(src2); + + WARMUP_ON; + ocl::norm(d_src1, d_src2, NORM_INF); + WARMUP_OFF; + + d_src1.download(ocl_src1); + TestSystem::instance().ExpectedMatNear(src1, ocl_src1, .5); + + GPU_ON; + ocl::norm(d_src1, d_src2, NORM_INF); + GPU_OFF; + + GPU_FULL_ON; + d_src1.upload(src1); + d_src2.upload(src2); + ocl::norm(d_src1, d_src2, NORM_INF); + GPU_FULL_OFF; + } +} \ No newline at end of file diff --git a/src/perf_opticalflow.cpp b/src/perf_opticalflow.cpp new file mode 100644 index 0000000..cea8bad --- /dev/null +++ b/src/perf_opticalflow.cpp @@ -0,0 +1,228 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" + +///////////// PyrLKOpticalFlow //////////////////////// +PERFTEST(PyrLKOpticalFlow) +{ + std::string images1[] = {"rubberwhale1.png", "basketball1.png"}; + std::string images2[] = {"rubberwhale2.png", "basketball2.png"}; + + for (size_t i = 0; i < sizeof(images1) / sizeof(std::string); i++) + { + Mat frame0 = imread(abspath(images1[i]), i == 0 ? IMREAD_COLOR : IMREAD_GRAYSCALE); + + if (frame0.empty()) + { + std::string errstr = "can't open " + images1[i]; + throw runtime_error(errstr); + } + + Mat frame1 = imread(abspath(images2[i]), i == 0 ? IMREAD_COLOR : IMREAD_GRAYSCALE); + + if (frame1.empty()) + { + std::string errstr = "can't open " + images2[i]; + throw runtime_error(errstr); + } + + Mat gray_frame; + + if (i == 0) + { + cvtColor(frame0, gray_frame, COLOR_BGR2GRAY); + } + + for (int points = Min_Size; points <= Max_Size; points *= Multiple) + { + if (i == 0) + SUBTEST << frame0.cols << "x" << frame0.rows << "; color; " << points << " points"; + else + SUBTEST << frame0.cols << "x" << frame0.rows << "; gray; " << points << " points"; + Mat ocl_nextPts; + Mat ocl_status; + + vector pts; + goodFeaturesToTrack(i == 0 ? gray_frame : frame0, pts, points, 0.01, 0.0); + + vector nextPts; + vector status; + + vector err; + + calcOpticalFlowPyrLK(frame0, frame1, pts, nextPts, status, err); + + CPU_ON; + calcOpticalFlowPyrLK(frame0, frame1, pts, nextPts, status, err); + CPU_OFF; + + ocl::PyrLKOpticalFlow d_pyrLK; + + ocl::oclMat d_frame0(frame0); + ocl::oclMat d_frame1(frame1); + + ocl::oclMat d_pts; + Mat pts_mat(1, (int)pts.size(), CV_32FC2, (void *)&pts[0]); + d_pts.upload(pts_mat); + + ocl::oclMat d_nextPts; + ocl::oclMat d_status; + ocl::oclMat d_err; + + WARMUP_ON; + d_pyrLK.sparse(d_frame0, d_frame1, d_pts, d_nextPts, d_status, &d_err); + WARMUP_OFF; + + GPU_ON; + d_pyrLK.sparse(d_frame0, d_frame1, d_pts, d_nextPts, d_status, &d_err); + GPU_OFF; + + GPU_FULL_ON; + d_frame0.upload(frame0); + d_frame1.upload(frame1); + d_pts.upload(pts_mat); + d_pyrLK.sparse(d_frame0, d_frame1, d_pts, d_nextPts, d_status, &d_err); + + if (!d_nextPts.empty()) + d_nextPts.download(ocl_nextPts); + + if (!d_status.empty()) + d_status.download(ocl_status); + GPU_FULL_OFF; + + size_t mismatch = 0; + for (int i = 0; i < (int)nextPts.size(); ++i) + { + if(status[i] != ocl_status.at(0, i)){ + mismatch++; + continue; + } + if(status[i]){ + Point2f gpu_rst = ocl_nextPts.at(0, i); + Point2f cpu_rst = nextPts[i]; + if(fabs(gpu_rst.x - cpu_rst.x) >= 1. || fabs(gpu_rst.y - cpu_rst.y) >= 1.) + mismatch++; + } + } + double ratio = (double)mismatch / (double)nextPts.size(); + if(ratio < .02) + TestSystem::instance().setAccurate(1, ratio); + else + TestSystem::instance().setAccurate(0, ratio); + } + + } +} + + +PERFTEST(tvl1flow) +{ + cv::Mat frame0 = imread(abspath("rubberwhale1.png"), cv::IMREAD_GRAYSCALE); + assert(!frame0.empty()); + + cv::Mat frame1 = imread(abspath("rubberwhale2.png"), cv::IMREAD_GRAYSCALE); + assert(!frame1.empty()); + + cv::ocl::OpticalFlowDual_TVL1_OCL d_alg; + cv::ocl::oclMat d_flowx(frame0.size(), CV_32FC1); + cv::ocl::oclMat d_flowy(frame1.size(), CV_32FC1); + + cv::Ptr alg = cv::createOptFlow_DualTVL1(); + cv::Mat flow; + + + SUBTEST << frame0.cols << 'x' << frame0.rows << "; rubberwhale1.png; "<calc(frame0, frame1, flow); + + CPU_ON; + alg->calc(frame0, frame1, flow); + CPU_OFF; + + cv::Mat gold[2]; + cv::split(flow, gold); + + cv::ocl::oclMat d0(frame0.size(), CV_32FC1); + d0.upload(frame0); + cv::ocl::oclMat d1(frame1.size(), CV_32FC1); + d1.upload(frame1); + + WARMUP_ON; + d_alg(d0, d1, d_flowx, d_flowy); + WARMUP_OFF; +/* + double diff1 = 0.0, diff2 = 0.0; + if(ExceptedMatSimilar(gold[0], cv::Mat(d_flowx), 3e-3, diff1) == 1 + &&ExceptedMatSimilar(gold[1], cv::Mat(d_flowy), 3e-3, diff2) == 1) + TestSystem::instance().setAccurate(1); + else + TestSystem::instance().setAccurate(0); + + TestSystem::instance().setDiff(diff1); + TestSystem::instance().setDiff(diff2); +*/ + + + GPU_ON; + d_alg(d0, d1, d_flowx, d_flowy); + d_alg.collectGarbage(); + GPU_OFF; + + + cv::Mat flowx, flowy; + + GPU_FULL_ON; + d0.upload(frame0); + d1.upload(frame1); + d_alg(d0, d1, d_flowx, d_flowy); + d_alg.collectGarbage(); + d_flowx.download(flowx); + d_flowy.download(flowy); + GPU_FULL_OFF; + + TestSystem::instance().ExceptedMatSimilar(gold[0], flowx, 3e-3); + TestSystem::instance().ExceptedMatSimilar(gold[1], flowy, 3e-3); +} \ No newline at end of file diff --git a/src/perf_precomp.hpp b/src/perf_precomp.hpp new file mode 100644 index 0000000..9997476 --- /dev/null +++ b/src/perf_precomp.hpp @@ -0,0 +1,512 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. + +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#pragma once + +#ifndef _VARIADIC_MAX +#define _VARIADIC_MAX 10 +#endif + +#include +#include +#include +#include +#include +#include +#include +#include "opencv2/core/core.hpp" +#include "opencv2/imgproc/imgproc.hpp" +#include "opencv2/highgui/highgui.hpp" +#include "opencv2/calib3d/calib3d.hpp" +#include "opencv2/video/video.hpp" +#include "opencv2/objdetect/objdetect.hpp" +#include "opencv2/features2d/features2d.hpp" +#include "opencv2/ocl/ocl.hpp" +#include "opencv2/ts/ts.hpp" + + +#define Min_Size 1000 +#define Max_Size 4000 +#define Multiple 2 +#define TAB " " + +using namespace std; +using namespace cv; + +void gen(Mat &mat, int rows, int cols, int type, Scalar low, Scalar high); +void gen(Mat &mat, int rows, int cols, int type, int low, int high, int n); + +string abspath(const string &relpath); +int CV_CDECL cvErrorCallback(int, const char *, const char *, const char *, int, void *); +typedef struct +{ + short x; + short y; +} COOR; +COOR do_meanShift(int x0, int y0, uchar *sptr, uchar *dptr, int sstep, + cv::Size size, int sp, int sr, int maxIter, float eps, int *tab); +void meanShiftProc_(const Mat &src_roi, Mat &dst_roi, Mat &dstCoor_roi, + int sp, int sr, cv::TermCriteria crit); + + +template +int ExpectedEQ(T1 expected, T2 actual) +{ + if(expected == actual) + return 1; + + return 0; +} + +template +int EeceptDoubleEQ(T1 expected, T1 actual) +{ + testing::internal::Double lhs(expected); + testing::internal::Double rhs(actual); + + if (lhs.AlmostEquals(rhs)) + { + return 1; + } + + return 0; +} + +template +int AssertEQ(T expected, T actual) +{ + if(expected == actual) + { + return 1; + } + return 0; +} + +int ExceptDoubleNear(double val1, double val2, double abs_error); +bool match_rect(cv::Rect r1, cv::Rect r2, int threshold); + +double checkNorm(const cv::Mat &m); +double checkNorm(const cv::Mat &m1, const cv::Mat &m2); +double checkSimilarity(const cv::Mat &m1, const cv::Mat &m2); + +int ExpectedMatNear(cv::Mat dst, cv::Mat cpu_dst, double eps); +int ExceptedMatSimilar(cv::Mat dst, cv::Mat cpu_dst, double eps); + +class Runnable +{ +public: + explicit Runnable(const std::string &runname): name_(runname) {} + virtual ~Runnable() {} + + const std::string &name() const + { + return name_; + } + + virtual void run() = 0; + +private: + std::string name_; +}; + +class TestSystem +{ +public: + static TestSystem &instance() + { + static TestSystem me; + return me; + } + + void setWorkingDir(const std::string &val) + { + working_dir_ = val; + } + const std::string &workingDir() const + { + return working_dir_; + } + + void setTestFilter(const std::string &val) + { + test_filter_ = val; + } + const std::string &testFilter() const + { + return test_filter_; + } + + void setNumIters(int num_iters) + { + num_iters_ = num_iters; + } + void setGPUWarmupIters(int num_iters) + { + gpu_warmup_iters_ = num_iters; + } + void setCPUIters(int num_iters) + { + cpu_num_iters_ = num_iters; + } + + void setTopThreshold(double top) + { + top_ = top; + } + void setBottomThreshold(double bottom) + { + bottom_ = bottom; + } + + void addInit(Runnable *init) + { + inits_.push_back(init); + } + void addTest(Runnable *test) + { + tests_.push_back(test); + } + void run(); + + // It's public because OpenCV callback uses it + void printError(const std::string &msg); + + std::stringstream &startNewSubtest() + { + finishCurrentSubtest(); + return cur_subtest_description_; + } + + bool stop() const + { + return cur_iter_idx_ >= num_iters_; + } + + bool cpu_stop() const + { + return cur_iter_idx_ >= cpu_num_iters_; + } + + int get_cur_iter_idx() + { + return cur_iter_idx_; + } + + int get_cpu_num_iters() + { + return cpu_num_iters_; + } + + bool warmupStop() + { + return cur_warmup_idx_++ >= gpu_warmup_iters_; + } + + void warmupComplete() + { + cur_warmup_idx_ = 0; + } + + void cpuOn() + { + cpu_started_ = cv::getTickCount(); + } + void cpuOff() + { + int64 delta = cv::getTickCount() - cpu_started_; + cpu_times_.push_back(delta); + ++cur_iter_idx_; + } + void cpuComplete() + { + cpu_elapsed_ += meanTime(cpu_times_); + cur_subtest_is_empty_ = false; + cur_iter_idx_ = 0; + } + + void gpuOn() + { + gpu_started_ = cv::getTickCount(); + } + void gpuOff() + { + int64 delta = cv::getTickCount() - gpu_started_; + gpu_times_.push_back(delta); + ++cur_iter_idx_; + } + void gpuComplete() + { + gpu_elapsed_ += meanTime(gpu_times_); + cur_subtest_is_empty_ = false; + cur_iter_idx_ = 0; + } + + void gpufullOn() + { + gpu_full_started_ = cv::getTickCount(); + } + void gpufullOff() + { + int64 delta = cv::getTickCount() - gpu_full_started_; + gpu_full_times_.push_back(delta); + ++cur_iter_idx_; + } + void gpufullComplete() + { + gpu_full_elapsed_ += meanTime(gpu_full_times_); + cur_subtest_is_empty_ = false; + cur_iter_idx_ = 0; + } + + bool isListMode() const + { + return is_list_mode_; + } + void setListMode(bool value) + { + is_list_mode_ = value; + } + + void setRecordName(const std::string &name) + { + recordname_ = name; + } + + void setCurrentTest(const std::string &name) + { + itname_ = name; + itname_changed_ = true; + } + + void setAccurate(int accurate, double diff) + { + is_accurate_ = accurate; + accurate_diff_ = diff; + } + + void ExpectMatsNear(vector& dst, vector& cpu_dst, vector& eps) + { + assert(dst.size() == cpu_dst.size()); + assert(cpu_dst.size() == eps.size()); + is_accurate_ = 1; + for(size_t i=0; i eps[i]) + is_accurate_ = 0; + } + } + + void ExpectedMatNear(cv::Mat& dst, cv::Mat& cpu_dst, double eps) + { + assert(dst.type() == cpu_dst.type()); + assert(dst.size() == cpu_dst.size()); + accurate_diff_ = checkNorm(dst, cpu_dst); + if(accurate_diff_ <= eps) + is_accurate_ = 1; + else + is_accurate_ = 0; + } + + void ExceptedMatSimilar(cv::Mat& dst, cv::Mat& cpu_dst, double eps) + { + assert(dst.type() == cpu_dst.type()); + assert(dst.size() == cpu_dst.size()); + accurate_diff_ = checkSimilarity(cpu_dst, dst); + if(accurate_diff_ <= eps) + is_accurate_ = 1; + else + is_accurate_ = 0; + } + + std::stringstream &getCurSubtestDescription() + { + return cur_subtest_description_; + } + +private: + TestSystem(): + cur_subtest_is_empty_(true), cpu_elapsed_(0), + gpu_elapsed_(0), gpu_full_elapsed_(0), speedup_total_(0.0), + num_subtests_called_(0), + speedup_faster_count_(0), speedup_slower_count_(0), speedup_equal_count_(0), + speedup_full_faster_count_(0), speedup_full_slower_count_(0), speedup_full_equal_count_(0), is_list_mode_(false), + num_iters_(10), cpu_num_iters_(2), + gpu_warmup_iters_(1), cur_iter_idx_(0), cur_warmup_idx_(0), + record_(0), recordname_("performance"), itname_changed_(true), + is_accurate_(-1), accurate_diff_(0.) + { + cpu_times_.reserve(num_iters_); + gpu_times_.reserve(num_iters_); + gpu_full_times_.reserve(num_iters_); + } + + void finishCurrentSubtest(); + void resetCurrentSubtest() + { + cpu_elapsed_ = 0; + gpu_elapsed_ = 0; + gpu_full_elapsed_ = 0; + cur_subtest_description_.str(""); + cur_subtest_is_empty_ = true; + cur_iter_idx_ = 0; + cur_warmup_idx_ = 0; + cpu_times_.clear(); + gpu_times_.clear(); + gpu_full_times_.clear(); + is_accurate_ = -1; + accurate_diff_ = 0.; + } + + double meanTime(const std::vector &samples); + + void printHeading(); + void printSummary(); + void printMetrics(int is_accurate, double cpu_time, double gpu_time = 0.0f, double gpu_full_time = 0.0f, double speedup = 0.0f, double fullspeedup = 0.0f); + + void writeHeading(); + void writeSummary(); + void writeMetrics(double cpu_time, double gpu_time = 0.0f, double gpu_full_time = 0.0f, + double speedup = 0.0f, double fullspeedup = 0.0f, + double gpu_min = 0.0f, double gpu_max = 0.0f, double std_dev = 0.0f); + + std::string working_dir_; + std::string test_filter_; + + std::vector inits_; + std::vector tests_; + + std::stringstream cur_subtest_description_; + bool cur_subtest_is_empty_; + + int64 cpu_started_; + int64 gpu_started_; + int64 gpu_full_started_; + double cpu_elapsed_; + double gpu_elapsed_; + double gpu_full_elapsed_; + + double speedup_total_; + double speedup_full_total_; + int num_subtests_called_; + + int speedup_faster_count_; + int speedup_slower_count_; + int speedup_equal_count_; + + int speedup_full_faster_count_; + int speedup_full_slower_count_; + int speedup_full_equal_count_; + + bool is_list_mode_; + + double top_; + double bottom_; + + int num_iters_; + int cpu_num_iters_; //there's no need to set cpu running same times with gpu + int gpu_warmup_iters_; //gpu warm up times, default is 1 + int cur_iter_idx_; + int cur_warmup_idx_; //current gpu warm up times + std::vector cpu_times_; + std::vector gpu_times_; + std::vector gpu_full_times_; + + FILE *record_; + std::string recordname_; + std::string itname_; + bool itname_changed_; + + int is_accurate_; + double accurate_diff_; +}; + + +#define GLOBAL_INIT(name) \ +struct name##_init: Runnable { \ + name##_init(): Runnable(#name) { \ + TestSystem::instance().addInit(this); \ +} \ + void run(); \ +} name##_init_instance; \ + void name##_init::run() + + +#define PERFTEST(name) \ +struct name##_test: Runnable { \ + name##_test(): Runnable(#name) { \ + TestSystem::instance().addTest(this); \ +} \ + void run(); \ +} name##_test_instance; \ + void name##_test::run() + +#define SUBTEST TestSystem::instance().startNewSubtest() + +#define CPU_ON \ + while (!TestSystem::instance().cpu_stop()) { \ + TestSystem::instance().cpuOn() +#define CPU_OFF \ + TestSystem::instance().cpuOff(); \ + } TestSystem::instance().cpuComplete() + +#define GPU_ON \ + while (!TestSystem::instance().stop()) { \ + TestSystem::instance().gpuOn() +#define GPU_OFF \ + ocl::finish();\ + TestSystem::instance().gpuOff(); \ + } TestSystem::instance().gpuComplete() + +#define GPU_FULL_ON \ + while (!TestSystem::instance().stop()) { \ + TestSystem::instance().gpufullOn() +#define GPU_FULL_OFF \ + TestSystem::instance().gpufullOff(); \ + } TestSystem::instance().gpufullComplete() + +#define WARMUP_ON \ + while (!TestSystem::instance().warmupStop()) { +#define WARMUP_OFF \ + ocl::finish();\ + } TestSystem::instance().warmupComplete() diff --git a/src/perf_pyramid.cpp b/src/perf_pyramid.cpp new file mode 100644 index 0000000..b98f531 --- /dev/null +++ b/src/perf_pyramid.cpp @@ -0,0 +1,132 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" + +///////////// pyrDown ////////////////////// +PERFTEST(pyrDown) +{ + Mat src, dst, ocl_dst; + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 256); + + pyrDown(src, dst); + + CPU_ON; + pyrDown(src, dst); + CPU_OFF; + + ocl::oclMat d_src(src); + ocl::oclMat d_dst; + + WARMUP_ON; + ocl::pyrDown(d_src, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::pyrDown(d_src, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::pyrDown(d_src, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, dst.depth() == CV_32F ? 1e-4f : 1.0f); + } + } +} + +///////////// pyrUp //////////////////////// +PERFTEST(pyrUp) +{ + Mat src, dst, ocl_dst; + int all_type[] = {CV_8UC1, CV_8UC4}; + std::string type_name[] = {"CV_8UC1", "CV_8UC4"}; + + for (int size = 500; size <= 2000; size *= 2) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + + gen(src, size, size, all_type[j], 0, 256); + + pyrUp(src, dst); + + CPU_ON; + pyrUp(src, dst); + CPU_OFF; + + ocl::oclMat d_src(src); + ocl::oclMat d_dst; + + WARMUP_ON; + ocl::pyrUp(d_src, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::pyrUp(d_src, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::pyrUp(d_src, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, (src.depth() == CV_32F ? 1e-4f : 1.0)); + } + } +} \ No newline at end of file diff --git a/src/perf_split_merge.cpp b/src/perf_split_merge.cpp new file mode 100644 index 0000000..cbe817f --- /dev/null +++ b/src/perf_split_merge.cpp @@ -0,0 +1,154 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// @Authors +// Fangfang Bai, fangfang@multicorewareinc.com +// Jin Ma, jin@multicorewareinc.com +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ +#include "perf_precomp.hpp" + +///////////// Merge//////////////////////// +PERFTEST(Merge) +{ + Mat dst, ocl_dst; + ocl::oclMat d_dst; + + int channels = 4; + int all_type[] = {CV_8UC1, CV_32FC1}; + std::string type_name[] = {"CV_8UC1", "CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j] ; + Size size1 = Size(size, size); + std::vector src(channels); + + for (int i = 0; i < channels; ++i) + { + src[i] = Mat(size1, all_type[j], cv::Scalar::all(i)); + } + + merge(src, dst); + + CPU_ON; + merge(src, dst); + CPU_OFF; + + std::vector d_src(channels); + + for (int i = 0; i < channels; ++i) + { + d_src[i] = ocl::oclMat(size1, all_type[j], cv::Scalar::all(i)); + } + + WARMUP_ON; + ocl::merge(d_src, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::merge(d_src, d_dst); + GPU_OFF; + + GPU_FULL_ON; + for (int i = 0; i < channels; ++i) + { + d_src[i] = ocl::oclMat(size1, all_type[j], cv::Scalar::all(i)); + } + ocl::merge(d_src, d_dst); + d_dst.download(ocl_dst); + GPU_FULL_OFF; + + TestSystem::instance().ExpectedMatNear(dst, ocl_dst, 0.0); + } + + } +} + +///////////// Split//////////////////////// +PERFTEST(Split) +{ + //int channels = 4; + int all_type[] = {CV_8UC1, CV_32FC1}; + std::string type_name[] = {"CV_8UC1", "CV_32FC1"}; + + for (int size = Min_Size; size <= Max_Size; size *= Multiple) + { + for (size_t j = 0; j < sizeof(all_type) / sizeof(int); j++) + { + SUBTEST << size << 'x' << size << "; " << type_name[j]; + Size size1 = Size(size, size); + + Mat src(size1, CV_MAKE_TYPE(all_type[j], 4), cv::Scalar(1, 2, 3, 4)); + + std::vector dst, ocl_dst(4); + + split(src, dst); + + CPU_ON; + split(src, dst); + CPU_OFF; + + ocl::oclMat d_src(size1, CV_MAKE_TYPE(all_type[j], 4), cv::Scalar(1, 2, 3, 4)); + std::vector d_dst; + + WARMUP_ON; + ocl::split(d_src, d_dst); + WARMUP_OFF; + + GPU_ON; + ocl::split(d_src, d_dst); + GPU_OFF; + + GPU_FULL_ON; + d_src.upload(src); + ocl::split(d_src, d_dst); + for(size_t i = 0; i < dst.size(); i++) + d_dst[i].download(ocl_dst[i]); + GPU_FULL_OFF; + + vector eps(4, 0.); + TestSystem::instance().ExpectMatsNear(dst, ocl_dst, eps); + } + + } +} diff --git a/src/precomp.cpp b/src/precomp.cpp new file mode 100644 index 0000000..2a49eb2 --- /dev/null +++ b/src/precomp.cpp @@ -0,0 +1,496 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. + +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other oclMaterials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors as is and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#include "perf_precomp.hpp" +#if GTEST_OS_WINDOWS +#ifndef NOMINMAX +#define NOMINMAX +#endif +# include +#endif + +// This program test most of the functions in ocl module and generate data metrix of x-factor in .csv files +// All images needed in this test are in samples/gpu folder. +// For haar template, haarcascade_frontalface_alt.xml shouold be in working directory +void TestSystem::run() +{ + if (is_list_mode_) + { + for (vector::iterator it = tests_.begin(); it != tests_.end(); ++it) + { + cout << (*it)->name() << endl; + } + + return; + } + + // Run test initializers + for (vector::iterator it = inits_.begin(); it != inits_.end(); ++it) + { + if ((*it)->name().find(test_filter_, 0) != string::npos) + { + (*it)->run(); + } + } + + printHeading(); + writeHeading(); + + // Run tests + for (vector::iterator it = tests_.begin(); it != tests_.end(); ++it) + { + try + { + if ((*it)->name().find(test_filter_, 0) != string::npos) + { + cout << endl << (*it)->name() << ":\n"; + + setCurrentTest((*it)->name()); + //fprintf(record_,"%s\n",(*it)->name().c_str()); + + (*it)->run(); + finishCurrentSubtest(); + } + } + catch (const Exception &) + { + // Message is printed via callback + resetCurrentSubtest(); + } + catch (const runtime_error &e) + { + printError(e.what()); + resetCurrentSubtest(); + } + } + + printSummary(); + writeSummary(); +} + + +void TestSystem::finishCurrentSubtest() +{ + if (cur_subtest_is_empty_) + // There is no need to print subtest statistics + { + return; + } + + double cpu_time = cpu_elapsed_ / getTickFrequency() * 1000.0; + double gpu_time = gpu_elapsed_ / getTickFrequency() * 1000.0; + double gpu_full_time = gpu_full_elapsed_ / getTickFrequency() * 1000.0; + + double speedup = static_cast(cpu_elapsed_) / std::max(1.0, gpu_elapsed_); + speedup_total_ += speedup; + + double fullspeedup = static_cast(cpu_elapsed_) / std::max(1.0, gpu_full_elapsed_); + speedup_full_total_ += fullspeedup; + + if (speedup > top_) + { + speedup_faster_count_++; + } + else if (speedup < bottom_) + { + speedup_slower_count_++; + } + else + { + speedup_equal_count_++; + } + + if (fullspeedup > top_) + { + speedup_full_faster_count_++; + } + else if (fullspeedup < bottom_) + { + speedup_full_slower_count_++; + } + else + { + speedup_full_equal_count_++; + } + + // compute min, max and + std::sort(gpu_times_.begin(), gpu_times_.end()); + double gpu_min = gpu_times_.front() / getTickFrequency() * 1000.0; + double gpu_max = gpu_times_.back() / getTickFrequency() * 1000.0; + double deviation = 0; + + if (gpu_times_.size() > 1) + { + double sum = 0; + + for (size_t i = 0; i < gpu_times_.size(); i++) + { + int64 diff = gpu_times_[i] - static_cast(gpu_elapsed_); + double diff_time = diff * 1000 / getTickFrequency(); + sum += diff_time * diff_time; + } + + deviation = std::sqrt(sum / gpu_times_.size()); + } + + printMetrics(is_accurate_, cpu_time, gpu_time, gpu_full_time, speedup, fullspeedup); + writeMetrics(cpu_time, gpu_time, gpu_full_time, speedup, fullspeedup, gpu_min, gpu_max, deviation); + + num_subtests_called_++; + resetCurrentSubtest(); +} + + +double TestSystem::meanTime(const vector &samples) +{ + double sum = accumulate(samples.begin(), samples.end(), 0.); + return sum / samples.size(); +} + + +void TestSystem::printHeading() +{ + cout << endl; + cout<< setiosflags(ios_base::left); + +#if 0 + cout<(0, 0) - 1.f); +} + + + +