/* Gelman's example of linear regression y = sqrt(x1^2+x2^2) Data from Andrew Gelman's blog posts - Equation search, part 1 http://www.stat.columbia.edu/~cook/movabletype/archives/2009/12/equation_search.html - Equation search, part 2 http://www.stat.columbia.edu/~cook/movabletype/archives/2009/12/equation_search_1.html Interestingly, the function matched is y = sqrt(x1^2 - x2^2) Using the proposed +/2 Picat> X =sqrt(15.68**2+6.87**2) X = 17.118974852484595 yes But -/2 give the result that's in the data Picat> X =sqrt(15.68**2-6.87**2) X = 14.094874955103361 yes Note that it's quite much (caught) errors since sqrt/1 requires nonnegative values. From a run of num_gens=1000: [program = pow2(-1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 391] [program = pow2(pow2(1 - 0)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 389] [program = pow2(1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 389] [program = 1 * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 389] [program = pow2(pow2(-1)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 351] [program = sqrt(A * A - pow2(B)) * 1,res = 5.919425647814153,count = 280] [program = pow2(1 * -1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 271] [program = pow2(-1 * 1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 255] [program = pow2(sqrt(2 + -1)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 224] [program = sqrt(1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 218] [program = pow2(sqrt(1)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 206] [program = sqrt(A * A - pow2(B)) - 0,res = 5.919425647814153,count = 197] [program = sqrt(A * A - pow2(B)) + 0,res = 5.919425647814153,count = 182] [program = 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 177] [program = sqrt(A * A - pow2(B)) * pow2(1),res = 5.919425647814153,count = 177] [program = pow2(0 + 1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 173] [program = sqrt(A * A - pow2(B)) * pow2(-1),res = 5.919425647814153,count = 170] [program = sqrt(A * A - pow2(B)) * sqrt(1),res = 5.919425647814153,count = 167] [program = pow2(0 + -1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 147] [program = sqrt(A * A - pow2(B)) * pow2(pow2(-1)),res = 5.919425647814153,count = 144] [program = pow2(sqrt(pow2(-2 + 1 * 1))) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 141] [program = sqrt(A * A - pow2(B)) * pow2(pow2(1 - 0)),res = 5.919425647814153,count = 136] [program = sqrt(A * A - pow2(B)) * pow2(1 * -1),res = 5.919425647814153,count = 108] [program = sqrt(A * A - pow2(B)) * pow2(-1 * 1),res = 5.919425647814153,count = 93] [program = sqrt(A * A - pow2(B)) * pow2(sqrt(2 + -1)),res = 5.919425647814153,count = 76] [program = sqrt(sqrt(1)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 75] [program = sqrt(A * A - pow2(B)) * pow2(sqrt(1)),res = 5.919425647814153,count = 73] [program = sqrt(A * A - pow2(B)) * pow2(0 + 1),res = 5.919425647814153,count = 72] [program = pow2(0 - 1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 71] [program = sqrt(pow2(pow2(sqrt(1)))) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 68] [program = -1 * -1 * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 64] [program = sqrt(A * A - pow2(B)) * pow2(0 + -1),res = 5.919425647814153,count = 59] [program = sqrt(A * A - pow2(B)) * sqrt(sqrt(1)),res = 5.919425647814153,count = 54] [program = (-1 + 2) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 51] [program = sqrt(pow2(pow2(-1))) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 49] [program = (1 + sqrt(0)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 46] [program = sqrt(A * A - pow2(B)) * (1 + sqrt(0)),res = 5.919425647814153,count = 41] [program = sqrt(A * A - pow2(B)) * (-1 * -1),res = 5.919425647814153,count = 41] [program = pow2(sqrt(0 * B + 0) + -1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 41] [program = sqrt(0) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 40] [program = sqrt(A * A - pow2(B)) * pow2(sqrt(0 * B + 0) + -1),res = 5.919425647814153,count = 39] [program = sqrt(A * A - pow2(B)) + sqrt(0),res = 5.919425647814153,count = 38] [program = sqrt(A * A - pow2(B)) * pow2(sqrt(pow2(-2 + 1 * 1))),res = 5.919425647814153,count = 38] [program = sqrt(A * A - pow2(B)) * sqrt(pow2(pow2(sqrt(1)))),res = 5.919425647814153,count = 37] [program = sqrt(A * A - pow2(B)) * pow2(0 - 1),res = 5.919425647814153,count = 37] [program = pow2(pow2(pow2(-1) - 2)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 36] [program = (2 - 1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 34] [program = sqrt(A * A - pow2(B)) * (-1 + 2),res = 5.919425647814153,count = 34] [program = sqrt(A * A - pow2(B)) - sqrt(0),res = 5.919425647814153,count = 33] [program = sqrt(A * A - pow2(B)) * (2 - 1),res = 5.919425647814153,count = 32] [program = pow2(1 + -2) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 31] [program = sqrt(A * A - pow2(B)) * pow2(1 + -2),res = 5.919425647814153,count = 30] [program = pow2(0) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 27] [program = (0 - -1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 25] [program = sqrt(pow2(-1)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 24] [program = pow2(1) * 1 * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 23] [program = sqrt(A * A - pow2(B)) * (pow2(1) * 1),res = 5.919425647814153,count = 22] [program = sqrt(A * A - pow2(B)) + pow2(0),res = 5.919425647814153,count = 21] [program = (0 + 1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 21] [program = sqrt(A * A - pow2(B)) * sqrt(pow2(-1)),res = 5.919425647814153,count = 20] [program = B * 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 19] [program = sqrt(A * A - pow2(B)) * sqrt(pow2(pow2(-1))),res = 5.919425647814153,count = 19] [program = sqrt(A * A - pow2(B)) - (B - B),res = 5.919425647814153,count = 18] [program = sqrt(A * A - pow2(B)) - pow2(0),res = 5.919425647814153,count = 18] [program = sqrt(A * A - pow2(B)) + (B - B),res = 5.919425647814153,count = 18] [program = sqrt(A * A - pow2(B)) * (0 - -1),res = 5.919425647814153,count = 18] [program = pow2(-1 + 2) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 18] [program = (2 - pow2(-1)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 14] [program = 1 * 1 * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 14] [program = sqrt(A * A - pow2(B)) * (0 - (1 * -1 + 0)),res = 5.919425647814153,count = 14] [program = sqrt(A * A - pow2(B)) * (-1 * 0 + 1),res = 5.919425647814153,count = 13] [program = sqrt(A * A - pow2(B)) * (0 + 1),res = 5.919425647814153,count = 13] [program = sqrt(A * A - pow2(B)) * (1 * 1),res = 5.919425647814153,count = 13] [program = sqrt(A * A - pow2(B)) - (A - A),res = 5.919425647814153,count = 12] [program = B - B + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 12] [program = sqrt(A * A - pow2(B)) * pow2(pow2(pow2(-1) - 2)),res = 5.919425647814153,count = 12] [program = sqrt(A * A - pow2(B)) - B * 0,res = 5.919425647814153,count = 11] [program = sqrt(A * A - pow2(B)) + (A - A),res = 5.919425647814153,count = 11] [program = (A - (A + -1)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 11] [program = pow2(0 - sqrt(1)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 11] [program = sqrt(A * A - pow2(B)) + B * 0,res = 5.919425647814153,count = 10] [program = 0 * (A + -1) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 8] [program = (0 - (1 * -1 + 0)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 8] [program = (-1 - -2) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 8] [program = sqrt(A * A - pow2(B)) * (sqrt(0 * 1 * A) + 1),res = 5.919425647814153,count = 8] [program = sqrt(A * A - pow2(B)) - A * pow2(pow2(-2 * B)) * 0,res = 5.919425647814153,count = 7] [program = A - A + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 7] [program = sqrt(A * A - pow2(B)) + pow2(0) * 2,res = 5.919425647814153,count = 7] [program = pow2((-1 - B) * (1 * 0)) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 7] [program = (-1 * 0 + 1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 7] [program = (sqrt(0 * 1 * A) + 1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 7] [program = (2 + -1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 7] [program = sqrt(A * A - pow2(B)) * (A - (A + -1)),res = 5.919425647814153,count = 7] [program = sqrt(A * A - pow2(B)) * (2 - pow2(-1)),res = 5.919425647814153,count = 7] [program = sqrt(A * A - pow2(B)) * (2 + -1 * 1),res = 5.919425647814153,count = 7] [program = sqrt(A * A - pow2(B)) * pow2(-2 + 1),res = 5.919425647814153,count = 7] [program = sqrt(A * A - pow2(B)) - (-2 - -2),res = 5.919425647814153,count = 6] [program = sqrt(A * A - pow2(B)) - (2 + -2),res = 5.919425647814153,count = 6] [program = sqrt(A * A - pow2(B)) - pow2(0) * -1,res = 5.919425647814153,count = 6] [program = sqrt(A * A - pow2(B)) + A * pow2(pow2(-2 * B)) * 0,res = 5.919425647814153,count = 6] [program = sqrt(A * A - pow2(B)) + 0 * B,res = 5.919425647814153,count = 6] [program = pow2(pow2(0)) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 6] [program = sqrt(A * A - pow2(B)) * (-1 - -2),res = 5.919425647814153,count = 6] [program = sqrt(A * A - pow2(B)) * (pow2(0) + 1),res = 5.919425647814153,count = 6] [program = sqrt(A * A - pow2(B)) * (2 + -1),res = 5.919425647814153,count = 6] [program = sqrt(A * A - pow2(B)) * (1 + 0),res = 5.919425647814153,count = 6] [program = sqrt(A * A - pow2(B)) * pow2(0 - sqrt(1)),res = 5.919425647814153,count = 6] [program = pow2(-2 + 1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 6] [program = sqrt(A * A - pow2(B)) - (2 - -1 * -2),res = 5.919425647814153,count = 5] [program = sqrt(A * A - pow2(B)) - (-1 - -1),res = 5.919425647814153,count = 5] [program = sqrt(A * A - pow2(B)) - 0 * sqrt(0),res = 5.919425647814153,count = 5] [program = sqrt(A * A - pow2(B)) - pow2(pow2(0)),res = 5.919425647814153,count = 5] [program = B - pow2(sqrt(B)) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 5] [program = 2 + -2 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 5] [program = 0 * A + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 5] [program = -2 * 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 5] [program = sqrt(A * A - pow2(B)) + (1 + A - pow2(-1) - A),res = 5.919425647814153,count = 5] [program = sqrt(A * A - pow2(B)) + (B - pow2(sqrt(B))),res = 5.919425647814153,count = 5] [program = sqrt(A * A - pow2(B)) + (A + -2) * 0,res = 5.919425647814153,count = 5] [program = sqrt(A * A - pow2(B)) + pow2((-1 - B) * (1 * 0)),res = 5.919425647814153,count = 5] [program = (2 + -1 * 1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 5] [program = sqrt(A * A - pow2(B)) * (1 - 0),res = 5.919425647814153,count = 5] [program = sqrt(A * A - pow2(B)) - (-1 + 1),res = 5.919425647814153,count = 4] [program = sqrt(A * A - pow2(B)) - sqrt(0) * 2,res = 5.919425647814153,count = 4] [program = sqrt(A * A - pow2(B)) - 0 * B,res = 5.919425647814153,count = 4] [program = sqrt(A * A - pow2(B)) - sqrt(-2 * 0),res = 5.919425647814153,count = 4] [program = sqrt(A * A - pow2(B)) - pow2(-1 - -1),res = 5.919425647814153,count = 4] [program = sqrt(A * A - pow2(B)) - pow2((-1 - B) * (1 * 0)),res = 5.919425647814153,count = 4] [program = 2 - -1 * -2 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 4] [program = A * pow2(pow2(-2 * B)) * 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 4] [program = pow2(0) * pow2(A + A) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 4] [program = sqrt(A * A - pow2(B)) + sqrt(0 * A),res = 5.919425647814153,count = 4] [program = sqrt(0 + 0) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 4] [program = sqrt(A * A - pow2(B)) * pow2(-1 + 2),res = 5.919425647814153,count = 4] [program = pow2(pow2(0) - 1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 4] [program = sqrt(A * A - pow2(B)) - (-2 * 0 - sqrt(0)),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) - (B - pow2(sqrt(B))),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) - (1 - pow2(sqrt(1))),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) - (1 - 1),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) - (A + -2) * 0,res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) - (B - sqrt(B - -2)) * -2 * pow2(0),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) - pow2(0) * 2,res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) - A * sqrt(0 * -2),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) - 2 * 0,res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) - 0 * (2 + 2),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) - -2 * sqrt(0),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) - sqrt(0 * A),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) - pow2((-1 - sqrt(0)) * 0),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) - pow2(0 * 2),res = 5.919425647814153,count = 3] [program = 1 + A - pow2(-1) - A + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 3] [program = -2 - -2 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 3] [program = (A + -2) * 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 3] [program = pow2(0) * 2 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 3] [program = A * 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 3] [program = 0 * sqrt(0) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 3] [program = 0 * pow2(2) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 3] [program = 0 * B + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 3] [program = 0 * -2 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) + (0 - 0),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) + B * 0 * 0,res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) + A * 0,res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) + 0 * (A + -1),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) + -2 * 0,res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) + sqrt(-2 * 0),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) + pow2(-2 * 0),res = 5.919425647814153,count = 3] [program = pow2(sqrt(pow2(B * 0 * 2))) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 3] [program = pow2(pow2(sqrt(0))) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 3] [program = pow2(pow2(pow2(0))) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 3] [program = (A * 1 - (A - 1)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 3] [program = (sqrt(0) + pow2(2 - 1)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 3] [program = (1 + 0) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) * (0 * 0 - -1),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) * (sqrt(0) + pow2(2 - 1)),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) * sqrt(pow2(-2 + (2 + -1))),res = 5.919425647814153,count = 3] [program = sqrt(A * A - pow2(B)) - (A + pow2(pow2(0)) - A),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) - (1 + -1),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) - (-2 - B) * 0,res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) - B * (1 * B) * 0,res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) - B * 0 * 0,res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) - pow2(0) * (-1 * (A + -1) + B),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) - A * 0,res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) - 1 * (1 * 0),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) - 0 * pow2(A),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) - 0 * A,res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) - -2 * (-1 + 1),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) - sqrt(pow2(0)),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) - pow2(1 + -1),res = 5.919425647814153,count = 2] [program = sqrt(0 - 0) - 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = 1 - sqrt(1) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = -1 - -1 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = 1 + -1 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = (A - -1 * 1 * 0) * (0 + 0) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = (B + A) * (B * 0 * A) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = sqrt(pow2(0)) * -2 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = sqrt(0) * 2 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = pow2(0) * A + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = pow2(0) * -1 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = A * (2 * (0 * (-2 * A))) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = 2 * 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = 0 * (-1 * (B * 2) - (2 - 1)) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = 0 * (B * B) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = 0 * 2 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + (sqrt(0 - 0) - 0),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + (2 - -1 * -2),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + (1 - pow2(sqrt(1))),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + (1 - pow2(1)),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + (0 - (A - A)),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + (pow2(0) + sqrt(pow2(0))),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + (2 + -2),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + (B - B) * sqrt(B),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + (0 + sqrt(0)) * -2,res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + B * (1 * B) * 0,res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + sqrt(0) * 2,res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + pow2(A + B) * (-1 * sqrt(0)),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + pow2(0) * pow2(A + A),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + pow2(0) * -1,res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + 1 * (pow2(1) * 0),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + 1 * (1 * 0),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + 0 * sqrt(0),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + 0 * A,res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + 0 * 2,res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + 0 * -1,res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + -1 * 0,res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + sqrt(sqrt(B - B) * pow2(B)),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + sqrt(pow2(0)),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) + pow2(1 Data from Andrew Gelman's blog posts - Equation search, part 1 http://www.stat.columbia.edu/~cook/movabletype/archives/2009/12/equation_search.html - Equation search, part 2 http://www.stat.columbia.edu/~cook/movabletype/archives/2009/12/equation_search_1.html + -1),res = 5.919425647814153,count = 2] [program = sqrt(sqrt(A - A)) + sqrt(A * A - pow2(B)),res = 5.919425y = sqrt(x1^2+x2^2)647814153,count = 2] [program = pow2(-1 - -1) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = pow2(sqrt(0)) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = (0 * 0 - -1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = (1 - 0) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = (0 + A + (1 - A)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = (1 - -1 * (-2 + 2)) * 1 * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) * (A * 1 - (A - 1)),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) * (pow2(1) - (A - A)),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) * (B - (-1 + B)),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) * (2 - 1 * 1),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) * ((-2 - -1) * -1),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) * (pow2(1) * pow2(-1)),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) * sqrt(0 + 1),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) * sqrt(pow2(pow2(pow2(-1)))),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) * sqrt(pow2(1)),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) * pow2(pow2(0) - 1),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) * pow2(-2 - -1),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) * pow2(pow2(pow2(-1))),res = 5.919425647814153,count = 2] [program = pow2(0 - -1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 2] [program = sqrt(A * A - pow2(B)) - (0 + A - A),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - (0 - 0),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - (2 + (0 + -2)),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - (0 + 0),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - (A - -1 * 1 * 0) * (0 + 0),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - (-1 * -1 * A + (-1 + -2)) * pow2(0),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - 2 * -1 * 0,res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - 0 * A * (-2 * (A + B)),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - 0 * -2 * sqrt(B),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - sqrt(0) * B,res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - sqrt(0) * -1,res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - pow2(B - B) * (sqrt(-1 + A) + 1),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - pow2(A + B) * (-1 * sqrt(0)),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - pow2(2) * 0,res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - pow2(0) * A,res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - 2 * pow2(0),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - 1 * (pow2(1) * 0),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - 0 * (A - pow2(0)),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - 0 * (A + -1),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - 0 * ((pow2(A) - A) * A),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - 0 * (B * B),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - 0 * -2,res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - sqrt(B - B),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - sqrt(2 - 2),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - sqrt(pow2(1) + -1),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - sqrt((-1 - -1) * A),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - sqrt(0 * 0),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - pow2(sqrt(0) * A - 0),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - pow2(1 - 1),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - pow2(0 - 0),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - pow2(-1 + 1),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) - pow2(sqrt(0)),res = 5.919425647814153,count = 1] [program = 0 + A - A + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = -2 * 0 - sqrt(0) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = sqrt(1) - 1 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = B - (B - (-2 + B) * 0) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = 2 - 2 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = 1 - pow2(sqrt(1)) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = 1 - 1 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = 0 - 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = 1 + -2 + 1 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = sqrt(1 * (1 + -1)) + 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = pow2(0) + sqrt(pow2(0)) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = -1 + 1 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = -2 + 2 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = (B - B) * sqrt(B) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = (-2 - (2 - pow2(-2))) * B + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = (-1 * -1 * A + (-1 + -2)) * pow2(0) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = (-1 + -1) * (A - A) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = (-2 + B) * 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = (-2 + A) * 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = (pow2(A) - B) * 2 * sqrt(0) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = (B - sqrt(B - -2)) * -2 * pow2(0) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = 0 * pow2(B + A) * pow2(A) * -1 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = A * pow2(2) * (A - A) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = A * B * 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = 1 * 0 * 1 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = sqrt(A) * 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = sqrt(0) * -2 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = pow2(A + B) * (-1 * sqrt(0)) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = pow2(2 + -2) * -1 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = pow2(B) * 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = A * (-1 - -1) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = A * sqrt(0 * -2) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = 1 * (1 * 0) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = 0 * (2 + -2 * B) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = 0 * (sqrt(0 * (0 * 1)) * (B + A)) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = 0 * 1 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = -1 * (-1 - -1) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = -1 * (0 + 0) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = -1 * 0 + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + (A - pow2(0) - A),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + (B * 0 - sqrt(-1 - A + (1 + A))),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + (2 - 2),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + (1 - 1),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + (-1 - -1),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + (-2 - -2),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + (1 + -1),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + (-1 + 1),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + (-2 + 2),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + (A - pow2(-1) - A) * pow2(0),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + (B - (0 + (B + 2))) * 0,res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + (B + (pow2(2) - -2) * A) * (A * (0 * sqrt(1))),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + (0 + -2) * 0,res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + (-1 + -1) * (A - A),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + (A - A) * (1 - A) * (B - (1 - B) + -1),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + A * (0 * 0) * B * (0 + (-1 + A) - 0),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + A * pow2(2) * (A - A),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + sqrt(pow2(0)) * -2,res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + sqrt(0) * (0 - 2),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + A * (A - A),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + A * (0 * -1),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + A * sqrt(0 * -2),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + 2 * 0,res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + 0 * (-1 * (B * 2) - (2 - 1)),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + 0 * (A - pow2(0)),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + 0 * (2 + 2),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + 0 * ((pow2(A) - A) * A),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + 0 * 1,res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + -2 * sqrt(0),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + sqrt(B - B),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + sqrt(A - A),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + sqrt(2 - 2),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + sqrt(pow2(1) + -1),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + pow2(B - B),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + pow2(-1 + 1),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + pow2(-1 * 0),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + pow2(pow2(sqrt(0))),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + pow2(pow2(pow2(0))),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) + pow2(pow2(0)),res = 5.919425647814153,count = 1] [program = sqrt(-2 - -2) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = sqrt(pow2(1) + -1) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = sqrt(0 * 0) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = sqrt(0 * -2) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = sqrt(-2 * 0) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = sqrt(sqrt(0)) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = pow2(1 * B - B) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = pow2(0 * B * (sqrt(B) - -2)) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = pow2(0 * -1) + sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = (pow2(1) - (A - A)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = (sqrt(1) + 0) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = (pow2(0) + 1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = (2 + pow2(1) * -1) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = (0 + pow2(1)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = (-2 - -1) * -1 * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) * (0 - -1 - (1 + -1)),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) * (0 + pow2(1)),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) * ((1 - -1 * (-2 + 2)) * 1),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) * sqrt(pow2(-1) - 0),res = 5.919425647814153,count = 1] [program = sqrt(A * A - pow2(B)) * sqrt(pow2(sqrt(1))),res = 5.919425647814153,count = 1] [program = sqrt(pow2(1 - (0 - -2))) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = sqrt(pow2(-2 + (2 + -1))) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = sqrt(pow2(sqrt(1))) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = sqrt(pow2(1)) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] [program = pow2(1 - 0) * sqrt(A * A - pow2(B)),res = 5.919425647814153,count = 1] resultMap = [5.919425647814153 = 381] Cf gelman.conf */ import util. data(factorial_test,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- Data = [ [[A,B],C] : [A,B,C] in chunks_of([ % Hmm: sqrt(15.68**2+6.87**2) is 17.118974852484595, but =sqrt(15.68**2-6.87**2) is 14.094874955103361 15.68,6.87,14.09, 6.18,4.4,4.35, 18.1,0.43,18.09, 9.07,2.73,8.65, 17.97,3.25,17.68, 10.04,5.3,8.53, 20.74,7.08,19.5, 9.76,9.73,0.72, 8.23,4.51,6.88, 6.52,6.4,1.26, 15.69,5.72,14.62, 15.51,6.28,14.18, 20.61,6.14,19.68, 19.58,8.26,17.75, 9.72,9.41,2.44, 16.36,2.88,16.1, 18.3,5.74,17.37, 13.26,0.45,13.25, 12.1,3.74,11.51, 18.15,5.03,17.44, 16.8,9.67,13.74, 16.55,3.62,16.15, 18.79,2.54,18.62, 15.68,9.15,12.74, 4.08,0.69,4.02, 15.45,7.97,13.24, 13.44,2.49,13.21, 20.86,9.81,18.41, 16.05,7.56,14.16, 6,0.98,5.92, 3.29,0.65,3.22, 9.41,9,2.74, 10.76,7.83,7.39, 5.98,0.26,5.97, 19.23,3.64,18.89, 15.67,9.28,12.63, 7.04,5.66,4.18, 21.63,9.71,19.32, 17.84,9.36,15.19, 7.49,0.88,7.43 ],3)], println(data=Data), Unknown = [6,0.98], % should be 5.92 Vars = ['A','B'], Ops = [+,-,*,pow2,sqrt], % Ops = [+,-,*,pow2,sqrt_restricted], Constants = -2..2, MaxSize = 11, Params = new_map([ approx=0.1, num_gens=100 % , stop_criteria=loop ]).