/*
* This file is part of the LIRE project: http://www.semanticmetadata.net/lire
* LIRE is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* LIRE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with LIRE; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* We kindly ask you to refer the any or one of the following publications in
* any publication mentioning or employing Lire:
*
* Lux Mathias, Savvas A. Chatzichristofis. Lire: Lucene Image Retrieval –
* An Extensible Java CBIR Library. In proceedings of the 16th ACM International
* Conference on Multimedia, pp. 1085-1088, Vancouver, Canada, 2008
* URL: http://doi.acm.org/10.1145/1459359.1459577
*
* Lux Mathias. Content Based Image Retrieval with LIRE. In proceedings of the
* 19th ACM International Conference on Multimedia, pp. 735-738, Scottsdale,
* Arizona, USA, 2011
* URL: http://dl.acm.org/citation.cfm?id=2072432
*
* Mathias Lux, Oge Marques. Visual Information Retrieval using Java and LIRE
* Morgan & Claypool, 2013
* URL: http://www.morganclaypool.com/doi/abs/10.2200/S00468ED1V01Y201301ICR025
*
* Copyright statement:
* --------------------
* (c) 2002-2013 by Mathias Lux (mathias@juggle.at)
* http://www.semanticmetadata.net/lire, http://www.lire-project.net
*/
package net.semanticmetadata.lire.imageanalysis;
import junit.framework.TestCase;
import net.semanticmetadata.lire.utils.ImageUtils;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.Iterator;
import java.util.LinkedList;
/**
* Created by IntelliJ IDEA.
* User: mlux
* Date: 21.02.12
* Time: 16:32
* To change this template use File | Settings | File Templates.
*/
public class HashingTest extends TestCase {
private float[][] hashPlanes;
int bits = 16, dimensions = 256;
private int numFunctionBundles = 10;
float[][] hashFunction = new float[][]{
{-2.3669994f, -2.4511704f, -1.0853002f, 0.7469053f, 1.1352048f, 2.9403386f, -2.1648319f, -0.12990451f, -1.7774715f, -3.6269252f, 0.18855524f, 3.810844f, -2.5708804f, -1.3251858f, -1.4628608f, 3.1337934f, -0.72478795f, -2.4869814f, 0.99893045f, 3.1049457f, 3.9516664f, -3.8059773f, -1.4140356f, -2.2617373f, 3.0054297f, 0.9224353f, 1.009459f, 0.038924694f, -0.8683605f, 0.24560928f, -2.3135452f, -1.7967334f, -3.50162f, -1.9591618f, 2.1278734f, 3.2932072f, 2.6004443f, 3.2857704f, 3.5832376f, -0.08919263f, -2.5412552f, 3.98532f, -0.23739648f, -0.34359407f, -2.9476662f, -0.988816f, -1.3484144f, -0.33840728f, -2.809685f, 2.2428832f, 3.8806443f, 1.2460895f, 3.6012287f, 0.28204966f, 0.8051386f, 2.755426f, -2.1621838f, 2.1445074f, -0.60205364f, -2.1058939f, -3.3346314f, -1.2825043f, 1.2517715f, -1.6232259f, -1.0778043f, 3.402205f, -2.5664272f, -2.5222936f, 2.4110436f, -2.7554016f, 3.6288543f, -0.9332416f, -1.7993841f, -0.009683847f, 2.9588766f, 2.9777179f, -1.2133379f, 0.88226223f, -0.9508407f, 2.0628242f, 1.8824043f, -2.3477094f, -1.6270509f, 1.0450206f, -2.8216038f, -2.9587817f, 1.5886612f, -3.7126663f, 1.2322092f, -2.685791f, -3.4644153f, -1.1434302f, -0.28133798f, -1.3786209f, -1.2525167f, -3.2336621f, 2.5916162f, 2.6862907f, 2.7890177f, -3.957773f, 0.27868032f, 1.1878142f, 1.415235f, 2.2597694f, -0.14953351f, 0.3336444f, -0.5003209f, -3.5363665f, -0.82363033f, 3.5065832f, 3.8719978f, -2.1156845f, -3.600863f, -1.5025012f, -3.3487797f, -1.3736095f, 3.6308231f, 2.721686f, 2.3562045f, -1.4897838f, 1.5930252f, -3.0518186f, 2.0200586f, 1.5067859f, 3.994615f, -2.5456276f, -1.2693405f, 2.713235f, 0.7604909f, 2.1510777f, -1.5353084f, 0.574327f, -2.2048106f, 2.106069f, -2.2220397f, 1.0630584f, 3.7855053f, -3.973167f, 1.8600297f, -1.2086823f, -0.3834169f, -2.353832f, 0.6565571f, 0.52937174f, -0.70374227f, 0.5870409f, 3.208002f, 3.3707414f, 0.85272837f, 2.165926f, -0.9512892f, -3.213142f, 3.4909692f, -1.2733302f, 0.45567608f, -2.9263072f, -2.6364112f, -1.520267f, 0.5315943f, -3.7996254f, 2.632162f, 1.4544792f, -0.44784713f, 2.8276105f, -2.9346237f, 2.054987f, -2.2972116f, -0.72844553f, -1.7593625f, 1.8426728f, 2.2754774f, 2.44656f, 1.4861021f, 2.5518374f, 3.591422f, 3.328085f, -1.9795899f, -2.0229597f, 0.36081982f, 0.23481798f, -2.6822937f, 2.2540402f, -2.1137931f, -3.76309f, -2.4541504f, -2.8111625f, -2.5388212f, -3.7449906f, 3.9960241f, 0.672174f, -1.4883821f, 2.9226108f, -0.25772166f, 3.8496556f, 2.471848f, -3.95796f, 1.3398285f, 0.60047436f, 3.083467f, 0.47220898f, 1.1912775f, 3.0105271f, 3.7499104f, 1.544086f, 3.2802114f, 0.90852547f, 2.7751203f, -0.39235163f, -3.7080495f, 2.166521f, -0.24000525f, 2.0718794f, 1.7115407f, -0.6509304f, 1.1256142f, 0.30720234f, -3.6906102f, 3.4280767f, 3.677556f, 2.037547f, 2.4952536f, -1.3368218f, -3.679091f, 3.3570547f, -1.6583936f, -3.619676f, -2.5190756f, -3.7357502f, 1.6477289f, 3.2640367f, -0.5204551f, -2.3856916f, 1.2361617f, -0.08835459f, -2.9366279f, -2.352128f, -0.256505f, 3.780591f, 3.473936f, -3.237331f, -0.51224065f, -0.7072778f, -0.103547335f, -0.047988176f, 2.5650167f, -3.2576902f, 2.818563f, 1.3420563f, 0.14804125f, 2.7873216f, -3.2241428f, 0.5175228f, -1.9696858f, 0.68630886f, -0.8436916f, 3.8333864f},
{-2.2211556f, -3.9239278f, -0.81895876f, 1.6678567f, -2.570333f, -0.031912565f, 0.8741865f, -3.4202132f, -3.51984f, -1.2255244f, 3.7798715f, -0.4085455f, -0.9973538f, -2.4428697f, 3.3797193f, 0.3254795f, 2.024055f, -2.6735911f, 1.6095405f, 3.482442f, -2.113268f, 0.098621845f, 2.5692043f, -2.8464031f, -2.874204f, 2.5543628f, -2.534996f, 1.7208729f, 0.46876f, 0.5225229f, 0.019129753f, -2.3958306f, 2.8834329f, 2.1476712f, -0.9738157f, 1.873775f, 3.170453f, 1.4812622f, 0.43198252f, 1.7535391f, 3.4170885f, -3.630023f, 1.2551951f, 1.2982454f, 1.6992822f, -3.10271f, 3.867701f, 0.036450386f, 0.7392049f, 3.2671847f, 1.5948353f, 3.1278486f, 2.7959113f, -1.0982554f, -2.7079778f, 1.5920663f, -3.1130018f, 1.657156f, 3.4996028f, 2.423562f, -3.4905262f, -0.5545151f, -0.027025461f, -0.08484006f, -1.6516302f, -1.8176129f, -0.169523f, -2.7294736f, 1.031929f, -2.1362677f, 3.256764f, 3.5937319f, 3.812523f, -1.2930679f, 1.6447225f, 1.6018434f, -1.877245f, 3.675579f, -0.7456949f, -2.0856967f, 2.2765384f, 2.338807f, 3.9119596f, -1.4693241f, 3.1552186f, -2.1003923f, -1.0303535f, 1.1161351f, 2.5391574f, 2.359138f, -2.3122432f, -1.0281f, 3.8154812f, -1.8331237f, -1.5984583f, -2.924377f, -2.88698f, -3.6607065f, -3.7240074f, -3.6654453f, -0.51421666f, -1.0874863f, -2.8505874f, 0.2021184f, -2.4133902f, 1.7272592f, -3.0887651f, 2.0663447f, -0.6570339f, -0.072818995f, 0.054959774f, -1.6735764f, 0.46716022f, 3.184495f, 1.4923911f, -3.1685555f, -0.7964318f, 2.549644f, -1.5893345f, 1.3632154f, 0.53576183f, -0.04546261f, -2.10112f, 2.1028504f, -0.8532393f, -1.2182884f, 1.2664423f, 1.5286422f, 2.7459302f, 3.5445852f, -2.579432f, -1.0494633f, -2.05364f, -3.393216f, -2.634324f, -3.1056519f, 1.6968813f, -1.9986749f, 1.8327308f, -1.1933401f, -1.6568241f, -1.206732f, 2.241912f, 0.059172153f, 3.7127624f, -2.9377549f, -0.3527212f, -3.010934f, 3.1889381f, -1.5358977f, 3.0074382f, 3.7197733f, 0.55908823f, -1.5363123f, -2.9284918f, -2.2356539f, 0.49305916f, 0.71364784f, -0.6349888f, -3.0785663f, -2.17236f, -2.3131108f, 3.2056155f, -2.2683043f, 1.4034748f, 1.5531912f, -2.6260226f, -0.22971845f, 3.0210643f, 1.4232583f, 3.0102367f, 0.30882215f, -2.8471808f, 1.4663115f, -1.497963f, -1.6118023f, 0.3684349f, -0.9598563f, 1.5752516f, 0.10115337f, -0.99881625f, -3.1446412f, -3.5060937f, -0.108358145f, -2.596982f, -3.6716604f, 1.2211118f, -2.0644002f, -0.79329777f, -1.3397009f, -3.4118805f, -2.8243423f, -1.6665049f, 1.8125777f, -1.0360651f, -2.6598864f, -2.944776f, 1.4311686f, 1.6132307f, 3.2843018f, 1.2398958f, 1.9062595f, -2.1243796f, -0.74969864f, 3.9803162f, -3.8646045f, -0.50534487f, -2.8512492f, -1.8745177f, 3.191678f, 3.870233f, -2.2756648f, -0.19515252f, 1.9812312f, -3.2965922f, 0.47433233f, -1.1441534f, -1.8930266f, -2.5520911f, -2.5525827f, -1.8645933f, -1.4614522f, 0.17798758f, 3.557732f, -1.9835398f, 0.32108116f, -0.072473526f, 3.8070436f, -3.0591993f, 1.4382458f, -3.7493484f, 3.8156266f, -2.2800665f, 2.077917f, 3.6994028f, 2.3203173f, 0.34588385f, -1.0684705f, 1.1093397f, -1.1940055f, 1.3942323f, 3.7910495f, 2.0292535f, 2.1945672f, 3.6719742f, -3.4097095f, 3.3264894f, 1.5233474f, -0.41690207f, -3.8298883f, 3.9446769f, -3.19749f, 3.755095f, 3.4298582f, -3.0140038f, 3.7491436f},
{2.7899299f, 1.1602006f, 1.735404f, -0.14677835f, 2.5733042f, 2.7353625f, 1.9395695f, -0.76137733f, 2.3963704f, -0.02448368f, -3.401428f, -1.9598482f, -1.7856483f, 0.8729601f, 1.723733f, -3.4746819f, -1.3131504f, 2.5084863f, -2.0397367f, -1.0525553f, -0.78507805f, 1.3671722f, 3.6687174f, 1.1244946f, -2.9896646f, 2.3956318f, 2.0045662f, 2.9958076f, -3.6972947f, 1.5255876f, 3.7305007f, -3.0832376f, 3.1105423f, -3.97858f, -3.058594f, 2.2091808f, 3.5725546f, -1.10782f, 0.5772419f, -1.5068843f, 2.6558447f, -2.2586455f, -3.455607f, -1.4165399f, 3.1279712f, -3.1895156f, -2.5386434f, 0.24264908f, 1.4972687E-4f, 1.6055555f, 1.4899426f, -3.1614838f, -2.7808247f, 0.37789106f, -3.5915077f, 1.9641972f, 1.2059765f, 1.8640785f, -1.9710884f, 0.33476973f, -2.0909944f, -3.9276993f, -0.7453563f, -3.2168484f, -3.6390076f, 2.5352173f, 1.5220098f, 0.9355631f, 2.297904f, -1.6676066f, 0.062664986f, 1.1547046f, -1.780746f, -3.6819487f, 2.370224f, 3.5965848f, 3.3392296f, 0.37276125f, 3.4494252f, 0.7347655f, -3.801591f, -0.8695235f, 1.8715172f, 0.46359444f, 0.27615738f, -3.4848483f, 1.3548598f, -0.10019302f, -1.2358971f, -3.446024f, -0.4649546f, 3.2596998f, -1.2685943f, -2.6829205f, 2.784165f, -3.3031175f, 3.232843f, -3.5336196f, 3.384142f, -3.2565696f, 0.48104954f, 0.77904606f, -2.945613f, 3.005073f, -1.9754319f, 0.14386415f, 0.77932405f, -1.9811327f, 0.94366264f, -3.0883749f, -2.9233415f, -0.31039023f, 0.39617968f, 2.1134315f, -2.7074301f, 0.4790697f, -1.5839574f, -3.0563369f, -0.7946758f, -1.4700813f, -1.3127258f, 3.0371408f, 1.1641097f, -0.8359442f, -2.91323f, 0.4528389f, 2.1852164f, 0.7028456f, -1.8906629f, -2.0906842f, 0.872993f, 0.314579f, 3.8588462f, -0.30016065f, -2.2716784f, 3.6023035f, 3.1096401f, -0.15200281f, 1.3526711f, -0.097038984f, -2.9873343f, 2.4473987f, -0.74890614f, 1.7765985f, 3.3411002f, 1.7618804f, 2.3828511f, -2.0777774f, -1.2594311f, 0.5454488f, 1.3036604f, 1.7646794f, 0.269341f, -3.8260057f, -3.3111317f, -2.7852356f, 1.584229f, -2.4363637f, -3.777826f, 0.61256313f, 1.4482121f, -0.51663613f, 3.279828f, 1.621851f, -3.1938818f, 2.7524476f, 0.5355582f, -0.14881277f, -0.50497985f, -3.0540836f, 1.5567694f, -1.7648561f, 2.7263079f, -3.385797f, -2.3421016f, 0.716938f, 2.7967095f, -1.3441279f, 1.7220945f, -1.4684651f, 1.055851f, 3.3651614f, 1.3977265f, 0.39610386f, 2.9782553f, -1.1911252f, 1.0215211f, -0.8274672f, 3.2579932f, -0.43001413f, -1.18455f, 3.0745025f, -1.8354886f, 0.52811f, 1.3498015f, -2.750552f, -1.031527f, -1.7701712f, -3.0398235f, -2.4264607f, 1.0667672f, -1.465339f, 1.7514658f, -3.24437f, -3.4938552f, 1.6052732f, 0.017182827f, -0.64606476f, 2.9252577f, -2.0566432f, 1.347827f, 1.0670047f, -0.49480867f, -1.9446073f, 1.3972764f, 0.668385f, 2.3388858f, -2.5346491f, 2.2215137f, -3.7878392f, -2.2998347f, -3.8258288f, -2.7006946f, 2.6443882f, 2.0133963f, 3.298697f, 3.7897673f, 3.713242f, 3.8951125f, 3.505539f, -1.7229421f, 1.0785093f, -1.5407388f, -2.0118432f, -1.8022404f, 3.778884f, 3.1480284f, 3.118269f, 1.3418117f, -0.27669048f, -0.32947946f, -1.4645016f, 2.2631826f, 3.6304564f, 2.2018943f, -0.6780107f, -0.8682275f, -1.1517928f, 3.8158283f, -3.958467f, 3.503353f, -0.25714588f, 1.1935511f, -2.194444f, 0.6796622f, -3.144486f},
{1.9729586f, 3.1611395f, 3.776091f, 0.78108835f, -0.32835364f, 3.479042f, 0.30969858f, -3.2671046f, -2.0619829f, -2.3474727f, 2.065617f, 0.013930321f, -1.045078f, 1.3005872f, 1.1952176f, 3.123507f, 0.14061022f, 0.3019886f, -0.05528593f, 3.985855f, -3.1379213f, -0.63063717f, 2.1081972f, -2.2049403f, -1.3037813f, -0.49461365f, 3.2444172f, 2.2285361f, -3.155526f, -0.4341011f, 1.8919177f, 3.2890558f, -1.3729656f, -3.2123668f, 3.4624667f, -3.206861f, -0.4470961f, 3.0210252f, -1.8119788f, 2.5314546f, -1.717504f, 1.5414071f, -3.558218f, -3.6153307f, 2.8697124f, -0.30532455f, -1.0507855f, -3.813988f, 3.9907885f, -2.7336428f, 1.8502064f, 1.8796182f, -1.5625124f, -2.654197f, 3.2688675f, 1.5315471f, -2.0274534f, -0.4099567f, 0.9927702f, -3.9918387f, 2.7155871f, 3.174664f, -1.941246f, -1.3556161f, 2.548015f, 0.35187006f, 0.48772383f, -0.017845154f, 2.5957475f, 1.4187098f, 3.1061883f, -0.3327825f, 1.6689177f, 2.0312552f, -0.6624093f, -2.1498127f, 1.6080217f, -3.816657f, -0.9581928f, 2.9456592f, 2.8062801f, -3.1987143f, -1.0735111f, 3.3609276f, 2.7483044f, -1.2112098f, -1.2507553f, 3.8137035f, -3.774534f, 2.4891162f, -2.5250278f, 2.1160264f, -2.041315f, 0.9143348f, -3.2520475f, 3.8093762f, 2.6796613f, -2.2756498f, 0.48364305f, -0.20618248f, -3.7081165f, 0.8211627f, -2.9195855f, 2.1018004f, 2.5530734f, 0.55666494f, 0.69678164f, 1.22507f, -3.20898f, -0.064925194f, 2.2350063f, 2.9109468f, -2.5149157f, 0.8239207f, 3.1172466f, 3.1020422f, -1.8840365f, 1.0703082f, -0.3642509f, 2.701305f, 1.5066085f, 2.5520096f, -3.396106f, -2.8979158f, 2.9475164f, 1.5757256f, 0.23020649f, 2.9307294f, 0.719913f, 2.6676936f, -0.41723132f, -1.792958f, 1.2006769f, 0.6846123f, 1.706779f, 0.13571596f, 2.5531397f, -1.6943202f, -2.5966897f, 2.9997153f, -1.9217622f, 2.3493433f, -1.1273592f, 3.1343493f, 1.6207867f, -3.0088162f, -1.1291654f, 0.7186122f, 2.9959621f, -3.1578436f, -2.2764285f, 1.12818f, 3.2213974f, -2.0207677f, 1.4865284f, 1.8522549f, 1.4105968f, 2.4032946f, -0.26306748f, 0.48427296f, -0.4962945f, 3.0319529f, 0.926219f, 3.0542903f, -2.418038f, 2.2177577f, -3.0809627f, 1.9786882f, 3.332488f, -3.084897f, -1.7108395f, 1.160645f, 2.3003793f, -1.9980791f, -3.8618312f, 0.282629f, -1.1146274f, -0.104913f, 0.6480899f, 3.0899887f, 1.6106753f, 3.4812622f, -2.7255135f, 1.4725246f, -1.9881432f, 0.51771116f, -3.5681968f, -3.5912595f, 0.5640216f, 3.0404563f, 3.7180839f, 0.34528112f, 1.3857789f, 2.9499264f, 1.1715016f, -0.65811825f, -1.9711442f, -1.1729174f, 1.7464356f, -2.6800368f, 1.4824996f, 1.165812f, -0.85784364f, -0.98918223f, -1.4078662f, -0.40980744f, -0.68750906f, 0.7071495f, -1.587959f, -1.7419565f, 0.4301424f, -3.3204613f, 1.5821648f, -1.4650066f, 0.7746639f, 2.1272144f, 1.6394277f, -0.84389806f, 2.958393f, -3.2096653f, -2.7557225f, -2.5251055f, -3.9000373f, 2.8587842f, 0.6234913f, 3.0324707f, 3.0003242f, 2.5703087f, 2.1005697f, 0.56216764f, -2.9284797f, 2.8986225f, 1.4053779f, -0.3219297f, -0.2862234f, 2.9899411f, -0.4750111f, -1.1215317f, 3.031764f, 2.5141869f, -3.8219864f, 0.1281805f, -2.77377f, 1.8549557f, -2.4350047f, 1.166472f, -3.3075187f, -3.9298854f, -1.1322222f, -2.1798964f, 1.8025327f, -2.187263f, 2.0410562f, -0.016125917f, 0.54303265f, 3.909883f},
{1.7596326f, -1.4361877f, -2.3735938f, 2.054545f, 0.9552231f, -3.4389966f, 2.3879547f, -1.9261043f, -1.8030415f, 3.6068392f, -1.2730343f, -1.5052154f, 2.2400427f, 1.6432958f, 0.5452113f, 3.635244f, 2.3873506f, 0.074652195f, -3.4184911f, 1.2085743f, 0.87904406f, 3.5998845f, -2.7636614f, 3.4343963f, -0.6543839f, -0.9322312f, 0.9258294f, -2.0911345f, 1.4300652f, 1.0795531f, 2.6997304f, 3.99406f, 0.005235672f, 3.6968603f, -2.696705f, 2.2443624f, -0.017343998f, -0.50469875f, 2.5583267f, -1.6045284f, 2.5295258f, -0.66290855f, -1.1160538f, -0.3005073f, -0.4191835f, 0.61877203f, 2.9729376f, 3.8973618f, -1.1462393f, -3.617049f, -3.915132f, -2.1223192f, -0.8576844f, 0.5657964f, -1.887533f, 2.078846f, -0.5104964f, -2.2151818f, 1.5230756f, 1.9491682f, 1.9058423f, -2.5457034f, 2.4722805f, 3.2874923f, 3.6223898f, -2.3514805f, -2.167827f, 2.04464f, 3.4372392f, -3.9841921f, -3.4280343f, 3.1738124f, 3.5346212f, -0.82087636f, -2.1259675f, -2.6241045f, 1.2260671f, -1.5581422f, -3.4362612f, 1.093431f, 2.3834162f, 2.2502217f, -3.1232607f, 3.8648252f, -2.0962477f, -3.253537f, -3.7172546f, -3.8418207f, 2.3666668f, 0.8799515f, -1.9699407f, 2.0619369f, -3.8854327f, -0.0740118f, -3.729495f, -1.2826357f, 2.3070517f, 0.89500284f, -0.9303248f, 0.13567924f, 1.0706902f, 3.197617f, 0.30275154f, 1.0504661f, -2.3141408f, -1.9361327f, -2.618558f, -3.2861762f, 0.8225994f, 0.5976882f, -2.0470834f, -2.9474924f, 2.157763f, 2.9805737f, 1.1569123f, -1.6418622f, 0.27604818f, 0.2211442f, 1.7225094f, -1.3066468f, -0.42218995f, 0.98016167f, -3.8686192f, 0.45361757f, 2.9868731f, 3.3833427f, 1.2696381f, -0.9678204f, 1.5718603f, 1.3671427f, 3.435699f, 2.2935143f, -3.2351174f, -1.014519f, 3.2669291f, 1.568377f, 3.6817374f, -3.7617965f, -1.9068916f, 1.141418f, 1.1180787f, 2.3648858f, -0.5799093f, -2.289878f, 3.1163344f, 3.1803918f, 3.6923451f, 0.051635742f, -3.4315393f, 1.9114141f, 3.1783657f, 0.1418786f, 3.1399279f, 0.12604523f, 0.7682605f, 2.229125f, -2.1293392f, -1.2687814f, 1.6681371f, 1.8720741f, 3.1289468f, 2.6457057f, 0.4212165f, -1.289774f, -0.83533907f, -1.3608751f, -0.61907864f, -3.2577994f, -0.67154956f, -0.039726257f, -3.2935061f, -1.8545547f, 1.0938439f, 1.7608738f, -3.8529897f, -0.8214066f, -0.66043615f, 3.9536505f, 1.3249779f, -2.534459f, 3.9196239f, -2.9735236f, -0.073994875f, 2.9681334f, -0.630882f, 3.4671164f, -1.8536446f, 2.2121553f, -3.3360903f, 2.8359313f, 0.94549656f, -3.1608717f, 3.2727485f, 2.156702f, 1.0960884f, -0.68574667f, -1.6893482f, -2.8214424f, 3.719139f, -3.371385f, -3.5772984f, 0.19479322f, 0.9374018f, 3.091608f, 1.0977192f, -1.5128131f, -0.52463245f, -0.18265867f, -2.5684042f, -1.9027743f, -3.5204554f, 1.2665882f, 3.9303603f, 0.5084734f, 3.5280137f, 2.213674f, 0.76339245f, -1.04288f, 3.7435684f, -2.2345042f, -2.052508f, 2.4705648f, -3.8799398f, 2.56768f, 1.2628217f, 3.366702f, 2.6168756f, -0.9092934f, 0.2720766f, 1.8293853f, -0.72820425f, 2.8966327f, -2.3654842f, 1.308363f, -1.4722114f, 1.044858f, 1.9768271f, 2.874786f, -3.83539f, -1.6968005f, 1.9031005f, -0.70379233f, 2.6713867f, 2.5883412f, 2.2964935f, 0.47780275f, 1.5916848f, 0.06754875f, 3.8854923f, 3.0493417f, 0.317863f, 3.6113415f, -0.88201666f, -3.7397165f, 2.0068316f, 1.7946358f},
{1.7066531f, -2.021856f, 2.7346525f, 1.4016805f, -0.22043514f, 2.4681234f, -2.2972806f, 0.39791536f, 3.3900523f, 3.7647824f, 0.2535777f, 2.5897093f, -1.7895997f, -1.1706314f, -2.3502483f, 1.700727f, 2.5540848f, 1.3192139f, -3.9857364f, -2.648497f, 2.441661f, 1.6784263f, 3.526834f, -1.5633914f, -2.754302f, -3.6080775f, -2.0849254f, -3.348397f, -1.4795232f, -1.3723533f, -2.5247107f, -1.5702147f, 2.942473f, -1.8753493f, 0.3028183f, 3.3065643f, 2.8579655f, 0.06751013f, -1.8928344f, -1.2629166f, -3.2455835f, -3.1796374f, -3.06753f, -2.34945f, -2.9574056f, -3.223317f, 3.2991881f, 3.5325208f, 3.8567057f, 3.2136989f, -3.271832f, -3.415771f, -2.849873f, -1.0768149f, 0.30360985f, 1.5158224f, 3.1846428f, -2.476829f, -0.123275995f, -1.2117765f, -0.41860533f, -2.2620804f, 1.7071986f, -3.3738878f, 3.4220676f, -1.43366f, -2.2150898f, -1.1176426f, 3.4591594f, -2.8581839f, 3.769628f, 3.842031f, 2.3144732f, 1.2192373f, -1.5682414f, -0.68804574f, -0.38469815f, 0.6078396f, -2.3274927f, 3.8495297f, 0.33808136f, -3.4987283f, 0.6471348f, -1.2575607f, 2.199593f, 0.5391102f, -1.7896948f, -3.6414125f, 1.7561259f, 2.566875f, 2.8478289f, 1.7434883f, 0.94130087f, 3.444386f, 0.454422f, -2.1498928f, 2.0935917f, -3.114863f, -2.2375836f, 0.54397964f, 2.094874f, -1.8078392f, 0.9216542f, -0.46576285f, 3.061658f, 1.8886766f, 2.6761394f, 1.6389971f, 0.100961685f, 0.62462425f, -2.2216988f, -0.69863486f, 1.9631057f, 2.373003f, 0.72705746f, -3.969868f, 3.9940143f, -2.1872637f, -1.3888268f, -0.55295753f, 0.60992384f, -1.0723851f, -1.2152836f, -2.119662f, -3.4122858f, 1.2336617f, 2.2967358f, -0.047918797f, 0.78437996f, -0.3199122f, 1.4425869f, -1.6354153f, 2.469493f, -3.8481777f, 3.4996538f, 3.0990782f, 3.2747917f, 2.634399f, -1.3444755f, 3.4975638f, 2.8353744f, 0.48481035f, -1.6680193f, -0.7933855f, -2.4827409f, -1.1152589f, 2.5534978f, -1.2803054f, -2.8035934f, 0.43541288f, 3.7042365f, 1.2623801f, 2.8746037f, -3.0139244f, 2.9628367f, -2.9773183f, 1.9879193f, -3.8289948f, 0.8996377f, -1.7635238f, 0.58376217f, -1.2373288f, 1.1662483f, 1.3958721f, 2.1128697f, 0.8315506f, 3.9027162f, 2.856141f, -2.5971096f, 2.835884f, 3.4328542f, 2.3746643f, 1.4505134f, -1.85253f, -0.9864142f, 3.6231532f, -0.010577917f, 2.1524239f, 1.8494992f, -2.527783f, 0.3616643f, 1.9486189f, 0.27910137f, 0.85515976f, 1.0403342f, -0.20564103f, 3.9845748f, -2.7242913f, 2.2217817f, 2.845632f, 3.2721634f, -3.4678204f, 0.22587252f, -2.647889f, -1.0843856f, 0.98840094f, 1.0131412f, -2.6351194f, -2.2495816f, 1.7295356f, -3.0520196f, 0.14168453f, -2.848089f, -1.8012538f, 0.00733757f, 0.81828976f, 1.7256002f, -0.58154154f, -2.0453134f, -2.4526105f, 3.9833999f, -0.342196f, 1.5693698f, 3.1892729f, 1.4747696f, 2.415619f, -3.1582987f, -1.2287025f, 3.7870622f, -2.153798f, -1.885443f, -2.6839728f, -3.9753027f, -3.7371645f, -3.5275354f, -1.7293105f, 2.8221002f, 0.11189985f, -3.7504613f, 2.6534438f, 2.6406398f, -1.1817937f, 3.3479085f, 3.16474f, -3.95487f, -0.8399949f, -3.8713958f, 1.8948803f, 1.8507614f, -1.6600802f, -3.0428293f, 0.8916917f, -2.523357f, 3.6758885f, 2.0566063f, -2.2649531f, 2.5374517f, -2.1560118f, -0.859483f, 3.3977652f, 3.6499906f, -2.1371512f, -1.6302936f, -0.94474506f, 1.6267843f, 3.5171576f},
{2.4957223f, 2.1390586f, 1.6741328f, -3.3244176f, 2.6252007f, 3.8122807f, -1.0926256f, -3.033754f, -1.1408436f, -1.8223121f, -0.55858755f, -2.4693007f, -1.8683195f, -0.087910175f, -2.490124f, -2.914847f, -1.1071723f, 1.65341f, 1.5115938f, -0.7244582f, -2.1492286f, -0.650321f, 2.5783782f, -0.67919993f, -0.19136524f, 0.91199064f, 0.20342493f, -2.8034444f, -2.2982926f, 2.896275f, 0.66494465f, -1.880758f, -3.7389266f, -0.42844605f, -2.5750344f, 0.8484583f, 3.2999868f, 2.6151538f, 0.37854338f, -3.666793f, 3.4396515f, -2.191824f, 2.7739382f, 3.4854603f, -3.8386421f, 3.487317f, 0.81962967f, 3.3723125f, -0.607738f, -3.8580368f, 3.4393468f, 1.8757892f, 3.4023886f, -0.5717149f, -3.668386f, 1.8772054f, -0.3892398f, -1.9951298f, -0.56438684f, -0.71924114f, -3.0311327f, 0.97725344f, 0.10048294f, 0.69887877f, -1.0899992f, -2.6284943f, -0.2995112f, -1.6203554f, -1.5767121f, -2.0601387f, -0.8661928f, -2.0355854f, -2.3684192f, 3.734177f, -3.4120212f, 0.921608f, -0.67733765f, -1.7341776f, 3.1504006f, 0.010402679f, 3.2035394f, -1.2965784f, 2.287541f, 0.88592005f, -2.7820807f, -1.5573282f, -0.08813143f, 3.9652824f, -3.9127357f, 0.51528025f, 0.7008023f, -0.0682621f, 1.3061347f, -1.3131256f, -0.4726956f, -2.2381344f, 3.1428566f, -1.2734475f, -1.692956f, 3.9186816f, -0.23316002f, 2.2135468f, 0.2623787f, 1.36128f, -0.5557971f, 3.3792982f, -0.45129156f, 1.27946f, 2.8136683f, 3.8660421f, -1.6159267f, -1.0304081f, 1.5750008f, -1.0841801f, -1.7318265f, -1.974199f, -2.5074215f, -0.6133511f, -1.4276898f, -1.9716482f, -2.5630043f, 3.1253881f, -1.2729518f, 2.1689277f, -3.7420874f, 0.6096535f, -0.57027507f, -3.2396803f, -0.39832592f, 1.4039531f, 1.7392354f, -3.664159f, 3.3575373f, 3.858014f, 2.6208344f, -3.9483888f, -0.76334f, 0.6080966f, -2.550982f, 3.3626466f, -2.941689f, -3.1751003f, 0.1718483f, 1.4515243f, -0.36192608f, 0.7844691f, 0.28540945f, -0.35381126f, 3.7431421f, 3.221342f, 0.46237803f, 3.071288f, -1.5999057f, -2.9440331f, 3.6240287f, 1.0352321f, -2.089128f, -1.52875f, 3.4402847f, 3.1629896f, -2.7470214f, -2.054101f, -2.3122573f, 0.04244232f, -3.8897572f, 3.7350383f, -2.4090712f, 3.1599264f, 0.600791f, 0.42138958f, -3.7826736f, 3.1584215f, 2.839198f, 3.5431185f, -2.807942f, -0.04036784f, -2.2099135f, -0.06273079f, 3.4433956f, 3.0490427f, -3.5592363f, -1.6794953f, -3.614406f, 3.2308316f, -1.8591988f, 3.7617068f, -1.1091421f, 2.4173336f, 1.026761f, 1.0837803f, -1.4024405f, -0.47442985f, -2.2293973f, 1.8648272f, 3.5471334f, 0.31116247f, -3.5393965f, -2.4083202f, 1.8374052f, -1.0222328f, -0.75605583f, 3.6515675f, -3.074606f, -2.3420234f, -3.5695758f, 3.2305355f, -1.5920238f, -1.6305511f, -0.9229219f, 2.8200226f, 0.55407333f, 0.807837f, 2.6437855f, -0.08416867f, 1.5573759f, 0.34590244f, -3.8697262f, -1.373472f, -2.5761042f, 3.8660097f, 1.1752214f, 2.2911282f, 1.6039743f, -1.4389887f, 3.9184966f, 3.8387327f, -1.076324f, -3.4036489f, 0.99785995f, 0.5055957f, -3.934191f, 0.53400993f, 3.871789f, 3.657908f, -3.2038648f, -1.3232484f, -3.2696195f, 0.85141087f, 0.32563162f, 1.9989209f, 2.576613f, -0.10825539f, 3.644991f, 3.087873f, 3.6305513f, 3.5422692f, 3.3628507f, -3.4720879f, -1.9706028f, -3.3411078f, 3.5245628f, 1.4164419f, 2.866599f, -1.0857401f, 3.0836163f, 2.2098336f},
{-2.0664585f, 1.9064808f, -3.8568492f, 1.8543401f, -2.902339f, 1.3303514f, 1.7803006f, 1.1651788f, 3.0711288f, 1.0218854f, 0.21142912f, 0.6747489f, 2.3945699f, -1.9302566f, -3.7483783f, 1.678721f, -1.2194071f, -3.1800215f, 3.4671154f, -2.0334082f, -3.4677825f, -3.516668f, -0.88533473f, 2.7310753f, -0.42840314f, -3.812884f, 0.9071517f, -1.5914695f, -2.315244f, 2.6965356f, 1.8400455f, 2.7104402f, 1.9083629f, 1.6631188f, 0.7586646f, 3.8637576f, 1.5548754f, -0.8592644f, 0.041466713f, -3.9142418f, -1.8072865f, -3.7575126f, -0.28006482f, -1.4231558f, 2.9684172f, -1.8054175f, 3.5509233f, -0.17744088f, -1.0219309f, -0.3238945f, 3.002645f, 1.7538877f, 1.9655676f, 3.2164106f, 3.8107991f, 1.3227239f, -3.5543494f, -3.445316f, -1.29336f, 0.30720615f, 0.4198842f, -1.7509797f, 1.114109f, 1.6694269f, -3.8258595f, 2.4551911f, -1.9415381f, 0.54584074f, -2.783596f, 1.678071f, -3.7758656f, 1.9585047f, -1.7659473f, 0.43152285f, -0.9550979f, -0.40689874f, 0.020084381f, -2.8746607f, -3.0952938f, -1.5025027f, 2.6380548f, 2.130659f, -3.0271764f, -0.6875818f, 1.6658235f, -3.1419125f, 3.8923788f, -1.3463819f, -3.8214986f, 1.8155594f, -0.51349807f, 3.5227427f, -0.7986829f, -1.0042002f, -1.1582484f, -0.8681009f, -0.31657553f, 1.5760489f, -2.4262629f, -2.715252f, -0.38600707f, 1.7955275f, -1.2248185f, -1.5352387f, 0.7222271f, 0.0089383125f, -1.9080167f, -2.9609177f, -1.7267201f, 0.2970996f, 3.5681448f, -2.5057397f, -1.2076623f, -1.3513637f, 1.3457503f, -1.6220796f, -1.8805416f, -3.3905525f, 1.0014887f, -0.37173963f, 0.018071175f, 2.4294987f, 1.2465229f, 2.2310696f, 3.630343f, 1.1192894f, 3.911831f, 0.65177965f, 0.39294386f, 0.46116304f, -0.4135518f, -1.7521284f, -2.4029546f, 3.9034333f, -0.028648376f, -0.12523293f, -1.4032993f, 3.398127f, 3.957048f, 2.1561613f, -1.2599258f, 1.6259379f, 0.6282315f, 2.3975492f, 1.418293f, -0.31518817f, -3.1558053f, -2.12048f, -3.8029907f, -0.79860854f, 1.7389836f, 0.27520657f, 2.8160706f, -1.0426378f, 1.4306087f, -2.805917f, -1.0869839f, 3.5055494f, -1.5760722f, 2.362125f, -0.35357714f, -3.1165614f, 3.6371284f, -0.2938509f, -0.034564734f, -3.58541f, -1.3229353f, 0.61797285f, -2.9078646f, 1.7212458f, 3.9339943f, -2.0681634f, 1.8537097f, -3.5457716f, -1.7384105f, 2.6563525f, -1.178304f, 0.87904835f, 2.4534068f, -1.7399552f, 2.7858896f, 0.33994865f, 1.4223013f, -1.6826212f, 2.9108138f, 3.7564282f, 2.9346023f, -1.4200382f, -2.007029f, -2.3104038f, -2.0538406f, 2.045435f, 2.5573902f, 3.1485252f, 3.0326986f, 1.3543773f, -3.8976815f, -1.8104177f, 1.1022301f, 2.853351f, 0.62120104f, 3.494522f, -3.4774399f, -1.079956f, -3.3985846f, -3.504043f, -3.007717f, -0.34574008f, 1.0195336f, 2.2516108f, -1.0710688f, -2.2036614f, -3.5767994f, 2.151589f, 1.8432765f, -2.257621f, -1.989969f, -3.3242955f, -1.8859081f, -1.2165239f, -0.31576633f, -0.19928598f, 1.7729917f, -3.7960324f, 2.391994f, 2.2901316f, -2.645719f, 3.631524f, -1.3930545f, 2.9820929f, -0.4399402f, -1.9602897f, 1.6573896f, -0.6764288f, 0.43613863f, 1.0614672f, -0.34278226f, -1.2179646f, 2.9496331f, -3.2202246f, 1.122817f, -2.601522f, -1.69558f, -1.0804286f, 2.9285455f, -1.371465f, -0.97404885f, -0.6272001f, -0.92632127f, 2.7512407f, 2.7922268f, 3.2463021f, -3.1959655f, -3.4922302f, 1.1830525f, 3.1300497f},
{-1.0481875f, 2.2653341f, -1.0349905f, -0.9589591f, -0.072524786f, -2.1157866f, 1.2248793f, -1.4939942f, 3.617827f, 0.5987067f, 1.6095881f, -2.4961476f, 0.5147538f, -3.3943872f, -2.8739734f, -0.50337267f, 2.7193952f, -3.313345f, 3.3994436f, 0.53555393f, -2.9631584f, 3.0740757f, -3.015612f, 1.4365377f, -1.8032453f, 3.901442f, -3.7324724f, -0.7226653f, 2.3056207f, -3.0354767f, -2.3030567f, -0.023610115f, 2.9566684f, -3.8501048f, 1.5178437f, -2.5288246f, 2.9937859f, -0.2282424f, 2.8899422f, -0.9783461f, -2.2539144f, 0.1902523f, -1.7929549f, -3.5776794f, -3.3799164f, 0.46738863f, 2.6347327f, 1.4140835f, 1.2567663f, -3.5505128f, 1.3273039f, 0.34504938f, -1.9688683f, -2.452123f, -0.519516f, 2.137107f, 2.4921093f, -3.3776202f, -0.67829895f, -1.127002f, -2.5889316f, -1.245059f, -0.66494846f, -2.1736073f, 2.4274387f, -3.6664293f, -1.5366175f, -2.4847164f, -2.149712f, -2.250427f, -0.2747593f, -3.633157f, -2.0050035f, -0.85614395f, -0.37026167f, 0.83967876f, -1.4954963f, -2.979076f, 1.9677114f, -3.6427383f, -0.5751085f, -1.8180299f, -0.99715185f, -0.83591485f, -0.6246028f, -3.6887026f, 3.7817802f, -3.7760515f, -2.0267415f, 3.683106f, 2.22745f, 3.53756f, 1.7440963f, 3.8385081f, 2.8753638f, -1.2355318f, 3.068871f, -1.2845755f, 3.5576735f, -0.20785666f, -3.7112625f, 1.5968552f, -3.9646807f, 2.9028473f, -2.0905373f, 3.3758016f, 3.523799f, -1.5532665f, -3.0826423f, -1.9820437f, 0.25342894f, 0.43744373f, 0.53900576f, -2.2639356f, -3.3497207f, -0.7557335f, -3.6526287f, -0.7273035f, -3.5807223f, -2.437253f, 3.4371948f, -0.17903519f, -1.2437127f, 3.1034446f, 1.4628773f, -3.5044594f, 2.1112785f, 2.9463472f, -1.3476086f, -3.1008584f, 1.3700285f, -1.7337348f, -3.5189521f, -3.787542f, 2.0170875f, -1.8576622f, 1.5092711f, -1.6316788f, -1.211925f, 1.4226027f, 3.9588504f, 3.2537093f, 2.514668f, -3.877613f, 3.9224315f, 0.51600695f, 3.3109698f, -3.4069116f, -0.32864904f, 3.4327512f, -1.0547528f, -0.29426074f, -1.6527975f, -0.56309557f, -1.8136513f, 0.5515423f, -0.60714936f, 3.2725f, -1.8905828f, 1.6693921f, -0.60107875f, -1.611661f, 3.7908335f, -2.4317935f, -2.387898f, 2.0602078f, 0.51763105f, 2.319697f, 0.171906f, -2.135092f, 2.5819426f, 0.25502968f, 0.21285915f, -2.4877923f, 0.9263425f, -1.6933634f, 2.2893906f, -1.3263767f, -1.6487265f, -0.70575166f, 3.1510086f, 0.32976627f, 3.691043f, 2.46203f, -3.284332f, 2.290791f, -0.6897955f, -1.1684747f, 3.1595354f, 2.9273014f, 3.4674382f, -3.55709f, -1.6383128f, 2.78188f, -3.4606366f, 0.31488323f, 0.5125661f, 1.6142154f, 3.7920256f, -0.038671017f, -0.4846413f, -1.4343712f, 3.333119f, -0.4393072f, 3.8797474f, -2.4884117f, -3.9266913f, 2.3818398f, -2.8721826f, -1.6963584f, -1.0296609f, -0.17204142f, 1.3022065f, -0.5150142f, -0.47508502f, 0.46790218f, 2.9868927f, -2.80328f, -1.5573277f, -2.3178415f, -0.67865753f, -1.6253688f, 0.57184935f, -3.9415352f, 3.8090339f, -2.0308156f, -0.32840633f, -3.5701177f, 2.2917004f, 3.8041887f, 0.26114845f, 1.4559736f, 0.28094387f, 0.82243633f, 1.7454748f, -0.09447861f, -2.0908237f, -3.1505868f, -3.7918222f, -1.692944f, 0.08217096f, 0.63900375f, 1.707921f, -2.608741f, 0.98580647f, -2.152091f, -0.39017868f, -2.24287f, 1.9199066f, -0.28167105f, -0.5713711f, 0.45161247f, 1.5023866f, 2.6312556f, -2.144182f, -0.3398099f},
{1.6072369f, -1.6744561f, 2.0880117f, 2.4637742f, 0.9701729f, -1.5392554f, -0.7305076f, 2.6250181f, -2.7838907f, -0.66551876f, -2.1931524f, -2.3749948f, 3.1329184f, 0.94798183f, 2.5091286f, 2.679071f, -3.6637523f, 1.2461772f, -2.0478058f, -1.7816708f, 3.0404863f, -0.7584007f, -0.8387587f, 0.33129215f, -1.5287211f, 3.8641114f, 1.6508245f, -1.0822246f, -3.4747f, 2.761335f, 0.056987286f, -2.1848981f, -0.39668345f, -3.092568f, 2.0414314f, -1.0855744f, 2.1128726f, 0.76072216f, -2.1570241f, 2.2928104f, 3.95725f, -0.15657377f, 3.7968526f, 2.6445093f, 1.3976684f, -3.566742E-4f, -3.6622796f, -3.1972916f, -2.0040073f, -0.77952933f, -0.5524359f, 1.9008007f, 1.9155478f, 3.8079991f, -0.79501295f, 2.7300835f, 3.6779323f, -0.21727395f, -1.9623063f, 0.108566284f, -3.455956f, -2.1782637f, -3.5247142f, -0.4165895f, 2.0078473f, -0.35218167f, 1.6448045f, -2.4526877f, 3.461719f, 1.6724944f, -2.5532427f, -2.1430292f, -0.08748007f, -2.1712432f, 3.2946968f, 2.2995853f, -3.302143f, -0.08788943f, 0.49670458f, 2.7611437f, 3.472314f, 0.3813424f, 1.8024807f, -2.2919288f, 3.3037333f, -0.5467589f, 0.33501673f, 0.6016278f, -1.4600446f, 1.4583135f, -0.92883205f, -0.877753f, -2.8232784f, -1.1926546f, -0.7692585f, -2.411167f, 1.7777729f, -2.4485207f, 3.3790317f, -1.2841697f, -2.4315214f, 0.4012823f, -1.2569518f, -1.1412957f, -0.8553567f, -0.7969055f, 0.1869893f, -0.84371686f, -1.6915374f, -0.7462299f, -1.5121622f, 1.4862146f, -1.1361063f, -1.5322843f, -2.0027494f, 2.9076147f, 3.774035f, 3.2929616f, -1.5287535f, -2.7272096f, 3.9034128f, -3.5941954f, 2.794489f, 1.9477353f, 1.6383901f, -1.4036212f, 3.5212927f, -0.91109276f, -1.0007818f, -3.1096869f, 0.60077906f, -1.3183899f, 0.42757368f, -1.165535f, -1.6510773f, 2.5531144f, 1.2537298f, 3.0075092f, -2.3244424f, 2.8314657f, -2.0821748f, 0.19899702f, -0.2303052f, -3.1712646f, 1.3400021f, -1.6667094f, 1.8918505f, -0.9147048f, -3.595491f, 1.0976114f, -1.3826368f, -3.6805093f, 0.3431611f, 1.3662367f, -1.1799796f, 2.2849164f, -1.1261256f, -0.10430288f, -2.1193967f, 3.0453014f, -2.7296991f, 3.3986497f, 2.0502858f, -1.065172f, 2.1088977f, -2.0131054f, 3.5941334f, 3.479515f, 0.26008558f, 2.1068325f, 3.2852554f, -0.18688059f, -3.239543f, -2.5265346f, 3.01548f, 1.628808f, 0.5233083f, 1.1418557f, 1.733737f, -1.5343206f, 2.4150891f, 0.7377715f, -1.3813627f, -3.8629856f, 2.0456586f, 0.0020627975f, -1.6629384f, 0.36495638f, -0.30942202f, -2.8138828f, 0.43587208f, 3.19413f, 2.0839448f, 0.4685645f, 2.3591805f, 1.5145187f, -0.60937405f, -3.553793f, 1.2789221f, -2.9682581f, 3.4870248f, 1.8849688f, 3.8717794f, -2.7193322f, 2.7498555f, 1.2994633f, 1.370841f, 1.7861357f, -2.1273057f, -0.4373982f, 3.6656628f, 0.23234844f, 0.8003955f, -0.37053823f, -1.080265f, 2.510326f, -3.3082201f, 2.5924673f, 2.1196585f, -0.22938585f, 2.891296f, 0.66772556f, 1.165647f, 1.1162624f, -2.7893076f, 1.345191f, 2.558292f, -1.6711111f, -1.6079712f, -1.1818647f, 0.43183136f, 1.0284662f, -3.556316f, 0.94020796f, -1.3705215f, -3.074716f, -2.3886821f, -1.6587973f, -2.288321f, 2.3303351f, 0.06606531f, -1.0345666f, -2.7665145f, -3.151788f, 3.9625516f, 2.1794558f, -1.6774697f, 3.1843815f, -0.6603739f, 3.728675f, 2.5344167f, -1.7434456f, 3.4070287f, -1.7948117f, 2.1576376f, -2.6923594f},
{3.0815167f, -0.6779661f, 0.5854616f, 2.475628f, 3.2062845f, 2.171822f, -2.9324794f, -0.71649265f, -2.2921662f, -2.2194598f, 2.0991678f, 2.7702017f, 2.01475f, 2.6501336f, -2.0980349f, 3.4912486f, -1.6168346f, 0.616282f, 2.8939834f, -1.624182f, -0.6560066f, -0.76940656f, -0.25608158f, 0.43444157f, -3.6926606f, -1.9907329f, 3.548314f, -3.4303403f, 2.429793f, -0.72693324f, 3.866528f, 0.2495861f, 1.1706343f, -0.06372118f, -0.20664406f, 1.5622215f, -1.4667094f, 0.48513174f, -3.0554261f, -0.82385564f, 3.808691f, -0.48103523f, 1.1759424f, -1.0089698f, -1.2925179f, -3.3897438f, -1.9484515f, 2.769257f, -1.911613f, 2.8724174f, 1.522666f, 2.797668f, -2.9397163f, -2.4929085f, 1.9736276f, -2.3636174f, 3.0559149f, -2.264509f, 2.7365146f, 1.2693429f, 3.545434f, 0.9011283f, 1.3717871f, -2.520884f, -3.6216826f, -0.83589125f, 3.4572802f, 1.0262642f, -1.6875224f, -0.9100373f, 0.32331657f, 3.2214293f, 0.10973072f, 0.5688057f, 2.1169868f, 1.7360649f, 1.6470795f, 1.8834324f, -2.2260275f, -0.9944091f, 1.8135858f, -3.622238f, 1.9215865f, 0.33652782f, -0.4670763f, 3.0598588f, 1.4320316f, 3.83701f, -3.9279873f, -3.393426f, -0.7098222f, -2.4521394f, 2.8664408f, 3.619658f, -1.3645158f, 0.6592541f, 1.4137073f, 3.616013f, 3.28299f, -2.5442278f, 0.35562086f, -0.8824389f, -3.2763755f, -1.3595009f, -2.3084984f, 3.3390217f, -0.4506104f, 0.9466009f, -0.865844f, 0.3547001f, -0.55571556f, -1.5473542f, 2.9408913f, 1.2582021f, -1.6728444f, 3.775741f, -2.8778343f, -1.2881932f, 3.9279633f, 0.3243699f, -1.2492297f, -0.58496356f, -3.9757257f, -3.949376f, -2.8352451f, -2.5952258f, 0.7600994f, -3.350655f, -0.8223741f, -3.2678976f, 1.9145031f, 1.9094944f, -1.0203469f, -0.05616808f, 1.6827393f, -3.0691109f, 0.2344346f, 0.92952156f, 3.4779553f, 0.17724419f, 2.9451852f, 1.0775843f, 1.45685f, -1.1557078f, -3.01448f, 2.3168998f, 1.9179521f, 0.7795415f, -2.2401738f, 3.503162f, -1.5834751f, -2.8019352f, 1.2786164f, -2.257998f, 3.385396f, 1.6965127f, 2.0045857f, -2.3762627f, 0.24633598f, -3.4246368f, 3.1453881f, 2.9774199f, -2.558086f, 1.2372265f, -0.360523f, 3.6346526f, -0.48692107f, 3.4368439f, -3.0983424f, 1.8264742f, -3.706982f, 2.416226f, 3.4653144f, -2.7805898f, 1.4831648f, -0.53381085f, 2.9785895f, -1.7703927f, 2.322538f, -3.7866359f, 2.582097f, -1.86322f, -3.2430966f, 3.9395604f, 2.5160818f, 3.6525126f, -2.540429f, 0.49818707f, -0.12477827f, 2.9802651f, -2.7490654f, -1.0997703f, -0.2503848f, 2.0372539f, 1.9092035f, 1.4001222f, 3.5607781f, -2.6088161f, 0.060050964f, -3.0803685f, -2.778192f, 0.59762144f, 3.7782512f, -2.0942862f, -1.1788232f, -2.9933844f, 1.7296667f, -2.7739038f, -1.1500723f, -3.2600222f, 3.1272674f, 0.4641595f, -0.4376397f, -3.5765433f, 3.470181f, 1.9825044f, -2.1193876f, -2.6091602f, -0.019927263f, -3.6176f, 2.323843f, 3.4598432f, -2.1555152f, 2.494122f, -3.2369535f, -2.9875488f, -2.1779456f, 0.79100704f, 2.372836f, 1.9951849f, 1.4598651f, -0.87214494f, 3.9718437f, -1.4124074f, 0.11848354f, 1.9621243f, 2.0137029f, 0.670063f, 0.19554901f, 0.7241864f, 2.8108883f, 3.854879f, 3.3841033f, 3.760706f, -0.8560021f, -1.272759f, 3.497147f, -0.7169659f, 1.229383f, -2.924203f, 0.33523655f, 2.0103102f, 2.0883346f, -1.7249606f, -1.7307632f, -2.2952135f},
{1.6813526f, -3.3852718f, 0.6556616f, -2.4453099f, -1.2586608f, 2.254323f, 2.8973455f, 2.367765f, -3.940142f, 2.613214f, -1.0924914f, -1.2035637f, 2.0509348f, 3.3903527f, -0.06942654f, -1.676641f, -3.262838f, -0.9602947f, -2.8815732f, 0.49392176f, -0.12679434f, 3.4107475f, -0.04388666f, -1.109909f, -3.2578928f, 2.3960528f, -0.4237311f, -0.40220523f, -0.7699027f, -0.18918514f, 3.1969151f, -0.57214713f, 2.1059475f, -0.63801503f, 3.362545f, -1.0917239f, -2.998805f, -0.55251145f, 3.3637433f, 3.0735722f, 1.4078898f, 1.6588235f, 2.155899f, -0.6654973f, -0.9191637f, 0.24313545f, -3.70712f, 0.21955109f, 3.551589f, 0.41368914f, -1.1631494f, -0.46282363f, -3.9681935f, -3.71953f, -2.099276f, 1.5157332f, -3.196148f, -3.6945577f, 0.42506123f, -0.2642393f, -2.7331376f, -0.4301629f, -2.0134697f, 2.1771445f, -3.873199f, 3.7736158f, 2.8803635f, 0.4614787f, 3.7893429f, 1.7701054f, 2.4145484f, -2.6222396f, 3.8347378f, 1.5715833f, -0.7011819f, -2.962637f, 1.5241079f, 1.1444235f, -1.7931969f, 2.512051f, -1.3930283f, 3.9452162f, -0.9649682f, -3.4333944f, 3.270061f, -1.9679091f, -1.922231f, 2.1054482f, -2.1121492f, -3.2817183f, -0.717998f, -1.789542f, 1.3055029f, 0.11779261f, 2.9421926f, 1.1549916f, 0.70525074f, -3.4341757f, -3.3602738f, -0.4630673f, -1.3224308f, 0.7794447f, 2.9273047f, 2.6813984f, 3.9387708f, -2.2432103f, 0.20383358f, -2.2784433f, 1.2069983f, -0.20409489f, 3.4206815f, 1.2738099f, -0.931113f, -3.352865f, 1.7054844f, -3.618578f, -1.7605186f, 1.6957979f, 0.6849971f, -3.591535f, 2.438313f, -1.7953222f, -3.7662094f, -1.1762073f, 2.1748452f, 1.0286989f, 1.5709224f, -0.6774547f, -1.9431839f, -1.1530666f, -2.9279952f, 2.4905071f, 2.8053155f, -2.1600633f, -0.14058185f, 1.2244525f, 1.9807429f, -2.1268106f, -1.8212717f, 3.3794336f, -1.5058839f, 0.6302557f, -0.23532891f, 0.6217551f, 3.298499f, 3.7720714f, -0.15460896f, -2.7757723f, -3.774356f, 0.08159256f, 3.1289263f, -2.4519348f, 2.7532392f, 3.6858435f, -0.9387524f, -1.7863617f, 2.5584831f, 2.8302174f, -1.1595347f, 0.47008753f, -3.9659903f, 2.3126988f, 0.117146015f, 2.0316157f, -2.4875054f, 0.5684843f, 3.0059733f, -2.3439f, -1.2333953f, -1.4717109f, -1.0206857f, -2.000531f, -2.5787573f, -0.24354911f, 0.40855885f, -1.2128975f, -3.7646277f, 2.00774f, 0.9644165f, 1.1013279f, 2.781001f, -0.7753935f, -0.21733975f, -1.408102f, -1.1327677f, 2.129408f, -2.7528713f, -3.3258505f, -2.8724096f, -3.0510342f, 1.4371023f, -3.7126546f, 2.5091496f, 3.4416227f, 3.7314858f, -3.4564679f, -3.027698f, -2.7202258f, -2.242456f, -1.3949604f, -1.4696848f, 3.9736686f, 3.8172445f, -0.613425f, 2.8281465f, -0.09492135f, 1.1195741f, 0.18566799f, -3.219718f, 2.672257f, -1.4074805f, 2.1030416f, -0.64230704f, 1.8304105f, -0.25630403f, 1.122292f, 2.4343114f, -3.7552695f, 1.9839373f, 2.9760733f, 2.6737323f, -2.3441694f, 0.02346325f, 3.4338026f, 1.7571731f, -0.3097365f, -3.604441f, 3.4037008f, 2.8240266f, -2.56841f, 3.858006f, 2.2498064f, -2.1833446f, -1.1997046f, 2.367825f, 0.98241234f, 3.491393f, 3.3736525f, 3.5202007f, -2.5118182f, 3.1780295f, 0.90945244f, 1.787766f, 0.72401714f, 2.9403625f, 0.7203288f, -1.4082599f, -2.1934342f, 2.6107225f, 0.17821264f, 0.18173599f, 1.1870623f, 2.2416773f, -3.98872f, 1.4963403f, -1.3909869f},
{-3.1615524f, 3.688552f, 3.6219149f, 2.3040495f, 0.8058672f, 2.0701256f, 0.16234875f, -2.1109176f, 0.3640399f, 2.633833f, -0.22217155f, 3.6857038f, -2.7428417f, -1.0280776f, 0.34599113f, 3.6905994f, -3.599748f, -1.1158156f, 2.6441398f, -3.8164592f, -0.3210349f, -1.7232478f, 0.14652014f, -3.0326564f, -2.062248f, -0.791389f, -1.52404f, -0.50801206f, 3.2622123f, 3.8106751f, -0.75550103f, -0.3770876f, -2.018416f, 3.4350991f, 0.46292686f, 0.5713029f, -0.6122601f, 0.27529573f, 3.3944898f, -0.48798943f, 1.9873309f, -1.1700418f, -2.3266938f, 1.6725464f, 2.1740417f, -1.0328104f, 2.7033772f, -1.8155854f, 1.5282378f, -1.0223517f, 1.7993584f, -3.2541478f, 0.5215831f, 3.8884482f, 0.22559547f, 1.1528645f, -1.7754602f, -0.5576515f, -2.76477f, 1.0132513f, 1.6849527f, 3.529585f, 1.4064908f, -3.533869f, -3.0337505f, -3.5074856f, 2.0186076f, -3.5127065f, -1.5959046f, -0.39395022f, -3.0949147f, 1.3685055f, 1.4606476f, 1.1696701f, 1.1673999f, 2.216724f, -2.3741217f, -1.9703829f, -2.6725159f, 2.826972f, -0.8642645f, -1.0173082f, 3.9426823f, 0.04045534f, 2.847237f, 1.3958769f, -3.597827f, 3.7072978f, -3.5691097f, -0.49117112f, -1.4308379f, 0.63109636f, -3.888844f, -3.7309053f, -2.8715339f, -3.6196942f, -0.49402046f, 2.1827126f, 3.944419f, 0.60927534f, -0.31327176f, 2.5456848f, -2.5706553f, -0.46043158f, -2.5998168f, 2.5546036f, 3.868156f, -0.48998046f, 3.464551f, -1.8224566f, 1.839941f, 0.011779785f, -1.3282294f, -2.700873f, -0.6772721f, -0.6175673f, 2.0986996f, -1.463501f, -0.23708344f, 3.3410535f, -1.4499142f, -3.7442527f, 0.3361845f, -0.1960764f, 3.9265337f, 3.7011232f, -3.1780121f, -1.0716059f, 3.6309905f, 3.7822304f, -3.0409138f, 3.0902357f, 3.6975908f, 0.94715595f, 3.8448405f, -0.49240303f, 3.1470132f, -2.2976573f, -1.1136646f, -1.5174723f, 1.1428037f, 3.7227945f, 2.0066953f, -3.2611778f, 1.8434539f, 0.12904215f, 3.2552824f, 0.09275484f, -2.5846946f, -1.6099064f, 0.6657615f, -3.298904f, -0.5083008f, 0.44440413f, 0.15134668f, -0.6113994f, -0.56593466f, 0.013732433f, 2.4218411f, -2.9350152f, -3.9290078f, -3.282464f, -0.6475897f, -1.0007913f, 0.16160583f, -3.5216079f, 3.9293237f, 1.7266998f, -0.35009027f, -0.15826774f, -0.15677118f, 0.6229682f, 0.84705305f, 2.2159958f, 2.9958253f, 2.6848712f, -0.0012037754f, -1.3278844f, 1.6311135f, -2.1814032f, -0.73423266f, -3.175934f, 0.49772644f, -3.0587444f, 0.96440554f, -1.5549831f, 1.3941326f, 2.4607759f, -2.0131922f, -2.1435595f, 3.643849f, -3.7933884f, -1.3619998f, -1.2396555f, 3.4930801f, -0.35841346f, 0.6994777f, -0.9323952f, -0.88146734f, -2.8069925f, 2.348155f, 3.4081907f, -0.1215322f, -0.20100355f, -1.3697987f, 3.3918862f, 2.6353502f, 2.2738f, -2.4904785f, -3.6790745f, 2.4237843f, -1.1463532f, -0.919014f, -2.0612369f, -2.5672755f, -1.707458f, -0.6412034f, 3.9320326f, -2.7837262f, 3.135191f, -1.8792884f, 0.2855339f, 0.24268246f, 3.302065f, -3.3908515f, -1.7770722f, -3.6635158f, -2.1205673f, 1.4605055f, 3.3486032f, -0.7359903f, -2.9850135f, 2.0543523f, -3.2609785f, -3.342163f, -3.9224823f, -0.45555115f, 0.11462927f, -1.3289535f, 0.74689436f, -2.8461223f, -2.143734f, 1.197463f, 2.4584212f, -3.1131372f, -0.48721504f, -1.8106213f, -1.3665435f, -0.3698101f, -0.42055964f, -3.4504383f, 1.3859925f, -2.3125694f, 2.709381f, 2.2696738f, 1.9027057f},
{-2.8904977f, 0.15342808f, -2.0674748f, -0.54820514f, 3.7553978f, -0.8938935f, 3.390911f, -0.016248703f, 3.8372378f, 0.76872826f, 3.3810878f, 3.5449986f, 2.774107f, 3.3231263f, -1.9757435f, 0.23316765f, 3.4994497f, 0.64245605f, -3.3852613f, 1.1805763f, -1.062886f, -3.5517032f, -0.21116781f, 0.060303688f, -0.8185551f, 0.7560849f, -3.88634f, 3.8670459f, 3.987136f, -3.1662555f, 0.33062983f, 1.2327752f, 1.4948697f, 2.5311718f, -2.0665693f, 0.29501534f, -3.3109193f, -0.27894497f, -1.5441804f, 2.1433759f, 3.9044962f, -2.2756758f, -2.2102509f, -3.872219f, -3.2315905f, -1.0236726f, -3.9502966f, 1.8196692f, -3.7140281f, 3.8226557f, -0.05556941f, -0.82477903f, 1.3460813f, 2.2163424f, -2.6874392f, 3.4575057f, -2.254227f, 1.2209773f, 2.4239178f, 2.7322464f, -2.098672f, 0.6070919f, 1.8436432f, -0.7402892f, 3.7346148f, -1.5380216f, -1.8984344f, -2.1369526f, -2.2064857f, 0.6159234f, 0.10455847f, 0.36120653f, 0.48556948f, -2.1793532f, 1.1749425f, -0.58760786f, -3.6256738f, 2.998547f, -2.2066972f, 1.6218014f, 1.8081417f, 3.5141754f, -1.4305971f, 0.5252285f, -0.27845526f, 0.30215645f, 1.6601872f, -2.932088f, 1.2695513f, 0.81860876f, -0.20081949f, -3.5441673f, -3.9743512f, 2.1659107f, -2.7030945f, 3.7644567f, -1.2055292f, -3.6265225f, 0.81724596f, -3.552237f, -0.33949685f, 3.7000341f, -0.5699985f, -2.1018243f, -1.2855277f, 3.955669f, -0.6148088f, 0.4658594f, 1.9693751f, -1.7752259f, 1.2499757f, -3.1463716f, -1.7015691f, -1.9962106f, 1.4943767f, -0.4384508f, 0.79753685f, 1.650476f, 3.307291f, 3.0631156f, 3.7951345f, 3.174263f, 0.36960363f, -3.3473015f, 2.8026953f, 1.7800193f, 0.5065203f, -0.58822346f, 1.019351f, 2.2104177f, -0.4134488f, -1.5007308f, -1.4254906f, 3.814868f, -0.27011156f, 3.9791136f, 1.5126028f, 2.4058123f, 1.8342361f, 3.656022f, 0.59443474f, 1.3459845f, -1.3785393f, 1.898191f, -0.69010234f, 2.9430494f, -1.1462579f, -2.8164756f, -3.9328475f, 0.110854626f, 2.0632243f, -1.8862386f, 3.343667f, -0.6106727f, 0.0844655f, -3.1012938f, -3.3451695f, -0.2021203f, 2.8743143f, -3.1794345f, 0.5161624f, 3.6299806f, 3.5491347f, -2.053781f, 1.1454649f, 1.1793785f, -0.7353647f, 3.3630595f, 2.4715557f, 3.5212598f, -1.4911537f, 0.47184324f, 1.086556f, 3.854454f, 3.5741262f, 2.377818f, 3.0990005f, -3.4564042f, 3.4193707f, 3.1791968f, 1.4153638f, 1.8829732f, -1.1710794f, 3.9598622f, 3.7978978f, 1.7366076f, 0.7199793f, -0.4490018f, -1.8830028f, 2.5919104f, 1.6456509f, 3.6341639f, 1.5366182f, -3.8029058f, -0.0139603615f, -0.48387575f, 0.9415846f, -0.1646967f, 0.015147686f, -0.0864234f, -3.2640646f, -3.5787327f, -1.0233688f, -2.6562774f, -0.78822327f, 2.9890723f, 0.49678326f, -0.7755611f, 0.008410454f, 2.7724705f, -1.8915722f, 0.5456252f, 2.7518315f, 0.9619546f, -2.64529f, 3.9811091f, 2.7849884f, -0.64436126f, 1.887104f, -3.4316897f, 3.96953f, -1.4962006f, -1.832758f, -2.4093304f, -1.1399505f, 3.579743f, -1.172492f, 0.055666924f, -2.8778224f, 0.092476845f, 2.4406333f, -1.8309374f, 1.8861666f, 1.689477f, 1.3938541f, -2.53619f, 0.7979317f, 2.680653f, -0.2415011f, -1.250103f, -2.1501777f, 0.5474305f, -2.5088136f, -0.19080591f, -0.35628343f, -3.416326f, -0.0018684864f, -2.2328153f, -2.440669f, 3.947998f, 3.0393605f, 0.3312831f, 3.3709683f, -0.21018553f, -1.8550382f, -2.4067512f},
{-3.8237815f, 3.7442822f, -0.8392043f, 3.8510137f, -0.92953897f, 0.9741435f, 2.2364144f, 2.913063f, 0.8213091f, -1.9307702f, 3.513245f, 0.6063156f, -1.1325336f, 0.4972477f, -1.0335937f, -3.2837389f, 1.2867684f, 2.9322577f, -0.7011614f, -0.6540704f, 2.948495f, -3.3299286f, -2.5182567f, 1.6880755f, 0.88535595f, 1.4726176f, -0.5193591f, -3.5372238f, 3.9908671f, -1.4338815f, -2.0983424f, 0.7804508f, 2.468131f, 1.1507511f, -2.2620168f, -0.05187273f, 1.026372f, -3.337731f, -2.90826f, -3.2554157f, -1.3581314f, 3.158877f, -0.30818796f, -3.052174f, 0.7702503f, 0.589458f, 2.2235203f, -3.5938613f, 1.2174311f, 2.3320742f, 1.9313073f, 3.701809f, 2.4467678f, -0.72553325f, 0.650939f, 3.464385f, 2.9203477f, 1.8410969f, -3.626978f, 2.648179f, -3.8573878f, -3.2459197f, -3.3650372f, 1.5965195f, -1.6051517f, -3.0518177f, -0.5162096f, -2.5269217f, -1.2806206f, -1.0571461f, 3.4475985f, -0.35159588f, 1.5326104f, -3.8929062f, 3.898654f, 2.8876123f, 1.3163881f, -3.3642526f, 1.3865471f, -3.3070128f, -1.8425455f, -2.3113463f, -0.034939528f, 3.913075f, 0.47507572f, 0.026869774f, 2.2317553f, -1.2623549f, -0.9027455f, 2.6130147f, 0.74457836f, 1.4557242f, -1.0837698f, -1.9744132f, 2.6751108f, -3.1382952f, 0.6743007f, 1.1699181f, -1.996614f, -1.0476408f, 0.0012984276f, -2.348755f, 3.254531f, 2.5653868f, -2.3546295f, 2.3081913f, 2.722774f, 2.8679461f, -2.0909684f, -3.2122445f, -0.67630124f, -1.8885717f, 3.622757f, -0.32426596f, -2.339078f, -0.17345262f, -0.4412892f, 1.5792933f, -3.4113107f, -2.3593702f, -3.9924958f, 2.6912422f, -0.5028055f, 3.1568003f, -3.6887975f, 1.7483573f, 1.7427449f, 0.84257746f, 0.4660988f, -1.0710802f, -1.9097972f, -0.36680412f, -2.5208998f, 3.1174498f, -3.2695575f, -1.0372064f, 3.9818702f, -3.9025714f, -1.6191096f, -2.8055892f, -0.3228054f, 2.6156087f, 3.172505f, 2.9275594f, 3.5123453f, -2.105671f, 0.47188616f, 0.41993618f, 0.04452753f, 1.0510654f, 1.4825082f, 1.3676653f, 3.283814f, 2.0172558f, 3.4143763f, -1.4537373f, 3.3692775f, -1.0687454f, -0.7932658f, -1.6776607f, -0.24565291f, -1.3869176f, 0.23374796f, -3.1961398f, -0.852273f, 2.611446f, 1.1184154f, 2.4045959f, 3.276526f, -2.5536733f, -2.2747493f, 3.856213f, -1.391437f, -1.9467659f, 3.5976248f, 1.2092652f, 3.4911246f, 2.0680428f, 0.55092716f, 2.1221542f, -0.2662425f, 3.4741435f, 1.828062f, -3.2550533f, 3.4830031f, 3.266448f, -2.8309345f, 1.7627487f, -1.6927178f, 2.1695971f, 0.34198236f, 3.6711378f, 1.7304554f, 2.080546f, 3.127418f, 1.1139832f, -2.977097f, -1.2115026f, 3.444521f, 2.1217885f, 2.8792639f, 2.65798f, 3.2514439f, -1.653502f, -1.3176911f, -3.6563296f, -3.9513392f, -1.1034667f, -3.6272871f, -2.761621f, -3.7411845f, 1.1336274f, 3.5148215f, -2.761575f, -0.5479033f, 0.8008466f, 3.9688082f, -0.45655775f, 3.3314505f, -0.8910117f, 0.6499362f, -2.409527f, 0.5872426f, 1.9163761f, 3.175953f, 0.8550086f, 0.17630863f, 1.8948665f, 1.7739472f, 2.1344638f, 3.2756329f, 0.5827007f, -0.3616681f, -2.9376326f, -1.893789f, -0.5173416f, -0.9980979f, 0.98438215f, -3.9820294f, -0.12823772f, 3.5022526f, -3.0399418f, -2.3280737f, -0.25338817f, 2.9961405f, 3.5370603f, 0.85106707f, 3.3362293f, 2.794691f, -3.9225962f, -3.6232202f, 3.872116f, -0.6373365f, 2.7980509f, 1.8029299f, 3.8130288f},
{-3.1547017f, -1.6789615f, 2.0050292f, -1.5202048f, -0.64341307f, 1.4111142f, 1.4772396f, -2.9366903f, 2.7831116f, 1.7116685f, -2.9047394f, -2.7733505f, 2.9279232f, 0.6725712f, 0.2984786f, -1.9699218f, -1.8607767f, 2.496325f, 2.0900555f, -1.3344991f, -1.8610504f, -0.18823385f, -1.0510516f, -0.5052371f, -3.4133444f, 1.9173527f, 2.6931744f, 1.1439857f, 2.9844046f, -1.1811063f, -1.4710679f, -1.0860496f, -0.15130472f, 1.9193869f, -3.034486f, 1.5243511f, -2.3542316f, 0.10144043f, -1.0287437f, -2.7824473f, 2.8069315f, 2.0755725f, 3.6910796f, 2.505301f, -2.789124f, -1.7495103f, -1.7585092f, 3.3496447f, -1.1597455f, -3.9857352f, 3.5442295f, -0.67285824f, -3.1098895f, -2.8018634f, -3.1449518f, 0.3332324f, -1.5739417f, -0.3725245f, 2.5894399f, -1.3585193f, 3.760429f, 0.047270298f, -1.757575f, -1.359808f, -3.965098f, 1.3423004f, 1.6448355f, -3.673275f, 3.068471f, -1.1450317f, -2.5061626f, 0.6476407f, -1.6501217f, -1.2634082f, 1.0407448f, 3.0306292f, -2.8760004f, 1.6507516f, 1.0145044f, -2.038023f, -3.1580625f, -0.21988606f, -3.69548f, 0.2211461f, 0.8149228f, -0.029043198f, 1.6218214f, -2.6081488f, 1.7324204f, -3.0175605f, 2.3028789f, -0.4731717f, -0.22485161f, -1.8095305f, 3.6156816f, 1.3513103f, 0.37404633f, -3.2711666f, 1.3730173f, -3.8519726f, -0.7634814f, 3.9330702f, 2.35319f, -1.5256317f, 1.0816112f, -3.914624f, 0.9737387f, 1.1201491f, -2.4039183f, 0.8416467f, 0.85902214f, -1.7777479f, -2.5563617f, 1.3545728f, -3.6121457f, 3.2102032f, 0.729939f, -1.0104845f, -3.99732f, 1.2645745f, 2.1462407f, 0.662704f, -3.992896f, 1.22791f, 3.0849295f, -3.7858906f, -3.2261126f, -0.5843177f, -2.659564f, -3.1398392f, -3.2691557f, 1.5326042f, -0.4206066f, -2.3457212f, 3.1873846f, -3.0925713f, 2.5841727f, 1.0160222f, -0.9902427f, -2.4828117f, -1.6557305f, 2.7724519f, -3.6516352f, -1.2203755f, -0.60968924f, 0.78811884f, 1.0658298f, -2.149608f, -1.6642275f, -0.8570838f, 0.20980692f, 2.1694121f, -2.5881906f, -0.05016756f, 1.8198504f, -3.741423f, 1.8509045f, -3.7125463f, -2.4470487f, -3.719183f, 1.2953725f, 3.3548899f, -3.9423218f, 1.6283455f, -2.0229535f, -1.160403f, -3.2778301f, 2.8157258f, -0.7651975f, -0.3786106f, 3.366527f, 1.2111983f, -0.9931152f, -3.6812553f, 3.645483f, -1.3524637f, 0.2553072f, 3.8163176f, -1.6274748f, 3.711494f, -2.150084f, 0.79539156f, -0.32803082f, -3.4812613f, -2.739982f, 0.42180634f, 3.8107886f, -0.96104f, -3.528214f, -2.2712784f, 3.7573185f, 1.5436678f, -1.1300364f, -3.1356258f, 1.9592686f, 1.5070019f, 1.3927121f, -2.7421858f, 3.5287833f, 3.2976847f, 3.0887485f, -0.11159134f, 1.9676151f, 1.2580671f, -3.723766f, -0.77228594f, -2.2392302f, -2.7259698f, 3.8231926f, 1.0551376f, 2.6123133f, 2.6973052f, -0.36045146f, -0.7683859f, 2.7923284f, -0.51039076f, 3.291175f, 3.6483364f, 0.009335041f, 2.7157822f, -2.2833214f, -3.0495992f, -2.5822163f, -3.9790545f, -2.652065f, -2.731976f, -0.18443537f, 3.4844942f, 0.50571966f, 2.0708156f, -1.2182353f, 3.251567f, -1.2379189f, -3.6066017f, 3.450242f, -3.399567f, -0.9685786f, 3.0634751f, -0.19012594f, 0.61206293f, -2.5274425f, -2.803739f, 3.8676734f, 1.3659501f, 3.854352f, 2.1020098f, -3.293745f, 3.5940695f, -1.1421847f, -3.1138241f, -3.5875335f, 1.9826736f, 2.8578901f, -2.5954387f, 1.0493026f, 2.8194304f}
};
static LinkedList<float[][]> hashFunctions = new LinkedList<float[][]>();
@Override
protected void setUp() throws Exception {
hashPlanes = hashFunction;
}
public void testHashing() throws IOException {
String file1 = "./wang-1000/0.jpg";
String file2 = "./wang-1000/400.jpg";
CEDD cedd = new CEDD();
BufferedImage image = ImageIO.read(new FileInputStream(file1));
cedd.extract(image);
System.out.println("hash = " + getHash(cedd));
image = ImageUtils.scaleImage(image, 200);
CEDD cedd2 = new CEDD();
cedd2.extract(image);
System.out.println(cedd.getDistance(cedd2));
System.out.println("hash = " + getHash(cedd2));
CEDD cedd3 = new CEDD();
BufferedImage image3 = ImageIO.read(new FileInputStream(file2));
cedd3.extract(image3);
System.out.println(cedd.getDistance(cedd3));
System.out.println("hash = " + getHash(cedd3));
}
private int getHash(CEDD cedd) {
int hash = 0;
for (Iterator<float[][]> iterator = hashFunctions.iterator(); iterator.hasNext(); ) {
float[][] hashPlanes = iterator.next();
hash = 0;
for (int i = 0; i < hashPlanes.length; i++) {
float[] hashPlane = hashPlanes[i];
double[] histogram = cedd.getDoubleHistogram();
float val = 0f;
for (int j = 0; j < histogram.length; j++) {
val += hashPlane[j] * (float) histogram[j];
}
System.out.print(Math.signum(val) < 0 ? "0" : "1");
hash += Math.pow(2, i) * (Math.signum(val) < 0 ? 0 : 1);
}
System.out.println();
}
return hash;
}
public void testOutputHashFunction() throws IOException {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("hashFunctions.obj"));
oos.writeInt(bits);
oos.writeInt(dimensions);
oos.writeInt(numFunctionBundles);
for (int c = 0; c < numFunctionBundles; c++) {
for (int i = 0; i < bits; i++) {
float[] hashPlane = hashPlanes[i];
for (int j = 0; j < dimensions; j++) {
oos.writeFloat((float) (Math.random() * 8d - 4d));
}
}
}
oos.close();
}
public void testReadHashFunctions() throws IOException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("hashFunctions.obj"));
int bits = ois.readInt();
int dimensions = ois.readInt();
int numFunctionBundles = ois.readInt();
float[][][] hashFunctions = new float[numFunctionBundles][bits][dimensions];
for (int i = 0; i < hashFunctions.length; i++) {
float[][] functionBundle = hashFunctions[i];
for (int j = 0; j < functionBundle.length; j++) {
float[] bitFunctions = functionBundle[j];
for (int k = 0; k < bitFunctions.length; k++) {
bitFunctions[k] = ois.readFloat();
}
}
}
}
}