  EXPECT_NEAR(0.832567765386, values(0,0), expectedPrecision);
  EXPECT_NEAR(0.278411287801, values(0,1), expectedPrecision);
  EXPECT_NEAR(0.00176735669536, values(0,2), expectedPrecision);
  EXPECT_NEAR(0.0000251996341204, values(0,3), expectedPrecision);
  EXPECT_NEAR(-0.570260987101, values(1,0), expectedPrecision);
  EXPECT_NEAR(0, values(1,1), expectedPrecision);
  EXPECT_NEAR(-0.0000714206448118, values(1,2), expectedPrecision);
  EXPECT_NEAR(0.0149784111869, values(1,3), expectedPrecision);
  EXPECT_NEAR(0, values(2,0), expectedPrecision);
  EXPECT_NEAR(0, values(2,1), expectedPrecision);
  EXPECT_NEAR(0.0000238068816039, values(2,2), expectedPrecision);
  EXPECT_NEAR(0.00374460279674, values(2,3), expectedPrecision);
  EXPECT_NEAR(0, values(3,0), expectedPrecision);
  EXPECT_NEAR(0, values(3,1), expectedPrecision);
  EXPECT_NEAR(0.0000238068816039, values(3,2), expectedPrecision);
  EXPECT_NEAR(-0.00748920559347, values(3,3), expectedPrecision);
  EXPECT_NEAR(0.00637294953921, values(4,0), expectedPrecision);
  EXPECT_NEAR(0.00565239243008, values(4,1), expectedPrecision);
  EXPECT_NEAR(0.0954200464484, values(4,2), expectedPrecision);
  EXPECT_NEAR(0.0000384842654340, values(4,3), expectedPrecision);
  EXPECT_NEAR(-0.0275956809900, values(5,0), expectedPrecision);
  EXPECT_NEAR(-0.0122377885915, values(5,1), expectedPrecision);
  EXPECT_NEAR(0.247908552764, values(5,2), expectedPrecision);
  EXPECT_NEAR(-0.0000333283515118, values(5,3), expectedPrecision);
  EXPECT_NEAR(-0.0110382723960, values(6,0), expectedPrecision);
  EXPECT_NEAR(-0.00489511543661, values(6,1), expectedPrecision);
  EXPECT_NEAR(0, values(6,2), expectedPrecision);
  EXPECT_NEAR(-0.0000333283515118, values(6,3), expectedPrecision);
  EXPECT_NEAR(0.0398309346201, values(7,0), expectedPrecision);
  EXPECT_NEAR(0.00883186317200, values(7,1), expectedPrecision);
  EXPECT_NEAR(0.214695104509, values(7,2), expectedPrecision);
  EXPECT_NEAR(9.62106635849*10^-6, values(7,3), expectedPrecision);
  EXPECT_NEAR(0.0275956809900, values(8,0), expectedPrecision);
  EXPECT_NEAR(0.00611889429576, values(8,1), expectedPrecision);
  EXPECT_NEAR(0, values(8,2), expectedPrecision);
  EXPECT_NEAR(0.0000166641757559, values(8,3), expectedPrecision);
  EXPECT_NEAR(0.00637294953921, values(9,0), expectedPrecision);
  EXPECT_NEAR(0.00141309810752, values(9,1), expectedPrecision);
  EXPECT_NEAR(0, values(9,2), expectedPrecision);
  EXPECT_NEAR(9.62106635849*10^-6, values(9,3), expectedPrecision);
  EXPECT_NEAR(0, derivatives(0,0), expectedPrecision);
  EXPECT_NEAR(-0.589265770897, derivatives(0,1), expectedPrecision);
  EXPECT_NEAR(0.00707237261901, derivatives(0,2), expectedPrecision);
  EXPECT_NEAR(-0.000151198703799, derivatives(0,3), expectedPrecision);
  EXPECT_NEAR(-0.662024200686, derivatives(1,0), expectedPrecision);
  EXPECT_NEAR(1.76443270721, derivatives(1,1), expectedPrecision);
  EXPECT_NEAR(-0.000404718689509, derivatives(1,2), expectedPrecision);
  EXPECT_NEAR(-0.0524991227999, derivatives(1,3), expectedPrecision);
  EXPECT_NEAR(0, derivatives(2,0), expectedPrecision);
  EXPECT_NEAR(0, derivatives(2,1), expectedPrecision);
  EXPECT_NEAR(0.000142841857038, derivatives(2,2), expectedPrecision);
  EXPECT_NEAR(-0.0149970820983, derivatives(2,3), expectedPrecision);
  EXPECT_NEAR(0, derivatives(3,0), expectedPrecision);
  EXPECT_NEAR(0, derivatives(3,1), expectedPrecision);
  EXPECT_NEAR(0.000142841857038, derivatives(3,2), expectedPrecision);
  EXPECT_NEAR(0.0299941641967, derivatives(3,3), expectedPrecision);
  EXPECT_NEAR(0.00630932138969, derivatives(4,0), expectedPrecision);
  EXPECT_NEAR(-0.00566630089326, derivatives(4,1), expectedPrecision);
  EXPECT_NEAR(-0.0697506188560, derivatives(4,2), expectedPrecision);
  EXPECT_NEAR(-0.000134694954234, derivatives(4,3), expectedPrecision);
  EXPECT_NEAR(0.000275517969394, derivatives(5,0), expectedPrecision);
  EXPECT_NEAR(0.0183867955934, derivatives(5,1), expectedPrecision);
  EXPECT_NEAR(0.0666911291870, derivatives(5,2), expectedPrecision);
  EXPECT_NEAR(0.000124981340006, derivatives(5,3), expectedPrecision);
  EXPECT_NEAR(0.000110207187758, derivatives(6,0), expectedPrecision);
  EXPECT_NEAR(0.00735471823735, derivatives(6,1), expectedPrecision);
  EXPECT_NEAR(0, derivatives(6,2), expectedPrecision);
  EXPECT_NEAR(0.000124981340006, derivatives(6,3), expectedPrecision);
  EXPECT_NEAR(-0.0402286105545, derivatives(7,0), expectedPrecision);
  EXPECT_NEAR(-0.0176854583177, derivatives(7,1), expectedPrecision);
  EXPECT_NEAR(0.272451316592, derivatives(7,2), expectedPrecision);
  EXPECT_NEAR(-0.0000384842717378, derivatives(7,3), expectedPrecision);
  EXPECT_NEAR(-0.0278711989593, derivatives(8,0), expectedPrecision);
  EXPECT_NEAR(-0.0122528449446, derivatives(8,1), expectedPrecision);
  EXPECT_NEAR(0, derivatives(8,2), expectedPrecision);
  EXPECT_NEAR(-0.0000666567139421, derivatives(8,3), expectedPrecision);
  EXPECT_NEAR(-0.00643657768873, derivatives(9,0), expectedPrecision);
  EXPECT_NEAR(-0.00282967333083, derivatives(9,1), expectedPrecision);
  EXPECT_NEAR(0, derivatives(9,2), expectedPrecision);
  EXPECT_NEAR(-0.0000384842717378, derivatives(9,3), expectedPrecision);
  EXPECT_NEAR(0, derivatives(10,0), expectedPrecision);
  EXPECT_NEAR(0, derivatives(10,1), expectedPrecision);
  EXPECT_NEAR(-0.00353618630950, derivatives(10,2), expectedPrecision);
  EXPECT_NEAR(-0.0000251997839666, derivatives(10,3), expectedPrecision);
  EXPECT_NEAR(0, derivatives(11,0), expectedPrecision);
  EXPECT_NEAR(0, derivatives(11,1), expectedPrecision);
  EXPECT_NEAR(0.000142841857038, derivatives(11,2), expectedPrecision);
  EXPECT_NEAR(-0.0149970820983, derivatives(11,3), expectedPrecision);
  EXPECT_NEAR(0.570260987101, derivatives(12,0), expectedPrecision);
  EXPECT_NEAR(1.76443270721, derivatives(12,1), expectedPrecision);
  EXPECT_NEAR(-0.0000238070707420, derivatives(12,2), expectedPrecision);
  EXPECT_NEAR(0.00373993506889, derivatives(12,3), expectedPrecision);
  EXPECT_NEAR(0, derivatives(13,0), expectedPrecision);
  EXPECT_NEAR(0, derivatives(13,1), expectedPrecision);
  EXPECT_NEAR(-0.0000476139523459, derivatives(13,2), expectedPrecision);
  EXPECT_NEAR(0.00749854104917, derivatives(13,3), expectedPrecision);
  EXPECT_NEAR(0.0160914442218, derivatives(14,0), expectedPrecision);
  EXPECT_NEAR(0.0141483666542, derivatives(14,1), expectedPrecision);
  EXPECT_NEAR(0.181634211061, derivatives(14,2), expectedPrecision);
  EXPECT_NEAR(0.0000769685434756, derivatives(14,3), expectedPrecision);
  EXPECT_NEAR(-0.0586397250024, derivatives(15,0), expectedPrecision);
  EXPECT_NEAR(-0.0257369969248, derivatives(15,1), expectedPrecision);
  EXPECT_NEAR(0.306627154417, derivatives(15,2), expectedPrecision);
  EXPECT_NEAR(-0.0000499925381862, derivatives(15,3), expectedPrecision);
  EXPECT_NEAR(-0.0278711989593, derivatives(16,0), expectedPrecision);
  EXPECT_NEAR(-0.0122528449446, derivatives(16,1), expectedPrecision);
  EXPECT_NEAR(0, derivatives(16,2), expectedPrecision);
  EXPECT_NEAR(-0.0000666567139421, derivatives(16,3), expectedPrecision);
  EXPECT_NEAR(0.0687067786903, derivatives(17,0), expectedPrecision);
  EXPECT_NEAR(0.0150413323595, derivatives(17,1), expectedPrecision);
  EXPECT_NEAR(0.122416835543, derivatives(17,2), expectedPrecision);
  EXPECT_NEAR(9.62106951040*10^-6, derivatives(17,3), expectedPrecision);
  EXPECT_NEAR(0.0586397250024, derivatives(18,0), expectedPrecision);
  EXPECT_NEAR(0.0128684984624, derivatives(18,1), expectedPrecision);
  EXPECT_NEAR(0, derivatives(18,2), expectedPrecision);
  EXPECT_NEAR(0.0000249962690931, derivatives(18,3), expectedPrecision);
  EXPECT_NEAR(0.0160914442218, derivatives(19,0), expectedPrecision);
  EXPECT_NEAR(0.00353709166354, derivatives(19,1), expectedPrecision);
  EXPECT_NEAR(0, derivatives(19,2), expectedPrecision);
  EXPECT_NEAR(0.0000192421358689, derivatives(19,3), expectedPrecision);
  EXPECT_NEAR(0, derivatives(20,0), expectedPrecision);
  EXPECT_NEAR(0, derivatives(20,1), expectedPrecision);
  EXPECT_NEAR(-0.00353618630950, derivatives(20,2), expectedPrecision);
  EXPECT_NEAR(0.0000503995679331, derivatives(20,3), expectedPrecision);
  EXPECT_NEAR(0, derivatives(21,0), expectedPrecision);
  EXPECT_NEAR(0, derivatives(21,1), expectedPrecision);
  EXPECT_NEAR(0.000142841857038, derivatives(21,2), expectedPrecision);
  EXPECT_NEAR(0.0299941641967, derivatives(21,3), expectedPrecision);
  EXPECT_NEAR(0, derivatives(22,0), expectedPrecision);
  EXPECT_NEAR(0, derivatives(22,1), expectedPrecision);
  EXPECT_NEAR(-0.0000476139523459, derivatives(22,2), expectedPrecision);
  EXPECT_NEAR(0.00749854104917, derivatives(22,3), expectedPrecision);
  EXPECT_NEAR(0.570260987101, derivatives(23,0), expectedPrecision);
  EXPECT_NEAR(1.76443270721, derivatives(23,1), expectedPrecision);
  EXPECT_NEAR(-0.0000238070707420, derivatives(23,2), expectedPrecision);
  EXPECT_NEAR(-0.00750787650488, derivatives(23,3), expectedPrecision);
  EXPECT_NEAR(0.00643657768873, derivatives(24,0), expectedPrecision);
  EXPECT_NEAR(0.00565934666167, derivatives(24,1), expectedPrecision);
  EXPECT_NEAR(0, derivatives(24,2), expectedPrecision);
  EXPECT_NEAR(0.0000769685434756, derivatives(24,3), expectedPrecision);
  EXPECT_NEAR(-0.0278711989593, derivatives(25,0), expectedPrecision);
  EXPECT_NEAR(-0.0122528449446, derivatives(25,1), expectedPrecision);
  EXPECT_NEAR(0, derivatives(25,2), expectedPrecision);
  EXPECT_NEAR(-0.0000666567139421, derivatives(25,3), expectedPrecision);
  EXPECT_NEAR(-0.000110207187758, derivatives(26,0), expectedPrecision);
  EXPECT_NEAR(-6.02254121998*10^-6, derivatives(26,1), expectedPrecision);
  EXPECT_NEAR(-0.165272368509, derivatives(26,2), expectedPrecision);
  EXPECT_NEAR(-0.0000499925381862, derivatives(26,3), expectedPrecision);
  EXPECT_NEAR(0.0402286105545, derivatives(27,0), expectedPrecision);
  EXPECT_NEAR(0.00884272915885, derivatives(27,1), expectedPrecision);
  EXPECT_NEAR(0, derivatives(27,2), expectedPrecision);
  EXPECT_NEAR(0.0000192421358689, derivatives(27,3), expectedPrecision);
  EXPECT_NEAR(0.000275517969394, derivatives(28,0), expectedPrecision);
  EXPECT_NEAR(7.52817652497*10^-6, derivatives(28,1), expectedPrecision);
  EXPECT_NEAR(-0.247908552764, derivatives(28,2), expectedPrecision);
  EXPECT_NEAR(0.0000249962690931, derivatives(28,3), expectedPrecision);
  EXPECT_NEAR(-0.00630932138969, derivatives(29,0), expectedPrecision);
  EXPECT_NEAR(-0.00141135954962, derivatives(29,1), expectedPrecision);
  EXPECT_NEAR(0, derivatives(29,2), expectedPrecision);
  EXPECT_NEAR(9.62106951040*10^-6, derivatives(29,3), expectedPrecision);
  EXPECT_NEAR(-1.90486012083, hessian(0,0), expectedPrecision);
  EXPECT_NEAR(0.719038552076, hessian(0,1), expectedPrecision);
  EXPECT_NEAR(0.0247768708671, hessian(0,2), expectedPrecision);
  EXPECT_NEAR(0.000856803443789, hessian(0,3), expectedPrecision);
  EXPECT_NEAR(0.865232333446, hessian(1,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(1,1), expectedPrecision);
  EXPECT_NEAR(-0.00214264828248, hessian(1,2), expectedPrecision);
  EXPECT_NEAR(0.150568290148, hessian(1,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(2,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(2,1), expectedPrecision);
  EXPECT_NEAR(0.000809443998852, hessian(2,2), expectedPrecision);
  EXPECT_NEAR(0.0526391546354, hessian(2,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(3,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(3,1), expectedPrecision);
  EXPECT_NEAR(0.000809443998852, hessian(3,2), expectedPrecision);
  EXPECT_NEAR(-0.105278309271, hessian(3,3), expectedPrecision);
  EXPECT_NEAR(-0.0128477041176, hessian(4,0), expectedPrecision);
  EXPECT_NEAR(-0.00276638982337, hessian(4,1), expectedPrecision);
  EXPECT_NEAR(-0.231911177045, hessian(4,2), expectedPrecision);
  EXPECT_NEAR(0.000428137764361, hessian(4,3), expectedPrecision);
  EXPECT_NEAR(0.0550811547921, hessian(5,0), expectedPrecision);
  EXPECT_NEAR(-0.0123973859338, hessian(5,1), expectedPrecision);
  EXPECT_NEAR(-0.469140653853, hessian(5,2), expectedPrecision);
  EXPECT_NEAR(-0.000433268850260, hessian(5,3), expectedPrecision);
  EXPECT_NEAR(0.0220324619169, hessian(6,0), expectedPrecision);
  EXPECT_NEAR(-0.00495895437354, hessian(6,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(6,2), expectedPrecision);
  EXPECT_NEAR(-0.000433268850260, hessian(6,3), expectedPrecision);
  EXPECT_NEAR(0.000954422242778, hessian(7,0), expectedPrecision);
  EXPECT_NEAR(0.0266325009504, hessian(7,1), expectedPrecision);
  EXPECT_NEAR(0.138614908999, hessian(7,2), expectedPrecision);
  EXPECT_NEAR(0.000144316079533, hessian(7,3), expectedPrecision);
  EXPECT_NEAR(0.000661243126546, hessian(8,0), expectedPrecision);
  EXPECT_NEAR(0.0184515379115, hessian(8,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(8,2), expectedPrecision);
  EXPECT_NEAR(0.000249962782101, hessian(8,3), expectedPrecision);
  EXPECT_NEAR(0.000152707558845, hessian(9,0), expectedPrecision);
  EXPECT_NEAR(0.00426120015206, hessian(9,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(9,2), expectedPrecision);
  EXPECT_NEAR(0.000144316079533, hessian(9,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(10,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(10,1), expectedPrecision);
  EXPECT_NEAR(-0.0141565285883, hessian(10,2), expectedPrecision);
  EXPECT_NEAR(0.000151200501954, hessian(10,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(11,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(11,1), expectedPrecision);
  EXPECT_NEAR(0.000809443998852, hessian(11,2), expectedPrecision);
  EXPECT_NEAR(0.0526391546354, hessian(11,3), expectedPrecision);
  EXPECT_NEAR(1.23228518779, hessian(12,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(12,1), expectedPrecision);
  EXPECT_NEAR(-0.000142844126695, hessian(12,2), expectedPrecision);
  EXPECT_NEAR(-0.0149597402755, hessian(12,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(13,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(13,1), expectedPrecision);
  EXPECT_NEAR(-0.000285685983732, hessian(13,2), expectedPrecision);
  EXPECT_NEAR(-0.0300688478423, hessian(13,3), expectedPrecision);
  EXPECT_NEAR(0.0157096753247, hessian(14,0), expectedPrecision);
  EXPECT_NEAR(-0.0142318174332, hessian(14,1), expectedPrecision);
  EXPECT_NEAR(-0.0892242717285, hessian(14,2), expectedPrecision);
  EXPECT_NEAR(-0.000269390023198, hessian(14,3), expectedPrecision);
  EXPECT_NEAR(0.00154290062861, hessian(15,0), expectedPrecision);
  EXPECT_NEAR(0.0387741265414, hessian(15,1), expectedPrecision);
  EXPECT_NEAR(0.195627312282, hessian(15,2), expectedPrecision);
  EXPECT_NEAR(0.000187472112098, hessian(15,3), expectedPrecision);
  EXPECT_NEAR(0.000661243126546, hessian(16,0), expectedPrecision);
  EXPECT_NEAR(0.0184515379115, hessian(16,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(16,2), expectedPrecision);
  EXPECT_NEAR(0.000249962782101, hessian(16,3), expectedPrecision);
  EXPECT_NEAR(-0.0707746935497, hessian(17,0), expectedPrecision);
  EXPECT_NEAR(-0.0301956709824, hessian(17,1), expectedPrecision);
  EXPECT_NEAR(0.253330916264, hessian(17,2), expectedPrecision);
  EXPECT_NEAR(-0.0000384843019961, hessian(17,3), expectedPrecision);
  EXPECT_NEAR(-0.0601826256310, hessian(18,0), expectedPrecision);
  EXPECT_NEAR(-0.0258213125019, hessian(18,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(18,2), expectedPrecision);
  EXPECT_NEAR(-0.0000999851233221, hessian(18,3), expectedPrecision);
  EXPECT_NEAR(-0.0164732131189, hessian(19,0), expectedPrecision);
  EXPECT_NEAR(-0.00709504602185, hessian(19,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(19,2), expectedPrecision);
  EXPECT_NEAR(-0.0000769685737339, hessian(19,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(20,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(20,1), expectedPrecision);
  EXPECT_NEAR(-0.0141565285883, hessian(20,2), expectedPrecision);
  EXPECT_NEAR(-0.000302401003907, hessian(20,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(21,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(21,1), expectedPrecision);
  EXPECT_NEAR(0.000809443998852, hessian(21,2), expectedPrecision);
  EXPECT_NEAR(-0.105278309271, hessian(21,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(22,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(22,1), expectedPrecision);
  EXPECT_NEAR(-0.000285685983732, hessian(22,2), expectedPrecision);
  EXPECT_NEAR(-0.0300688478423, hessian(22,3), expectedPrecision);
  EXPECT_NEAR(1.23228518779, hessian(23,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(23,1), expectedPrecision);
  EXPECT_NEAR(-0.000142844126695, hessian(23,2), expectedPrecision);
  EXPECT_NEAR(0.0301435314879, hessian(23,3), expectedPrecision);
  EXPECT_NEAR(0.00628387012988, hessian(24,0), expectedPrecision);
  EXPECT_NEAR(-0.00569272697329, hessian(24,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(24,2), expectedPrecision);
  EXPECT_NEAR(-0.000269390023198, hessian(24,3), expectedPrecision);
  EXPECT_NEAR(0.000661243126546, hessian(25,0), expectedPrecision);
  EXPECT_NEAR(0.0184515379115, hessian(25,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(25,2), expectedPrecision);
  EXPECT_NEAR(0.000249962782101, hessian(25,3), expectedPrecision);
  EXPECT_NEAR(0.000154290062861, hessian(26,0), expectedPrecision);
  EXPECT_NEAR(0.0000258969272459, hessian(26,1), expectedPrecision);
  EXPECT_NEAR(-0.0444607527913, hessian(26,2), expectedPrecision);
  EXPECT_NEAR(0.000187472112098, hessian(26,3), expectedPrecision);
  EXPECT_NEAR(-0.0411830327973, hessian(27,0), expectedPrecision);
  EXPECT_NEAR(-0.0177376150546, hessian(27,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(27,2), expectedPrecision);
  EXPECT_NEAR(-0.0000769685737339, hessian(27,3), expectedPrecision);
  EXPECT_NEAR(-0.000661243126546, hessian(28,0), expectedPrecision);
  EXPECT_NEAR(-0.0000361352473199, hessian(28,1), expectedPrecision);
  EXPECT_NEAR(-0.314599681951, hessian(28,2), expectedPrecision);
  EXPECT_NEAR(-0.0000999851233221, hessian(28,3), expectedPrecision);
  EXPECT_NEAR(0.00628387012988, hessian(29,0), expectedPrecision);
  EXPECT_NEAR(0.00282132825293, hessian(29,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(29,2), expectedPrecision);
  EXPECT_NEAR(-0.0000384843019961, hessian(29,3), expectedPrecision);
  EXPECT_NEAR(-1.90486012083, hessian(30,0), expectedPrecision);
  EXPECT_NEAR(-0.589265770897, hessian(30,1), expectedPrecision);
  EXPECT_NEAR(0.00354207798465, hessian(30,2), expectedPrecision);
  EXPECT_NEAR(-0.0000251994842742, hessian(30,3), expectedPrecision);
  EXPECT_NEAR(1.23228518779, hessian(31,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(31,1), expectedPrecision);
  EXPECT_NEAR(-0.000142844126695, hessian(31,2), expectedPrecision);
  EXPECT_NEAR(-0.0149597402755, hessian(31,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(32,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(32,1), expectedPrecision);
  EXPECT_NEAR(-0.0000476131957936, hessian(32,2), expectedPrecision);
  EXPECT_NEAR(-0.0187370171672, hessian(32,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(33,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(33,1), expectedPrecision);
  EXPECT_NEAR(0.0000476147088982, hessian(33,2), expectedPrecision);
  EXPECT_NEAR(0.00747987013777, hessian(33,3), expectedPrecision);
  EXPECT_NEAR(0.0347464551086, hessian(34,0), expectedPrecision);
  EXPECT_NEAR(0.0298158834476, hessian(34,1), expectedPrecision);
  EXPECT_NEAR(0.289976751550, hessian(34,2), expectedPrecision);
  EXPECT_NEAR(0.000115452875730, hessian(34,3), expectedPrecision);
  EXPECT_NEAR(-0.0947141661588, hessian(35,0), expectedPrecision);
  EXPECT_NEAR(-0.0400475913656, hessian(35,1), expectedPrecision);
  EXPECT_NEAR(0.124182336147, hessian(35,2), expectedPrecision);
  EXPECT_NEAR(-0.0000333284093800, hessian(35,3), expectedPrecision);
  EXPECT_NEAR(-0.0601826256310, hessian(36,0), expectedPrecision);
  EXPECT_NEAR(-0.0258213125019, hessian(36,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(36,2), expectedPrecision);
  EXPECT_NEAR(-0.0000999851233221, hessian(36,3), expectedPrecision);
  EXPECT_NEAR(0.0689968012890, hessian(37,0), expectedPrecision);
  EXPECT_NEAR(0.0140425974665, hessian(37,1), expectedPrecision);
  EXPECT_NEAR(-0.246517482483, hessian(37,2), expectedPrecision);
  EXPECT_NEAR(-4.81051962604*10^-6, hessian(37,3), expectedPrecision);
  EXPECT_NEAR(0.0947141661588, hessian(38,0), expectedPrecision);
  EXPECT_NEAR(0.0200237956828, hessian(38,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(38,2), expectedPrecision);
  EXPECT_NEAR(0.0000166642046900, hessian(38,3), expectedPrecision);
  EXPECT_NEAR(0.0347464551086, hessian(39,0), expectedPrecision);
  EXPECT_NEAR(0.00745397086190, hessian(39,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(39,2), expectedPrecision);
  EXPECT_NEAR(0.0000288632189325, hessian(39,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(40,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(40,1), expectedPrecision);
  EXPECT_NEAR(0.00707826429416, hessian(40,2), expectedPrecision);
  EXPECT_NEAR(-0.0000504001673179, hessian(40,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(41,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(41,1), expectedPrecision);
  EXPECT_NEAR(-0.000285685983732, hessian(41,2), expectedPrecision);
  EXPECT_NEAR(-0.0300688478423, hessian(41,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(42,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(42,1), expectedPrecision);
  EXPECT_NEAR(0.0000476147088982, hessian(42,2), expectedPrecision);
  EXPECT_NEAR(0.00747987013777, hessian(42,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(43,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(43,1), expectedPrecision);
  EXPECT_NEAR(0.0000476147088982, hessian(43,2), expectedPrecision);
  EXPECT_NEAR(0.00753588287198, hessian(43,3), expectedPrecision);
  EXPECT_NEAR(0.0164732131189, hessian(44,0), expectedPrecision);
  EXPECT_NEAR(0.0141900920437, hessian(44,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(44,2), expectedPrecision);
  EXPECT_NEAR(0.000153937147468, hessian(44,3), expectedPrecision);
  EXPECT_NEAR(-0.0601826256310, hessian(45,0), expectedPrecision);
  EXPECT_NEAR(-0.0258213125019, hessian(45,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(45,2), expectedPrecision);
  EXPECT_NEAR(-0.0000999851233221, hessian(45,3), expectedPrecision);
  EXPECT_NEAR(-0.000661243126546, hessian(46,0), expectedPrecision);
  EXPECT_NEAR(-0.0000361352473199, hessian(46,1), expectedPrecision);
  EXPECT_NEAR(-0.314599681951, hessian(46,2), expectedPrecision);
  EXPECT_NEAR(-0.0000999851233221, hessian(46,3), expectedPrecision);
  EXPECT_NEAR(0.0707746935497, hessian(47,0), expectedPrecision);
  EXPECT_NEAR(0.0150978354912, hessian(47,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(47,2), expectedPrecision);
  EXPECT_NEAR(0.0000192421509981, hessian(47,3), expectedPrecision);
  EXPECT_NEAR(0.00154290062861, hessian(48,0), expectedPrecision);
  EXPECT_NEAR(0.0000421577885398, hessian(48,1), expectedPrecision);
  EXPECT_NEAR(-0.306627154417, hessian(48,2), expectedPrecision);
  EXPECT_NEAR(0.0000374944271145, hessian(48,3), expectedPrecision);
  EXPECT_NEAR(-0.0157096753247, hessian(49,0), expectedPrecision);
  EXPECT_NEAR(-0.00352666031616, hessian(49,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(49,2), expectedPrecision);
  EXPECT_NEAR(0.0000192421509981, hessian(49,3), expectedPrecision);
  EXPECT_NEAR(-1.90486012083, hessian(50,0), expectedPrecision);
  EXPECT_NEAR(-0.589265770897, hessian(50,1), expectedPrecision);
  EXPECT_NEAR(0.00354207798465, hessian(50,2), expectedPrecision);
  EXPECT_NEAR(0.0000504007667026, hessian(50,3), expectedPrecision);
  EXPECT_NEAR(1.23228518779, hessian(51,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(51,1), expectedPrecision);
  EXPECT_NEAR(-0.000142844126695, hessian(51,2), expectedPrecision);
  EXPECT_NEAR(0.0301435314879, hessian(51,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(52,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(52,1), expectedPrecision);
  EXPECT_NEAR(0.0000476147088982, hessian(52,2), expectedPrecision);
  EXPECT_NEAR(0.00753588287198, hessian(52,3), expectedPrecision);
  EXPECT_NEAR(0, hessian(53,0), expectedPrecision);
  EXPECT_NEAR(0, hessian(53,1), expectedPrecision);
  EXPECT_NEAR(-0.0000476131957936, hessian(53,2), expectedPrecision);
  EXPECT_NEAR(0.0149223984527, hessian(53,3), expectedPrecision);
  EXPECT_NEAR(0.000152707558845, hessian(54,0), expectedPrecision);
  EXPECT_NEAR(0.0000166901558139, hessian(54,1), expectedPrecision);
  EXPECT_NEAR(-0.121089474041, hessian(54,2), expectedPrecision);
  EXPECT_NEAR(0.000115452875730, hessian(54,3), expectedPrecision);
  EXPECT_NEAR(-0.000661243126546, hessian(55,0), expectedPrecision);
  EXPECT_NEAR(-0.0000361352473199, hessian(55,1), expectedPrecision);
  EXPECT_NEAR(-0.314599681951, hessian(55,2), expectedPrecision);
  EXPECT_NEAR(-0.0000999851233221, hessian(55,3), expectedPrecision);
  EXPECT_NEAR(0.0220324619169, hessian(56,0), expectedPrecision);
  EXPECT_NEAR(0.00978782185672, hessian(56,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(56,2), expectedPrecision);
  EXPECT_NEAR(-0.0000333284093800, hessian(56,3), expectedPrecision);
  EXPECT_NEAR(0.000954422242778, hessian(57,0), expectedPrecision);
  EXPECT_NEAR(0.0000260783684592, hessian(57,1), expectedPrecision);
  EXPECT_NEAR(-0.272451316592, hessian(57,2), expectedPrecision);
  EXPECT_NEAR(0.0000288632189325, hessian(57,3), expectedPrecision);
  EXPECT_NEAR(-0.0550811547921, hessian(58,0), expectedPrecision);
  EXPECT_NEAR(-0.0122347773209, hessian(58,1), expectedPrecision);
  EXPECT_NEAR(0, hessian(58,2), expectedPrecision);
  EXPECT_NEAR(0.0000166642046900, hessian(58,3), expectedPrecision);
  EXPECT_NEAR(-0.0128477041176, hessian(59,0), expectedPrecision);
  EXPECT_NEAR(-0.00282897790767, hessian(59,1), expectedPrecision);
  EXPECT_NEAR(0.190840092897, hessian(59,2), expectedPrecision);
  EXPECT_NEAR(-4.81051962604*10^-6, hessian(59,3), expectedPrecision);
