Index: branches/HeuristicLab.Mono/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessFunctionsTest.cs
===================================================================
--- branches/HeuristicLab.Mono/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessFunctionsTest.cs	(revision 8451)
+++ branches/HeuristicLab.Mono/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessFunctionsTest.cs	(revision 8585)
@@ -123,19 +123,19 @@
       );
 
-      //      prod.Factors.Clear();
-      //      prod.Factors.Add(new MeanConst());
-      //      prod.Factors.Add(new MeanLinear());
-      //      TestMeanFunction(prod, 1,
-      //  new double[] { 2.9087, 1.8646, 3.1971, 1.9889, 1.7639, 1.2801, 2.8059, 3.7243, 3.1901, 1.4979 },
-      //  new double[][]
-      //          {
-      //            new double[] { 1.8436,    2.1279,    3.1166,    1.6886,    3.2505,    2.9613,    2.3260,    1.7293,   1.7697,    2.3982 },
-      //            new double[] { 0.6443,    0.3786,    0.8116,    0.5328,    0.3507,    0.9390,    0.8759,    0.5502,   0.6225,    0.5870 },
-      //            new double[] { 0.2077,    0.3012,    0.4709,    0.2305,    0.8443,    0.1948,    0.2259,    0.1707,   0.2277,    0.4357 },
-      //            new double[] { 0.3111,    0.9234,    0.4302,    0.1848,    0.9049,    0.9797,    0.4389,    0.1111,   0.2581,    0.4087 },
-      //            new double[] { 0.5949,    0.2622,    0.6028,    0.7112,    0.2217,    0.1174,    0.2967,    0.3188,   0.4242,    0.5079 },
-      //            new double[] { 0.0855,    0.2625,    0.8010,    0.0292,    0.9289,    0.7303,    0.4886,    0.5785,   0.2373,    0.4588 }
-      //          }
-      //);
+      prod.Factors.Clear();
+      prod.Factors.Add(new MeanConst());
+      prod.Factors.Add(new MeanLinear());
+      TestMeanFunction(prod, 1,
+  new double[] { 1.843574580675791, 2.127929337522181, 3.116568910281474, 1.688566127130978, 3.250517738447450, 2.961262743634280, 2.326019412613392, 1.729286976436201, 1.769654419215176, 2.398170347588917 },
+  new double[][]
+                {
+                  new double[] { 2.9088,    1.8646,    3.1971,    1.9890,    1.7640,    1.2801,    2.8059,    3.7243,    3.1899    ,1.4978 },
+                  new double[] { 0.4173,    0.0497,    0.9027,    0.9448,    0.4909,    0.4893,    0.3377,    0.9001,    0.3692    ,0.1112 },
+                  new double[] { 0.7803,    0.3897,    0.2417,    0.4039,    0.0965,    0.1320,    0.9421,    0.9561,    0.5752    ,0.0598 },
+                  new double[] { 0.2348,    0.3532,    0.8212,    0.0154,    0.0430,    0.1690,    0.6491,    0.7317,    0.6477    ,0.4509 },
+                  new double[] { 0.5470,    0.2963,    0.7447,    0.1890,    0.6868,    0.1835,    0.3685,    0.6256,    0.7802    ,0.0811 },
+                  new double[] { 0.9294,    0.7757,    0.4868,    0.4359,    0.4468,    0.3063,    0.5085,    0.5108,    0.8176    ,0.7948 }
+                }
+);
     }
 
@@ -185,26 +185,26 @@
           {
             new double[,] {
-{    0.6345,    0.6652,    0.2647,    0.6484,    0.4251,    0.6943,    0.5427,    0.4338,    0.5527,    0.3280},
-{    0.5921,    0.4959,    0.4876,    0.6115,    0.4601,    0.6702,    0.5360,    0.3252,    0.4791,    0.3526},
-{    0.3961,    0.4296,    0.2816,    0.5165,    0.6456,    0.3784,    0.2923,    0.5455,    0.4237,    0.3036},
-{    0.3916,    0.6566,    0.3888,    0.4777,    0.7173,    0.6255,    0.2051,    0.2256,    0.2498,    0.3182},
-{    0.2181,    0.6194,    0.4041,    0.1929,    0.7305,    0.7077,    0.3750,    0.1532,    0.1758,    0.2510},
-{    0.2344,    0.4538,    0.4967,    0.3056,    0.7032,    0.6205,    0.2413,    0.0960,    0.0929,    0.2492},
-{    0.5996,    0.4229,    0.4622,    0.6365,    0.2384,    0.6451,    0.5566,    0.5865,    0.5446,    0.3263},
-{    0.6017,    0.5846,    0.3398,    0.6585,    0.4850,    0.5905,    0.5060,    0.6636,    0.5900,    0.3834},
-{    0.5719,    0.5057,    0.2476,    0.6023,    0.3674,    0.6144,    0.5216,    0.5174,    0.5364,    0.2776},
-{    0.6327,    0.4789,    0.5849,    0.6712,    0.5796,    0.6030,    0.5167,    0.3428,    0.5177,    0.4767},
+{         0,    0.3197,    0.6358,    0.5518,    0.5207,    0.5909,    0.3361,    0.4897,    0.2447,    0.5720},
+{    0.3197,         0,    0.6697,    0.6190,    0.4635,    0.4047,    0.4190,    0.6899,    0.3650,    0.1552},
+{    0.6358,    0.6697,         0,    0.6031,    0.5367,    0.5927,    0.6008,    0.4084,    0.4103,    0.6843},
+{    0.5518,    0.6190,    0.6031,         0,    0.4173,    0.2740,    0.6339,    0.6114,    0.6702,    0.6455},
+{    0.5207,    0.4635,    0.5367,    0.4173,         0,    0.2510,    0.6610,    0.6935,    0.5180,    0.5362},
+{    0.5909,    0.4047,    0.5927,    0.2740,    0.2510,         0,    0.6019,    0.6955,    0.6232,    0.3756},
+{    0.3361,    0.4190,    0.6008,    0.6339,    0.6610,    0.6019,         0,    0.3205,    0.3279,    0.6165},
+{    0.4897,    0.6899,    0.4084,    0.6114,    0.6935,    0.6955,    0.3205,         0,    0.4189,    0.7344},
+{    0.2447,    0.3650,    0.4103,    0.6702,    0.5180,    0.6232,    0.3279,    0.4189,         0,    0.5595},
+{    0.5720,    0.1552,    0.6843,    0.6455,    0.5362,    0.3756,    0.6165,    0.7344,    0.5595,         0},
             },
             new double[,] {
-{    1.1542,    1.0808,    1.7137,    1.1224,    1.5090,    0.9961,    1.3298,    1.4968,    1.3127,    1.6369},
-{    1.2413,    1.4053,    1.4181,    1.2031,    1.4591,    1.0675,    1.3411,    1.6404,    1.4309,    1.6057},
-{    1.5486,    1.5027,    1.6936,    1.3729,    1.1289,    1.5721,    1.6807,    1.3251,    1.5109,    1.6670},
-{    1.5547,    1.1026,    1.5584,    1.4331,    0.9067,    1.1739,    1.7826,    1.7593,    1.7313,    1.6490},
-{    1.7679,    1.1868,    1.5379,    1.7963,    0.8253,    0.9483,    1.5767,    1.8403,    1.8154,    1.7298},
-{    1.7492,    1.4683,    1.4041,    1.6646,    0.9652,    1.1845,    1.7411,    1.9016,    1.9048,    1.7320},
-{    1.2267,    1.5121,    1.4560,    1.1498,    1.7445,    1.1302,    1.3060,    1.2519,    1.3266,    1.6389},
-{    1.2227,    1.2555,    1.6220,    1.0978,    1.4220,    1.2443,    1.3896,    1.0850,    1.2454,    1.5656},
-{    1.2789,    1.3900,    1.7339,    1.2214,    1.5866,    1.1971,    1.3647,    1.3715,    1.3404,    1.6984},
-{    1.1581,    1.4312,    1.2549,    1.0647,    1.2647,    1.2200,    1.3726,    1.6182,    1.3709,    1.4346},
+{    2.0000,    1.6472,    1.1513,    1.3142,    1.3662,    1.2437,    1.6267,    1.4148,    1.7372,    1.2786},
+{    1.6472,    2.0000,    1.0689,    1.1876,    1.4541,    1.5370,    1.5174,    1.0103,    1.5898,    1.8381},
+{    1.1513,    1.0689,    2.0000,    1.2199,    1.3398,    1.2402,    1.2244,    1.5320,    1.5293,    1.0276},
+{    1.3142,    1.1876,    1.2199,    2.0000,    1.5197,    1.7027,    1.1555,    1.2033,    1.0675,    1.1291},
+{    1.3662,    1.4541,    1.3398,    1.5197,    2.0000,    1.7299,    1.0916,    0.9989,    1.3706,    1.3407},
+{    1.2437,    1.5370,    1.2402,    1.7027,    1.7299,    2.0000,    1.2223,    0.9923,    1.1787,    1.5758},
+{    1.6267,    1.5174,    1.2244,    1.1555,    1.0916,    1.2223,    2.0000,    1.6461,    1.6369,    1.1928},
+{    1.4148,    1.0103,    1.5320,    1.2033,    0.9989,    0.9923,    1.6461,    2.0000,    1.5176,    0.7806},
+{    1.7372,    1.5898,    1.5293,    1.0675,    1.3706,    1.1787,    1.6369,    1.5176,    2.0000,    1.3009},
+{    1.2786,    1.8381,    1.0276,    1.1291,    1.3407,    1.5758,    1.1928,    0.7806,    1.3009,    2.0000},
           }
           }
@@ -227,29 +227,550 @@
           {
             new double[,] {
-{    1.0207,    1.1326,    0.3026,    1.0685,    0.5423,    1.2686,    0.7724,    0.5574,    0.7955,    0.3900},
-{    0.8944,    0.6729,    0.6564,    0.9490,    0.6043,    1.1534,    0.7573,    0.3860,    0.6400,    0.4263},
-{    0.4942,    0.5501,    0.3252,    0.7151,    1.0586,    0.4660,    0.3398,    0.7787,    0.5400,    0.3554},
-{    0.4868,    1.0987,    0.4824,    0.6372,    1.4215,    0.9914,    0.2266,    0.2521,    0.2830,    0.3760},
-{    0.2427,    0.9726,    0.5072,    0.2117,    1.5705,    1.3491,    0.4606,    0.1646,    0.1911,    0.2846},
-{    0.2632,    0.5928,    0.6745,    0.3581,    1.3203,    0.9760,    0.2721,    0.1002,    0.0969,    0.2822},
-{    0.9151,    0.5386,    0.6082,    1.0272,    0.2684,    1.0567,    0.8045,    0.8794,    0.7766,    0.3876},
-{    0.9208,    0.8744,    0.4072,    1.1062,    0.6514,    0.8901,    0.6932,    1.1260,    0.8886,    0.4738},
-{    0.8418,    0.6927,    0.2801,    0.9226,    0.4489,    0.9576,    0.7259,    0.7169,    0.7582,    0.3198},
-{    1.0149,    0.6396,    0.8752,    1.1578,    0.8615,    0.9246,    0.7154,    0.4117,    0.7177,    0.6353},
+{         0,    0.3781,    1.0250,    0.7934,    0.7239,    0.8910,    0.4018,    0.6606,    0.2764,    0.8421},
+{    0.3781,         0,    1.1512,    0.9715,    0.6106,    0.5082,    0.5320,    1.2453,    0.4451,    0.1669},
+{    1.0250,    1.1512,         0,    0.9248,    0.7589,    0.8960,    0.9183,    0.5143,    0.5175,    1.2171},
+{    0.7934,    0.9715,    0.9248,         0,    0.5292,    0.3149,    1.0188,    0.9487,    1.1534,    1.0583},
+{    0.7239,    0.6106,    0.7589,    0.5292,         0,    0.2845,    1.1157,    1.2640,    0.7182,    0.7577},
+{    0.8910,    0.5082,    0.8960,    0.3149,    0.2845,         0,    0.9214,    1.2749,    0.9845,    0.4616},
+{    0.4018,    0.5320,    0.9183,    1.0188,    1.1157,    0.9214,         0,    0.3793,    0.3899,    0.9638},
+{    0.6606,    1.2453,    0.5143,    0.9487,    1.2640,    1.2749,    0.3793,         0,    0.5318,    1.6567},
+{    0.2764,    0.4451,    0.5175,    1.1534,    0.7182,    0.9845,    0.3899,    0.5318,         0,    0.8116},
+{    0.8421,    0.1669,    1.2171,    1.0583,    0.7577,    0.4616,    0.9638,    1.6567,    0.8116,         0},
             },
             new double[,] {
-{   13.7185,   13.5970,   14.4724,   13.6668,   14.2254,   13.4477,   13.9840,   14.2096,   13.9596,   14.3828},
-{   13.8542,   14.0889,   14.1062,   13.7957,   14.1607,   13.5743,   14.0000,   14.3869,   14.1234,   14.3454},
-{   14.2753,   14.2173,   14.4492,   14.0445,   13.6775,   14.3044,   14.4343,   13.9773,   14.2278,   14.4183},
-{   14.2829,   13.6339,   14.2875,   14.1263,   13.2777,   13.7501,   14.5498,   14.5238,   14.4923,   14.3972},
-{   14.5334,   13.7703,   14.2618,   14.5649,   13.1097,   13.3585,   14.3100,   14.6126,   14.5857,   14.4907},
-{   14.5125,   14.1727,   14.0872,   14.4155,   13.3905,   13.7667,   14.5035,   14.6775,   14.6809,   14.4932},
-{   13.8321,   14.2292,   14.1566,   13.7114,   14.5073,   13.6796,   13.9499,   13.8703,   13.9795,   14.3852},
-{   13.8260,   13.8756,   14.3651,   13.6258,   14.1115,   13.8588,   14.0675,   13.6042,   13.8604,   14.2964},
-{   13.9103,   14.0681,   14.4953,   13.8241,   14.3221,   13.7864,   14.0331,   14.0426,   13.9991,   14.4548},
-{   13.7248,   14.1238,   13.8747,   13.5695,   13.8893,   13.8218,   14.0442,   14.3604,   14.0418,   14.1283},
+{   14.7781,   14.3950,   13.7138,   13.9618,   14.0352,   13.8578,   14.3707,   14.1018,   14.4990,   13.9100},
+{   14.3950,   14.7781,   13.5767,   13.7715,   14.1542,   14.2607,   14.2360,   13.4735,   14.3260,   14.6102},
+{   13.7138,   13.5767,   14.7781,   13.8217,   13.9982,   13.8525,   13.8286,   14.2545,   14.2511,   13.5045},
+{   13.9618,   13.7715,   13.8217,   14.7781,   14.2390,   14.4598,   13.7206,   13.7960,   13.5743,   13.6778},
+{   14.0352,   14.1542,   13.9982,   14.2390,   14.7781,   14.4908,   13.6154,   13.4528,   14.0413,   13.9995},
+{   13.8578,   14.2607,   13.8525,   14.4598,   14.4908,   14.7781,   13.8254,   13.4407,   13.7576,   14.3090},
+{   14.3707,   14.2360,   13.8286,   13.7206,   13.6154,   13.8254,   14.7781,   14.3938,   14.3828,   13.7798},
+{   14.1018,   13.4735,   14.2545,   13.7960,   13.4528,   13.4407,   14.3938,   14.7781,   14.2363,   13.0113},
+{   14.4990,   14.3260,   14.2511,   13.5743,   14.0413,   13.7576,   14.3828,   14.2363,   14.7781,   13.9425},
+{   13.9100,   14.6102,   13.5045,   13.6778,   13.9995,   14.3090,   13.7798,   13.0113,   13.9425,   14.7781},
             },
           }
        );
+    }
+
+    [TestMethod]
+    public void CovRQIsoTest() {
+      TestCovarianceFunction(new CovarianceRQiso(), 0,
+        new double[,]
+          {
+{    0.6452,    0.6190,    0.8662,    0.6338,    0.7802,    0.5893,    0.7102,    0.7753,    0.7037,    0.8331},
+{    0.6771,    0.7392,    0.7442,    0.6630,    0.7603,    0.6144,    0.7145,    0.8346,    0.7492,    0.8200},
+{    0.7963,    0.7777,    0.8574,    0.7266,    0.6362,    0.8060,    0.8519,    0.7084,    0.7810,    0.8459},
+{    0.7988,    0.6268,    0.8004,    0.7500,    0.5583,    0.6524,    0.8968,    0.8864,    0.8739,    0.8382},
+{    0.8902,    0.6571,    0.7919,    0.9030,    0.5304,    0.5727,    0.8079,    0.9232,    0.9117,    0.8733},
+{    0.8819,    0.7639,    0.7387,    0.8449,    0.5785,    0.6563,    0.8783,    0.9519,    0.9535,    0.8742},
+{    0.6716,    0.7814,    0.7590,    0.6437,    0.8797,    0.6366,    0.7012,    0.6810,    0.7090,    0.8339},
+{    0.6702,    0.6823,    0.8268,    0.6250,    0.7456,    0.6782,    0.7331,    0.6205,    0.6786,    0.8033},
+{    0.6910,    0.7332,    0.8750,    0.6697,    0.8119,    0.6608,    0.7235,    0.7261,    0.7142,    0.8595},
+{    0.6467,    0.7493,    0.6821,    0.6133,    0.6857,    0.6692,    0.7265,    0.8252,    0.7259,    0.7506},
+          },
+        new double[][,]
+          {
+            new double[,] {
+{         0,    0.2722,    0.4584,    0.4165,    0.3996,    0.4367,    0.2838,    0.3820,    0.2165,    0.4271},
+{    0.2722,         0,    0.4736,    0.4505,    0.3666,    0.3300,    0.3391,    0.4823,    0.3037,    0.1436},
+{    0.4584,    0.4736,         0,    0.4428,    0.4084,    0.4376,    0.4416,    0.3323,    0.3336,    0.4799},
+{    0.4165,    0.4505,    0.4428,         0,    0.3381,    0.2388,    0.4575,    0.4468,    0.4739,    0.4629},
+{    0.3996,    0.3666,    0.4084,    0.3381,         0,    0.2213,    0.4698,    0.4837,    0.3981,    0.4081},
+{    0.4367,    0.3300,    0.4376,    0.2388,    0.2213,         0,    0.4422,    0.4845,    0.4525,    0.3109},
+{    0.2838,    0.3391,    0.4416,    0.4575,    0.4698,    0.4422,         0,    0.2728,    0.2781,    0.4493},
+{    0.3820,    0.4823,    0.3323,    0.4468,    0.4837,    0.4845,    0.2728,         0,    0.3390,    0.4995},
+{    0.2165,    0.3037,    0.3336,    0.4739,    0.3981,    0.4525,    0.2781,    0.3390,         0,    0.4206},
+{    0.4271,    0.1436,    0.4799,    0.4629,    0.4081,    0.3109,    0.4493,    0.4995,    0.4206,         0},
+            },
+            new double[,] {
+{    2.0000,    1.6749,    1.2884,    1.4086,    1.4481,    1.3558,    1.6576,    1.4857,    1.7530,    1.3818},
+{    1.6749,    2.0000,    1.2296,    1.3147,    1.5166,    1.5831,    1.5672,    1.1884,    1.6266,    1.8443},
+{    1.2884,    1.2296,    2.0000,    1.3383,    1.4280,    1.3533,    1.3417,    1.5791,    1.5769,    1.2005},
+{    1.4086,    1.3147,    1.3383,    2.0000,    1.5691,    1.7228,    1.2914,    1.3262,    1.2286,    1.2725},
+{    1.4481,    1.5166,    1.4280,    1.5691,    2.0000,    1.7466,    1.2457,    1.1805,    1.4515,    1.4286},
+{    1.3558,    1.5831,    1.3533,    1.7228,    1.7466,    2.0000,    1.3401,    1.1758,    1.3083,    1.6150},
+{    1.6576,    1.5672,    1.3417,    1.2914,    1.2457,    1.3401,    2.0000,    1.6740,    1.6662,    1.3186},
+{    1.4857,    1.1884,    1.5791,    1.3262,    1.1805,    1.1758,    1.6740,    2.0000,    1.5674,    1.0305},
+{    1.7530,    1.6266,    1.5769,    1.2286,    1.4515,    1.3083,    1.6662,    1.5674,    2.0000,    1.3985},
+{    1.3818,    1.8443,    1.2005,    1.2725,    1.4286,    1.6150,    1.3186,    1.0305,    1.3985,    2.0000},
+          },
+                      new double[,] {
+{         0,   -0.0124,   -0.0541,   -0.0386,   -0.0340,   -0.0452,   -0.0137,   -0.0298,   -0.0073,   -0.0419},
+{   -0.0124,         0,   -0.0623,   -0.0505,   -0.0265,   -0.0200,   -0.0215,   -0.0682,   -0.0162,   -0.0029},
+{   -0.0541,   -0.0623,         0,   -0.0474,   -0.0363,   -0.0455,   -0.0470,   -0.0204,   -0.0206,   -0.0664},
+{   -0.0386,   -0.0505,   -0.0474,         0,   -0.0213,   -0.0091,   -0.0537,   -0.0490,   -0.0624,   -0.0563},
+{   -0.0340,   -0.0265,   -0.0363,   -0.0213,         0,   -0.0077,   -0.0600,   -0.0693,   -0.0336,   -0.0362},
+{   -0.0452,   -0.0200,   -0.0455,   -0.0091,   -0.0077,         0,   -0.0472,   -0.0700,   -0.0514,   -0.0172},
+{   -0.0137,   -0.0215,   -0.0470,   -0.0537,   -0.0600,   -0.0472,         0,   -0.0125,   -0.0131,   -0.0500},
+{   -0.0298,   -0.0682,   -0.0204,   -0.0490,   -0.0693,   -0.0700,   -0.0125,         0,   -0.0215,   -0.0919},
+{   -0.0073,   -0.0162,   -0.0206,   -0.0624,   -0.0336,   -0.0514,   -0.0131,   -0.0215,         0,   -0.0399},
+{   -0.0419,   -0.0029,   -0.0664,   -0.0563,   -0.0362,   -0.0172,   -0.0500,   -0.0919,   -0.0399,         0},
+          }
+          }
+      );
+      TestCovarianceFunction(new CovarianceRQiso(), 1,
+         new double[,]
+           {
+{    6.8660,    6.8070,    7.2367,    6.8409,    7.1145,    6.7347,    6.9959,    7.1068,    6.9839,    7.1923},
+{    6.9324,    7.0474,    7.0559,    6.9038,    7.0827,    6.7961,    7.0038,    7.1944,    7.0644,    7.1739},
+{    7.1392,    7.1106,    7.2253,    7.0255,    6.8461,    7.1536,    7.2179,    6.9926,    7.1158,    7.2099},
+{    7.1429,    6.8249,    7.1453,    7.0658,    6.6525,    6.8816,    7.2752,    7.2623,    7.2467,    7.1995},
+{    7.2671,    6.8913,    7.1326,    7.2827,    6.5716,    6.6915,    7.1564,    7.3065,    7.2931,    7.2459},
+{    7.2567,    7.0886,    7.0466,    7.2086,    6.7069,    6.8897,    7.2522,    7.3388,    7.3405,    7.2471},
+{    6.9215,    7.1164,    7.0807,    6.8626,    7.2540,    6.8471,    6.9792,    6.9401,    6.9937,    7.1935},
+{    6.9185,    6.9428,    7.1836,    6.8210,    7.0584,    6.9346,    7.0369,    6.8105,    6.9354,    7.1496},
+{    6.9598,    7.0372,    7.2481,    6.9176,    7.1623,    6.8992,    7.0200,    7.0247,    7.0033,    7.2280},
+{    6.8692,    7.0646,    6.9424,    6.7937,    6.9495,    6.9165,    7.0254,    7.1813,    7.0242,    7.0668},
+           },
+         new double[][,]
+          {
+            new double[,] {
+{         0,    0.3746,    0.9986,    0.7776,    0.7108,    0.8711,    0.3978,    0.6497,    0.2745,    0.8243},
+{    0.3746,         0,    1.1178,    0.9478,    0.6013,    0.5017,    0.5249,    1.2062,    0.4401,    0.1662},
+{    0.9986,    1.1178,         0,    0.9033,    0.7445,    0.8758,    0.8972,    0.5076,    0.5108,    1.1798},
+{    0.7776,    0.9478,    0.9033,         0,    0.5222,    0.3124,    0.9927,    0.9261,    1.1199,    1.0301},
+{    0.7108,    0.6013,    0.7445,    0.5222,         0,    0.2825,    1.0844,    1.2237,    0.7052,    0.7433},
+{    0.8711,    0.5017,    0.8758,    0.3124,    0.2825,         0,    0.9000,    1.2339,    0.9601,    0.4563},
+{    0.3978,    0.5249,    0.8972,    0.9927,    1.0844,    0.9000,         0,    0.3757,    0.3861,    0.9404},
+{    0.6497,    1.2062,    0.5076,    0.9261,    1.2237,    1.2339,    0.3757,         0,    0.5247,    1.5872},
+{    0.2745,    0.4401,    0.5108,    1.1199,    0.7052,    0.9601,    0.3861,    0.5247,         0,    0.7950},
+{    0.8243,    0.1662,    1.1798,    1.0301,    0.7433,    0.4563,    0.9404,    1.5872,    0.7950,         0},
+            },
+            new double[,] {
+{   14.7781,   14.3968,   13.7277,   13.9699,   14.0420,   13.8682,   14.3727,   14.1074,   14.5000,   13.9192},
+{   14.3968,   14.7781,   13.5943,   13.7839,   14.1589,   14.2640,   14.2397,   13.4942,   14.3286,   14.6106},
+{   13.7277,   13.5943,   14.7781,   13.8329,   14.0057,   13.8630,   13.8396,   14.2579,   14.2545,   13.5242},
+{   13.9699,   13.7839,   13.8329,   14.7781,   14.2426,   14.4610,   13.7342,   13.8078,   13.5920,   13.6926},
+{   14.0420,   14.1589,   14.0057,   14.2426,   14.7781,   14.4918,   13.6319,   13.4742,   14.0479,   14.0069},
+{   13.8682,   14.2640,   13.8630,   14.4610,   14.4918,   14.7781,   13.8365,   13.4625,   13.7703,   14.3117},
+{   14.3727,   14.2397,   13.8396,   13.7342,   13.6319,   13.8365,   14.7781,   14.3956,   14.3848,   13.7920},
+{   14.1074,   13.4942,   14.2579,   13.8078,   13.4742,   13.4625,   14.3956,   14.7781,   14.2399,   13.0490},
+{   14.5000,   14.3286,   14.2545,   13.5920,   14.0479,   13.7703,   14.3848,   14.2399,   14.7781,   13.9510},
+{   13.9192,   14.6106,   13.5242,   13.6926,   14.0069,   14.3117,   13.7920,   13.0490,   13.9510,   14.7781},
+            },
+            new double[,] {
+{         0,   -0.0009,   -0.0068,   -0.0040,   -0.0034,   -0.0051,   -0.0010,   -0.0028,   -0.0005,   -0.0046},
+{   -0.0009,         0,   -0.0086,   -0.0061,   -0.0024,   -0.0016,   -0.0018,   -0.0101,   -0.0013,   -0.0002},
+{   -0.0068,   -0.0086,         0,   -0.0055,   -0.0037,   -0.0052,   -0.0054,   -0.0017,   -0.0017,   -0.0097},
+{   -0.0040,   -0.0061,   -0.0055,         0,   -0.0018,   -0.0006,   -0.0067,   -0.0058,   -0.0087,   -0.0073},
+{   -0.0034,   -0.0024,   -0.0037,   -0.0018,         0,   -0.0005,   -0.0081,   -0.0105,   -0.0033,   -0.0037},
+{   -0.0051,   -0.0016,   -0.0052,   -0.0006,   -0.0005,         0,   -0.0055,   -0.0106,   -0.0063,   -0.0013},
+{   -0.0010,   -0.0018,   -0.0054,   -0.0067,   -0.0081,   -0.0055,         0,   -0.0009,   -0.0010,   -0.0060},
+{   -0.0028,   -0.0101,   -0.0017,   -0.0058,   -0.0105,   -0.0106,   -0.0009,         0,   -0.0018,   -0.0183},
+{   -0.0005,   -0.0013,   -0.0017,   -0.0087,   -0.0033,   -0.0063,   -0.0010,   -0.0018,         0,   -0.0042},
+{   -0.0046,   -0.0002,   -0.0097,   -0.0073,   -0.0037,   -0.0013,   -0.0060,   -0.0183,   -0.0042,         0},
+                           }
+          }
+       );
+    }
+
+
+    [TestMethod]
+    public void CovRQArdTest() {
+      TestCovarianceFunction(new CovarianceRQArd(), 0,
+        new double[,]
+          {
+{    0.6452,    0.6190,    0.8662,    0.6338,    0.7802,    0.5893,    0.7102,    0.7753,    0.7037,    0.8331},
+{    0.6771,    0.7392,    0.7442,    0.6630,    0.7603,    0.6144,    0.7145,    0.8346,    0.7492,    0.8200},
+{    0.7963,    0.7777,    0.8574,    0.7266,    0.6362,    0.8060,    0.8519,    0.7084,    0.7810,    0.8459},
+{    0.7988,    0.6268,    0.8004,    0.7500,    0.5583,    0.6524,    0.8968,    0.8864,    0.8739,    0.8382},
+{    0.8902,    0.6571,    0.7919,    0.9030,    0.5304,    0.5727,    0.8079,    0.9232,    0.9117,    0.8733},
+{    0.8819,    0.7639,    0.7387,    0.8449,    0.5785,    0.6563,    0.8783,    0.9519,    0.9535,    0.8742},
+{    0.6716,    0.7814,    0.7590,    0.6437,    0.8797,    0.6366,    0.7012,    0.6810,    0.7090,    0.8339},
+{    0.6702,    0.6823,    0.8268,    0.6250,    0.7456,    0.6782,    0.7331,    0.6205,    0.6786,    0.8033},
+{    0.6910,    0.7332,    0.8750,    0.6697,    0.8119,    0.6608,    0.7235,    0.7261,    0.7142,    0.8595},
+{    0.6467,    0.7493,    0.6821,    0.6133,    0.6857,    0.6692,    0.7265,    0.8252,    0.7259,    0.7506},
+          },
+        new double[][,]
+          {            
+        new double[,]
+          {
+{         0,    0.0948,    0.0978,    0.1380,    0.0028,    0.0024,    0.0044,    0.1286,    0.0018,    0.0447},
+{    0.0948,         0,    0.2750,    0.3462,    0.1119,    0.1211,    0.0509,    0.2553,    0.0675,    0.0032},
+{    0.0978,    0.2750,         0,    0.0008,    0.0864,    0.0782,    0.1437,    0.0000,    0.1769,    0.2257},
+{    0.1380,    0.3462,    0.0008,         0,    0.1268,    0.1539,    0.1537,    0.0009,    0.1250,    0.2813},
+{    0.0028,    0.1119,    0.0864,    0.1268,         0,    0.0000,    0.0091,    0.0583,    0.0078,    0.0736},
+{    0.0024,    0.1211,    0.0782,    0.1539,    0.0000,         0,    0.0103,    0.0583,    0.0062,    0.0932},
+{    0.0044,    0.0509,    0.1437,    0.1537,    0.0091,    0.0103,         0,    0.2216,    0.0007,    0.0223},
+{    0.1286,    0.2553,    0.0000,    0.0009,    0.0583,    0.0583,    0.2216,         0,    0.1731,    0.1652},
+{    0.0018,    0.0675,    0.1769,    0.1250,    0.0078,    0.0062,    0.0007,    0.1731,         0,    0.0325},
+{    0.0447,    0.0032,    0.2257,    0.2813,    0.0736,    0.0932,    0.0223,    0.1652,    0.0325,         0},
+          },
+        new double[,]
+          {
+{         0,    0.1070,    0.1204,    0.0703,    0.2451,    0.1932,    0.0180,    0.0171,    0.0323,    0.2478},
+{    0.1070,         0,    0.0083,    0.0001,    0.0494,    0.0416,    0.1874,    0.1133,    0.0228,    0.0925},
+{    0.1204,    0.0083,         0,    0.0118,    0.0107,    0.0055,    0.2208,    0.3181,    0.0691,    0.0119},
+{    0.0703,    0.0001,    0.0118,         0,    0.0582,    0.0549,    0.1208,    0.1341,    0.0111,    0.0479},
+{    0.2451,    0.0494,    0.0107,    0.0582,         0,    0.0010,    0.2774,    0.2574,    0.1207,    0.0007},
+{    0.1932,    0.0416,    0.0055,    0.0549,    0.0010,         0,    0.2946,    0.2347,    0.0840,    0.0034},
+{    0.0180,    0.1874,    0.2208,    0.1208,    0.2774,    0.2946,         0,    0.0001,    0.0934,    0.3384},
+{    0.0171,    0.1133,    0.3181,    0.1341,    0.2574,    0.2347,    0.0001,         0,    0.0891,    0.2133},
+{    0.0323,    0.0228,    0.0691,    0.0111,    0.1207,    0.0840,    0.0934,    0.0891,         0,    0.1299},
+{    0.2478,    0.0925,    0.0119,    0.0479,    0.0007,    0.0034,    0.3384,    0.2133,    0.1299,         0},
+          },
+        new double[,]
+          {
+{         0,    0.0098,    0.1427,    0.0239,    0.0193,    0.0020,    0.1179,    0.1363,    0.1310,    0.0223},
+{    0.0098,         0,    0.0828,    0.0493,    0.0553,    0.0213,    0.0538,    0.0506,    0.0574,    0.0081},
+{    0.1427,    0.0828,         0,    0.2908,    0.3087,    0.1947,    0.0133,    0.0050,    0.0187,    0.0494},
+{    0.0239,    0.0493,    0.2908,         0,    0.0005,    0.0175,    0.1674,    0.2256,    0.1509,    0.0768},
+{    0.0193,    0.0553,    0.3087,    0.0005,         0,    0.0121,    0.1425,    0.1652,    0.1926,    0.0849},
+{    0.0020,    0.0213,    0.1947,    0.0175,    0.0121,         0,    0.1035,    0.1094,    0.0981,    0.0518},
+{    0.1179,    0.0538,    0.0133,    0.1674,    0.1425,    0.1035,         0,    0.0048,    0.0000,    0.0171},
+{    0.1363,    0.0506,    0.0050,    0.2256,    0.1652,    0.1094,    0.0048,         0,    0.0043,    0.0209},
+{    0.1310,    0.0574,    0.0187,    0.1509,    0.1926,    0.0981,    0.0000,    0.0043,         0,    0.0189},
+{    0.0223,    0.0081,    0.0494,    0.0768,    0.0849,    0.0518,    0.0171,    0.0209,    0.0189,         0},
+          },
+        new double[,]
+          {
+{         0,    0.0441,    0.0162,    0.0636,    0.0102,    0.0607,    0.0219,    0.0034,    0.0418,    0.1036},
+{    0.0441,         0,    0.0760,    0.0050,    0.0877,    0.0080,    0.0032,    0.0383,    0.1549,    0.0394},
+{    0.0162,    0.0760,         0,    0.1383,    0.0017,    0.1442,    0.0637,    0.0088,    0.0008,    0.1587},
+{    0.0636,    0.0050,    0.1383,         0,    0.1525,    0.0000,    0.0134,    0.0838,    0.1319,    0.0047},
+{    0.0102,    0.0877,    0.0017,    0.1525,         0,    0.1932,    0.0393,    0.0013,    0.0046,    0.1872},
+{    0.0607,    0.0080,    0.1442,    0.0000,    0.1932,         0,    0.0154,    0.0676,    0.1524,    0.0068},
+{    0.0219,    0.0032,    0.0637,    0.0134,    0.0393,    0.0154,         0,    0.0463,    0.1176,    0.0359},
+{    0.0034,    0.0383,    0.0088,    0.0838,    0.0013,    0.0676,    0.0463,         0,    0.0147,    0.0787},
+{    0.0418,    0.1549,    0.0008,    0.1319,    0.0046,    0.1524,    0.1176,    0.0147,         0,    0.2390},
+{    0.1036,    0.0394,    0.1587,    0.0047,    0.1872,    0.0068,    0.0359,    0.0787,    0.2390,         0},
+          },
+        new double[,]
+          {
+{         0,    0.0166,    0.0813,    0.1208,    0.1221,    0.1784,    0.1217,    0.0967,    0.0096,    0.0086},
+{    0.0166,         0,    0.0315,    0.0499,    0.0622,    0.1381,    0.0438,    0.0248,    0.0012,    0.0003},
+{    0.0813,    0.0315,         0,    0.0012,    0.0008,    0.0149,    0.0002,    0.0004,    0.0680,    0.0342},
+{    0.1208,    0.0499,    0.0012,         0,    0.0001,    0.0125,    0.0022,    0.0025,    0.0550,    0.0521},
+{    0.1221,    0.0622,    0.0008,    0.0001,         0,    0.0151,    0.0015,    0.0014,    0.0724,    0.0618},
+{    0.1784,    0.1381,    0.0149,    0.0125,    0.0151,         0,    0.0184,    0.0145,    0.1119,    0.1556},
+{    0.1217,    0.0438,    0.0002,    0.0022,    0.0015,    0.0184,         0,    0.0000,    0.0663,    0.0356},
+{    0.0967,    0.0248,    0.0004,    0.0025,    0.0014,    0.0145,    0.0000,         0,    0.0578,    0.0214},
+{    0.0096,    0.0012,    0.0680,    0.0550,    0.0724,    0.1119,    0.0663,    0.0578,         0,    0.0003},
+{    0.0086,    0.0003,    0.0342,    0.0521,    0.0618,    0.1556,    0.0356,    0.0214,    0.0003,         0},
+          },
+        new double[,]
+          {
+{    2.0000,    1.6749,    1.2884,    1.4086,    1.4481,    1.3558,    1.6576,    1.4857,    1.7530,    1.3818},
+{    1.6749,    2.0000,    1.2296,    1.3147,    1.5166,    1.5831,    1.5672,    1.1884,    1.6266,    1.8443},
+{    1.2884,    1.2296,    2.0000,    1.3383,    1.4280,    1.3533,    1.3417,    1.5791,    1.5769,    1.2005},
+{    1.4086,    1.3147,    1.3383,    2.0000,    1.5691,    1.7228,    1.2914,    1.3262,    1.2286,    1.2725},
+{    1.4481,    1.5166,    1.4280,    1.5691,    2.0000,    1.7466,    1.2457,    1.1805,    1.4515,    1.4286},
+{    1.3558,    1.5831,    1.3533,    1.7228,    1.7466,    2.0000,    1.3401,    1.1758,    1.3083,    1.6150},
+{    1.6576,    1.5672,    1.3417,    1.2914,    1.2457,    1.3401,    2.0000,    1.6740,    1.6662,    1.3186},
+{    1.4857,    1.1884,    1.5791,    1.3262,    1.1805,    1.1758,    1.6740,    2.0000,    1.5674,    1.0305},
+{    1.7530,    1.6266,    1.5769,    1.2286,    1.4515,    1.3083,    1.6662,    1.5674,    2.0000,    1.3985},
+{    1.3818,    1.8443,    1.2005,    1.2725,    1.4286,    1.6150,    1.3186,    1.0305,    1.3985,    2.0000},
+          },
+        new double[,]
+          {
+{         0,   -0.0124,   -0.0541,   -0.0386,   -0.0340,   -0.0452,   -0.0137,   -0.0298,   -0.0073,   -0.0419},
+{   -0.0124,         0,   -0.0623,   -0.0505,   -0.0265,   -0.0200,   -0.0215,   -0.0682,   -0.0162,   -0.0029},
+{   -0.0541,   -0.0623,         0,   -0.0474,   -0.0363,   -0.0455,   -0.0470,   -0.0204,   -0.0206,   -0.0664},
+{   -0.0386,   -0.0505,   -0.0474,         0,   -0.0213,   -0.0091,   -0.0537,   -0.0490,   -0.0624,   -0.0563},
+{   -0.0340,   -0.0265,   -0.0363,   -0.0213,         0,   -0.0077,   -0.0600,   -0.0693,   -0.0336,   -0.0362},
+{   -0.0452,   -0.0200,   -0.0455,   -0.0091,   -0.0077,         0,   -0.0472,   -0.0700,   -0.0514,   -0.0172},
+{   -0.0137,   -0.0215,   -0.0470,   -0.0537,   -0.0600,   -0.0472,         0,   -0.0125,   -0.0131,   -0.0500},
+{   -0.0298,   -0.0682,   -0.0204,   -0.0490,   -0.0693,   -0.0700,   -0.0125,         0,   -0.0215,   -0.0919},
+{   -0.0073,   -0.0162,   -0.0206,   -0.0624,   -0.0336,   -0.0514,   -0.0131,   -0.0215,         0,   -0.0399},
+{   -0.0419,   -0.0029,   -0.0664,   -0.0563,   -0.0362,   -0.0172,   -0.0500,   -0.0919,   -0.0399,         0},
+          },
+          }
+      );
+
+      TestCovarianceFunction(new CovarianceRQArd(), 1,
+       new double[,]
+          {
+{    6.8660,    6.8070,    7.2367,    6.8409,    7.1145,    6.7347,    6.9959,    7.1068,    6.9839,    7.1923},
+{    6.9324,    7.0474,    7.0559,    6.9038,    7.0827,    6.7961,    7.0038,    7.1944,    7.0644,    7.1739},
+{    7.1392,    7.1106,    7.2253,    7.0255,    6.8461,    7.1536,    7.2179,    6.9926,    7.1158,    7.2099},
+{    7.1429,    6.8249,    7.1453,    7.0658,    6.6525,    6.8816,    7.2752,    7.2623,    7.2467,    7.1995},
+{    7.2671,    6.8913,    7.1326,    7.2827,    6.5716,    6.6915,    7.1564,    7.3065,    7.2931,    7.2459},
+{    7.2567,    7.0886,    7.0466,    7.2086,    6.7069,    6.8897,    7.2522,    7.3388,    7.3405,    7.2471},
+{    6.9215,    7.1164,    7.0807,    6.8626,    7.2540,    6.8471,    6.9792,    6.9401,    6.9937,    7.1935},
+{    6.9185,    6.9428,    7.1836,    6.8210,    7.0584,    6.9346,    7.0369,    6.8105,    6.9354,    7.1496},
+{    6.9598,    7.0372,    7.2481,    6.9176,    7.1623,    6.8992,    7.0200,    7.0247,    7.0033,    7.2280},
+{    6.8692,    7.0646,    6.9424,    6.7937,    6.9495,    6.9165,    7.0254,    7.1813,    7.0242,    7.0668},
+          },
+       new double[][,]
+          {            
+        new double[,]
+          {
+{         0,    0.1304,    0.2130,    0.2577,    0.0051,    0.0048,    0.0061,    0.2187,    0.0023,    0.0863},
+{    0.1304,         0,    0.6491,    0.7284,    0.1836,    0.1841,    0.0788,    0.6386,    0.0979,    0.0037},
+{    0.2130,    0.6491,         0,    0.0016,    0.1576,    0.1566,    0.2918,    0.0000,    0.2709,    0.5549},
+{    0.2577,    0.7284,    0.0016,         0,    0.1959,    0.2014,    0.3334,    0.0018,    0.2955,    0.6260},
+{    0.0051,    0.1836,    0.1576,    0.1959,         0,    0.0000,    0.0210,    0.1476,    0.0138,    0.1340},
+{    0.0048,    0.1841,    0.1566,    0.2014,    0.0000,         0,    0.0210,    0.1485,    0.0131,    0.1368},
+{    0.0061,    0.0788,    0.2918,    0.3334,    0.0210,    0.0210,         0,    0.3051,    0.0010,    0.0467},
+{    0.2187,    0.6386,    0.0000,    0.0018,    0.1476,    0.1485,    0.3051,         0,    0.2679,    0.5250},
+{    0.0023,    0.0979,    0.2709,    0.2955,    0.0138,    0.0131,    0.0010,    0.2679,         0,    0.0615},
+{    0.0863,    0.0037,    0.5549,    0.6260,    0.1340,    0.1368,    0.0467,    0.5250,    0.0615,         0},
+          },
+        new double[,]
+          {
+{         0,    0.1472,    0.2623,    0.1312,    0.4360,    0.3853,    0.0252,    0.0290,    0.0410,    0.4783},
+{    0.1472,         0,    0.0195,    0.0002,    0.0811,    0.0633,    0.2900,    0.2833,    0.0330,    0.1071},
+{    0.2623,    0.0195,         0,    0.0240,    0.0196,    0.0110,    0.4485,    0.4860,    0.1059,    0.0293},
+{    0.1312,    0.0002,    0.0240,         0,    0.0898,    0.0718,    0.2620,    0.2779,    0.0262,    0.1067},
+{    0.4360,    0.0811,    0.0196,    0.0898,         0,    0.0012,    0.6403,    0.6512,    0.2138,    0.0013},
+{    0.3853,    0.0633,    0.0110,    0.0718,    0.0012,         0,    0.5997,    0.5978,    0.1783,    0.0050},
+{    0.0252,    0.2900,    0.4485,    0.2620,    0.6403,    0.5997,         0,    0.0002,    0.1297,    0.7083},
+{    0.0290,    0.2833,    0.4860,    0.2779,    0.6512,    0.5978,    0.0002,         0,    0.1379,    0.6776},
+{    0.0410,    0.0330,    0.1059,    0.0262,    0.2138,    0.1783,    0.1297,    0.1379,         0,    0.2455},
+{    0.4783,    0.1071,    0.0293,    0.1067,    0.0013,    0.0050,    0.7083,    0.6776,    0.2455,         0},
+          },
+        new double[,]
+          {
+{         0,    0.0135,    0.3109,    0.0446,    0.0343,    0.0040,    0.1652,    0.2317,    0.1661,    0.0430},
+{    0.0135,         0,    0.1954,    0.1037,    0.0908,    0.0323,    0.0832,    0.1265,    0.0831,    0.0094},
+{    0.3109,    0.1954,         0,    0.5932,    0.5627,    0.3898,    0.0271,    0.0076,    0.0287,    0.1215},
+{    0.0446,    0.1037,    0.5932,         0,    0.0007,    0.0229,    0.3633,    0.4676,    0.3566,    0.1709},
+{    0.0343,    0.0908,    0.5627,    0.0007,         0,    0.0155,    0.3289,    0.4180,    0.3412,    0.1546},
+{    0.0040,    0.0323,    0.3898,    0.0229,    0.0155,         0,    0.2106,    0.2787,    0.2080,    0.0761},
+{    0.1652,    0.0832,    0.0271,    0.3633,    0.3289,    0.2106,         0,    0.0066,    0.0000,    0.0357},
+{    0.2317,    0.1265,    0.0076,    0.4676,    0.4180,    0.2787,    0.0066,         0,    0.0067,    0.0665},
+{    0.1661,    0.0831,    0.0287,    0.3566,    0.3412,    0.2080,    0.0000,    0.0067,         0,    0.0358},
+{    0.0430,    0.0094,    0.1215,    0.1709,    0.1546,    0.0761,    0.0357,    0.0665,    0.0358,         0},
+          },
+        new double[,]
+          {
+{         0,    0.0606,    0.0353,    0.1187,    0.0182,    0.1211,    0.0307,    0.0058,    0.0530,    0.2000},
+{    0.0606,         0,    0.1794,    0.0105,    0.1438,    0.0121,    0.0050,    0.0958,    0.2245,    0.0456},
+{    0.0353,    0.1794,         0,    0.2821,    0.0031,    0.2886,    0.1294,    0.0135,    0.0012,    0.3901},
+{    0.1187,    0.0105,    0.2821,         0,    0.2356,    0.0000,    0.0291,    0.1737,    0.3117,    0.0105},
+{    0.0182,    0.1438,    0.0031,    0.2356,         0,    0.2466,    0.0907,    0.0033,    0.0081,    0.3409},
+{    0.1211,    0.0121,    0.2886,    0.0000,    0.2466,         0,    0.0313,    0.1720,    0.3233,    0.0100},
+{    0.0307,    0.0050,    0.1294,    0.0291,    0.0907,    0.0313,         0,    0.0638,    0.1634,    0.0752},
+{    0.0058,    0.0958,    0.0135,    0.1737,    0.0033,    0.1720,    0.0638,         0,    0.0227,    0.2501},
+{    0.0530,    0.2245,    0.0012,    0.3117,    0.0081,    0.3233,    0.1634,    0.0227,         0,    0.4517},
+{    0.2000,    0.0456,    0.3901,    0.0105,    0.3409,    0.0100,    0.0752,    0.2501,    0.4517,         0},
+          },
+        new double[,]
+          {
+{         0,    0.0228,    0.1771,    0.2255,    0.2172,    0.3559,    0.1705,    0.1644,    0.0122,    0.0167},
+{    0.0228,         0,    0.0745,    0.1050,    0.1020,    0.2099,    0.0679,    0.0620,    0.0017,    0.0004},
+{    0.1771,    0.0745,         0,    0.0024,    0.0015,    0.0299,    0.0004,    0.0005,    0.1042,    0.0840},
+{    0.2255,    0.1050,    0.0024,         0,    0.0001,    0.0163,    0.0048,    0.0051,    0.1299,    0.1160},
+{    0.2172,    0.1020,    0.0015,    0.0001,         0,    0.0192,    0.0034,    0.0036,    0.1283,    0.1125},
+{    0.3559,    0.2099,    0.0299,    0.0163,    0.0192,         0,    0.0374,    0.0368,    0.2374,    0.2284},
+{    0.1705,    0.0679,    0.0004,    0.0048,    0.0034,    0.0374,         0,    0.0000,    0.0921,    0.0746},
+{    0.1644,    0.0620,    0.0005,    0.0051,    0.0036,    0.0368,    0.0000,         0,    0.0895,    0.0680},
+{    0.0122,    0.0017,    0.1042,    0.1299,    0.1283,    0.2374,    0.0921,    0.0895,         0,    0.0005},
+{    0.0167,    0.0004,    0.0840,    0.1160,    0.1125,    0.2284,    0.0746,    0.0680,    0.0005,         0},
+          },
+        new double[,]
+          {
+{   14.7781,   14.3968,   13.7277,   13.9699,   14.0420,   13.8682,   14.3727,   14.1074,   14.5000,   13.9192},
+{   14.3968,   14.7781,   13.5943,   13.7839,   14.1589,   14.2640,   14.2397,   13.4942,   14.3286,   14.6106},
+{   13.7277,   13.5943,   14.7781,   13.8329,   14.0057,   13.8630,   13.8396,   14.2579,   14.2545,   13.5242},
+{   13.9699,   13.7839,   13.8329,   14.7781,   14.2426,   14.4610,   13.7342,   13.8078,   13.5920,   13.6926},
+{   14.0420,   14.1589,   14.0057,   14.2426,   14.7781,   14.4918,   13.6319,   13.4742,   14.0479,   14.0069},
+{   13.8682,   14.2640,   13.8630,   14.4610,   14.4918,   14.7781,   13.8365,   13.4625,   13.7703,   14.3117},
+{   14.3727,   14.2397,   13.8396,   13.7342,   13.6319,   13.8365,   14.7781,   14.3956,   14.3848,   13.7920},
+{   14.1074,   13.4942,   14.2579,   13.8078,   13.4742,   13.4625,   14.3956,   14.7781,   14.2399,   13.0490},
+{   14.5000,   14.3286,   14.2545,   13.5920,   14.0479,   13.7703,   14.3848,   14.2399,   14.7781,   13.9510},
+{   13.9192,   14.6106,   13.5242,   13.6926,   14.0069,   14.3117,   13.7920,   13.0490,   13.9510,   14.7781},
+          },
+        new double[,]
+          {
+{         0,   -0.0009,   -0.0068,   -0.0040,   -0.0034,   -0.0051,   -0.0010,   -0.0028,   -0.0005,   -0.0046},
+{   -0.0009,         0,   -0.0086,   -0.0061,   -0.0024,   -0.0016,   -0.0018,   -0.0101,   -0.0013,   -0.0002},
+{   -0.0068,   -0.0086,         0,   -0.0055,   -0.0037,   -0.0052,   -0.0054,   -0.0017,   -0.0017,   -0.0097},
+{   -0.0040,   -0.0061,   -0.0055,         0,   -0.0018,   -0.0006,   -0.0067,   -0.0058,   -0.0087,   -0.0073},
+{   -0.0034,   -0.0024,   -0.0037,   -0.0018,         0,   -0.0005,   -0.0081,   -0.0105,   -0.0033,   -0.0037},
+{   -0.0051,   -0.0016,   -0.0052,   -0.0006,   -0.0005,         0,   -0.0055,   -0.0106,   -0.0063,   -0.0013},
+{   -0.0010,   -0.0018,   -0.0054,   -0.0067,   -0.0081,   -0.0055,         0,   -0.0009,   -0.0010,   -0.0060},
+{   -0.0028,   -0.0101,   -0.0017,   -0.0058,   -0.0105,   -0.0106,   -0.0009,         0,   -0.0018,   -0.0183},
+{   -0.0005,   -0.0013,   -0.0017,   -0.0087,   -0.0033,   -0.0063,   -0.0010,   -0.0018,         0,   -0.0042},
+{   -0.0046,   -0.0002,   -0.0097,   -0.0073,   -0.0037,   -0.0013,   -0.0060,   -0.0183,   -0.0042,         0},
+          },
+          }
+     );
+    }
+
+
+    [TestMethod]
+    public void CovMaternIsoTest() {
+      var cov = new CovarianceMaternIso();
+      cov.DParameter.Value = cov.DParameter.ValidValues.Single(x => x.Value == 1);
+      TestCovarianceFunction(cov, 0,
+        new double[,]
+          {
+{    0.3504,    0.3297,    0.5736,    0.3413,    0.4721,    0.3071,    0.4052,    0.4670,    0.3995,    0.5310},
+{    0.3765,    0.4317,    0.4364,    0.3649,    0.4520,    0.3261,    0.4090,    0.5328,    0.4412,    0.5155},
+{    0.4891,    0.4695,    0.5618,    0.4200,    0.3432,    0.4996,    0.5545,    0.4036,    0.4729,    0.5468},
+{    0.4918,    0.3358,    0.4935,    0.4420,    0.2843,    0.3562,    0.6189,    0.6027,    0.5844,    0.5373},
+{    0.6085,    0.3600,    0.4844,    0.6291,    0.2643,    0.2947,    0.5017,    0.6650,    0.6440,    0.5835},
+{    0.5959,    0.4556,    0.4312,    0.5456,    0.2990,    0.3593,    0.5907,    0.7278,    0.7318,    0.5848},
+{    0.3720,    0.4733,    0.4507,    0.3492,    0.5928,    0.3435,    0.3972,    0.3798,    0.4041,    0.5320},
+{    0.3708,    0.3810,    0.5235,    0.3344,    0.4378,    0.3775,    0.4260,    0.3309,    0.3778,    0.4967},
+{    0.3884,    0.4261,    0.5860,    0.3704,    0.5063,    0.3631,    0.4172,    0.4196,    0.4088,    0.5645},
+{    0.3516,    0.4413,    0.3808,    0.3253,    0.3839,    0.3700,    0.4200,    0.5215,    0.4193,    0.4426},
+          },
+        new double[][,]
+          {
+            new double[,] {
+{         0,    0.3341,    0.3674,    0.3665,    0.3647,    0.3678,    0.3380,    0.3621,    0.3122,    0.3673},
+{    0.3341,         0,    0.3655,    0.3678,    0.3593,    0.3512,    0.3535,    0.3632,    0.3441,    0.2724},
+{    0.3674,    0.3655,         0,    0.3679,    0.3657,    0.3678,    0.3679,    0.3518,    0.3521,    0.3639},
+{    0.3665,    0.3678,    0.3679,         0,    0.3532,    0.3217,    0.3675,    0.3679,    0.3654,    0.3670},
+{    0.3647,    0.3593,    0.3657,    0.3532,         0,    0.3143,    0.3661,    0.3627,    0.3645,    0.3657},
+{    0.3678,    0.3512,    0.3678,    0.3217,    0.3143,         0,    0.3679,    0.3624,    0.3677,    0.3462},
+{    0.3380,    0.3535,    0.3679,    0.3675,    0.3661,    0.3679,         0,    0.3343,    0.3361,    0.3678},
+{    0.3621,    0.3632,    0.3518,    0.3679,    0.3627,    0.3624,    0.3343,         0,    0.3534,    0.3480},
+{    0.3122,    0.3441,    0.3521,    0.3654,    0.3645,    0.3677,    0.3361,    0.3534,         0,    0.3669},
+{    0.3673,    0.2724,    0.3639,    0.3670,    0.3657,    0.3462,    0.3678,    0.3480,    0.3669,         0},
+            },
+            new double[,] {
+{    2.0000,    1.0726,    0.6992,    0.7999,    0.8353,    0.7546,    1.0516,    0.8703,    1.1763,    0.7767},
+{    1.0726,    2.0000,    0.6529,    0.7205,    0.9001,    0.9680,    0.9512,    0.6215,    1.0157,    1.3261},
+{    0.6992,    0.6529,    2.0000,    0.7399,    0.8171,    0.7524,    0.7427,    0.9637,    0.9614,    0.6307},
+{    0.7999,    0.7205,    0.7399,    2.0000,    0.9532,    1.1341,    0.7016,    0.7298,    0.6522,    0.6865},
+{    0.8353,    0.9001,    0.8171,    0.9532,    2.0000,    1.1670,    0.6654,    0.6156,    0.8384,    0.8177},
+{    0.7546,    0.9680,    0.7524,    1.1341,    1.1670,    2.0000,    0.7414,    0.6121,    0.7152,    1.0027},
+{    1.0516,    0.9512,    0.7427,    0.7016,    0.6654,    0.7414,    2.0000,    1.0716,    1.0620,    0.7236},
+{    0.8703,    0.6215,    0.9637,    0.7298,    0.6156,    0.6121,    1.0716,    2.0000,    0.9514,    0.5073},
+{    1.1763,    1.0157,    0.9614,    0.6522,    0.8384,    0.7152,    1.0620,    0.9514,    2.0000,    0.7911},
+{    0.7767,    1.3261,    0.6307,    0.6865,    0.8177,    1.0027,    0.7236,    0.5073,    0.7911,    2.0000},
+          },
+          }
+      );
+
+      cov = new CovarianceMaternIso();
+      cov.DParameter.Value = cov.DParameter.ValidValues.Single(x => x.Value == 1);
+      TestCovarianceFunction(cov, 1,
+         new double[,]
+           {
+{    5.0240,    4.9127,    6.0225,    4.9757,    5.6062,    4.7858,    5.2996,    5.5839,    5.2720,    5.8539},
+{    5.1587,    5.4247,    5.4464,    5.0993,    5.5171,    4.8930,    5.3181,    5.8612,    5.4683,    5.7906},
+{    5.6795,    5.5947,    5.9766,    5.3703,    4.9856,    5.7244,    5.9479,    5.2920,    5.6098,    5.9177},
+{    5.6910,    4.9457,    5.6984,    5.4720,    4.6518,    5.0545,    6.1936,    6.1332,    6.0640,    5.8794},
+{    6.1550,    5.0740,    5.6595,    6.2308,    4.5290,    4.7142,    5.7333,    6.3593,    6.2847,    6.0607},
+{    6.1078,    5.5332,    5.4226,    5.9127,    4.7394,    5.0707,    6.0880,    6.5739,    6.5871,    6.0658},
+{    5.1358,    5.6116,    5.5116,    5.0174,    6.0960,    4.9875,    5.2612,    5.1753,    5.2945,    5.8581},
+{    5.1296,    5.1809,    5.8235,    4.9384,    5.4528,    5.1635,    5.3983,    4.9192,    5.1652,    5.7119},
+{    5.2179,    5.3989,    6.0701,    5.1278,    5.7524,    5.0900,    5.3568,    5.3681,    5.3171,    5.9874},
+{    5.0301,    5.4688,    5.1800,    4.8886,    5.1954,    5.1255,    5.3700,    5.8155,    5.3671,    5.4746},
+           },
+         new double[][,]
+          {
+            new double[,] {
+{         0,    1.3467,    1.9408,    1.7781,    1.7213,    1.8512,    1.3793,    1.6654,    1.1869,    1.8156},
+{    1.3467,         0,    2.0157,    1.9064,    1.6180,    1.5105,    1.5369,    2.0667,    1.4355,    0.9602},
+{    1.9408,    2.0157,         0,    1.8749,    1.7505,    1.8547,    1.8704,    1.5173,    1.5209,    2.0519},
+{    1.7781,    1.9064,    1.8749,         0,    1.5338,    1.2516,    1.9369,    1.8912,    2.0170,    1.9613},
+{    1.7213,    1.6180,    1.7505,    1.5338,         0,    1.2011,    1.9955,    2.0764,    1.7164,    1.7495},
+{    1.8512,    1.5105,    1.8547,    1.2516,    1.2011,         0,    1.8725,    2.0820,    1.9149,    1.4559},
+{    1.3793,    1.5369,    1.8704,    1.9369,    1.9955,    1.8725,         0,    1.3483,    1.3632,    1.9013},
+{    1.6654,    2.0667,    1.5173,    1.8912,    2.0764,    2.0820,    1.3483,         0,    1.5366,    2.2512},
+{    1.1869,    1.4355,    1.5209,    2.0170,    1.7164,    1.9149,    1.3632,    1.5366,         0,    1.7923},
+{    1.8156,    0.9602,    2.0519,    1.9613,    1.7495,    1.4559,    1.9013,    2.2512,    1.7923,         0},
+            },
+            new double[,] {
+{   14.7781,   11.7510,   10.0394,   10.5489,   10.7184,   10.3248,   11.6660,   10.8814,   12.1567,   10.4351},
+{   11.7510,   14.7781,    9.7898,   10.1506,   11.0167,   11.3155,   11.2432,    9.6139,   11.5176,   12.7049},
+{   10.0394,    9.7898,   14.7781,   10.2506,   10.6319,   10.3138,   10.2646,   11.2970,   11.2870,    9.6657},
+{   10.5489,   10.1506,   10.2506,   14.7781,   11.2517,   11.9945,   10.0521,   10.1990,    9.7856,    9.9719},
+{   10.7184,   11.0167,   10.6319,   11.2517,   14.7781,   12.1214,    9.8583,    9.5798,   10.7329,   10.6348},
+{   10.3248,   11.3155,   10.3138,   11.9945,   12.1214,   14.7781,   10.2581,    9.5600,   10.1233,   11.4631},
+{   11.6660,   11.2432,   10.2646,   10.0521,    9.8583,   10.2581,   14.7781,   11.7468,   11.7082,   10.1669},
+{   10.8814,    9.6139,   11.2970,   10.1990,    9.5798,    9.5600,   11.7468,   14.7781,   11.2438,    8.9219},
+{   12.1567,   11.5176,   11.2870,    9.7856,   10.7329,   10.1233,   11.7082,   11.2438,   14.7781,   10.5061},
+{   10.4351,   12.7049,    9.6657,    9.9719,   10.6348,   11.4631,   10.1669,    8.9219,   10.5061,   14.7781},
+            },
+          }
+       );
+
+      cov = new CovarianceMaternIso();
+      cov.DParameter.Value = cov.DParameter.ValidValues.Single(x => x.Value == 5);
+      TestCovarianceFunction(cov, 0,
+         new double[,]
+           {
+{    0.4963,    0.4629,    0.7958,    0.4817,    0.6753,    0.4255,    0.5810,    0.6685,    0.5725,    0.7486},
+{    0.5375,    0.6197,    0.6264,    0.5193,    0.6481,    0.4570,    0.5867,    0.7507,    0.6331,    0.7303},
+{    0.6974,    0.6718,    0.7832,    0.6029,    0.4847,    0.7108,    0.7752,    0.5786,    0.6764,    0.7668},
+{    0.7008,    0.4727,    0.7030,    0.6342,    0.3873,    0.5056,    0.8402,    0.8250,    0.8069,    0.7559},
+{    0.8305,    0.5116,    0.6914,    0.8494,    0.3535,    0.4049,    0.7134,    0.8794,    0.8623,    0.8060},
+{    0.8184,    0.6530,    0.6190,    0.7654,    0.4121,    0.5105,    0.8132,    0.9232,    0.9256,    0.8074},
+{    0.5305,    0.6769,    0.6464,    0.4943,    0.8153,    0.4853,    0.5691,    0.5426,    0.5794,    0.7499},
+{    0.5286,    0.5443,    0.7399,    0.4706,    0.6283,    0.5390,    0.6115,    0.4648,    0.5395,    0.7071},
+{    0.5557,    0.6117,    0.8085,    0.5280,    0.7191,    0.5164,    0.5987,    0.6022,    0.5864,    0.7862},
+{    0.4982,    0.6333,    0.5441,    0.4557,    0.5488,    0.5273,    0.6028,    0.7375,    0.6019,    0.6350},
+           },
+         new double[][,]
+          {
+            new double[,] {
+{         0,    0.3844,    0.5881,    0.5499,    0.5324,    0.5694,    0.3987,    0.5135,    0.3134,    0.5603},
+{    0.3844,         0,    0.5987,    0.5817,    0.4964,    0.4543,    0.4650,    0.6029,    0.4230,    0.2154},
+{    0.5881,    0.5987,         0,    0.5749,    0.5416,    0.5703,    0.5739,    0.4571,    0.4586,    0.6019},
+{    0.5499,    0.5817,    0.5749,         0,    0.4638,    0.3422,    0.5874,    0.5785,    0.5988,    0.5915},
+{    0.5324,    0.4964,    0.5416,    0.4638,         0,    0.3197,    0.5963,    0.6034,    0.5308,    0.5413},
+{    0.5694,    0.4543,    0.5703,    0.3422,    0.3197,         0,    0.5744,    0.6036,    0.5833,    0.4316},
+{    0.3987,    0.4650,    0.5739,    0.5874,    0.5963,    0.5744,         0,    0.3852,    0.3917,    0.5806},
+{    0.5135,    0.6029,    0.4571,    0.5785,    0.6034,    0.6036,    0.3852,         0,    0.4649,    0.5937},
+{    0.3134,    0.4230,    0.4586,    0.5988,    0.5308,    0.5833,    0.3917,    0.4649,         0,    0.5539},
+{    0.5603,    0.2154,    0.6019,    0.5915,    0.5413,    0.4316,    0.5806,    0.5937,    0.5539,         0},
+            },
+            new double[,] {
+{    2.0000,    1.5097,    0.9901,    1.1464,    1.1989,    1.0773,    1.4852,    1.2492,    1.6213,    1.1113},
+{    1.5097,    2.0000,    0.9152,    1.0239,    1.2908,    1.3817,    1.3599,    0.8633,    1.4419,    1.7557},
+{    0.9901,    0.9152,    2.0000,    1.0545,    1.1721,    1.0739,    1.0588,    1.3761,    1.3731,    0.8785},
+{    1.1464,    1.0239,    1.0545,    2.0000,    1.3625,    1.5777,    0.9939,    1.0387,    0.9139,    0.9697},
+{    1.1989,    1.2908,    1.1721,    1.3625,    2.0000,    1.6120,    0.9356,    0.8534,    1.2033,    1.1730},
+{    1.0773,    1.3817,    1.0739,    1.5777,    1.6120,    2.0000,    1.0568,    0.8477,    1.0156,    1.4258},
+{    1.4852,    1.3599,    1.0588,    0.9939,    0.9356,    1.0568,    2.0000,    1.5084,    1.4974,    1.0289},
+{    1.2492,    0.8633,    1.3761,    1.0387,    0.8534,    0.8477,    1.5084,    2.0000,    1.3601,    0.6706},
+{    1.6213,    1.4419,    1.3731,    0.9139,    1.2033,    1.0156,    1.4974,    1.3601,    2.0000,    1.1332},
+{    1.1113,    1.7557,    0.8785,    0.9697,    1.1730,    1.4258,    1.0289,    0.6706,    1.1332,    2.0000},
+            },
+          }
+       );
+
+      cov = new CovarianceMaternIso();
+      cov.DParameter.Value = cov.DParameter.ValidValues.Single(x => x.Value == 5);
+      TestCovarianceFunction(cov, 1,
+         new double[,]
+           {
+{    6.5823,    6.4972,    7.1422,    6.5459,    6.9521,    6.3944,    6.7729,    6.9402,    6.7551,    7.0723},
+{    6.6790,    6.8501,    6.8629,    6.6372,    6.9035,    6.4817,    6.7847,    7.0756,    6.8757,    7.0436},
+{    6.9899,    6.9460,    7.1241,    6.8172,    6.5535,    7.0122,    7.1124,    6.7680,    6.9540,    7.0999},
+{    6.9957,    6.5229,    6.9993,    6.8778,    6.2792,    6.6048,    7.2033,    7.1828,    7.1579,    7.0835},
+{    7.1904,    6.6190,    6.9797,    7.2154,    6.1675,    6.3337,    7.0164,    7.2536,    7.2321,    7.1567},
+{    7.1739,    6.9125,    6.8488,    7.0978,    6.3553,    6.6166,    7.1667,    7.3062,    7.3089,    7.1586},
+{    6.6630,    6.9549,    6.9004,    6.5773,    7.1696,    6.5549,    6.7481,    6.6904,    6.7696,    7.0742},
+{    6.6587,    6.6943,    7.0587,    6.5173,    6.8667,    6.6823,    6.8343,    6.5023,    6.6835,    7.0060},
+{    6.7194,    6.8347,    7.1602,    6.6574,    7.0257,    6.6305,    6.8089,    6.8159,    6.7840,    7.1284},
+{    6.5868,    6.8760,    6.6937,    6.4782,    6.7042,    6.6558,    6.8171,    7.0551,    6.8153,    6.8793},
+           },
+         new double[][,]
+          {
+            new double[,] {
+{         0,    0.5862,    1.4459,    1.1551,    1.0644,    1.2798,    0.6204,    0.9803,    0.4359,    1.2178},
+{    0.5862,         0,    1.5974,    1.3802,    0.9128,    0.7716,    0.8048,    1.7072,    0.6825,    0.2685},
+{    1.4459,    1.5974,         0,    1.3222,    1.1103,    1.2860,    1.3141,    0.7801,    0.7846,    1.6746},
+{    1.1551,    1.3802,    1.3222,         0,    0.8009,    0.4933,    1.4383,    1.3520,    1.5999,    1.4863},
+{    1.0644,    0.9128,    1.1103,    0.8009,         0,    0.4481,    1.5552,    1.7288,    1.0568,    1.1088},
+{    1.2798,    0.7716,    1.2860,    0.4933,    0.4481,         0,    1.3179,    1.7414,    1.3962,    0.7060},
+{    0.6204,    0.8048,    1.3141,    1.4383,    1.5552,    1.3179,         0,    0.5878,    0.6033,    1.3707},
+{    0.9803,    1.7072,    0.7801,    1.3520,    1.7288,    1.7414,    0.5878,         0,    0.8045,    2.1597},
+{    0.4359,    0.6825,    0.7846,    1.5999,    1.0568,    1.3962,    0.6033,    0.8045,         0,    1.1785},
+{    1.2178,    0.2685,    1.6746,    1.4863,    1.1088,    0.7060,    1.3707,    2.1597,    1.1785,         0},
+            },
+            new double[,] {
+{   14.7781,   14.1637,   13.1581,   13.5134,   13.6208,   13.3631,   14.1260,   13.7191,   14.3263,   13.4382},
+{   14.1637,   14.7781,   12.9663,   13.2398,   13.7972,   13.9577,   13.9203,   12.8239,   14.0574,   14.5034},
+{   13.1581,   12.9663,   14.7781,   13.3113,   13.5666,   13.3555,   13.3212,   13.9482,   13.9431,   12.8665},
+{   13.5134,   13.2398,   13.3113,   14.7781,   13.9248,   14.2646,   13.1676,   13.2747,   12.9630,   13.1074},
+{   13.6208,   13.7972,   13.5666,   13.9248,   14.7781,   14.3133,   13.0201,   12.7957,   13.6298,   13.5685},
+{   13.3631,   13.9577,   13.3555,   14.2646,   14.3133,   14.7781,   13.3166,   12.7791,   13.2200,   14.0312},
+{   14.1260,   13.9203,   13.3212,   13.1676,   13.0201,   13.3166,   14.7781,   14.1618,   14.1449,   13.2516},
+{   13.7191,   12.8239,   13.9482,   13.2747,   12.7957,   12.7791,   14.1618,   14.7781,   13.9207,   12.2062},
+{   14.3263,   14.0574,   13.9431,   12.9630,   13.6298,   13.2200,   14.1449,   13.9207,   14.7781,   13.4853},
+{   13.4382,   14.5034,   12.8665,   13.1074,   13.5685,   14.0312,   13.2516,   12.2062,   13.4853,   14.7781},
+            },
+          }
+       );
+
     }
 
@@ -278,4 +799,176 @@
 
     [TestMethod]
+    public void CovLinearArdTest() {
+      TestCovarianceFunction(new CovarianceLinearArd(), 0,
+        new double[,]
+          {
+{    0.9089,    0.9972,    1.8813,    0.8618,    2.0022,    1.5168,    1.2612,    1.1009,    0.9506,    1.3851},
+{    0.4654,    0.7437,    1.1757,    0.4150,    1.4523,    1.0699,    0.7535,    0.6763,    0.5206,    0.8497},
+{    1.3719,    1.4959,    2.0386,    1.2323,    1.8810,    2.1422,    1.6645,    1.1482,    1.2603,    1.5724},
+{    0.8471,    0.6576,    1.4267,    0.7465,    1.1331,    1.3215,    1.1946,    0.9029,    0.8677,    1.0329},
+{    0.7965,    0.5520,    1.2342,    0.7932,    0.8598,    0.9288,    0.8927,    0.7688,    0.7360,    0.9016},
+{    0.5306,    0.5096,    0.8879,    0.4618,    0.7612,    0.8960,    0.7367,    0.5462,    0.5288,    0.6475},
+{    0.8779,    1.2411,    1.6264,    0.7940,    2.0553,    1.5512,    1.1513,    0.8304,    0.8693,    1.2945},
+{    1.4220,    1.6025,    2.2818,    1.2950,    2.3982,    2.1948,    1.7607,    1.2347,    1.3535,    1.7961},
+{    1.0929,    1.3303,    1.9743,    1.0277,    2.1337,    1.7820,    1.3686,    1.0950,    1.0529,    1.5034},
+{    0.3405,    0.7064,    0.9979,    0.2372,    1.2538,    1.1478,    0.7212,    0.6071,    0.4222,    0.6815},
+          },
+        new double[][,]
+          {            
+        new double[,]
+          {
+{   -0.3483,   -0.0415,   -0.7534,   -0.7885,   -0.4097,   -0.4084,   -0.2818,   -0.7512,   -0.3081,   -0.0928},
+{   -0.0415,   -0.0049,   -0.0897,   -0.0939,   -0.0488,   -0.0486,   -0.0336,   -0.0895,   -0.0367,   -0.0111},
+{   -0.7534,   -0.0897,   -1.6297,   -1.7057,   -0.8863,   -0.8834,   -0.6097,   -1.6250,   -0.6666,   -0.2008},
+{   -0.7885,   -0.0939,   -1.7057,   -1.7853,   -0.9276,   -0.9246,   -0.6381,   -1.7008,   -0.6976,   -0.2101},
+{   -0.4097,   -0.0488,   -0.8863,   -0.9276,   -0.4820,   -0.4804,   -0.3316,   -0.8837,   -0.3625,   -0.1092},
+{   -0.4084,   -0.0486,   -0.8834,   -0.9246,   -0.4804,   -0.4788,   -0.3305,   -0.8808,   -0.3613,   -0.1088},
+{   -0.2818,   -0.0336,   -0.6097,   -0.6381,   -0.3316,   -0.3305,   -0.2281,   -0.6079,   -0.2494,   -0.0751},
+{   -0.7512,   -0.0895,   -1.6250,   -1.7008,   -0.8837,   -0.8808,   -0.6079,   -1.6204,   -0.6646,   -0.2002},
+{   -0.3081,   -0.0367,   -0.6666,   -0.6976,   -0.3625,   -0.3613,   -0.2494,   -0.6646,   -0.2726,   -0.0821},
+{   -0.0928,   -0.0111,   -0.2008,   -0.2101,   -0.1092,   -0.1088,   -0.0751,   -0.2002,   -0.0821,   -0.0247},
+          },
+        new double[,]
+          {
+{   -1.2177,   -0.6082,   -0.3772,   -0.6303,   -0.1506,   -0.2060,   -1.4702,   -1.4921,   -0.8977,   -0.0933},
+{   -0.6082,   -0.3037,   -0.1884,   -0.3148,   -0.0752,   -0.1029,   -0.7343,   -0.7452,   -0.4483,   -0.0466},
+{   -0.3772,   -0.1884,   -0.1168,   -0.1952,   -0.0466,   -0.0638,   -0.4554,   -0.4622,   -0.2781,   -0.0289},
+{   -0.6303,   -0.3148,   -0.1952,   -0.3263,   -0.0780,   -0.1066,   -0.7610,   -0.7723,   -0.4646,   -0.0483},
+{   -0.1506,   -0.0752,   -0.0466,   -0.0780,   -0.0186,   -0.0255,   -0.1818,   -0.1845,   -0.1110,   -0.0115},
+{   -0.2060,   -0.1029,   -0.0638,   -0.1066,   -0.0255,   -0.0348,   -0.2487,   -0.2524,   -0.1519,   -0.0158},
+{   -1.4702,   -0.7343,   -0.4554,   -0.7610,   -0.1818,   -0.2487,   -1.7751,   -1.8015,   -1.0838,   -0.1127},
+{   -1.4921,   -0.7452,   -0.4622,   -0.7723,   -0.1845,   -0.2524,   -1.8015,   -1.8283,   -1.0999,   -0.1143},
+{   -0.8977,   -0.4483,   -0.2781,   -0.4646,   -0.1110,   -0.1519,   -1.0838,   -1.0999,   -0.6617,   -0.0688},
+{   -0.0933,   -0.0466,   -0.0289,   -0.0483,   -0.0115,   -0.0158,   -0.1127,   -0.1143,   -0.0688,   -0.0072},
+          },
+        new double[,]
+          {
+{   -0.1103,   -0.1659,   -0.3856,   -0.0072,   -0.0202,   -0.0794,   -0.3048,   -0.3436,   -0.3042,   -0.2117},
+{   -0.1659,   -0.2495,   -0.5801,   -0.0109,   -0.0304,   -0.1194,   -0.4585,   -0.5169,   -0.4575,   -0.3185},
+{   -0.3856,   -0.5801,   -1.3487,   -0.0253,   -0.0706,   -0.2776,   -1.0661,   -1.2017,   -1.0638,   -0.7406},
+{   -0.0072,   -0.0109,   -0.0253,   -0.0005,   -0.0013,   -0.0052,   -0.0200,   -0.0225,   -0.0199,   -0.0139},
+{   -0.0202,   -0.0304,   -0.0706,   -0.0013,   -0.0037,   -0.0145,   -0.0558,   -0.0629,   -0.0557,   -0.0388},
+{   -0.0794,   -0.1194,   -0.2776,   -0.0052,   -0.0145,   -0.0571,   -0.2194,   -0.2473,   -0.2189,   -0.1524},
+{   -0.3048,   -0.4585,   -1.0661,   -0.0200,   -0.0558,   -0.2194,   -0.8427,   -0.9499,   -0.8408,   -0.5854},
+{   -0.3436,   -0.5169,   -1.2017,   -0.0225,   -0.0629,   -0.2473,   -0.9499,   -1.0708,   -0.9478,   -0.6598},
+{   -0.3042,   -0.4575,   -1.0638,   -0.0199,   -0.0557,   -0.2189,   -0.8408,   -0.9478,   -0.8390,   -0.5841},
+{   -0.2117,   -0.3185,   -0.7406,   -0.0139,   -0.0388,   -0.1524,   -0.5854,   -0.6598,   -0.5841,   -0.4066},
+          },
+        new double[,]
+          {
+{   -0.5984,   -0.3242,   -0.8147,   -0.2068,   -0.7514,   -0.2007,   -0.4031,   -0.6844,   -0.8535,   -0.0887},
+{   -0.3242,   -0.1756,   -0.4413,   -0.1120,   -0.4070,   -0.1087,   -0.2184,   -0.3707,   -0.4623,   -0.0481},
+{   -0.8147,   -0.4413,   -1.1092,   -0.2815,   -1.0229,   -0.2733,   -0.5488,   -0.9318,   -1.1620,   -0.1208},
+{   -0.2068,   -0.1120,   -0.2815,   -0.0714,   -0.2596,   -0.0694,   -0.1393,   -0.2365,   -0.2949,   -0.0307},
+{   -0.7514,   -0.4070,   -1.0229,   -0.2596,   -0.9434,   -0.2521,   -0.5062,   -0.8593,   -1.0717,   -0.1114},
+{   -0.2007,   -0.1087,   -0.2733,   -0.0694,   -0.2521,   -0.0673,   -0.1352,   -0.2296,   -0.2863,   -0.0298},
+{   -0.4031,   -0.2184,   -0.5488,   -0.1393,   -0.5062,   -0.1352,   -0.2716,   -0.4611,   -0.5750,   -0.0598},
+{   -0.6844,   -0.3707,   -0.9318,   -0.2365,   -0.8593,   -0.2296,   -0.4611,   -0.7828,   -0.9762,   -0.1015},
+{   -0.8535,   -0.4623,   -1.1620,   -0.2949,   -1.0717,   -0.2863,   -0.5750,   -0.9762,   -1.2174,   -0.1265},
+{   -0.0887,   -0.0481,   -0.1208,   -0.0307,   -0.1114,   -0.0298,   -0.0598,   -0.1015,   -0.1265,   -0.0132},
+          },
+        new double[,]
+          {
+{   -1.7276,   -1.4419,   -0.9049,   -0.8103,   -0.8305,   -0.5694,   -0.9452,   -0.9495,   -1.5198,   -1.4774},
+{   -1.4419,   -1.2034,   -0.7552,   -0.6763,   -0.6932,   -0.4752,   -0.7889,   -0.7925,   -1.2684,   -1.2331},
+{   -0.9049,   -0.7552,   -0.4739,   -0.4244,   -0.4350,   -0.2982,   -0.4951,   -0.4973,   -0.7960,   -0.7738},
+{   -0.8103,   -0.6763,   -0.4244,   -0.3800,   -0.3895,   -0.2670,   -0.4433,   -0.4453,   -0.7128,   -0.6929},
+{   -0.8305,   -0.6932,   -0.4350,   -0.3895,   -0.3993,   -0.2737,   -0.4544,   -0.4565,   -0.7306,   -0.7102},
+{   -0.5694,   -0.4752,   -0.2982,   -0.2670,   -0.2737,   -0.1876,   -0.3115,   -0.3129,   -0.5009,   -0.4869},
+{   -0.9452,   -0.7889,   -0.4951,   -0.4433,   -0.4544,   -0.3115,   -0.5171,   -0.5195,   -0.8315,   -0.8083},
+{   -0.9495,   -0.7925,   -0.4973,   -0.4453,   -0.4565,   -0.3129,   -0.5195,   -0.5218,   -0.8353,   -0.8120},
+{   -1.5198,   -1.2684,   -0.7960,   -0.7128,   -0.7306,   -0.5009,   -0.8315,   -0.8353,   -1.3369,   -1.2997},
+{   -1.4774,   -1.2331,   -0.7738,   -0.6929,   -0.7102,   -0.4869,   -0.8083,   -0.8120,   -1.2997,   -1.2634},
+          },
+          }
+      );
+
+      TestCovarianceFunction(new CovarianceLinearArd(), 1,
+       new double[,]
+          {
+{    0.1230,    0.1350,    0.2546,    0.1166,    0.2710,    0.2053,    0.1707,    0.1490,    0.1287,    0.1875},
+{    0.0630,    0.1006,    0.1591,    0.0562,    0.1965,    0.1448,    0.1020,    0.0915,    0.0705,    0.1150},
+{    0.1857,    0.2024,    0.2759,    0.1668,    0.2546,    0.2899,    0.2253,    0.1554,    0.1706,    0.2128},
+{    0.1146,    0.0890,    0.1931,    0.1010,    0.1533,    0.1788,    0.1617,    0.1222,    0.1174,    0.1398},
+{    0.1078,    0.0747,    0.1670,    0.1074,    0.1164,    0.1257,    0.1208,    0.1040,    0.0996,    0.1220},
+{    0.0718,    0.0690,    0.1202,    0.0625,    0.1030,    0.1213,    0.0997,    0.0739,    0.0716,    0.0876},
+{    0.1188,    0.1680,    0.2201,    0.1075,    0.2781,    0.2099,    0.1558,    0.1124,    0.1176,    0.1752},
+{    0.1924,    0.2169,    0.3088,    0.1753,    0.3246,    0.2970,    0.2383,    0.1671,    0.1832,    0.2431},
+{    0.1479,    0.1800,    0.2672,    0.1391,    0.2888,    0.2412,    0.1852,    0.1482,    0.1425,    0.2035},
+{    0.0461,    0.0956,    0.1351,    0.0321,    0.1697,    0.1553,    0.0976,    0.0822,    0.0571,    0.0922},
+          },
+       new double[][,]
+          {            
+        new double[,]
+          {
+{   -0.0471,   -0.0056,   -0.1020,   -0.1067,   -0.0554,   -0.0553,   -0.0381,   -0.1017,   -0.0417,   -0.0126},
+{   -0.0056,   -0.0007,   -0.0121,   -0.0127,   -0.0066,   -0.0066,   -0.0045,   -0.0121,   -0.0050,   -0.0015},
+{   -0.1020,   -0.0121,   -0.2206,   -0.2308,   -0.1199,   -0.1196,   -0.0825,   -0.2199,   -0.0902,   -0.0272},
+{   -0.1067,   -0.0127,   -0.2308,   -0.2416,   -0.1255,   -0.1251,   -0.0864,   -0.2302,   -0.0944,   -0.0284},
+{   -0.0554,   -0.0066,   -0.1199,   -0.1255,   -0.0652,   -0.0650,   -0.0449,   -0.1196,   -0.0491,   -0.0148},
+{   -0.0553,   -0.0066,   -0.1196,   -0.1251,   -0.0650,   -0.0648,   -0.0447,   -0.1192,   -0.0489,   -0.0147},
+{   -0.0381,   -0.0045,   -0.0825,   -0.0864,   -0.0449,   -0.0447,   -0.0309,   -0.0823,   -0.0337,   -0.0102},
+{   -0.1017,   -0.0121,   -0.2199,   -0.2302,   -0.1196,   -0.1192,   -0.0823,   -0.2193,   -0.0899,   -0.0271},
+{   -0.0417,   -0.0050,   -0.0902,   -0.0944,   -0.0491,   -0.0489,   -0.0337,   -0.0899,   -0.0369,   -0.0111},
+{   -0.0126,   -0.0015,   -0.0272,   -0.0284,   -0.0148,   -0.0147,   -0.0102,   -0.0271,   -0.0111,   -0.0033},
+          },
+        new double[,]
+          {
+{   -0.1648,   -0.0823,   -0.0510,   -0.0853,   -0.0204,   -0.0279,   -0.1990,   -0.2019,   -0.1215,   -0.0126},
+{   -0.0823,   -0.0411,   -0.0255,   -0.0426,   -0.0102,   -0.0139,   -0.0994,   -0.1008,   -0.0607,   -0.0063},
+{   -0.0510,   -0.0255,   -0.0158,   -0.0264,   -0.0063,   -0.0086,   -0.0616,   -0.0625,   -0.0376,   -0.0039},
+{   -0.0853,   -0.0426,   -0.0264,   -0.0442,   -0.0105,   -0.0144,   -0.1030,   -0.1045,   -0.0629,   -0.0065},
+{   -0.0204,   -0.0102,   -0.0063,   -0.0105,   -0.0025,   -0.0034,   -0.0246,   -0.0250,   -0.0150,   -0.0016},
+{   -0.0279,   -0.0139,   -0.0086,   -0.0144,   -0.0034,   -0.0047,   -0.0337,   -0.0342,   -0.0206,   -0.0021},
+{   -0.1990,   -0.0994,   -0.0616,   -0.1030,   -0.0246,   -0.0337,   -0.2402,   -0.2438,   -0.1467,   -0.0152},
+{   -0.2019,   -0.1008,   -0.0625,   -0.1045,   -0.0250,   -0.0342,   -0.2438,   -0.2474,   -0.1489,   -0.0155},
+{   -0.1215,   -0.0607,   -0.0376,   -0.0629,   -0.0150,   -0.0206,   -0.1467,   -0.1489,   -0.0896,   -0.0093},
+{   -0.0126,   -0.0063,   -0.0039,   -0.0065,   -0.0016,   -0.0021,   -0.0152,   -0.0155,   -0.0093,   -0.0010},
+          },
+        new double[,]
+          {
+{   -0.0149,   -0.0224,   -0.0522,   -0.0010,   -0.0027,   -0.0107,   -0.0413,   -0.0465,   -0.0412,   -0.0287},
+{   -0.0224,   -0.0338,   -0.0785,   -0.0015,   -0.0041,   -0.0162,   -0.0621,   -0.0700,   -0.0619,   -0.0431},
+{   -0.0522,   -0.0785,   -0.1825,   -0.0034,   -0.0096,   -0.0376,   -0.1443,   -0.1626,   -0.1440,   -0.1002},
+{   -0.0010,   -0.0015,   -0.0034,   -0.0001,   -0.0002,   -0.0007,   -0.0027,   -0.0030,   -0.0027,   -0.0019},
+{   -0.0027,   -0.0041,   -0.0096,   -0.0002,   -0.0005,   -0.0020,   -0.0076,   -0.0085,   -0.0075,   -0.0052},
+{   -0.0107,   -0.0162,   -0.0376,   -0.0007,   -0.0020,   -0.0077,   -0.0297,   -0.0335,   -0.0296,   -0.0206},
+{   -0.0413,   -0.0621,   -0.1443,   -0.0027,   -0.0076,   -0.0297,   -0.1140,   -0.1286,   -0.1138,   -0.0792},
+{   -0.0465,   -0.0700,   -0.1626,   -0.0030,   -0.0085,   -0.0335,   -0.1286,   -0.1449,   -0.1283,   -0.0893},
+{   -0.0412,   -0.0619,   -0.1440,   -0.0027,   -0.0075,   -0.0296,   -0.1138,   -0.1283,   -0.1136,   -0.0790},
+{   -0.0287,   -0.0431,   -0.1002,   -0.0019,   -0.0052,   -0.0206,   -0.0792,   -0.0893,   -0.0790,   -0.0550},
+          },
+        new double[,]
+          {
+{   -0.0810,   -0.0439,   -0.1103,   -0.0280,   -0.1017,   -0.0272,   -0.0546,   -0.0926,   -0.1155,   -0.0120},
+{   -0.0439,   -0.0238,   -0.0597,   -0.0152,   -0.0551,   -0.0147,   -0.0296,   -0.0502,   -0.0626,   -0.0065},
+{   -0.1103,   -0.0597,   -0.1501,   -0.0381,   -0.1384,   -0.0370,   -0.0743,   -0.1261,   -0.1573,   -0.0163},
+{   -0.0280,   -0.0152,   -0.0381,   -0.0097,   -0.0351,   -0.0094,   -0.0189,   -0.0320,   -0.0399,   -0.0041},
+{   -0.1017,   -0.0551,   -0.1384,   -0.0351,   -0.1277,   -0.0341,   -0.0685,   -0.1163,   -0.1450,   -0.0151},
+{   -0.0272,   -0.0147,   -0.0370,   -0.0094,   -0.0341,   -0.0091,   -0.0183,   -0.0311,   -0.0388,   -0.0040},
+{   -0.0546,   -0.0296,   -0.0743,   -0.0189,   -0.0685,   -0.0183,   -0.0368,   -0.0624,   -0.0778,   -0.0081},
+{   -0.0926,   -0.0502,   -0.1261,   -0.0320,   -0.1163,   -0.0311,   -0.0624,   -0.1059,   -0.1321,   -0.0137},
+{   -0.1155,   -0.0626,   -0.1573,   -0.0399,   -0.1450,   -0.0388,   -0.0778,   -0.1321,   -0.1648,   -0.0171},
+{   -0.0120,   -0.0065,   -0.0163,   -0.0041,   -0.0151,   -0.0040,   -0.0081,   -0.0137,   -0.0171,   -0.0018},
+          },
+        new double[,]
+          {
+{   -0.2338,   -0.1951,   -0.1225,   -0.1097,   -0.1124,   -0.0771,   -0.1279,   -0.1285,   -0.2057,   -0.1999},
+{   -0.1951,   -0.1629,   -0.1022,   -0.0915,   -0.0938,   -0.0643,   -0.1068,   -0.1072,   -0.1717,   -0.1669},
+{   -0.1225,   -0.1022,   -0.0641,   -0.0574,   -0.0589,   -0.0404,   -0.0670,   -0.0673,   -0.1077,   -0.1047},
+{   -0.1097,   -0.0915,   -0.0574,   -0.0514,   -0.0527,   -0.0361,   -0.0600,   -0.0603,   -0.0965,   -0.0938},
+{   -0.1124,   -0.0938,   -0.0589,   -0.0527,   -0.0540,   -0.0370,   -0.0615,   -0.0618,   -0.0989,   -0.0961},
+{   -0.0771,   -0.0643,   -0.0404,   -0.0361,   -0.0370,   -0.0254,   -0.0422,   -0.0423,   -0.0678,   -0.0659},
+{   -0.1279,   -0.1068,   -0.0670,   -0.0600,   -0.0615,   -0.0422,   -0.0700,   -0.0703,   -0.1125,   -0.1094},
+{   -0.1285,   -0.1072,   -0.0673,   -0.0603,   -0.0618,   -0.0423,   -0.0703,   -0.0706,   -0.1130,   -0.1099},
+{   -0.2057,   -0.1717,   -0.1077,   -0.0965,   -0.0989,   -0.0678,   -0.1125,   -0.1130,   -0.1809,   -0.1759},
+{   -0.1999,   -0.1669,   -0.1047,   -0.0938,   -0.0961,   -0.0659,   -0.1094,   -0.1099,   -0.1759,   -0.1710},
+          },
+          }
+     );
+    }
+
+
+    [TestMethod]
     public void CovPeriodicTest() {
       TestCovarianceFunction(new CovariancePeriodic(), 0,
@@ -297,43 +990,43 @@
             new double[,]
               {
-{    0.0883,    0.3624,    0.5578,    0.1949,    0.7358,    0.6487,    0.2984,    0.7338,    0.2296,    0.6286},
-{    0.0211,    0.5833,    0.6197,    0.0027,    0.7026,    0.4160,    0.3448,    0.6246,    0.6512,    0.6645},
-{    0.7208,    0.7352,    0.5721,    0.4719,    0.1707,    0.7008,    0.5831,    0.2792,    0.7357,    0.5962},
-{    0.7162,    0.2728,    0.7132,    0.6561,    0.7349,    0.0401,    0.5435,    0.5416,    0.5487,    0.6150},
-{    0.5414,    0.0183,    0.7276,    0.5484,    0.6728,    0.7228,    0.6963,    0.5851,    0.5603,    0.5493},
-{    0.5430,    0.7140,    0.5794,    0.5986,    0.7046,    0.0216,    0.5451,    0.6879,    0.6941,    0.5484},
-{    0.0050,    0.7357,    0.6982,    0.1011,    0.5441,    0.1662,    0.2038,    0.0396,    0.2855,    0.6263},
-{    0.0025,    0.0470,    0.6457,    0.2925,    0.6298,    0.0258,    0.5324,    0.3451,    0.0275,    0.7069},
-{    0.1088,    0.5338,    0.5476,    0.0019,    0.6859,    0.0068,    0.4402,    0.4667,    0.3421,    0.5684},
-{    0.0774,    0.6520,    0.0457,    0.4271,    0.0686,    0.0013,    0.4709,    0.6502,    0.4644,    0.6594},                
-              },
-            new double[,]
-              {
-{    1.8911,    3.5259,   -0.1726,    2.7462,   -1.7412,    3.7725,   -2.7071,   -1.8853,   -2.5019,   -0.5552},
-{   -0.8840,   -2.8021,   -2.7150,    0.3273,   -2.3218,    3.6802,   -2.8022,   -0.5330,   -2.6079,   -0.7758},
-{   -1.2996,   -1.8154,   -0.2547,   -2.9071,    2.5861,   -1.0654,   -0.3131,   -2.6579,   -1.7190,   -0.3814},
-{   -1.2366,    3.1709,   -1.1989,   -2.5877,    2.7645,    1.2794,    0.0523,   -0.0174,   -0.1087,   -0.4806},
-{    0.0086,    0.8629,   -1.4146,    0.0921,    1.6565,    3.3174,   -1.0231,    0.2231,    0.1477,   -0.1137},
-{   -0.0491,   -2.2183,   -2.8095,   -0.3938,    3.5099,    0.9382,   -0.0753,    0.4427,    0.4556,   -0.1062},
-{   -0.4372,   -1.7059,   -2.3555,    2.0194,   -0.0642,    2.5547,   -2.4014,   -1.1924,   -2.6748,   -0.5422},
-{   -0.3101,   -1.2911,   -0.6547,    3.2602,   -2.6843,   -0.9727,   -2.8761,    3.4673,   -1.0044,   -1.1276},
-{   -1.8766,   -2.8747,   -0.0998,   -0.2703,   -0.9342,    0.5245,   -2.9018,   -2.9072,   -2.7976,   -0.2342},
-{    1.7731,   -2.6049,   -1.2740,    3.7069,   -1.5344,   -0.2241,   -2.9071,   -0.6824,   -2.9071,   -2.5738},             
-              },
-            new double[,]
-              {
-{    1.9096,    1.5931,    0.2877,    1.7941,    0.7384,    1.1215,    1.6733,    0.7902,    1.7547,    0.3763},
-{    1.9788,    1.2580,    1.1862,    1.9973,    0.9676,    1.5216,    1.6156,    0.3704,    1.1157,    0.4367},
-{    0.5925,    0.7648,    0.3033,    1.4416,    1.8211,    0.5208,    0.3160,    1.6965,    0.7306,    0.3320},
-{    0.5729,    1.7041,    0.5612,    1.1037,    0.7004,    1.9595,    0.2729,    0.2709,    0.2781,    0.3568},
-{    0.2707,    1.9816,    0.6289,    0.2779,    0.4531,    0.8782,    0.5082,    0.3184,    0.2903,    0.2788},
-{    0.2723,    0.9219,    1.2651,    0.3350,    0.9602,    1.9782,    0.2744,    0.4870,    0.5024,    0.2778},
-{    1.9950,    0.7261,    0.9832,    1.8961,    0.2735,    1.8260,    1.7841,    1.9600,    1.6889,    0.3729},
-{    1.9975,    1.9524,    0.4031,    1.6805,    1.1645,    1.9741,    1.3471,    1.6152,    1.9723,    0.5395},
-{    1.8880,    1.3447,    0.2770,    1.9981,    0.4821,    1.9932,    1.4877,    1.4494,    1.6190,    0.2991},
-{    1.9210,    1.1139,    1.9538,    1.5061,    1.9301,    1.9987,    1.4432,    0.4107,    1.4528,    1.0956},        
-              },
-          }
-      );
+{         0,    0.6171,    0.0967,    0.2357,    0.4461,    0.0247,    0.6403,    0.6107,    0.5464,    0.1081},
+{    0.6171,         0,    0.4105,    0.0173,    0.6953,    0.7281,    0.7351,    0.6132,    0.6825,    0.5825},
+{    0.0967,    0.4105,         0,    0.0012,    0.3397,    0.0195,    0.0034,    0.7305,    0.7317,    0.5618},
+{    0.2357,    0.0173,    0.0012,         0,    0.7346,    0.5651,    0.0847,    0.0026,    0.4161,    0.1700},
+{    0.4461,    0.6953,    0.3397,    0.7346,         0,    0.5493,    0.3178,    0.6422,    0.4630,    0.3434},
+{    0.0247,    0.7281,    0.0195,    0.5651,    0.5493,         0,    0.0023,    0.6572,    0.0311,    0.6971},
+{    0.6403,    0.7351,    0.0034,    0.0847,    0.3178,    0.0023,         0,    0.6182,    0.6285,    0.0109},
+{    0.6107,    0.6132,    0.7305,    0.0026,    0.6422,    0.6572,    0.6182,         0,    0.7351,    0.6230},
+{    0.5464,    0.6825,    0.7317,    0.4161,    0.4630,    0.0311,    0.6285,    0.7351,         0,    0.1843},
+{    0.1081,    0.5825,    0.5618,    0.1700,    0.3434,    0.6971,    0.0109,    0.6230,    0.1843,         0},
+              },
+            new double[,]
+              {
+{         0,   -0.4917,    1.9759,   -2.5233,   -2.9038,   -0.9545,   -0.6223,   -2.7396,   -0.0884,   -1.8718},
+{   -0.4917,         0,    3.6663,    0.8377,   -2.3760,   -1.4241,   -1.6437,    3.8424,   -0.9067,    0.2162},
+{    1.9759,    3.6663,         0,   -0.2205,   -2.7933,   -0.8509,   -0.3646,   -1.4789,   -1.5087,    3.8738},
+{   -2.5233,    0.8377,   -0.2205,         0,   -1.6172,   -0.2162,    1.8523,    0.3213,    3.6804,    2.5815},
+{   -2.9038,   -2.3760,   -2.7933,   -1.6172,         0,   -0.1136,    3.3650,    3.7893,   -2.9070,   -2.7998},
+{   -0.9545,   -1.4241,   -0.8509,   -0.2162,   -0.1136,         0,   -0.2974,    3.7478,    1.1265,   -1.0310},
+{   -0.6223,   -1.6437,   -0.3646,    1.8523,    3.3650,   -0.2974,         0,   -0.4977,   -0.5548,    0.6640},
+{   -2.7396,    3.8424,   -1.4789,    0.3213,    3.7893,    3.7478,   -0.4977,         0,   -1.6417,    1.1444},
+{   -0.0884,   -0.9067,   -1.5087,    3.6804,   -2.9070,    1.1265,   -0.5548,   -1.6417,         0,   -2.3160},
+{   -1.8718,    0.2162,    3.8738,    2.5815,   -2.7998,   -1.0310,    0.6640,    1.1444,   -2.3160,         0},
+              },
+            new double[,]
+              {
+{    2.0000,    0.3597,    1.9008,    1.7477,    1.4793,    1.9751,    0.3943,    1.2046,    0.2758,    1.8887},
+{    0.3597,    2.0000,    1.5291,    1.9826,    0.9929,    0.6320,    0.7047,    1.1997,    0.4741,    0.3153},
+{    1.9008,    1.5291,    2.0000,    1.9988,    1.6221,    1.9804,    1.9966,    0.6498,    0.6595,    1.2969},
+{    1.7477,    1.9826,    1.9988,    2.0000,    0.6957,    0.2956,    1.9134,    1.9974,    1.5215,    1.8218},
+{    1.4793,    0.9929,    1.6221,    0.6957,    2.0000,    0.2787,    1.6495,    1.1369,    1.4549,    1.6174},
+{    1.9751,    0.6320,    1.9804,    0.2956,    0.2787,    2.0000,    1.9977,    1.1010,    1.9686,    0.5106},
+{    0.3943,    0.7047,    1.9966,    1.9134,    1.6495,    1.9977,    2.0000,    0.3612,    0.3762,    1.9891},
+{    1.2046,    1.1997,    0.6498,    1.9974,    1.1369,    1.1010,    0.3612,    2.0000,    0.7040,    0.3681},
+{    0.2758,    0.4741,    0.6595,    1.5215,    1.4549,    1.9686,    0.3762,    0.7040,    2.0000,    1.8059},
+{    1.8887,    0.3153,    1.2969,    1.8218,    1.6174,    0.5106,    1.9891,    0.3681,    1.8059,    2.0000},
+              },
+          }
+      , 5e-3);
       TestCovarianceFunction(new CovariancePeriodic(), 1,
         new double[,]
@@ -354,44 +1047,43 @@
             new double[,]
               {
-{    2.7658,    2.8666,    1.3028,    2.8119,    1.9878,    2.9569,    2.4420,    2.0231,    2.4786,    1.5821},
-{    2.6198,    2.2663,    2.2343,    2.6874,    2.1274,    2.8825,    2.4171,    1.5700,    2.2016,    1.6875},
-{    1.8698,    2.0061,    1.3786,    2.3444,    2.8027,    1.7965,    1.4262,    2.4522,    1.9823,    1.4760},
-{    1.8510,    2.8387,    1.8395,    2.1959,    3.0210,    2.7352,    1.0285,    1.1240,    1.2352,    1.5397},
-{    1.0892,    2.7145,    1.9025,    0.9710,    3.0490,    2.9953,    1.7820,    0.7805,    0.8894,    1.2407},
-{    1.1645,    2.1025,    2.2694,    1.4845,    2.9828,    2.7182,    1.1965,    0.4978,    0.4823,    1.2323},
-{    2.6463,    1.9790,    2.1357,    2.7724,    1.1832,    2.8010,    2.4926,    2.6000,    2.4488,    1.5751},
-{    2.6534,    2.5933,    1.6329,    2.8450,    2.2244,    2.6143,    2.3047,    2.8613,    2.6123,    1.8170},
-{    2.5480,    2.3036,    1.2251,    2.6556,    1.7503,    2.6975,    2.3636,    2.3476,    2.4186,    1.3608},
-{    2.7599,    2.2008,    2.5944,    2.8858,    2.5757,    2.6581,    2.3450,    1.6460,    2.3490,    2.1920},
-              },
-            new double[,]
-              {
-{    1.2575,    1.0910,    1.1185,    1.1908,    1.4623,    0.8439,    1.4825,    1.4718,    1.4712,    1.2892},
-{    1.3993,    1.5049,    1.5043,    1.3445,    1.4935,    1.0563,    1.4887,    1.2825,    1.5024,    1.3439},
-{    1.4231,    1.4673,    1.1682,    1.5008,    1.2052,    1.3938,    1.1981,    1.4796,    1.4607,    1.2285},
-{    1.4160,    1.1451,    1.4114,    1.5019,    0.5165,    1.2949,    0.9209,    0.9927,    1.0722,    1.2656},
-{    0.9668,    1.3176,    1.4350,    0.8763,    0.1550,    0.6776,    1.3876,    0.7218,    0.8114,    1.0761},
-{    1.0221,    1.4893,    1.5049,    1.2335,    0.7388,    1.3137,    1.0450,    0.4752,    0.4611,    1.0702},
-{    1.3798,    1.4597,    1.4948,    1.2488,    1.0355,    1.2079,    1.4662,    1.4126,    1.4806,    1.2853},
-{    1.3741,    1.4168,    1.3163,    1.1334,    1.5039,    1.4032,    1.5040,    1.1017,    1.4045,    1.4024},
-{    1.4421,    1.5040,    1.0652,    1.3723,    1.3735,    1.3349,    1.4984,    1.5004,    1.4883,    1.1567},
-{    1.2652,    1.5023,    1.4161,    1.0487,    1.4273,    1.3702,    1.5007,    1.3231,    1.5003,    1.5016},
-              },
-            new double[,]
-              {
-{   11.6566,   11.5235,   13.4099,   11.5959,   12.6253,   11.4024,   12.0716,   12.5834,   12.0256,   13.0964},
-{   11.8460,   12.2894,   12.3285,   11.7588,   12.4583,   11.5022,   12.1027,   13.1103,   12.3684,   12.9759},
-{   12.7645,   12.6035,   13.3256,   12.1932,   11.6081,   12.8500,   13.2725,   12.0588,   12.6318,   13.2165},
-{   12.7864,   11.5605,   12.7999,   12.3753,   11.3155,   11.6967,   13.7101,   13.6063,   13.4846,   13.1446},
-{   13.6442,   11.7236,   12.7260,   13.7721,   11.2771,   11.3504,   12.8668,   13.9754,   13.8595,   13.4785},
-{   13.5621,   12.4883,   12.2856,   13.2070,   11.3674,   11.7187,   13.5272,   14.2715,   14.2876,   13.4877},
-{   11.8120,   12.6357,   12.4483,   11.6480,   13.5417,   11.6104,   12.0079,   11.8714,   12.0630,   13.1045},
-{   11.8028,   11.8801,   13.0386,   11.5521,   12.3406,   11.8531,   12.2422,   11.5305,   11.8557,   12.8261},
-{   11.9378,   12.2435,   13.4957,   11.8000,   12.9036,   11.7458,   12.1694,   12.1892,   12.1009,   13.3455},
-{   11.6644,   12.3694,   11.8785,   11.4978,   11.9025,   11.7967,   12.1924,   13.0236,   12.1874,   12.3800},
-
-              },
-          }
-      );
+{         0,    1.5463,    2.7702,    2.4754,    2.3601,    2.6154,    1.6170,    2.2426,    1.2120,    2.5484},
+{    1.5463,         0,    2.8809,    2.7132,    2.1407,    1.9051,    1.9633,    2.9438,    1.7399,    0.7903},
+{    2.7702,    2.8809,         0,    2.6583,    2.4199,    2.6219,    2.6503,    1.9201,    1.9281,    2.9266},
+{    2.4754,    2.7132,    2.6583,         0,    1.9565,    1.3445,    2.7639,    2.6871,    2.8826,    2.8025},
+{    2.3601,    2.1407,    2.4199,    1.9565,         0,    1.2406,    2.8530,    2.9544,    2.3499,    2.4179},
+{    2.6154,    1.9051,    2.6219,    1.3445,    1.2406,         0,    2.6541,    2.9603,    2.7276,    1.7848},
+{    1.6170,    1.9633,    2.6503,    2.7639,    2.8530,    2.6541,         0,    1.5498,    1.5819,    2.7045},
+{    2.2426,    2.9438,    1.9201,    2.6871,    2.9544,    2.9603,    1.5498,         0,    1.9628,    3.0510},
+{    1.2120,    1.7399,    1.9281,    2.8826,    2.3499,    2.7276,    1.5819,    1.9628,         0,    2.5033},
+{    2.5484,    0.7903,    2.9266,    2.8025,    2.4179,    1.7848,    2.7045,    3.0510,    2.5033,         0},
+              },
+            new double[,]
+              {
+{         0,    1.2693,    1.2518,    1.4723,    1.4989,    1.4024,    1.3080,    1.5046,    1.0560,    1.4419},
+{    1.2693,         0,    1.0599,    1.3190,    1.4956,    1.4360,    1.4550,    0.8895,    1.3688,    0.7299},
+{    1.2518,    1.0599,         0,    1.3700,    1.4880,    1.3979,    1.3765,    1.4411,    1.4438,    0.9428},
+{    1.4723,    1.3190,    1.3700,         0,    1.4529,    1.1461,    1.2600,    1.3448,    1.0562,    1.2056},
+{    1.4989,    1.4956,    1.4880,    1.4529,         0,    1.0760,    1.1183,    0.8531,    1.5002,    1.4885},
+{    1.4024,    1.4360,    1.3979,    1.1461,    1.0760,         0,    1.3735,    0.8314,    1.3035,    1.3888},
+{    1.3080,    1.4550,    1.3765,    1.2600,    1.1183,    1.3735,         0,    1.2713,    1.2891,    1.3279},
+{    1.5046,    0.8895,    1.4411,    1.3448,    0.8531,    0.8314,    1.2713,         0,    1.4549,   -0.0705},
+{    1.0560,    1.3688,    1.4438,    1.0562,    1.5002,    1.3035,    1.2891,    1.4549,         0,    1.4621},
+{    1.4419,    0.7299,    0.9428,    1.2056,    1.4885,    1.3888,    1.3279,   -0.0705,    1.4621,         0},
+              },
+            new double[,]
+              {
+{   14.7781,   13.1371,   11.6509,   12.0296,   12.1738,   11.8516,   13.0567,   12.3184,   13.5101,   11.9373},
+{   13.1371,   14.7781,   11.5044,   11.7253,   12.4422,   12.7230,   12.6543,   11.4201,   12.9155,   13.9651},
+{   11.6509,   11.5044,   14.7781,   11.7964,   12.0992,   11.8434,   11.8067,   12.7053,   12.6959,   11.4432},
+{   12.0296,   11.7253,   11.7964,   14.7781,   12.6624,   13.3637,   11.6592,   11.7593,   11.5022,   11.6084},
+{   12.1738,   12.4422,   12.0992,   12.6624,   14.7781,   13.4786,   11.5416,   11.4058,   12.1864,   12.1017},
+{   11.8516,   12.7230,   11.8434,   13.3637,   13.4786,   14.7781,   11.8019,   11.3978,   11.7066,   12.8636},
+{   13.0567,   12.6543,   11.8067,   11.6592,   11.5416,   11.8019,   14.7781,   13.1331,   13.0967,   11.7366},
+{   12.3184,   11.4201,   12.7053,   11.7593,   11.4058,   11.3978,   13.1331,   14.7781,   12.6549,   11.2744},
+{   13.5101,   12.9155,   12.6959,   11.5022,   12.1864,   11.7066,   13.0967,   12.6549,   14.7781,   11.9944},
+{   11.9373,   13.9651,   11.4432,   11.6084,   12.1017,   12.8636,   11.7366,   11.2744,   11.9944,   14.7781},
+              },
+          }
+      , 5e-3);
     }
 
@@ -417,79 +1109,79 @@
             new double[,]
               {
-{    0.0297,    0.0008,    0.1332,    0.0075,    0.0033,    0.1356,    0.1399,    0.0132,    0.0276,    0.0236},
-{    0.2195,    0.0760,    0.4116,    0.1404,    0.0661,    0.4222,    0.4578,    0.2055,    0.2348,    0.2319},
-{    0.0517,    0.2064,    0.0070,    0.0939,    0.1720,    0.0010,    0.0006,    0.0824,    0.0593,    0.0831},
-{    0.0702,    0.1767,    0.0138,    0.1216,    0.1600,    0.0000,    0.0042,    0.1370,    0.0899,    0.1055},
-{    0.0208,    0.0075,    0.0791,    0.0016,    0.0081,    0.0952,    0.1169,    0.0032,    0.0157,    0.0080},
-{    0.0210,    0.0090,    0.0729,    0.0016,    0.0093,    0.1198,    0.1302,    0.0035,    0.0169,    0.0083},
-{    0.0577,    0.0013,    0.1635,    0.0219,    0.0001,    0.2043,    0.1892,    0.0282,    0.0538,    0.0509},
-{    0.0400,    0.1707,    0.0063,    0.0740,    0.2146,    0.0009,    0.0004,    0.0664,    0.0480,    0.0767},
-{    0.0484,    0.0001,    0.1696,    0.0163,    0.0003,    0.1943,    0.1752,    0.0224,    0.0430,    0.0403},
-{    0.1646,    0.0512,    0.3078,    0.0946,    0.0363,    0.4180,    0.4014,    0.1559,    0.1792,    0.1624},
-              },
-            new double[,]
-              {
-{    0.1891,    0.1240,    0.0820,    0.1696,    0.0031,    0.1707,    0.2043,    0.2781,    0.2004,    0.0972},
-{    0.0206,    0.0055,    0.0047,    0.0153,    0.1507,    0.0203,    0.0180,    0.0393,    0.0188,    0.0017},
-{    0.0009,    0.0027,    0.0445,    0.0001,    0.2050,    0.0017,    0.0002,    0.0033,    0.0001,    0.0314},
-{    0.0299,    0.0058,    0.0035,    0.0216,    0.0879,    0.0257,    0.0282,    0.0478,    0.0269,    0.0008},
-{    0.0109,    0.0249,    0.1078,    0.0161,    0.2308,    0.0046,    0.0132,    0.0051,    0.0156,    0.0995},
-{    0.0050,    0.0210,    0.0807,    0.0081,    0.2449,    0.0023,    0.0077,    0.0014,    0.0087,    0.0799},
-{    0.3307,    0.3104,    0.1616,    0.2911,    0.0083,    0.3156,    0.3349,    0.3724,    0.3385,    0.2101},
-{    0.3424,    0.2692,    0.1909,    0.2890,    0.0089,    0.3606,    0.3705,    0.3347,    0.3304,    0.2120},
-{    0.0863,    0.0522,    0.0094,    0.0726,    0.0574,    0.0866,    0.0832,    0.1122,    0.0810,    0.0165},
-{    0.0127,    0.0417,    0.1061,    0.0155,    0.3892,    0.0111,    0.0189,    0.0100,    0.0193,    0.1014},
-              },
-            new double[,]
-              {
-{    0.0034,    0.2562,    0.0327,    0.0014,    0.3388,    0.2764,    0.0277,    0.0114,    0.0004,    0.0248},
-{    0.0011,    0.2285,    0.0042,    0.0170,    0.2221,    0.2096,    0.0049,    0.0480,    0.0065,    0.0025},
-{    0.2015,    0.0078,    0.1295,    0.2780,    0.0040,    0.0198,    0.1228,    0.3341,    0.2396,    0.1418},
-{    0.0680,    0.4545,    0.1341,    0.0206,    0.3587,    0.5459,    0.1598,    0.0081,    0.0510,    0.1276},
-{    0.0635,    0.4599,    0.1153,    0.0181,    0.3065,    0.4160,    0.1235,    0.0043,    0.0420,    0.1157},
-{    0.0177,    0.4178,    0.0479,    0.0002,    0.2613,    0.3893,    0.0634,    0.0032,    0.0076,    0.0498},
-{    0.0701,    0.0569,    0.0349,    0.1239,    0.0571,    0.0618,    0.0289,    0.1812,    0.1014,    0.0474},
-{    0.1082,    0.0231,    0.0737,    0.1642,    0.0213,    0.0383,    0.0596,    0.2089,    0.1397,    0.0817},
-{    0.0725,    0.0528,    0.0410,    0.1309,    0.0525,    0.0660,    0.0298,    0.1975,    0.1018,    0.0485},
-{    0.0113,    0.1597,    0.0003,    0.0377,    0.1303,    0.1706,    0.0001,    0.0934,    0.0255,    0.0013},
-              },
-            new double[,]
-              {
-{    0.0013,    0.0438,    0.0027,    0.0151,    0.0798,    0.0919,    0.0417,    0.0390,    0.0099,    0.0013},
-{    0.0553,    0.0008,    0.0666,    0.1035,    0.0041,    0.0171,    0.0000,    0.0004,    0.0117,    0.0359},
-{    0.0174,    0.1749,    0.0170,    0.0008,    0.1544,    0.3093,    0.1687,    0.1202,    0.0776,    0.0468},
-{    0.1281,    0.0030,    0.1335,    0.1954,    0.0005,    0.0030,    0.0103,    0.0148,    0.0479,    0.0839},
-{    0.0075,    0.1070,    0.0054,    0.0005,    0.0892,    0.1537,    0.1200,    0.1246,    0.0626,    0.0277},
-{    0.1480,    0.0045,    0.1234,    0.2318,    0.0007,    0.0026,    0.0111,    0.0174,    0.0552,    0.0911},
-{    0.0314,    0.0085,    0.0400,    0.0675,    0.0188,    0.0356,    0.0034,    0.0015,    0.0021,    0.0159},
-{    0.0006,    0.0829,    0.0004,    0.0040,    0.1160,    0.1607,    0.0752,    0.0511,    0.0253,    0.0109},
-{    0.0220,    0.1865,    0.0273,    0.0029,    0.2474,    0.2629,    0.1595,    0.1460,    0.0850,    0.0630},
-{    0.1528,    0.0235,    0.1708,    0.2114,    0.0125,    0.0008,    0.0319,    0.0457,    0.0807,    0.1306},
-              },
-            new double[,]
-              {
-{    0.4109,    0.2403,    0.0141,    0.4547,    0.0000,    0.0197,    0.1292,    0.0921,    0.3144,    0.1812},
-{    0.2957,    0.1851,    0.0005,    0.3352,    0.0171,    0.0011,    0.0553,    0.0319,    0.2074,    0.0806},
-{    0.1247,    0.0378,    0.0836,    0.1437,    0.1103,    0.0466,    0.0000,    0.0056,    0.0470,    0.0007},
-{    0.0954,    0.0166,    0.1039,    0.1185,    0.1102,    0.0509,    0.0025,    0.0179,    0.0341,    0.0004},
-{    0.1154,    0.0202,    0.0965,    0.1566,    0.0959,    0.0381,    0.0014,    0.0160,    0.0398,    0.0001},
-{    0.0427,    0.0014,    0.1718,    0.0639,    0.1870,    0.1065,    0.0289,    0.0704,    0.0045,    0.0201},
-{    0.1097,    0.0458,    0.0623,    0.1321,    0.1541,    0.0278,    0.0003,    0.0031,    0.0488,    0.0020},
-{    0.1106,    0.0387,    0.0683,    0.1273,    0.1243,    0.0300,    0.0003,    0.0025,    0.0466,    0.0021},
-{    0.3427,    0.2142,    0.0002,    0.3796,    0.0098,    0.0046,    0.0739,    0.0392,    0.2257,    0.1093},
-{    0.2913,    0.2028,    0.0000,    0.3120,    0.0114,    0.0025,    0.0644,    0.0379,    0.2131,    0.0810},
-              },
-            new double[,]
-              {
-{    1.1542,    1.0808,    1.7137,    1.1224,    1.5090,    0.9961,    1.3298,    1.4968,    1.3127,    1.6369},
-{    1.2413,    1.4053,    1.4181,    1.2031,    1.4591,    1.0675,    1.3411,    1.6404,    1.4309,    1.6057},
-{    1.5486,    1.5027,    1.6936,    1.3729,    1.1289,    1.5721,    1.6807,    1.3251,    1.5109,    1.6670},
-{    1.5547,    1.1026,    1.5584,    1.4331,    0.9067,    1.1739,    1.7826,    1.7593,    1.7313,    1.6490},
-{    1.7679,    1.1868,    1.5379,    1.7963,    0.8253,    0.9483,    1.5767,    1.8403,    1.8154,    1.7298},
-{    1.7492,    1.4683,    1.4041,    1.6646,    0.9652,    1.1845,    1.7411,    1.9016,    1.9048,    1.7320},
-{    1.2267,    1.5121,    1.4560,    1.1498,    1.7445,    1.1302,    1.3060,    1.2519,    1.3266,    1.6389},
-{    1.2227,    1.2555,    1.6220,    1.0978,    1.4220,    1.2443,    1.3896,    1.0850,    1.2454,    1.5656},
-{    1.2789,    1.3900,    1.7339,    1.2214,    1.5866,    1.1971,    1.3647,    1.3715,    1.3404,    1.6984},
-{    1.1581,    1.4312,    1.2549,    1.0647,    1.2647,    1.2200,    1.3726,    1.6182,    1.3709,    1.4346},
+{         0,    0.1113,    0.1356,    0.1828,    0.0037,    0.0032,    0.0052,    0.1649,    0.0020,    0.0599},
+{    0.1113,         0,    0.3889,    0.4757,    0.1415,    0.1485,    0.0629,    0.3653,    0.0811,    0.0035},
+{    0.1356,    0.3889,         0,    0.0011,    0.1136,    0.1060,    0.1954,    0.0000,    0.2176,    0.3219},
+{    0.1828,    0.4757,    0.0011,         0,    0.1566,    0.1766,    0.2129,    0.0012,    0.1768,    0.3923},
+{    0.0037,    0.1415,    0.1136,    0.1566,         0,    0.0000,    0.0128,    0.0836,    0.0101,    0.0966},
+{    0.0032,    0.1485,    0.1060,    0.1766,    0.0000,         0,    0.0140,    0.0837,    0.0085,    0.1126},
+{    0.0052,    0.0629,    0.1954,    0.2129,    0.0128,    0.0140,         0,    0.2603,    0.0008,    0.0306},
+{    0.1649,    0.3653,    0.0000,    0.0012,    0.0836,    0.0837,    0.2603,         0,    0.2139,    0.2429},
+{    0.0020,    0.0811,    0.2176,    0.1768,    0.0101,    0.0085,    0.0008,    0.2139,         0,    0.0433},
+{    0.0599,    0.0035,    0.3219,    0.3923,    0.0966,    0.1126,    0.0306,    0.2429,    0.0433,         0},
+              },
+            new double[,]
+              {
+{         0,    0.1257,    0.1670,    0.0931,    0.3194,    0.2613,    0.0213,    0.0219,    0.0365,    0.3319},
+{    0.1257,         0,    0.0117,    0.0001,    0.0625,    0.0510,    0.2315,    0.1621,    0.0274,    0.1000},
+{    0.1670,    0.0117,         0,    0.0160,    0.0141,    0.0075,    0.3003,    0.3909,    0.0850,    0.0170},
+{    0.0931,    0.0001,    0.0160,         0,    0.0718,    0.0629,    0.1673,    0.1835,    0.0157,    0.0668},
+{    0.3194,    0.0625,    0.0141,    0.0718,         0,    0.0011,    0.3903,    0.3690,    0.1570,    0.0009},
+{    0.2613,    0.0510,    0.0075,    0.0629,    0.0011,         0,    0.4011,    0.3369,    0.1158,    0.0041},
+{    0.0213,    0.2315,    0.3003,    0.1673,    0.3903,    0.4011,         0,    0.0002,    0.1102,    0.4643},
+{    0.0219,    0.1621,    0.3909,    0.1835,    0.3690,    0.3369,    0.0002,         0,    0.1101,    0.3135},
+{    0.0365,    0.0274,    0.0850,    0.0157,    0.1570,    0.1158,    0.1102,    0.1101,         0,    0.1728},
+{    0.3319,    0.1000,    0.0170,    0.0668,    0.0009,    0.0041,    0.4643,    0.3135,    0.1728,         0},
+              },
+            new double[,]
+              {
+{         0,    0.0115,    0.1979,    0.0316,    0.0251,    0.0027,    0.1396,    0.1747,    0.1481,    0.0299},
+{    0.0115,         0,    0.1171,    0.0678,    0.0700,    0.0261,    0.0664,    0.0724,    0.0689,    0.0088},
+{    0.1979,    0.1171,         0,    0.3960,    0.4057,    0.2638,    0.0181,    0.0061,    0.0230,    0.0705},
+{    0.0316,    0.0678,    0.3960,         0,    0.0006,    0.0201,    0.2320,    0.3087,    0.2134,    0.1071},
+{    0.0251,    0.0700,    0.4057,    0.0006,         0,    0.0137,    0.2005,    0.2369,    0.2506,    0.1115},
+{    0.0027,    0.0261,    0.2638,    0.0201,    0.0137,         0,    0.1409,    0.1571,    0.1351,    0.0626},
+{    0.1396,    0.0664,    0.0181,    0.2320,    0.2005,    0.1409,         0,    0.0056,    0.0000,    0.0234},
+{    0.1747,    0.0724,    0.0061,    0.3087,    0.2369,    0.1571,    0.0056,         0,    0.0054,    0.0308},
+{    0.1481,    0.0689,    0.0230,    0.2134,    0.2506,    0.1351,    0.0000,    0.0054,         0,    0.0252},
+{    0.0299,    0.0088,    0.0705,    0.1071,    0.1115,    0.0626,    0.0234,    0.0308,    0.0252,         0},
+              },
+            new double[,]
+              {
+{         0,    0.0518,    0.0225,    0.0842,    0.0134,    0.0822,    0.0259,    0.0044,    0.0472,    0.1388},
+{    0.0518,         0,    0.1075,    0.0068,    0.1109,    0.0098,    0.0040,    0.0548,    0.1861,    0.0426},
+{    0.0225,    0.1075,         0,    0.1884,    0.0022,    0.1953,    0.0866,    0.0109,    0.0010,    0.2263},
+{    0.0842,    0.0068,    0.1884,         0,    0.1883,    0.0000,    0.0186,    0.1147,    0.1866,    0.0066},
+{    0.0134,    0.1109,    0.0022,    0.1883,         0,    0.2191,    0.0553,    0.0019,    0.0060,    0.2459},
+{    0.0822,    0.0098,    0.1953,    0.0000,    0.2191,         0,    0.0209,    0.0970,    0.2098,    0.0083},
+{    0.0259,    0.0040,    0.0866,    0.0186,    0.0553,    0.0209,         0,    0.0544,    0.1387,    0.0493},
+{    0.0044,    0.0548,    0.0109,    0.1147,    0.0019,    0.0970,    0.0544,         0,    0.0181,    0.1157},
+{    0.0472,    0.1861,    0.0010,    0.1866,    0.0060,    0.2098,    0.1387,    0.0181,         0,    0.3179},
+{    0.1388,    0.0426,    0.2263,    0.0066,    0.2459,    0.0083,    0.0493,    0.1157,    0.3179,         0},
+              },
+            new double[,]
+              {
+{         0,    0.0195,    0.1128,    0.1600,    0.1591,    0.2414,    0.1441,    0.1240,    0.0109,    0.0116},
+{    0.0195,         0,    0.0446,    0.0686,    0.0786,    0.1693,    0.0542,    0.0354,    0.0014,    0.0003},
+{    0.1128,    0.0446,         0,    0.0016,    0.0011,    0.0202,    0.0003,    0.0004,    0.0837,    0.0487},
+{    0.1600,    0.0686,    0.0016,         0,    0.0001,    0.0143,    0.0030,    0.0034,    0.0778,    0.0727},
+{    0.1591,    0.0786,    0.0011,    0.0001,         0,    0.0171,    0.0021,    0.0020,    0.0942,    0.0812},
+{    0.2414,    0.1693,    0.0202,    0.0143,    0.0171,         0,    0.0250,    0.0207,    0.1541,    0.1880},
+{    0.1441,    0.0542,    0.0003,    0.0030,    0.0021,    0.0250,         0,    0.0000,    0.0782,    0.0489},
+{    0.1240,    0.0354,    0.0004,    0.0034,    0.0020,    0.0207,    0.0000,         0,    0.0714,    0.0315},
+{    0.0109,    0.0014,    0.0837,    0.0778,    0.0942,    0.1541,    0.0782,    0.0714,         0,    0.0003},
+{    0.0116,    0.0003,    0.0487,    0.0727,    0.0812,    0.1880,    0.0489,    0.0315,    0.0003,         0},
+              },
+            new double[,]
+              {
+{    2.0000,    1.6472,    1.1513,    1.3142,    1.3662,    1.2437,    1.6267,    1.4148,    1.7372,    1.2786},
+{    1.6472,    2.0000,    1.0689,    1.1876,    1.4541,    1.5370,    1.5174,    1.0103,    1.5898,    1.8381},
+{    1.1513,    1.0689,    2.0000,    1.2199,    1.3398,    1.2402,    1.2244,    1.5320,    1.5293,    1.0276},
+{    1.3142,    1.1876,    1.2199,    2.0000,    1.5197,    1.7027,    1.1555,    1.2033,    1.0675,    1.1291},
+{    1.3662,    1.4541,    1.3398,    1.5197,    2.0000,    1.7299,    1.0916,    0.9989,    1.3706,    1.3407},
+{    1.2437,    1.5370,    1.2402,    1.7027,    1.7299,    2.0000,    1.2223,    0.9923,    1.1787,    1.5758},
+{    1.6267,    1.5174,    1.2244,    1.1555,    1.0916,    1.2223,    2.0000,    1.6461,    1.6369,    1.1928},
+{    1.4148,    1.0103,    1.5320,    1.2033,    0.9989,    0.9923,    1.6461,    2.0000,    1.5176,    0.7806},
+{    1.7372,    1.5898,    1.5293,    1.0675,    1.3706,    1.1787,    1.6369,    1.5176,    2.0000,    1.3009},
+{    1.2786,    1.8381,    1.0276,    1.1291,    1.3407,    1.5758,    1.1928,    0.7806,    1.3009,    2.0000},
               },
           }
@@ -513,80 +1205,79 @@
             new double[,]
               {
-{    0.0479,    0.0014,    0.1523,    0.0123,    0.0043,    0.2477,    0.1991,    0.0170,    0.0398,    0.0281},
-{    0.3315,    0.1032,    0.5541,    0.2179,    0.0869,    0.7265,    0.6468,    0.2439,    0.3136,    0.2803},
-{    0.0645,    0.2643,    0.0081,    0.1300,    0.2820,    0.0013,    0.0007,    0.1176,    0.0756,    0.0972},
-{    0.0873,    0.2957,    0.0172,    0.1622,    0.3171,    0.0000,    0.0047,    0.1531,    0.1019,    0.1247},
-{    0.0232,    0.0117,    0.0993,    0.0017,    0.0174,    0.1815,    0.1436,    0.0035,    0.0171,    0.0091},
-{    0.0236,    0.0117,    0.0990,    0.0019,    0.0174,    0.1884,    0.1468,    0.0037,    0.0176,    0.0094},
-{    0.0880,    0.0016,    0.2151,    0.0353,    0.0002,    0.3347,    0.2735,    0.0424,    0.0767,    0.0605},
-{    0.0612,    0.2553,    0.0076,    0.1243,    0.2881,    0.0014,    0.0006,    0.1127,    0.0723,    0.0948},
-{    0.0712,    0.0001,    0.1919,    0.0250,    0.0003,    0.3028,    0.2438,    0.0311,    0.0607,    0.0464},
-{    0.2640,    0.0683,    0.4605,    0.1632,    0.0539,    0.6409,    0.5558,    0.1872,    0.2484,    0.2165},
-
-              },
-            new double[,]
-              {
-{    0.3043,    0.2111,    0.0937,    0.2795,    0.0039,    0.3119,    0.2908,    0.3573,    0.2884,    0.1155},
-{    0.0311,    0.0075,    0.0063,    0.0237,    0.1980,    0.0349,    0.0254,    0.0467,    0.0251,    0.0021},
-{    0.0011,    0.0034,    0.0514,    0.0001,    0.3361,    0.0021,    0.0002,    0.0048,    0.0002,    0.0367},
-{    0.0372,    0.0097,    0.0043,    0.0287,    0.1743,    0.0407,    0.0312,    0.0534,    0.0305,    0.0010},
-{    0.0122,    0.0391,    0.1353,    0.0177,    0.4961,    0.0087,    0.0162,    0.0055,    0.0170,    0.1128},
-{    0.0056,    0.0275,    0.1095,    0.0095,    0.4598,    0.0037,    0.0087,    0.0015,    0.0091,    0.0905},
-{    0.5047,    0.3954,    0.2126,    0.4698,    0.0094,    0.5169,    0.4841,    0.5584,    0.4828,    0.2496},
-{    0.5240,    0.4027,    0.2288,    0.4855,    0.0119,    0.5436,    0.5076,    0.5679,    0.4977,    0.2620},
-{    0.1271,    0.0714,    0.0107,    0.1112,    0.0702,    0.1350,    0.1159,    0.1555,    0.1144,    0.0190},
-{    0.0203,    0.0557,    0.1587,    0.0268,    0.5785,    0.0170,    0.0262,    0.0120,    0.0268,    0.1351},
-              },
-            new double[,]
-              {
-{    0.0054,    0.4363,    0.0374,    0.0023,    0.4322,    0.5050,    0.0394,    0.0147,    0.0005,    0.0294},
-{    0.0017,    0.3100,    0.0057,    0.0265,    0.2917,    0.3606,    0.0070,    0.0570,    0.0086,    0.0030},
-{    0.2513,    0.0100,    0.1495,    0.3849,    0.0065,    0.0243,    0.1428,    0.4769,    0.3053,    0.1660},
-{    0.0845,    0.7606,    0.1664,    0.0274,    0.7108,    0.8653,    0.1766,    0.0090,    0.0577,    0.1507},
-{    0.0707,    0.7222,    0.1447,    0.0198,    0.6589,    0.7932,    0.1517,    0.0046,    0.0456,    0.1311},
-{    0.0198,    0.5458,    0.0650,    0.0002,    0.4907,    0.6123,    0.0715,    0.0033,    0.0079,    0.0564},
-{    0.1069,    0.0724,    0.0459,    0.2000,    0.0642,    0.1012,    0.0417,    0.2717,    0.1447,    0.0563},
-{    0.1655,    0.0345,    0.0884,    0.2758,    0.0286,    0.0577,    0.0816,    0.3546,    0.2104,    0.1009},
-{    0.1067,    0.0723,    0.0464,    0.2005,    0.0641,    0.1028,    0.0414,    0.2736,    0.1438,    0.0559},
-{    0.0182,    0.2133,    0.0004,    0.0650,    0.1937,    0.2616,    0.0001,    0.1122,    0.0353,    0.0017},
-              },
-            new double[,]
-              {
-{    0.0021,    0.0746,    0.0031,    0.0249,    0.1018,    0.1679,    0.0593,    0.0501,    0.0143,    0.0015},
-{    0.0836,    0.0011,    0.0897,    0.1607,    0.0053,    0.0294,    0.0000,    0.0005,    0.0156,    0.0434},
-{    0.0217,    0.2240,    0.0197,    0.0011,    0.2531,    0.3809,    0.1960,    0.1716,    0.0989,    0.0547},
-{    0.1593,    0.0050,    0.1656,    0.2607,    0.0010,    0.0048,    0.0114,    0.0166,    0.0543,    0.0991},
-{    0.0083,    0.1680,    0.0068,    0.0006,    0.1918,    0.2930,    0.1474,    0.1339,    0.0681,    0.0314},
-{    0.1662,    0.0059,    0.1676,    0.2716,    0.0013,    0.0041,    0.0126,    0.0182,    0.0575,    0.1032},
-{    0.0480,    0.0109,    0.0526,    0.1090,    0.0211,    0.0583,    0.0049,    0.0023,    0.0029,    0.0189},
-{    0.0009,    0.1240,    0.0005,    0.0068,    0.1558,    0.2422,    0.1030,    0.0867,    0.0381,    0.0134},
-{    0.0323,    0.2554,    0.0309,    0.0045,    0.3023,    0.4098,    0.2220,    0.2023,    0.1201,    0.0726},
-{    0.2451,    0.0313,    0.2555,    0.3645,    0.0186,    0.0012,    0.0442,    0.0549,    0.1118,    0.1741},
-              },
-            new double[,]
-              {
-{    0.6611,    0.4092,    0.0161,    0.7494,    0.0000,    0.0361,    0.1838,    0.1184,    0.4525,    0.2155},
-{    0.4466,    0.2511,    0.0006,    0.5202,    0.0225,    0.0019,    0.0781,    0.0379,    0.2771,    0.0975},
-{    0.1555,    0.0484,    0.0965,    0.1990,    0.1809,    0.0574,    0.0000,    0.0080,    0.0599,    0.0008},
-{    0.1186,    0.0277,    0.1289,    0.1581,    0.2184,    0.0807,    0.0027,    0.0200,    0.0387,    0.0005},
-{    0.1284,    0.0317,    0.1211,    0.1718,    0.2062,    0.0727,    0.0017,    0.0172,    0.0433,    0.0001},
-{    0.0479,    0.0018,    0.2333,    0.0749,    0.3511,    0.1675,    0.0326,    0.0736,    0.0047,    0.0228},
-{    0.1675,    0.0583,    0.0820,    0.2131,    0.1735,    0.0455,    0.0004,    0.0046,    0.0696,    0.0024},
-{    0.1692,    0.0579,    0.0819,    0.2138,    0.1669,    0.0452,    0.0005,    0.0042,    0.0702,    0.0026},
-{    0.5045,    0.2934,    0.0003,    0.5815,    0.0120,    0.0071,    0.1028,    0.0543,    0.3190,    0.1259},
-{    0.4673,    0.2708,    0.0000,    0.5382,    0.0169,    0.0039,    0.0891,    0.0455,    0.2954,    0.1079},
-              },
-            new double[,]
-              {
-{   13.7185,   13.5970,   14.4724,   13.6668,   14.2254,   13.4477,   13.9840,   14.2096,   13.9596,   14.3828},
-{   13.8542,   14.0889,   14.1062,   13.7957,   14.1607,   13.5743,   14.0000,   14.3869,   14.1234,   14.3454},
-{   14.2753,   14.2173,   14.4492,   14.0445,   13.6775,   14.3044,   14.4343,   13.9773,   14.2278,   14.4183},
-{   14.2829,   13.6339,   14.2875,   14.1263,   13.2777,   13.7501,   14.5498,   14.5238,   14.4923,   14.3972},
-{   14.5334,   13.7703,   14.2618,   14.5649,   13.1097,   13.3585,   14.3100,   14.6126,   14.5857,   14.4907},
-{   14.5125,   14.1727,   14.0872,   14.4155,   13.3905,   13.7667,   14.5035,   14.6775,   14.6809,   14.4932},
-{   13.8321,   14.2292,   14.1566,   13.7114,   14.5073,   13.6796,   13.9499,   13.8703,   13.9795,   14.3852},
-{   13.8260,   13.8756,   14.3651,   13.6258,   14.1115,   13.8588,   14.0675,   13.6042,   13.8604,   14.2964},
-{   13.9103,   14.0681,   14.4953,   13.8241,   14.3221,   13.7864,   14.0331,   14.0426,   13.9991,   14.4548},
-{   13.7248,   14.1238,   13.8747,   13.5695,   13.8893,   13.8218,   14.0442,   14.3604,   14.0418,   14.1283},
+{         0,    0.1316,    0.2186,    0.2629,    0.0051,    0.0049,    0.0062,    0.2224,    0.0023,    0.0882},
+{    0.1316,         0,    0.6685,    0.7466,    0.1864,    0.1865,    0.0799,    0.6593,    0.0990,    0.0037},
+{    0.2186,    0.6685,         0,    0.0017,    0.1606,    0.1602,    0.2987,    0.0000,    0.2745,    0.5725},
+{    0.2629,    0.7466,    0.0017,         0,    0.1985,    0.2030,    0.3422,    0.0019,    0.3043,    0.6432},
+{    0.0051,    0.1864,    0.1606,    0.1985,         0,    0.0000,    0.0216,    0.1524,    0.0141,    0.1366},
+{    0.0049,    0.1865,    0.1602,    0.2030,    0.0000,         0,    0.0215,    0.1535,    0.0134,    0.1384},
+{    0.0062,    0.0799,    0.2987,    0.3422,    0.0216,    0.0215,         0,    0.3081,    0.0010,    0.0478},
+{    0.2224,    0.6593,    0.0000,    0.0019,    0.1524,    0.1535,    0.3081,         0,    0.2715,    0.5480},
+{    0.0023,    0.0990,    0.2745,    0.3043,    0.0141,    0.0134,    0.0010,    0.2715,         0,    0.0628},
+{    0.0882,    0.0037,    0.5725,    0.6432,    0.1366,    0.1384,    0.0478,    0.5480,    0.0628,         0},
+              },
+            new double[,]
+              {
+{         0,    0.1486,    0.2692,    0.1339,    0.4441,    0.3941,    0.0255,    0.0295,    0.0413,    0.4886},
+{    0.1486,         0,    0.0201,    0.0002,    0.0823,    0.0641,    0.2940,    0.2925,    0.0334,    0.1076},
+{    0.2692,    0.0201,         0,    0.0246,    0.0200,    0.0113,    0.4590,    0.4923,    0.1073,    0.0302},
+{    0.1339,    0.0002,    0.0246,         0,    0.0910,    0.0723,    0.2689,    0.2847,    0.0270,    0.1096},
+{    0.4441,    0.0823,    0.0200,    0.0910,         0,    0.0012,    0.6588,    0.6726,    0.2177,    0.0013},
+{    0.3941,    0.0641,    0.0113,    0.0723,    0.0012,         0,    0.6140,    0.6177,    0.1829,    0.0050},
+{    0.0255,    0.2940,    0.4590,    0.2689,    0.6588,    0.6140,         0,    0.0002,    0.1310,    0.7259},
+{    0.0295,    0.2925,    0.4923,    0.2847,    0.6726,    0.6177,    0.0002,         0,    0.1398,    0.7073},
+{    0.0413,    0.0334,    0.1073,    0.0270,    0.2177,    0.1829,    0.1310,    0.1398,         0,    0.2506},
+{    0.4886,    0.1076,    0.0302,    0.1096,    0.0013,    0.0050,    0.7259,    0.7073,    0.2506,         0},
+              },
+            new double[,]
+              {
+{         0,    0.0137,    0.3191,    0.0455,    0.0349,    0.0041,    0.1669,    0.2356,    0.1673,    0.0440},
+{    0.0137,         0,    0.2012,    0.1063,    0.0922,    0.0327,    0.0843,    0.1306,    0.0841,    0.0094},
+{    0.3191,    0.2012,         0,    0.6073,    0.5736,    0.3987,    0.0277,    0.0077,    0.0290,    0.1253},
+{    0.0455,    0.1063,    0.6073,         0,    0.0007,    0.0231,    0.3728,    0.4790,    0.3672,    0.1755},
+{    0.0349,    0.0922,    0.5736,    0.0007,         0,    0.0156,    0.3385,    0.4318,    0.3474,    0.1576},
+{    0.0041,    0.0327,    0.3987,    0.0231,    0.0156,         0,    0.2156,    0.2880,    0.2133,    0.0769},
+{    0.1669,    0.0843,    0.0277,    0.3728,    0.3385,    0.2156,         0,    0.0066,    0.0000,    0.0366},
+{    0.2356,    0.1306,    0.0077,    0.4790,    0.4318,    0.2880,    0.0066,         0,    0.0068,    0.0694},
+{    0.1673,    0.0841,    0.0290,    0.3672,    0.3474,    0.2133,    0.0000,    0.0068,         0,    0.0365},
+{    0.0440,    0.0094,    0.1253,    0.1755,    0.1576,    0.0769,    0.0366,    0.0694,    0.0365,         0},
+              },
+            new double[,]
+              {
+{         0,    0.0612,    0.0363,    0.1211,    0.0186,    0.1239,    0.0310,    0.0059,    0.0534,    0.2043},
+{    0.0612,         0,    0.1847,    0.0107,    0.1461,    0.0123,    0.0050,    0.0989,    0.2270,    0.0458},
+{    0.0363,    0.1847,         0,    0.2888,    0.0032,    0.2952,    0.1324,    0.0137,    0.0012,    0.4024},
+{    0.1211,    0.0107,    0.2888,         0,    0.2388,    0.0000,    0.0299,    0.1780,    0.3210,    0.0108},
+{    0.0186,    0.1461,    0.0032,    0.2388,         0,    0.2484,    0.0933,    0.0034,    0.0083,    0.3475},
+{    0.1239,    0.0123,    0.2952,    0.0000,    0.2484,         0,    0.0320,    0.1778,    0.3315,    0.0102},
+{    0.0310,    0.0050,    0.1324,    0.0299,    0.0933,    0.0320,         0,    0.0644,    0.1650,    0.0770},
+{    0.0059,    0.0989,    0.0137,    0.1780,    0.0034,    0.1778,    0.0644,         0,    0.0230,    0.2610},
+{    0.0534,    0.2270,    0.0012,    0.3210,    0.0083,    0.3315,    0.1650,    0.0230,         0,    0.4611},
+{    0.2043,    0.0458,    0.4024,    0.0108,    0.3475,    0.0102,    0.0770,    0.2610,    0.4611,         0},
+              },
+            new double[,]
+              {
+{         0,    0.0230,    0.1818,    0.2301,    0.2212,    0.3641,    0.1723,    0.1672,    0.0123,    0.0171},
+{    0.0230,         0,    0.0767,    0.1076,    0.1036,    0.2126,    0.0688,    0.0640,    0.0017,    0.0004},
+{    0.1818,    0.0767,         0,    0.0024,    0.0015,    0.0305,    0.0004,    0.0006,    0.1055,    0.0867},
+{    0.2301,    0.1076,    0.0024,         0,    0.0001,    0.0164,    0.0049,    0.0052,    0.1338,    0.1192},
+{    0.2212,    0.1036,    0.0015,    0.0001,         0,    0.0194,    0.0035,    0.0037,    0.1306,    0.1147},
+{    0.3641,    0.2126,    0.0305,    0.0164,    0.0194,         0,    0.0382,    0.0380,    0.2434,    0.2311},
+{    0.1723,    0.0688,    0.0004,    0.0049,    0.0035,    0.0382,         0,    0.0000,    0.0930,    0.0764},
+{    0.1672,    0.0640,    0.0006,    0.0052,    0.0037,    0.0380,    0.0000,         0,    0.0907,    0.0710},
+{    0.0123,    0.0017,    0.1055,    0.1338,    0.1306,    0.2434,    0.0930,    0.0907,         0,    0.0005},
+{    0.0171,    0.0004,    0.0867,    0.1192,    0.1147,    0.2311,    0.0764,    0.0710,    0.0005,         0},
+              },
+            new double[,]
+              {
+{   14.7781,   14.3950,   13.7138,   13.9618,   14.0352,   13.8578,   14.3707,   14.1018,   14.4990,   13.9100},
+{   14.3950,   14.7781,   13.5767,   13.7715,   14.1542,   14.2607,   14.2360,   13.4735,   14.3260,   14.6102},
+{   13.7138,   13.5767,   14.7781,   13.8217,   13.9982,   13.8525,   13.8286,   14.2545,   14.2511,   13.5045},
+{   13.9618,   13.7715,   13.8217,   14.7781,   14.2390,   14.4598,   13.7206,   13.7960,   13.5743,   13.6778},
+{   14.0352,   14.1542,   13.9982,   14.2390,   14.7781,   14.4908,   13.6154,   13.4528,   14.0413,   13.9995},
+{   13.8578,   14.2607,   13.8525,   14.4598,   14.4908,   14.7781,   13.8254,   13.4407,   13.7576,   14.3090},
+{   14.3707,   14.2360,   13.8286,   13.7206,   13.6154,   13.8254,   14.7781,   14.3938,   14.3828,   13.7798},
+{   14.1018,   13.4735,   14.2545,   13.7960,   13.4528,   13.4407,   14.3938,   14.7781,   14.2363,   13.0113},
+{   14.4990,   14.3260,   14.2511,   13.5743,   14.0413,   13.7576,   14.3828,   14.2363,   14.7781,   13.9425},
+{   13.9100,   14.6102,   13.5045,   13.6778,   13.9995,   14.3090,   13.7798,   13.0113,   13.9425,   14.7781},
               },
           }
@@ -617,27 +1308,27 @@
             new double[,]
               {
-{    0.6345,    0.6652,    0.2647,    0.6484,    0.4251,    0.6943,    0.5427,    0.4338,    0.5527,    0.3280},
-{    0.5921,    0.4959,    0.4876,    0.6115,    0.4601,    0.6702,    0.5360,    0.3252,    0.4791,    0.3526},
-{    0.3961,    0.4296,    0.2816,    0.5165,    0.6456,    0.3784,    0.2923,    0.5455,    0.4237,    0.3036},
-{    0.3916,    0.6566,    0.3888,    0.4777,    0.7173,    0.6255,    0.2051,    0.2256,    0.2498,    0.3182},
-{    0.2181,    0.6194,    0.4041,    0.1929,    0.7305,    0.7077,    0.3750,    0.1532,    0.1758,    0.2510},
-{    0.2344,    0.4538,    0.4967,    0.3056,    0.7032,    0.6205,    0.2413,    0.0960,    0.0929,    0.2492},
-{    0.5996,    0.4229,    0.4622,    0.6365,    0.2384,    0.6451,    0.5566,    0.5865,    0.5446,    0.3263},
-{    0.6017,    0.5846,    0.3398,    0.6585,    0.4850,    0.5905,    0.5060,    0.6636,    0.5900,    0.3834},
-{    0.5719,    0.5057,    0.2476,    0.6023,    0.3674,    0.6144,    0.5216,    0.5174,    0.5364,    0.2776},
-{    0.6327,    0.4789,    0.5849,    0.6712,    0.5796,    0.6030,    0.5167,    0.3428,    0.5177,    0.4767},
-              },
-            new double[,]
-              {
-{    1.1542,    1.0808,    1.7137,    1.1224,    1.5090,    0.9961,    1.3298,    1.4968,    1.3127,    1.6369},
-{    1.2413,    1.4053,    1.4181,    1.2031,    1.4591,    1.0675,    1.3411,    1.6404,    1.4309,    1.6057},
-{    1.5486,    1.5027,    1.6936,    1.3729,    1.1289,    1.5721,    1.6807,    1.3251,    1.5109,    1.6670},
-{    1.5547,    1.1026,    1.5584,    1.4331,    0.9067,    1.1739,    1.7826,    1.7593,    1.7313,    1.6490},
-{    1.7679,    1.1868,    1.5379,    1.7963,    0.8253,    0.9483,    1.5767,    1.8403,    1.8154,    1.7298},
-{    1.7492,    1.4683,    1.4041,    1.6646,    0.9652,    1.1845,    1.7411,    1.9016,    1.9048,    1.7320},
-{    1.2267,    1.5121,    1.4560,    1.1498,    1.7445,    1.1302,    1.3060,    1.2519,    1.3266,    1.6389},
-{    1.2227,    1.2555,    1.6220,    1.0978,    1.4220,    1.2443,    1.3896,    1.0850,    1.2454,    1.5656},
-{    1.2789,    1.3900,    1.7339,    1.2214,    1.5866,    1.1971,    1.3647,    1.3715,    1.3404,    1.6984},
-{    1.1581,    1.4312,    1.2549,    1.0647,    1.2647,    1.2200,    1.3726,    1.6182,    1.3709,    1.4346},
+{         0,    0.3197,    0.6358,    0.5518,    0.5207,    0.5909,    0.3361,    0.4897,    0.2447,    0.5720},
+{    0.3197,         0,    0.6697,    0.6190,    0.4635,    0.4047,    0.4190,    0.6899,    0.3650,    0.1552},
+{    0.6358,    0.6697,         0,    0.6031,    0.5367,    0.5927,    0.6008,    0.4084,    0.4103,    0.6843},
+{    0.5518,    0.6190,    0.6031,         0,    0.4173,    0.2740,    0.6339,    0.6114,    0.6702,    0.6455},
+{    0.5207,    0.4635,    0.5367,    0.4173,         0,    0.2510,    0.6610,    0.6935,    0.5180,    0.5362},
+{    0.5909,    0.4047,    0.5927,    0.2740,    0.2510,         0,    0.6019,    0.6955,    0.6232,    0.3756},
+{    0.3361,    0.4190,    0.6008,    0.6339,    0.6610,    0.6019,         0,    0.3205,    0.3279,    0.6165},
+{    0.4897,    0.6899,    0.4084,    0.6114,    0.6935,    0.6955,    0.3205,         0,    0.4189,    0.7344},
+{    0.2447,    0.3650,    0.4103,    0.6702,    0.5180,    0.6232,    0.3279,    0.4189,         0,    0.5595},
+{    0.5720,    0.1552,    0.6843,    0.6455,    0.5362,    0.3756,    0.6165,    0.7344,    0.5595,         0},
+              },
+            new double[,]
+              {
+{    2.0000,    1.6472,    1.1513,    1.3142,    1.3662,    1.2437,    1.6267,    1.4148,    1.7372,    1.2786},
+{    1.6472,    2.0000,    1.0689,    1.1876,    1.4541,    1.5370,    1.5174,    1.0103,    1.5898,    1.8381},
+{    1.1513,    1.0689,    2.0000,    1.2199,    1.3398,    1.2402,    1.2244,    1.5320,    1.5293,    1.0276},
+{    1.3142,    1.1876,    1.2199,    2.0000,    1.5197,    1.7027,    1.1555,    1.2033,    1.0675,    1.1291},
+{    1.3662,    1.4541,    1.3398,    1.5197,    2.0000,    1.7299,    1.0916,    0.9989,    1.3706,    1.3407},
+{    1.2437,    1.5370,    1.2402,    1.7027,    1.7299,    2.0000,    1.2223,    0.9923,    1.1787,    1.5758},
+{    1.6267,    1.5174,    1.2244,    1.1555,    1.0916,    1.2223,    2.0000,    1.6461,    1.6369,    1.1928},
+{    1.4148,    1.0103,    1.5320,    1.2033,    0.9989,    0.9923,    1.6461,    2.0000,    1.5176,    0.7806},
+{    1.7372,    1.5898,    1.5293,    1.0675,    1.3706,    1.1787,    1.6369,    1.5176,    2.0000,    1.3009},
+{    1.2786,    1.8381,    1.0276,    1.1291,    1.3407,    1.5758,    1.1928,    0.7806,    1.3009,    2.0000},
               },
           }
@@ -661,27 +1352,27 @@
             new double[,]
               {
-{    1.0207,    1.1326,    0.3026,    1.0685,    0.5423,    1.2686,    0.7724,    0.5574,    0.7955,    0.3900},
-{    0.8944,    0.6729,    0.6564,    0.9490,    0.6043,    1.1534,    0.7573,    0.3860,    0.6400,    0.4263},
-{    0.4942,    0.5501,    0.3252,    0.7151,    1.0586,    0.4660,    0.3398,    0.7787,    0.5400,    0.3554},
-{    0.4868,    1.0987,    0.4824,    0.6372,    1.4215,    0.9914,    0.2266,    0.2521,    0.2830,    0.3760},
-{    0.2427,    0.9726,    0.5072,    0.2117,    1.5705,    1.3491,    0.4606,    0.1646,    0.1911,    0.2846},
-{    0.2632,    0.5928,    0.6745,    0.3581,    1.3203,    0.9760,    0.2721,    0.1002,    0.0969,    0.2822},
-{    0.9151,    0.5386,    0.6082,    1.0272,    0.2684,    1.0567,    0.8045,    0.8794,    0.7766,    0.3876},
-{    0.9208,    0.8744,    0.4072,    1.1062,    0.6514,    0.8901,    0.6932,    1.1260,    0.8886,    0.4738},
-{    0.8418,    0.6927,    0.2801,    0.9226,    0.4489,    0.9576,    0.7259,    0.7169,    0.7582,    0.3198},
-{    1.0149,    0.6396,    0.8752,    1.1578,    0.8615,    0.9246,    0.7154,    0.4117,    0.7177,    0.6353},
-              },
-            new double[,]
-              {
-{   13.7185,   13.5970,   14.4724,   13.6668,   14.2254,   13.4477,   13.9840,   14.2096,   13.9596,   14.3828},
-{   13.8542,   14.0889,   14.1062,   13.7957,   14.1607,   13.5743,   14.0000,   14.3869,   14.1234,   14.3454},
-{   14.2753,   14.2173,   14.4492,   14.0445,   13.6775,   14.3044,   14.4343,   13.9773,   14.2278,   14.4183},
-{   14.2829,   13.6339,   14.2875,   14.1263,   13.2777,   13.7501,   14.5498,   14.5238,   14.4923,   14.3972},
-{   14.5334,   13.7703,   14.2618,   14.5649,   13.1097,   13.3585,   14.3100,   14.6126,   14.5857,   14.4907},
-{   14.5125,   14.1727,   14.0872,   14.4155,   13.3905,   13.7667,   14.5035,   14.6775,   14.6809,   14.4932},
-{   13.8321,   14.2292,   14.1566,   13.7114,   14.5073,   13.6796,   13.9499,   13.8703,   13.9795,   14.3852},
-{   13.8260,   13.8756,   14.3651,   13.6258,   14.1115,   13.8588,   14.0675,   13.6042,   13.8604,   14.2964},
-{   13.9103,   14.0681,   14.4953,   13.8241,   14.3221,   13.7864,   14.0331,   14.0426,   13.9991,   14.4548},
-{   13.7248,   14.1238,   13.8747,   13.5695,   13.8893,   13.8218,   14.0442,   14.3604,   14.0418,   14.1283},
+{         0,    0.3781,    1.0250,    0.7934,    0.7239,    0.8910,    0.4018,    0.6606,    0.2764,    0.8421},
+{    0.3781,         0,    1.1512,    0.9715,    0.6106,    0.5082,    0.5320,    1.2453,    0.4451,    0.1669},
+{    1.0250,    1.1512,         0,    0.9248,    0.7589,    0.8960,    0.9183,    0.5143,    0.5175,    1.2171},
+{    0.7934,    0.9715,    0.9248,         0,    0.5292,    0.3149,    1.0188,    0.9487,    1.1534,    1.0583},
+{    0.7239,    0.6106,    0.7589,    0.5292,         0,    0.2845,    1.1157,    1.2640,    0.7182,    0.7577},
+{    0.8910,    0.5082,    0.8960,    0.3149,    0.2845,         0,    0.9214,    1.2749,    0.9845,    0.4616},
+{    0.4018,    0.5320,    0.9183,    1.0188,    1.1157,    0.9214,         0,    0.3793,    0.3899,    0.9638},
+{    0.6606,    1.2453,    0.5143,    0.9487,    1.2640,    1.2749,    0.3793,         0,    0.5318,    1.6567},
+{    0.2764,    0.4451,    0.5175,    1.1534,    0.7182,    0.9845,    0.3899,    0.5318,         0,    0.8116},
+{    0.8421,    0.1669,    1.2171,    1.0583,    0.7577,    0.4616,    0.9638,    1.6567,    0.8116,         0},
+              },
+            new double[,]
+              {
+{   14.7781,   14.3950,   13.7138,   13.9618,   14.0352,   13.8578,   14.3707,   14.1018,   14.4990,   13.9100},
+{   14.3950,   14.7781,   13.5767,   13.7715,   14.1542,   14.2607,   14.2360,   13.4735,   14.3260,   14.6102},
+{   13.7138,   13.5767,   14.7781,   13.8217,   13.9982,   13.8525,   13.8286,   14.2545,   14.2511,   13.5045},
+{   13.9618,   13.7715,   13.8217,   14.7781,   14.2390,   14.4598,   13.7206,   13.7960,   13.5743,   13.6778},
+{   14.0352,   14.1542,   13.9982,   14.2390,   14.7781,   14.4908,   13.6154,   13.4528,   14.0413,   13.9995},
+{   13.8578,   14.2607,   13.8525,   14.4598,   14.4908,   14.7781,   13.8254,   13.4407,   13.7576,   14.3090},
+{   14.3707,   14.2360,   13.8286,   13.7206,   13.6154,   13.8254,   14.7781,   14.3938,   14.3828,   13.7798},
+{   14.1018,   13.4735,   14.2545,   13.7960,   13.4528,   13.4407,   14.3938,   14.7781,   14.2363,   13.0113},
+{   14.4990,   14.3260,   14.2511,   13.5743,   14.0413,   13.7576,   14.3828,   14.2363,   14.7781,   13.9425},
+{   13.9100,   14.6102,   13.5045,   13.6778,   13.9995,   14.3090,   13.7798,   13.0113,   13.9425,   14.7781},
               },
           }
@@ -712,27 +1403,27 @@
             new double[,]
               {
-{    0.5767,    0.6633,    0.4980,    0.5588,    0.8510,    1.0532,    0.6845,    0.4776,    0.5254,    0.4543},
-{    0.2756,    0.3688,    0.5733,    0.2537,    0.6682,    0.7170,    0.4039,    0.2199,    0.2494,    0.2996},
-{    0.5435,    0.6426,    0.5741,    0.6365,    1.2144,    0.8107,    0.4866,    0.6263,    0.5340,    0.4774},
-{    0.3317,    0.4317,    0.5547,    0.3566,    0.8127,    0.8265,    0.2450,    0.2037,    0.2167,    0.3287},
-{    0.1737,    0.3419,    0.4987,    0.1530,    0.6281,    0.6573,    0.3347,    0.1177,    0.1294,    0.2263},
-{    0.1244,    0.2312,    0.4411,    0.1411,    0.5353,    0.5559,    0.1778,    0.0524,    0.0491,    0.1614},
-{    0.5264,    0.5249,    0.7518,    0.5054,    0.4900,    1.0006,    0.6408,    0.4870,    0.4733,    0.4224},
-{    0.8556,    0.9368,    0.7753,    0.8528,    1.1632,    1.2961,    0.8909,    0.8193,    0.7984,    0.6886},
-{    0.6251,    0.6728,    0.4889,    0.6191,    0.7840,    1.0950,    0.7139,    0.5665,    0.5648,    0.4174},
-{    0.2155,    0.3383,    0.5837,    0.1593,    0.7267,    0.6922,    0.3726,    0.2082,    0.2186,    0.3249},
-              },
-            new double[,]
-              {
-{    1.0490,    1.0777,    3.2240,    0.9672,    3.0213,    1.5108,    1.6771,    1.6478,    1.2478,    2.2672},
-{    0.5777,    1.0450,    1.6673,    0.4992,    2.1190,    1.1421,    1.0104,    1.1094,    0.7448,    1.3644},
-{    2.1246,    2.2479,    3.4526,    1.6919,    2.1236,    3.3679,    2.7976,    1.5214,    1.9041,    2.6212},
-{    1.3170,    0.7250,    2.2233,    1.0698,    1.0274,    1.5513,    2.1295,    1.5883,    1.5021,    1.7032},
-{    1.4080,    0.6551,    1.8980,    1.4249,    0.7096,    0.8808,    1.4075,    1.4146,    1.3360,    1.5596},
-{    0.9281,    0.7482,    1.2467,    0.7687,    0.7347,    1.0613,    1.2826,    1.0386,    1.0071,    1.1216},
-{    1.0770,    1.8767,    2.3681,    0.9129,    3.5854,    1.7532,    1.5037,    1.0396,    1.1531,    2.1215},
-{    1.7387,    2.0120,    3.7012,    1.4217,    3.4103,    2.7309,    2.4467,    1.3395,    1.6854,    2.8121},
-{    1.3978,    1.8493,    3.4235,    1.2554,    3.3854,    2.1334,    1.8678,    1.5019,    1.4113,    2.5536},
-{    0.3944,    1.0110,    1.2523,    0.2526,    1.5856,    1.4004,    0.9900,    0.9825,    0.5788,    0.9777},
+{         0,    0.4127,    1.0287,    0.6741,    0.5630,    0.4325,    0.5722,    1.0336,    0.4752,    0.5617},
+{    0.4127,         0,    0.6880,    0.3738,    0.2907,    0.1730,    0.4679,    0.8675,    0.4878,    0.1286},
+{    1.0287,    0.6880,         0,    0.7937,    0.6606,    0.5323,    0.9538,    0.9634,    0.8138,    0.6381},
+{    0.6741,    0.3738,    0.7937,         0,    0.3455,    0.1881,    0.6345,    0.9714,    0.7339,    0.3214},
+{    0.5630,    0.2907,    0.6606,    0.3455,         0,    0.1313,    0.5056,    0.8485,    0.6038,    0.2630},
+{    0.4325,    0.1730,    0.5323,    0.1881,    0.1313,         0,    0.3748,    0.6687,    0.4734,    0.1491},
+{    0.5722,    0.4679,    0.9538,    0.6345,    0.5056,    0.3748,         0,    0.6955,    0.5871,    0.5059},
+{    1.0336,    0.8675,    0.9634,    0.9714,    0.8485,    0.6687,    0.6955,         0,    0.9475,    0.6932},
+{    0.4752,    0.4878,    0.8138,    0.7339,    0.6038,    0.4734,    0.5871,    0.9475,         0,    0.6046},
+{    0.5617,    0.1286,    0.6381,    0.3214,    0.2630,    0.1491,    0.5059,    0.6932,    0.6046,         0},
+              },
+            new double[,]
+              {
+{    4.0023,    2.1261,    1.8626,    1.6054,    1.4771,    0.9102,    2.7697,    2.9858,    3.3730,    1.2556},
+{    2.1261,    1.9372,    1.0981,    0.7172,    0.9121,    0.6569,    1.6947,    1.2703,    2.1250,    1.5231},
+{    1.8626,    1.0981,    4.6784,    1.6055,    1.6490,    1.1138,    1.9438,    3.6140,    3.0330,    0.9581},
+{    1.6054,    0.7172,    1.6055,    2.5635,    1.2584,    1.1688,    1.1565,    1.9117,    1.1689,    0.5622},
+{    1.4771,    0.9121,    1.6490,    1.2584,    1.8469,    0.9049,    0.8350,    1.2221,    1.5977,    0.6577},
+{    0.9102,    0.6569,    1.1138,    1.1688,    0.9049,    0.8258,    0.7611,    0.9541,    0.8954,    0.6253},
+{    2.7697,    1.6947,    1.9438,    1.1565,    0.8350,    0.7611,    3.6346,    3.5720,    2.9305,    0.9789},
+{    2.9858,    1.2703,    3.6140,    1.9117,    1.2221,    0.9541,    3.5720,    5.8240,    3.4327,    0.7368},
+{    3.3730,    2.1250,    3.0330,    1.1689,    1.5977,    0.8954,    2.9305,    3.4327,    4.3277,    1.4057},
+{    1.2556,    1.5231,    0.9581,    0.5622,    0.6577,    0.6253,    0.9789,    0.7368,    1.4057,    1.7151},
               },
           }
@@ -756,34 +1447,34 @@
             new double[,]
               {
-{    0.9277,    1.1294,    0.5692,    0.9208,    1.0857,    1.9243,    0.9742,    0.6136,    0.7561,    0.5402},
-{    0.4163,    0.5003,    0.7718,    0.3938,    0.8777,    1.2339,    0.5706,    0.2610,    0.3331,    0.3622},
-{    0.6780,    0.8229,    0.6629,    0.8812,    1.9912,    0.9983,    0.5655,    0.8941,    0.6805,    0.5589},
-{    0.4124,    0.7225,    0.6882,    0.4757,    1.6107,    1.3101,    0.2707,    0.2276,    0.2455,    0.3883},
-{    0.1933,    0.5369,    0.6259,    0.1679,    1.3503,    1.2531,    0.4112,    0.1265,    0.1406,    0.2566},
-{    0.1396,    0.3021,    0.5989,    0.1654,    1.0050,    0.8744,    0.2004,    0.0548,    0.0512,    0.1827},
-{    0.8034,    0.6684,    0.9892,    0.8156,    0.5515,    1.6391,    0.9263,    0.7302,    0.6750,    0.5018},
-{    1.3094,    1.4012,    0.9292,    1.4326,    1.5622,    1.9537,    1.2206,    1.3902,    1.2026,    0.8509},
-{    0.9201,    0.9215,    0.5531,    0.9483,    0.9578,    1.7066,    0.9935,    0.7850,    0.7983,    0.4808},
-{    0.3456,    0.4518,    0.8735,    0.2747,    1.0802,    1.0614,    0.5160,    0.2500,    0.3030,    0.4330},
-              },
-            new double[,]
-              {
-{   12.4684,   13.5589,   27.2269,   11.7775,   28.4810,   20.3974,   17.6367,   15.6433,   13.2687,   19.9218},
-{    6.4483,   10.4768,   16.5855,    5.7248,   20.5652,   14.5226,   10.5485,    9.7302,    7.3516,   12.1897},
-{   19.5852,   21.2676,   29.4561,   17.3075,   25.7280,   30.6436,   24.0261,   16.0481,   17.9305,   22.6719},
-{   12.0994,    8.9651,   20.3832,   10.5449,   15.0447,   18.1696,   17.3814,   13.1126,   12.5737,   14.8704},
-{   11.5753,    7.6010,   17.6020,   11.5533,   11.2719,   12.4074,   12.7745,   11.2328,   10.7342,   13.0642},
-{    7.7002,    7.2219,   12.5086,    6.6571,   10.1926,   12.3345,   10.6842,    8.0169,    7.7623,    9.3850},
-{   12.1437,   17.6603,   23.0249,   10.8865,   29.8159,   21.2199,   16.0607,   11.5178,   12.1505,   18.6213},
-{   19.6612,   22.2367,   32.7783,   17.6462,   33.8425,   30.4168,   24.7688,   16.7960,   18.7578,   25.6781},
-{   15.2039,   18.7161,   28.6209,   14.2089,   30.5600,   24.5693,   19.2063,   15.3774,   14.7399,   21.7333},
-{    4.6744,    9.9769,   13.8465,    3.2199,   17.4141,   15.8657,   10.1292,    8.7194,    5.9286,    9.6290},
-              },
-          }
-      );
-    }
-
-
-    private void TestCovarianceFunction(ICovarianceFunction cf, double hypValue, double[,] expectedCov, double[][,] expectedGradients) {
+{         0,    0.4881,    1.6583,    0.9692,    0.7827,    0.6522,    0.6841,    1.3942,    0.5367,    0.8270},
+{    0.4881,         0,    1.1827,    0.5867,    0.3830,    0.2172,    0.5941,    1.5658,    0.5949,    0.1383},
+{    1.6583,    1.1827,         0,    1.2171,    0.9340,    0.8047,    1.4579,    1.2131,    1.0263,    1.1349},
+{    0.9692,    0.5867,    1.2171,         0,    0.4382,    0.2161,    1.0197,    1.5073,    1.2629,    0.5270},
+{    0.7827,    0.3830,    0.9340,    0.4382,         0,    0.1488,    0.8534,    1.5465,    0.8372,    0.3717},
+{    0.6522,    0.2172,    0.8047,    0.2161,    0.1488,         0,    0.5737,    1.2259,    0.7478,    0.1832},
+{    0.6841,    0.5941,    1.4579,    1.0197,    0.8534,    0.5737,         0,    0.8230,    0.6981,    0.7909},
+{    1.3942,    1.5658,    1.2131,    1.5073,    1.5465,    1.2259,    0.8230,         0,    1.2028,    1.5638},
+{    0.5367,    0.5949,    1.0263,    1.2629,    0.8372,    0.7478,    0.6981,    1.2028,         0,    0.8770},
+{    0.8270,    0.1383,    1.1349,    0.5270,    0.3717,    0.1832,    0.7909,    1.5638,    0.8770,         0},
+              },
+            new double[,]
+              {
+{   29.5729,   18.5805,   22.1876,   17.0550,   15.1746,   10.1428,   24.4678,   29.7604,   28.1516,   13.6594},
+{   18.5805,   14.3139,   13.9483,    8.3170,    8.8785,    6.0953,   15.8990,   16.9410,   19.1490,   12.1067},
+{   22.1876,   13.9483,   34.5691,   18.1905,   17.2281,   12.4415,   21.9535,   33.6266,   28.2630,   12.5918},
+{   17.0550,    8.3170,   18.1905,   18.9418,   11.7900,    9.9253,   13.7325,   21.9184,   14.8634,    6.8107},
+{   15.1746,    8.8785,   17.2281,   11.7900,   13.6471,    7.5799,   10.4142,   16.4592,   16.3685,    6.8676},
+{   10.1428,    6.0953,   12.4415,    9.9253,    7.5799,    6.1018,    8.6086,   12.9238,   10.4507,    5.6783},
+{   24.4678,   15.8990,   21.9535,   13.7325,   10.4142,    8.6086,   26.8561,   31.2335,   25.7489,   11.3079},
+{   29.7604,   16.9410,   33.6266,   21.9184,   16.4592,   12.9238,   31.2335,   43.0336,   32.2012,   12.2815},
+{   28.1516,   19.1490,   28.2630,   14.8634,   16.3685,   10.4507,   25.7489,   32.2012,   31.9778,   15.0663},
+{   13.6594,   12.1067,   12.5918,    6.8107,    6.8676,    5.6783,   11.3079,   12.2815,   15.0663,   12.6728},
+              },
+          }
+      , 5e-3);
+    }
+
+
+    private void TestCovarianceFunction(ICovarianceFunction cf, double hypValue, double[,] expectedCov, double[][,] expectedGradients, double delta = 1E-3) {
       var x = GetData();
       var xt = GetDataTest();
@@ -792,5 +1483,4 @@
       var hyp = Enumerable.Repeat(hypValue, nHyp).ToArray();
       cf.SetParameter(hyp);
-      cf.SetData(x, xt);
 
       int rows0 = x.GetLength(0);
@@ -799,13 +1489,13 @@
       for (int i = 0; i < rows0; i++)
         for (int j = 0; j < rows1; j++)
-          actualCov[i, j] = cf.GetCovariance(i, j);
-
-      AssertEqual(expectedCov, actualCov);
+          actualCov[i, j] = cf.GetCrossCovariance(x, xt, i, j);
+
+      AssertEqual(expectedCov, actualCov, delta);
 
       for (int i = 0; i < rows0; i++)
         for (int j = 0; j < rows1; j++) {
-          var g = cf.GetGradient(i, j);
+          var g = cf.GetGradient(x, i, j).ToArray();
           for (int k = 0; k < nHyp; k++)
-            Assert.AreEqual(expectedGradients[k][i, j], g[k], 5E-3);
+            Assert.AreEqual(expectedGradients[k][i, j], g[k], delta);
         }
     }
@@ -837,9 +1527,9 @@
         Assert.AreEqual(expected[i], actual[i], 1E-3);
     }
-    private void AssertEqual(double[,] expected, double[,] actual) {
+    private void AssertEqual(double[,] expected, double[,] actual, double delta = 5e-3) {
       Assert.AreEqual(expected.Length, actual.Length);
       for (int i = 0; i < expected.GetLength(0); i++)
         for (int j = 0; j < expected.GetLength(1); j++)
-          Assert.AreEqual(expected[i, j], actual[i, j], 5E-3);
+          Assert.AreEqual(expected[i, j], actual[i, j], delta);
     }
 
Index: branches/HeuristicLab.Mono/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessModelTest.cs
===================================================================
--- branches/HeuristicLab.Mono/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessModelTest.cs	(revision 8585)
+++ branches/HeuristicLab.Mono/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessModelTest.cs	(revision 8585)
@@ -0,0 +1,97 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab 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 HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Linq;
+using HeuristicLab.Algorithms.DataAnalysis;
+using HeuristicLab.Problems.Instances.DataAnalysis;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace HeuristicLab.Algorithms.DataAnalysis_34.Tests {
+  [TestClass]
+
+  // reference values calculated with Rasmussen's GPML MATLAB package
+  public class GaussianProcessModelTest {
+    [TestMethod]
+    [DeploymentItem(@"HeuristicLab.Algorithms.DataAnalysis-3.4/co2.txt")]
+    public void GaussianProcessModelOutputTest() {
+      var provider = new RegressionCSVInstanceProvider();
+      var problemData = provider.ImportData("co2.txt");
+
+      var targetVariable = "interpolated";
+      var allowedInputVariables = new string[] { "decimal date" };
+      var rows = Enumerable.Range(0, 401);
+
+      var meanFunction = new MeanConst();
+      var covarianceFunction = new CovarianceSum();
+      covarianceFunction.Terms.Add(new CovarianceSEiso());
+      var prod = new CovarianceProd();
+      prod.Factors.Add(new CovarianceSEiso());
+      prod.Factors.Add(new CovariancePeriodic());
+      covarianceFunction.Terms.Add(prod);
+
+      {
+        var hyp = new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+        var model = new GaussianProcessModel(problemData.Dataset, targetVariable, allowedInputVariables, rows, hyp,
+                                             meanFunction,
+                                             covarianceFunction);
+        Assert.AreEqual(4.3170e+004, model.NegativeLogLikelihood, 1);
+
+        var dHyp = model.HyperparameterGradients;
+        Assert.AreEqual(-248.7932, dHyp[0], 1E-2);
+        var dHypCovExpected = new double[] { -0.5550e4, -5.5533e4, -0.2511e4, -2.7625e4, -1.3033e4, 0.0289e4, -2.7625e4 };
+        AssertEqual(dHypCovExpected, dHyp.Skip(1).Take(7).ToArray(), 1);
+        Assert.AreEqual(-2.0171e+003, dHyp.Last(), 1);
+
+
+        var predTrain = model.GetEstimatedValues(problemData.Dataset, new int[] { 0, 400 }).ToArray();
+        Assert.AreEqual(310.5930, predTrain[0], 1e-3);
+        Assert.AreEqual(347.9993, predTrain[1], 1e-3);
+
+        var predTrainVar = model.GetEstimatedVariance(problemData.Dataset, problemData.TrainingIndices).ToArray();
+      }
+
+      {
+        var hyp = new double[] { 0.029973094285941, 0.455535210579926, 3.438647883940457, 1.464114485889487, 3.001788584487478, 3.815289323309630, 4.374914122810222, 3.001788584487478, 0.716427415979145 };
+        var model = new GaussianProcessModel(problemData.Dataset, targetVariable, allowedInputVariables, rows, hyp,
+                                             meanFunction,
+                                             covarianceFunction);
+        Assert.AreEqual(872.8448, model.NegativeLogLikelihood, 1e-3);
+
+        var dHyp = model.HyperparameterGradients;
+        Assert.AreEqual(-0.0046, dHyp[0], 1e-3);
+        var dHypCovExpected = new double[] { 0.2652, -0.2386, 0.1706, -0.1744, 0.0000, 0.0000, -0.1744 };
+        AssertEqual(dHypCovExpected, dHyp.Skip(1).Take(7).ToArray(), 1e-3);
+        Assert.AreEqual(0.8621, dHyp.Last(), 1e-3);
+
+        var predTrain = model.GetEstimatedValues(problemData.Dataset, new int[] { 0, 400 }).ToArray();
+        Assert.AreEqual(315.3692, predTrain[0], 1e-3);
+        Assert.AreEqual(356.6076, predTrain[1], 1e-3);
+      }
+    }
+
+
+    private void AssertEqual(double[] expected, double[] actual, double delta = 1E-3) {
+      Assert.AreEqual(expected.Length, actual.Length);
+      for (int i = 0; i < expected.Length; i++)
+        Assert.AreEqual(expected[i], actual[i], delta);
+    }
+  }
+}
Index: branches/HeuristicLab.Mono/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessRegressionTest.cs
===================================================================
--- branches/HeuristicLab.Mono/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessRegressionTest.cs	(revision 8585)
+++ branches/HeuristicLab.Mono/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessRegressionTest.cs	(revision 8585)
@@ -0,0 +1,94 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab 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 HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Linq;
+using System.Threading;
+using HeuristicLab.Algorithms.DataAnalysis;
+using HeuristicLab.Common;
+using HeuristicLab.Problems.DataAnalysis;
+using HeuristicLab.Problems.Instances.DataAnalysis;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace HeuristicLab.Algorithms.DataAnalysis_34.Tests {
+  [TestClass]
+  [DeploymentItem(@"HeuristicLab.Algorithms.DataAnalysis-3.4/co2.txt")]
+  public class GaussianProcessRegressionTest {
+    public GaussianProcessRegressionTest() { }
+
+    private TestContext testContextInstance;
+
+    /// <summary>
+    ///Gets or sets the test context which provides
+    ///information about and functionality for the current test run.
+    ///</summary>
+    public TestContext TestContext {
+      get {
+        return testContextInstance;
+      }
+      set {
+        testContextInstance = value;
+      }
+    }
+
+    private EventWaitHandle trigger = new AutoResetEvent(false);
+    private Exception ex;
+
+    [TestMethod]
+    public void GaussianProcessRegressionPerformanceTest() {
+      ex = null;
+
+      var alg = new GaussianProcessRegression();
+      alg.Engine = new HeuristicLab.SequentialEngine.SequentialEngine();
+
+      alg.Problem = new RegressionProblem();
+      var provider = new RegressionCSVInstanceProvider();
+      var problemData = (RegressionProblemData)provider.ImportData("co2.txt");
+      problemData.TargetVariableParameter.ActualValue = problemData.TargetVariableParameter.ValidValues.First(x => x.Value == "interpolated");
+      problemData.InputVariables.SetItemCheckedState(problemData.InputVariables.First(x => x.Value == "year"), false);
+      problemData.InputVariables.SetItemCheckedState(problemData.InputVariables.First(x => x.Value == "month"), false);
+      problemData.InputVariables.SetItemCheckedState(problemData.InputVariables.First(x => x.Value == "average"), false);
+      problemData.InputVariables.SetItemCheckedState(problemData.InputVariables.First(x => x.Value == "interpolated"), false);
+      problemData.InputVariables.SetItemCheckedState(problemData.InputVariables.First(x => x.Value == "trend"), false);
+      problemData.InputVariables.SetItemCheckedState(problemData.InputVariables.First(x => x.Value == "#days"), false);
+
+      alg.Problem.ProblemDataParameter.Value = problemData;
+
+      alg.ExceptionOccurred += new EventHandler<EventArgs<Exception>>(cv_ExceptionOccurred);
+      alg.Stopped += new EventHandler(cv_Stopped);
+
+      alg.Prepare();
+      alg.Start();
+      trigger.WaitOne();
+      if (ex != null) throw ex;
+
+      TestContext.WriteLine("Runtime: {0}", alg.ExecutionTime.ToString());
+    }
+
+    private void cv_ExceptionOccurred(object sender, EventArgs<Exception> e) {
+      ex = e.Value;
+    }
+
+    private void cv_Stopped(object sender, EventArgs e) {
+      trigger.Set();
+    }
+  }
+}
Index: branches/HeuristicLab.Mono/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/co2.txt
===================================================================
--- branches/HeuristicLab.Mono/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/co2.txt	(revision 8585)
+++ branches/HeuristicLab.Mono/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/co2.txt	(revision 8585)
@@ -0,0 +1,653 @@
+year, month, decimal date, average, interpolated, trend, #days
+1958, 3,1958.208,315.71,315.71,314.62,-1
+1958, 4,1958.292,317.45,317.45,315.29,-1
+1958, 5,1958.375,317.50,317.50,314.71,-1
+1958, 6,1958.458,-99.99,317.10,314.85,-1
+1958, 7,1958.542,315.86,315.86,314.98,-1
+1958, 8,1958.625,314.93,314.93,315.94,-1
+1958, 9,1958.708,313.20,313.20,315.91,-1
+1958,10,1958.792,-99.99,312.66,315.61,-1
+1958,11,1958.875,313.33,313.33,315.31,-1
+1958,12,1958.958,314.67,314.67,315.61,-1
+1959, 1,1959.042,315.62,315.62,315.70,-1
+1959, 2,1959.125,316.38,316.38,315.88,-1
+1959, 3,1959.208,316.71,316.71,315.62,-1
+1959, 4,1959.292,317.72,317.72,315.56,-1
+1959, 5,1959.375,318.29,318.29,315.50,-1
+1959, 6,1959.458,318.15,318.15,315.92,-1
+1959, 7,1959.542,316.54,316.54,315.66,-1
+1959, 8,1959.625,314.80,314.80,315.81,-1
+1959, 9,1959.708,313.84,313.84,316.55,-1
+1959,10,1959.792,313.26,313.26,316.19,-1
+1959,11,1959.875,314.80,314.80,316.78,-1
+1959,12,1959.958,315.58,315.58,316.52,-1
+1960, 1,1960.042,316.43,316.43,316.51,-1
+1960, 2,1960.125,316.97,316.97,316.47,-1
+1960, 3,1960.208,317.58,317.58,316.49,-1
+1960, 4,1960.292,319.02,319.02,316.86,-1
+1960, 5,1960.375,320.03,320.03,317.24,-1
+1960, 6,1960.458,319.59,319.59,317.36,-1
+1960, 7,1960.542,318.18,318.18,317.30,-1
+1960, 8,1960.625,315.91,315.91,316.92,-1
+1960, 9,1960.708,314.16,314.16,316.87,-1
+1960,10,1960.792,313.83,313.83,316.76,-1
+1960,11,1960.875,315.00,315.00,316.98,-1
+1960,12,1960.958,316.19,316.19,317.13,-1
+1961, 1,1961.042,316.93,316.93,317.03,-1
+1961, 2,1961.125,317.70,317.70,317.28,-1
+1961, 3,1961.208,318.54,318.54,317.47,-1
+1961, 4,1961.292,319.48,319.48,317.27,-1
+1961, 5,1961.375,320.58,320.58,317.70,-1
+1961, 6,1961.458,319.77,319.77,317.48,-1
+1961, 7,1961.542,318.57,318.57,317.70,-1
+1961, 8,1961.625,316.79,316.79,317.80,-1
+1961, 9,1961.708,314.80,314.80,317.49,-1
+1961,10,1961.792,315.38,315.38,318.35,-1
+1961,11,1961.875,316.10,316.10,318.13,-1
+1961,12,1961.958,317.01,317.01,317.94,-1
+1962, 1,1962.042,317.94,317.94,318.06,-1
+1962, 2,1962.125,318.56,318.56,318.11,-1
+1962, 3,1962.208,319.68,319.68,318.57,-1
+1962, 4,1962.292,320.63,320.63,318.45,-1
+1962, 5,1962.375,321.01,321.01,318.20,-1
+1962, 6,1962.458,320.55,320.55,318.27,-1
+1962, 7,1962.542,319.58,319.58,318.67,-1
+1962, 8,1962.625,317.40,317.40,318.48,-1
+1962, 9,1962.708,316.26,316.26,319.03,-1
+1962,10,1962.792,315.42,315.42,318.33,-1
+1962,11,1962.875,316.69,316.69,318.62,-1
+1962,12,1962.958,317.69,317.69,318.61,-1
+1963, 1,1963.042,318.74,318.74,318.91,-1
+1963, 2,1963.125,319.08,319.08,318.68,-1
+1963, 3,1963.208,319.86,319.86,318.69,-1
+1963, 4,1963.292,321.39,321.39,319.09,-1
+1963, 5,1963.375,322.25,322.25,319.39,-1
+1963, 6,1963.458,321.47,321.47,319.16,-1
+1963, 7,1963.542,319.74,319.74,318.77,-1
+1963, 8,1963.625,317.77,317.77,318.83,-1
+1963, 9,1963.708,316.21,316.21,319.06,-1
+1963,10,1963.792,315.99,315.99,319.00,-1
+1963,11,1963.875,317.12,317.12,319.10,-1
+1963,12,1963.958,318.31,318.31,319.25,-1
+1964, 1,1964.042,319.57,319.57,319.67,-1
+1964, 2,1964.125,-99.99,320.07,319.61,-1
+1964, 3,1964.208,-99.99,320.73,319.55,-1
+1964, 4,1964.292,-99.99,321.77,319.48,-1
+1964, 5,1964.375,322.25,322.25,319.42,-1
+1964, 6,1964.458,321.89,321.89,319.69,-1
+1964, 7,1964.542,320.44,320.44,319.58,-1
+1964, 8,1964.625,318.70,318.70,319.81,-1
+1964, 9,1964.708,316.70,316.70,319.56,-1
+1964,10,1964.792,316.79,316.79,319.78,-1
+1964,11,1964.875,317.79,317.79,319.72,-1
+1964,12,1964.958,318.71,318.71,319.59,-1
+1965, 1,1965.042,319.44,319.44,319.48,-1
+1965, 2,1965.125,320.44,320.44,319.97,-1
+1965, 3,1965.208,320.89,320.89,319.65,-1
+1965, 4,1965.292,322.13,322.13,319.80,-1
+1965, 5,1965.375,322.16,322.16,319.36,-1
+1965, 6,1965.458,321.87,321.87,319.65,-1
+1965, 7,1965.542,321.39,321.39,320.51,-1
+1965, 8,1965.625,318.81,318.81,319.93,-1
+1965, 9,1965.708,317.81,317.81,320.68,-1
+1965,10,1965.792,317.30,317.30,320.36,-1
+1965,11,1965.875,318.87,318.87,320.87,-1
+1965,12,1965.958,319.42,319.42,320.26,-1
+1966, 1,1966.042,320.62,320.62,320.63,-1
+1966, 2,1966.125,321.59,321.59,321.10,-1
+1966, 3,1966.208,322.39,322.39,321.16,-1
+1966, 4,1966.292,323.87,323.87,321.51,-1
+1966, 5,1966.375,324.01,324.01,321.18,-1
+1966, 6,1966.458,323.75,323.75,321.52,-1
+1966, 7,1966.542,322.39,322.39,321.49,-1
+1966, 8,1966.625,320.37,320.37,321.50,-1
+1966, 9,1966.708,318.64,318.64,321.54,-1
+1966,10,1966.792,318.10,318.10,321.18,-1
+1966,11,1966.875,319.79,319.79,321.84,-1
+1966,12,1966.958,321.08,321.08,321.95,-1
+1967, 1,1967.042,322.07,322.07,322.07,-1
+1967, 2,1967.125,322.50,322.50,321.94,-1
+1967, 3,1967.208,323.04,323.04,321.72,-1
+1967, 4,1967.292,324.42,324.42,322.05,-1
+1967, 5,1967.375,325.00,325.00,322.27,-1
+1967, 6,1967.458,324.09,324.09,321.94,-1
+1967, 7,1967.542,322.55,322.55,321.66,-1
+1967, 8,1967.625,320.92,320.92,322.04,-1
+1967, 9,1967.708,319.31,319.31,322.19,-1
+1967,10,1967.792,319.31,319.31,322.36,-1
+1967,11,1967.875,320.72,320.72,322.78,-1
+1967,12,1967.958,321.96,321.96,322.86,-1
+1968, 1,1968.042,322.57,322.57,322.55,-1
+1968, 2,1968.125,323.15,323.15,322.56,-1
+1968, 3,1968.208,323.89,323.89,322.59,-1
+1968, 4,1968.292,325.02,325.02,322.73,-1
+1968, 5,1968.375,325.57,325.57,322.87,-1
+1968, 6,1968.458,325.36,325.36,323.20,-1
+1968, 7,1968.542,324.14,324.14,323.25,-1
+1968, 8,1968.625,322.03,322.03,323.15,-1
+1968, 9,1968.708,320.41,320.41,323.31,-1
+1968,10,1968.792,320.25,320.25,323.32,-1
+1968,11,1968.875,321.31,321.31,323.32,-1
+1968,12,1968.958,322.84,322.84,323.69,-1
+1969, 1,1969.042,324.00,324.00,323.98,-1
+1969, 2,1969.125,324.42,324.42,323.89,-1
+1969, 3,1969.208,325.64,325.64,324.41,-1
+1969, 4,1969.292,326.66,326.66,324.35,-1
+1969, 5,1969.375,327.34,327.34,324.57,-1
+1969, 6,1969.458,326.76,326.76,324.63,-1
+1969, 7,1969.542,325.88,325.88,325.08,-1
+1969, 8,1969.625,323.67,323.67,324.80,-1
+1969, 9,1969.708,322.38,322.38,325.28,-1
+1969,10,1969.792,321.78,321.78,324.84,-1
+1969,11,1969.875,322.85,322.85,324.78,-1
+1969,12,1969.958,324.11,324.11,324.88,-1
+1970, 1,1970.042,325.03,325.03,325.04,-1
+1970, 2,1970.125,325.99,325.99,325.42,-1
+1970, 3,1970.208,326.87,326.87,325.69,-1
+1970, 4,1970.292,328.13,328.13,325.86,-1
+1970, 5,1970.375,328.07,328.07,325.27,-1
+1970, 6,1970.458,327.66,327.66,325.52,-1
+1970, 7,1970.542,326.35,326.35,325.51,-1
+1970, 8,1970.625,324.69,324.69,325.76,-1
+1970, 9,1970.708,323.10,323.10,325.93,-1
+1970,10,1970.792,323.16,323.16,326.15,-1
+1970,11,1970.875,323.98,323.98,325.96,-1
+1970,12,1970.958,325.13,325.13,326.06,-1
+1971, 1,1971.042,326.17,326.17,326.26,-1
+1971, 2,1971.125,326.68,326.68,326.09,-1
+1971, 3,1971.208,327.18,327.18,325.94,-1
+1971, 4,1971.292,327.78,327.78,325.47,-1
+1971, 5,1971.375,328.92,328.92,326.11,-1
+1971, 6,1971.458,328.57,328.57,326.41,-1
+1971, 7,1971.542,327.34,327.34,326.46,-1
+1971, 8,1971.625,325.46,325.46,326.49,-1
+1971, 9,1971.708,323.36,323.36,326.18,-1
+1971,10,1971.792,323.57,323.57,326.58,-1
+1971,11,1971.875,324.80,324.80,326.82,-1
+1971,12,1971.958,326.01,326.01,327.02,-1
+1972, 1,1972.042,326.77,326.77,326.86,-1
+1972, 2,1972.125,327.63,327.63,327.05,-1
+1972, 3,1972.208,327.75,327.75,326.52,-1
+1972, 4,1972.292,329.72,329.72,327.41,-1
+1972, 5,1972.375,330.07,330.07,327.21,-1
+1972, 6,1972.458,329.09,329.09,326.94,-1
+1972, 7,1972.542,328.05,328.05,327.24,-1
+1972, 8,1972.625,326.32,326.32,327.37,-1
+1972, 9,1972.708,324.93,324.93,327.73,-1
+1972,10,1972.792,325.06,325.06,328.05,-1
+1972,11,1972.875,326.50,326.50,328.51,-1
+1972,12,1972.958,327.55,327.55,328.56,-1
+1973, 1,1973.042,328.54,328.54,328.58,-1
+1973, 2,1973.125,329.56,329.56,328.87,-1
+1973, 3,1973.208,330.30,330.30,328.99,-1
+1973, 4,1973.292,331.50,331.50,329.12,-1
+1973, 5,1973.375,332.48,332.48,329.60,-1
+1973, 6,1973.458,332.07,332.07,329.96,-1
+1973, 7,1973.542,330.87,330.87,330.09,-1
+1973, 8,1973.625,329.31,329.31,330.43,-1
+1973, 9,1973.708,327.51,327.51,330.43,-1
+1973,10,1973.792,327.18,327.18,330.23,-1
+1973,11,1973.875,328.16,328.16,330.17,-1
+1973,12,1973.958,328.64,328.64,329.66,-1
+1974, 1,1974.042,329.35,329.35,329.44,-1
+1974, 2,1974.125,330.71,330.71,330.11,-1
+1974, 3,1974.208,331.48,331.48,330.19,-1
+1974, 4,1974.292,332.65,332.65,330.25,-1
+1974, 5,1974.375,333.19,333.19,330.25,15
+1974, 6,1974.458,332.12,332.12,329.93,27
+1974, 7,1974.542,330.99,330.99,330.20,31
+1974, 8,1974.625,329.17,329.17,330.31,31
+1974, 9,1974.708,327.41,327.41,330.35,29
+1974,10,1974.792,327.21,327.21,330.29,29
+1974,11,1974.875,328.34,328.34,330.33,29
+1974,12,1974.958,329.50,329.50,330.47,31
+1975, 1,1975.042,330.68,330.68,330.81,31
+1975, 2,1975.125,331.41,331.41,330.86,28
+1975, 3,1975.208,331.85,331.85,330.49,26
+1975, 4,1975.292,333.29,333.29,330.77,30
+1975, 5,1975.375,333.91,333.91,330.94,30
+1975, 6,1975.458,333.40,333.40,331.18,29
+1975, 7,1975.542,331.74,331.74,330.92,27
+1975, 8,1975.625,329.88,329.88,331.06,31
+1975, 9,1975.708,328.57,328.57,331.54,30
+1975,10,1975.792,328.36,328.36,331.46,17
+1975,11,1975.875,329.33,329.33,331.39,25
+1975,12,1975.958,-99.99,330.59,331.60, 1
+1976, 1,1976.042,331.66,331.66,331.82,25
+1976, 2,1976.125,332.75,332.75,332.19,29
+1976, 3,1976.208,333.46,333.46,331.99,29
+1976, 4,1976.292,334.78,334.78,332.24,25
+1976, 5,1976.375,334.78,334.78,331.86,31
+1976, 6,1976.458,334.06,334.06,331.74,25
+1976, 7,1976.542,332.95,332.95,332.06,21
+1976, 8,1976.625,330.64,330.64,331.87,31
+1976, 9,1976.708,328.96,328.96,331.94,28
+1976,10,1976.792,328.77,328.77,331.92,30
+1976,11,1976.875,330.18,330.18,332.33,26
+1976,12,1976.958,331.65,331.65,332.69,24
+1977, 1,1977.042,332.69,332.69,332.75,29
+1977, 2,1977.125,333.23,333.23,332.60,26
+1977, 3,1977.208,334.97,334.97,333.36,29
+1977, 4,1977.292,336.03,336.03,333.39,29
+1977, 5,1977.375,336.82,336.82,333.87,30
+1977, 6,1977.458,336.10,336.10,333.76,25
+1977, 7,1977.542,334.79,334.79,333.96,28
+1977, 8,1977.625,332.53,332.53,333.92,30
+1977, 9,1977.708,331.19,331.19,334.27,27
+1977,10,1977.792,331.21,331.21,334.43,30
+1977,11,1977.875,332.35,332.35,334.59,28
+1977,12,1977.958,333.47,333.47,334.48,31
+1978, 1,1978.042,335.10,335.10,335.11,26
+1978, 2,1978.125,335.26,335.26,334.58,28
+1978, 3,1978.208,336.61,336.61,334.95,30
+1978, 4,1978.292,337.77,337.77,335.11,28
+1978, 5,1978.375,338.01,338.01,335.05,30
+1978, 6,1978.458,337.98,337.98,335.60,27
+1978, 7,1978.542,336.48,336.48,335.68,31
+1978, 8,1978.625,334.37,334.37,335.88,31
+1978, 9,1978.708,332.33,332.33,335.49,24
+1978,10,1978.792,332.41,332.41,335.66,31
+1978,11,1978.875,333.76,333.76,336.01,28
+1978,12,1978.958,334.83,334.83,335.79,31
+1979, 1,1979.042,336.21,336.21,336.23,31
+1979, 2,1979.125,336.65,336.65,335.94,27
+1979, 3,1979.208,338.13,338.13,336.40,29
+1979, 4,1979.292,338.95,338.95,336.21,24
+1979, 5,1979.375,339.00,339.00,336.01,20
+1979, 6,1979.458,339.20,339.20,336.79,30
+1979, 7,1979.542,337.60,337.60,336.78,29
+1979, 8,1979.625,335.56,335.56,337.10,29
+1979, 9,1979.708,333.93,333.93,337.17,26
+1979,10,1979.792,334.12,334.12,337.44,28
+1979,11,1979.875,335.26,335.26,337.54,30
+1979,12,1979.958,336.78,336.78,337.76,24
+1980, 1,1980.042,337.80,337.80,337.95,30
+1980, 2,1980.125,338.28,338.28,337.73,28
+1980, 3,1980.208,340.04,340.04,338.43,31
+1980, 4,1980.292,340.86,340.86,338.20,30
+1980, 5,1980.375,341.47,341.47,338.45,31
+1980, 6,1980.458,341.26,341.26,338.79,30
+1980, 7,1980.542,339.34,339.34,338.48,26
+1980, 8,1980.625,337.45,337.45,338.92,24
+1980, 9,1980.708,336.10,336.10,339.27,26
+1980,10,1980.792,336.05,336.05,339.32,29
+1980,11,1980.875,337.21,337.21,339.38,27
+1980,12,1980.958,338.29,338.29,339.23,27
+1981, 1,1981.042,339.36,339.36,339.41,31
+1981, 2,1981.125,340.51,340.51,339.89,28
+1981, 3,1981.208,341.57,341.57,339.98,31
+1981, 4,1981.292,342.56,342.56,339.93,30
+1981, 5,1981.375,343.01,343.01,339.98,31
+1981, 6,1981.458,342.49,342.49,340.02,28
+1981, 7,1981.542,340.68,340.68,339.81,31
+1981, 8,1981.625,338.49,338.49,339.97,28
+1981, 9,1981.708,336.92,336.92,340.17,30
+1981,10,1981.792,337.12,337.12,340.44,31
+1981,11,1981.875,338.59,338.59,340.76,30
+1981,12,1981.958,339.90,339.90,340.81,28
+1982, 1,1982.042,340.92,340.92,341.03,30
+1982, 2,1982.125,341.69,341.69,341.05,27
+1982, 3,1982.208,342.85,342.85,341.21,21
+1982, 4,1982.292,343.92,343.92,341.30, 9
+1982, 5,1982.375,344.67,344.67,341.63,31
+1982, 6,1982.458,343.78,343.78,341.33,29
+1982, 7,1982.542,342.23,342.23,341.45,28
+1982, 8,1982.625,340.11,340.11,341.61,27
+1982, 9,1982.708,338.32,338.32,341.53,26
+1982,10,1982.792,338.39,338.39,341.72,30
+1982,11,1982.875,339.48,339.48,341.62,28
+1982,12,1982.958,340.88,340.88,341.77,31
+1983, 1,1983.042,341.64,341.64,341.79,31
+1983, 2,1983.125,342.87,342.87,342.30,27
+1983, 3,1983.208,343.59,343.59,342.04,30
+1983, 4,1983.292,345.25,345.25,342.63,26
+1983, 5,1983.375,345.96,345.96,342.80,29
+1983, 6,1983.458,345.52,345.52,343.03,25
+1983, 7,1983.542,344.15,344.15,343.41,30
+1983, 8,1983.625,342.25,342.25,343.72,28
+1983, 9,1983.708,340.17,340.17,343.34,27
+1983,10,1983.792,340.30,340.30,343.63,31
+1983,11,1983.875,341.53,341.53,343.66,29
+1983,12,1983.958,343.07,343.07,343.97,26
+1984, 1,1984.042,344.05,344.05,344.15,31
+1984, 2,1984.125,344.77,344.77,344.21,29
+1984, 3,1984.208,345.46,345.46,344.00,23
+1984, 4,1984.292,-99.99,346.77,344.17, 2
+1984, 5,1984.375,347.55,347.55,344.35,27
+1984, 6,1984.458,346.98,346.98,344.49,25
+1984, 7,1984.542,345.55,345.55,344.82,29
+1984, 8,1984.625,343.20,343.20,344.67,24
+1984, 9,1984.708,341.35,341.35,344.54,27
+1984,10,1984.792,341.68,341.68,344.99,28
+1984,11,1984.875,343.06,343.06,345.16,28
+1984,12,1984.958,344.54,344.54,345.42,28
+1985, 1,1985.042,345.25,345.25,345.35,29
+1985, 2,1985.125,346.06,346.06,345.51,26
+1985, 3,1985.208,347.66,347.66,346.27,28
+1985, 4,1985.292,348.20,348.20,345.64,27
+1985, 5,1985.375,348.92,348.92,345.75,31
+1985, 6,1985.458,348.40,348.40,345.94,30
+1985, 7,1985.542,346.66,346.66,345.86,28
+1985, 8,1985.625,344.85,344.85,346.22,27
+1985, 9,1985.708,343.20,343.20,346.32,27
+1985,10,1985.792,343.08,343.08,346.36,27
+1985,11,1985.875,344.40,344.40,346.53,29
+1985,12,1985.958,345.82,345.82,346.75,29
+1986, 1,1986.042,346.54,346.54,346.56,26
+1986, 2,1986.125,347.13,347.13,346.59,26
+1986, 3,1986.208,348.05,348.05,346.71,31
+1986, 4,1986.292,349.77,349.77,347.21,30
+1986, 5,1986.375,350.53,350.53,347.39,30
+1986, 6,1986.458,349.90,349.90,347.47,24
+1986, 7,1986.542,348.11,348.11,347.30,26
+1986, 8,1986.625,346.09,346.09,347.49,29
+1986, 9,1986.708,345.01,345.01,348.16,25
+1986,10,1986.792,344.47,344.47,347.71,30
+1986,11,1986.875,345.86,345.86,347.99,30
+1986,12,1986.958,347.15,347.15,348.06,30
+1987, 1,1987.042,348.38,348.38,348.31,30
+1987, 2,1987.125,348.70,348.70,348.01,28
+1987, 3,1987.208,349.72,349.72,348.31,27
+1987, 4,1987.292,351.32,351.32,348.77,30
+1987, 5,1987.375,352.14,352.14,349.03,31
+1987, 6,1987.458,351.61,351.61,349.23,29
+1987, 7,1987.542,349.91,349.91,349.20,28
+1987, 8,1987.625,347.84,347.84,349.34,27
+1987, 9,1987.708,346.52,346.52,349.71,29
+1987,10,1987.792,346.65,346.65,349.88,30
+1987,11,1987.875,347.95,347.95,350.07,27
+1987,12,1987.958,349.18,349.18,350.07,30
+1988, 1,1988.042,350.38,350.38,350.36,29
+1988, 2,1988.125,351.68,351.68,351.01,27
+1988, 3,1988.208,352.24,352.24,350.76,30
+1988, 4,1988.292,353.66,353.66,351.00,30
+1988, 5,1988.375,354.18,354.18,350.99,31
+1988, 6,1988.458,353.68,353.68,351.30,29
+1988, 7,1988.542,352.58,352.58,351.94,30
+1988, 8,1988.625,350.66,350.66,352.19,27
+1988, 9,1988.708,349.03,349.03,352.22,29
+1988,10,1988.792,349.08,349.08,352.34,31
+1988,11,1988.875,350.15,350.15,352.29,27
+1988,12,1988.958,351.44,351.44,352.36,30
+1989, 1,1989.042,352.89,352.89,352.83,31
+1989, 2,1989.125,353.24,353.24,352.55,28
+1989, 3,1989.208,353.80,353.80,352.36,30
+1989, 4,1989.292,355.59,355.59,352.93,30
+1989, 5,1989.375,355.89,355.89,352.65,31
+1989, 6,1989.458,355.30,355.30,352.88,30
+1989, 7,1989.542,353.98,353.98,353.33,31
+1989, 8,1989.625,351.53,351.53,353.11,29
+1989, 9,1989.708,350.02,350.02,353.27,28
+1989,10,1989.792,350.29,350.29,353.53,30
+1989,11,1989.875,351.44,351.44,353.60,30
+1989,12,1989.958,352.84,352.84,353.78,28
+1990, 1,1990.042,353.79,353.79,353.74,30
+1990, 2,1990.125,354.88,354.88,354.20,28
+1990, 3,1990.208,355.65,355.65,354.21,31
+1990, 4,1990.292,356.27,356.27,353.66,29
+1990, 5,1990.375,357.29,357.29,354.10,30
+1990, 6,1990.458,356.32,356.32,353.92,30
+1990, 7,1990.542,354.88,354.88,354.27,29
+1990, 8,1990.625,352.89,352.89,354.51,30
+1990, 9,1990.708,351.28,351.28,354.53,27
+1990,10,1990.792,351.59,351.59,354.81,31
+1990,11,1990.875,353.05,353.05,355.10,29
+1990,12,1990.958,354.27,354.27,355.12,30
+1991, 1,1991.042,354.87,354.87,354.85,29
+1991, 2,1991.125,355.68,355.68,355.01,28
+1991, 3,1991.208,357.06,357.06,355.57,27
+1991, 4,1991.292,358.51,358.51,355.88,30
+1991, 5,1991.375,359.09,359.09,355.94,31
+1991, 6,1991.458,358.10,358.10,355.75,30
+1991, 7,1991.542,356.12,356.12,355.51,29
+1991, 8,1991.625,353.89,353.89,355.50,31
+1991, 9,1991.708,352.30,352.30,355.58,30
+1991,10,1991.792,352.32,352.32,355.55,31
+1991,11,1991.875,353.79,353.79,355.78,30
+1991,12,1991.958,355.07,355.07,355.89,31
+1992, 1,1992.042,356.17,356.17,356.12,30
+1992, 2,1992.125,356.93,356.93,356.23,29
+1992, 3,1992.208,357.82,357.82,356.28,29
+1992, 4,1992.292,359.00,359.00,356.30,30
+1992, 5,1992.375,359.55,359.55,356.33,31
+1992, 6,1992.458,359.32,359.32,356.92,30
+1992, 7,1992.542,356.85,356.85,356.27,30
+1992, 8,1992.625,354.91,354.91,356.61,30
+1992, 9,1992.708,352.93,352.93,356.27,29
+1992,10,1992.792,353.31,353.31,356.57,30
+1992,11,1992.875,354.27,354.27,356.32,30
+1992,12,1992.958,355.53,355.53,356.37,31
+1993, 1,1993.042,356.86,356.86,356.83,28
+1993, 2,1993.125,357.27,357.27,356.43,28
+1993, 3,1993.208,358.36,358.36,356.70,31
+1993, 4,1993.292,359.27,359.27,356.60,30
+1993, 5,1993.375,360.19,360.19,357.00,31
+1993, 6,1993.458,359.52,359.52,357.09,30
+1993, 7,1993.542,357.42,357.42,356.83,27
+1993, 8,1993.625,355.46,355.46,357.14,28
+1993, 9,1993.708,354.10,354.10,357.45,26
+1993,10,1993.792,354.12,354.12,357.46,30
+1993,11,1993.875,355.40,355.40,357.53,30
+1993,12,1993.958,356.84,356.84,357.76,31
+1994, 1,1994.042,358.22,358.22,358.13,27
+1994, 2,1994.125,358.98,358.98,358.15,27
+1994, 3,1994.208,359.91,359.91,358.25,30
+1994, 4,1994.292,361.32,361.32,358.57,30
+1994, 5,1994.375,361.68,361.68,358.44,30
+1994, 6,1994.458,360.80,360.80,358.39,30
+1994, 7,1994.542,359.39,359.39,358.79,31
+1994, 8,1994.625,357.42,357.42,359.12,31
+1994, 9,1994.708,355.63,355.63,359.05,30
+1994,10,1994.792,356.09,356.09,359.50,31
+1994,11,1994.875,357.56,357.56,359.72,30
+1994,12,1994.958,358.87,358.87,359.75,31
+1995, 1,1995.042,359.87,359.87,359.76,31
+1995, 2,1995.125,360.79,360.79,359.98,28
+1995, 3,1995.208,361.77,361.77,360.19,30
+1995, 4,1995.292,363.23,363.23,360.56,30
+1995, 5,1995.375,363.77,363.77,360.61,29
+1995, 6,1995.458,363.22,363.22,360.82,30
+1995, 7,1995.542,361.70,361.70,361.03,31
+1995, 8,1995.625,359.11,359.11,360.74,30
+1995, 9,1995.708,358.11,358.11,361.48,30
+1995,10,1995.792,357.97,357.97,361.34,31
+1995,11,1995.875,359.40,359.40,361.54,30
+1995,12,1995.958,360.61,360.61,361.49,30
+1996, 1,1996.042,362.04,362.04,361.84,31
+1996, 2,1996.125,363.17,363.17,362.29,29
+1996, 3,1996.208,364.17,364.17,362.55,31
+1996, 4,1996.292,364.51,364.51,361.81,29
+1996, 5,1996.375,365.16,365.16,362.10,31
+1996, 6,1996.458,364.93,364.93,362.64,30
+1996, 7,1996.542,363.53,363.53,362.83,31
+1996, 8,1996.625,361.38,361.38,362.99,30
+1996, 9,1996.708,359.60,359.60,363.03,28
+1996,10,1996.792,359.54,359.54,362.91,31
+1996,11,1996.875,360.84,360.84,362.99,30
+1996,12,1996.958,362.18,362.18,363.05,31
+1997, 1,1997.042,363.04,363.04,362.85,31
+1997, 2,1997.125,364.09,364.09,363.28,28
+1997, 3,1997.208,364.47,364.47,362.86,31
+1997, 4,1997.292,366.25,366.25,363.59,29
+1997, 5,1997.375,366.69,366.69,363.76,30
+1997, 6,1997.458,365.59,365.59,363.39,28
+1997, 7,1997.542,364.34,364.34,363.63,26
+1997, 8,1997.625,362.20,362.20,363.78,27
+1997, 9,1997.708,360.31,360.31,363.69,29
+1997,10,1997.792,360.71,360.71,364.01,31
+1997,11,1997.875,362.44,362.44,364.51,29
+1997,12,1997.958,364.33,364.33,365.12,31
+1998, 1,1998.042,365.18,365.18,365.01,30
+1998, 2,1998.125,365.98,365.98,365.18,27
+1998, 3,1998.208,367.13,367.13,365.50,31
+1998, 4,1998.292,368.61,368.61,366.00,30
+1998, 5,1998.375,369.49,369.49,366.60,30
+1998, 6,1998.458,368.95,368.95,366.73,30
+1998, 7,1998.542,367.74,367.74,367.05,30
+1998, 8,1998.625,365.79,365.79,367.37,31
+1998, 9,1998.708,364.01,364.01,367.34,29
+1998,10,1998.792,364.35,364.35,367.63,31
+1998,11,1998.875,365.52,365.52,367.58,23
+1998,12,1998.958,367.08,367.08,367.85,26
+1999, 1,1999.042,368.12,368.12,367.92,27
+1999, 2,1999.125,368.98,368.98,368.18,23
+1999, 3,1999.208,369.60,369.60,368.00,25
+1999, 4,1999.292,370.96,370.96,368.44,30
+1999, 5,1999.375,370.77,370.77,367.95,30
+1999, 6,1999.458,370.33,370.33,368.14,30
+1999, 7,1999.542,369.28,369.28,368.60,30
+1999, 8,1999.625,366.86,366.86,368.42,30
+1999, 9,1999.708,364.94,364.94,368.24,28
+1999,10,1999.792,365.35,365.35,368.62,31
+1999,11,1999.875,366.68,366.68,368.68,29
+1999,12,1999.958,368.04,368.04,368.72,29
+2000, 1,2000.042,369.25,369.25,369.06,27
+2000, 2,2000.125,369.50,369.50,368.79,23
+2000, 3,2000.208,370.56,370.56,369.04,31
+2000, 4,2000.292,371.82,371.82,369.29,29
+2000, 5,2000.375,371.51,371.51,368.64,29
+2000, 6,2000.458,371.71,371.71,369.49,29
+2000, 7,2000.542,369.85,369.85,369.18,28
+2000, 8,2000.625,368.20,368.20,369.78,28
+2000, 9,2000.708,366.91,366.91,370.19,30
+2000,10,2000.792,366.99,366.99,370.22,31
+2000,11,2000.875,368.33,368.33,370.29,25
+2000,12,2000.958,369.67,369.67,370.31,30
+2001, 1,2001.042,370.52,370.52,370.36,29
+2001, 2,2001.125,371.49,371.49,370.77,28
+2001, 3,2001.208,372.53,372.53,370.97,29
+2001, 4,2001.292,373.37,373.37,370.79,30
+2001, 5,2001.375,373.82,373.82,370.92,25
+2001, 6,2001.458,373.18,373.18,370.97,28
+2001, 7,2001.542,371.57,371.57,370.94,30
+2001, 8,2001.625,369.63,369.63,371.21,30
+2001, 9,2001.708,368.16,368.16,371.41,30
+2001,10,2001.792,368.42,368.42,371.65,31
+2001,11,2001.875,369.69,369.69,371.70,27
+2001,12,2001.958,371.18,371.18,371.89,31
+2002, 1,2002.042,372.45,372.45,372.23,29
+2002, 2,2002.125,373.14,373.14,372.26,27
+2002, 3,2002.208,373.93,373.93,372.22,27
+2002, 4,2002.292,375.00,375.00,372.33,30
+2002, 5,2002.375,375.65,375.65,372.74,31
+2002, 6,2002.458,375.50,375.50,373.29,30
+2002, 7,2002.542,374.00,374.00,373.36,31
+2002, 8,2002.625,371.83,371.83,373.47,31
+2002, 9,2002.708,370.66,370.66,374.01,29
+2002,10,2002.792,370.51,370.51,373.85,31
+2002,11,2002.875,372.20,372.20,374.33,30
+2002,12,2002.958,373.71,373.71,374.50,30
+2003, 1,2003.042,374.87,374.87,374.63,31
+2003, 2,2003.125,375.62,375.62,374.75,27
+2003, 3,2003.208,376.48,376.48,374.79,31
+2003, 4,2003.292,377.74,377.74,375.02,27
+2003, 5,2003.375,378.50,378.50,375.47,31
+2003, 6,2003.458,378.18,378.18,375.95,29
+2003, 7,2003.542,376.72,376.72,376.16,28
+2003, 8,2003.625,374.31,374.31,375.98,26
+2003, 9,2003.708,373.20,373.20,376.51,28
+2003,10,2003.792,373.10,373.10,376.45,30
+2003,11,2003.875,374.64,374.64,376.83,25
+2003,12,2003.958,375.93,375.93,376.74,30
+2004, 1,2004.042,377.00,377.00,376.79,31
+2004, 2,2004.125,377.87,377.87,377.01,27
+2004, 3,2004.208,378.73,378.73,377.06,30
+2004, 4,2004.292,380.41,380.41,377.65,29
+2004, 5,2004.375,380.63,380.63,377.51,28
+2004, 6,2004.458,379.56,379.56,377.28,26
+2004, 7,2004.542,377.61,377.61,377.03,28
+2004, 8,2004.625,376.15,376.15,377.85,19
+2004, 9,2004.708,374.11,374.11,377.49,16
+2004,10,2004.792,374.44,374.44,377.80,31
+2004,11,2004.875,375.93,375.93,378.13,27
+2004,12,2004.958,377.45,377.45,378.30,31
+2005, 1,2005.042,378.47,378.47,378.21,31
+2005, 2,2005.125,379.76,379.76,378.95,27
+2005, 3,2005.208,381.14,381.14,379.63,27
+2005, 4,2005.292,382.20,382.20,379.54,30
+2005, 5,2005.375,382.47,382.47,379.33,31
+2005, 6,2005.458,382.20,382.20,379.87,30
+2005, 7,2005.542,380.78,380.78,380.17,30
+2005, 8,2005.625,378.73,378.73,380.38,30
+2005, 9,2005.708,376.66,376.66,379.98,30
+2005,10,2005.792,376.98,376.98,380.29,14
+2005,11,2005.875,378.29,378.29,380.47,24
+2005,12,2005.958,379.92,379.92,380.75,29
+2006, 1,2006.042,381.35,381.35,381.11,26
+2006, 2,2006.125,382.16,382.16,381.35,25
+2006, 3,2006.208,382.66,382.66,381.11,30
+2006, 4,2006.292,384.73,384.73,382.01,27
+2006, 5,2006.375,384.98,384.98,381.83,29
+2006, 6,2006.458,384.09,384.09,381.78,29
+2006, 7,2006.542,382.38,382.38,381.81,27
+2006, 8,2006.625,380.45,380.45,382.10,28
+2006, 9,2006.708,378.92,378.92,382.22,29
+2006,10,2006.792,379.16,379.16,382.48,25
+2006,11,2006.875,380.18,380.18,382.38,30
+2006,12,2006.958,381.79,381.79,382.65,31
+2007, 1,2007.042,382.93,382.93,382.75,23
+2007, 2,2007.125,383.81,383.81,382.96,21
+2007, 3,2007.208,384.56,384.56,382.92,31
+2007, 4,2007.292,386.40,386.40,383.58,28
+2007, 5,2007.375,386.58,386.58,383.35,31
+2007, 6,2007.458,386.05,386.05,383.77,30
+2007, 7,2007.542,384.49,384.49,383.98,31
+2007, 8,2007.625,382.00,382.00,383.70,30
+2007, 9,2007.708,380.90,380.90,384.25,25
+2007,10,2007.792,381.14,381.14,384.47,30
+2007,11,2007.875,382.42,382.42,384.64,30
+2007,12,2007.958,383.89,383.89,384.81,28
+2008, 1,2008.042,385.44,385.44,385.26,31
+2008, 2,2008.125,385.73,385.73,384.92,28
+2008, 3,2008.208,385.97,385.97,384.41,30
+2008, 4,2008.292,387.16,387.16,384.50,28
+2008, 5,2008.375,388.50,388.50,385.39,26
+2008, 6,2008.458,387.88,387.88,385.56,24
+2008, 7,2008.542,386.42,386.42,385.86,10
+2008, 8,2008.625,384.15,384.15,385.83,28
+2008, 9,2008.708,383.09,383.09,386.34,30
+2008,10,2008.792,382.99,382.99,386.24,24
+2008,11,2008.875,384.13,384.13,386.31,29
+2008,12,2008.958,385.56,385.56,386.43,30
+2009, 1,2009.042,386.93,386.93,386.69,31
+2009, 2,2009.125,387.42,387.42,386.56,28
+2009, 3,2009.208,388.77,388.77,387.19,30
+2009, 4,2009.292,389.46,389.46,386.73,28
+2009, 5,2009.375,390.19,390.19,387.00,31
+2009, 6,2009.458,389.44,389.44,387.15,29
+2009, 7,2009.542,387.91,387.91,387.39,29
+2009, 8,2009.625,385.92,385.92,387.61,30
+2009, 9,2009.708,384.79,384.79,388.10,27
+2009,10,2009.792,384.39,384.39,387.70,31
+2009,11,2009.875,386.00,386.00,388.22,30
+2009,12,2009.958,387.27,387.27,388.15,21
+2010, 1,2010.042,388.45,388.45,388.21,28
+2010, 2,2010.125,389.82,389.82,388.96,24
+2010, 3,2010.208,391.08,391.08,389.50,28
+2010, 4,2010.292,392.46,392.46,389.72,28
+2010, 5,2010.375,392.95,392.95,389.76,30
+2010, 6,2010.458,392.03,392.03,389.75,29
+2010, 7,2010.542,390.13,390.13,389.61,30
+2010, 8,2010.625,388.15,388.15,389.84,31
+2010, 9,2010.708,386.80,386.80,390.11,30
+2010,10,2010.792,387.18,387.18,390.49,31
+2010,11,2010.875,388.59,388.59,390.80,29
+2010,12,2010.958,389.68,389.68,390.56,31
+2011, 1,2011.042,391.19,391.19,390.95,29
+2011, 2,2011.125,391.76,391.76,390.90,28
+2011, 3,2011.208,392.40,392.40,390.83,30
+2011, 4,2011.292,393.28,393.28,390.55,28
+2011, 5,2011.375,394.16,394.16,390.97,31
+2011, 6,2011.458,393.68,393.68,391.39,28
+2011, 7,2011.542,392.39,392.39,391.87,31
+2011, 8,2011.625,390.08,390.08,391.77,29
+2011, 9,2011.708,389.00,389.00,392.31,28
+2011,10,2011.792,388.92,388.92,392.23,31
+2011,11,2011.875,390.20,390.20,392.41,29
+2011,12,2011.958,391.80,391.80,392.68,31
+2012, 1,2012.042,393.10,393.10,392.86,30
+2012, 2,2012.125,393.65,393.65,392.79,26
+2012, 3,2012.208,394.44,394.44,392.87,31
+2012, 4,2012.292,396.19,396.19,393.45,30
+2012, 5,2012.375,396.77,396.77,393.58,31
+2012, 6,2012.458,395.77,395.77,393.48,29
