/* Identify a constant. For also forcing some constants, see symbolic_regression_identify_constant_force_constant.pi Cf Maple's identify. > identify(3.142857143); 22/7 > identify(3.146264370); 1/2 1/2 2 + 3 > identify(3.141701399); 231 arcsinh(---) 20 > identify(3.141592654); Pi > identify(2.596684952); 1/2 3 + Pi - 2 Pi > identify(0.7692389013,all=false,FuncPoly=true); cos(ln(2)) > identify(2.7889921029138087050,BasisPolyConst=[Catalan]); 1/2 2 Catalan + Catalan * For 3.142857143 (22/7) [program = -66 / -21,res = 3.142857142857143,count = 6] [program = 22 / 7,res = 3.142857142857143,count = 2] [program = -44 / -14,res = 3.142857142857143,count = 2] [program = -44 / (-24 - -10),res = 3.142857142857143,count = 1] resultMap = [3.142857142857143 = 4] * 3.146264370 (2^1/2 + 3^1/2) [program = -56 * 5 / -89,res = 3.146067415730337,count = 1] [program = 29 / sqrt(85),res = 3.145491638370514,count = 1] [program = sqrt(sqrt(98)),res = 3.146346283645788,count = 1] [program = log(20) + sin(19),res = 3.145609483216943,count = 1453] [program = sin(19) + log(20),res = 3.145609483216943,count = 1412] [program = (61 - -68) / 41,res = 3.146341463414634,count = 1302] [program = log(27) - sin(19),res = 3.145959656341377,count = 349] [program = 97 / -80 + sqrt(19),res = 3.146398943540674,count = 303] [program = sqrt(19) + 97 / -80,res = 3.146398943540674,count = 283] [program = 15 * sin(-87 - log(75)),res = 3.145984457608017,count = 275] [program = sin(-87 - log(75)) * 15,res = 3.145984457608017,count = 234] [program = log(27) - pow2(sin(75)),res = 3.145462269243517,count = 14] resultMap = [3.146398943540674 = 2,3.145984457608017 = 2,3.145609483216943 = 2,3.146341463414634 = 1,3.145959656341377 = 1,3.145462269243517 = 1] [program = sqrt(sqrt(98)),res = 3.146346283645788,count = 1763] [program = 29 / sqrt(85),res = 3.145491638370514,count = 1082] [program = -29 / -85 * sqrt(85),res = 3.145491638370514,count = 972] [program = sqrt(85) * (-29 / -85),res = 3.145491638370514,count = 948] resultMap = [3.145491638370514 = 3,3.146346283645788 = 1] [program = 25 * ((10 - -39 / 87) / 83),res = 3.147071042791858,count = 33] [program = (10 - -39 / 87) / 83 * 25,res = 3.147071042791858,count = 12] resultMap = [3.147071042791858 = 2] * 3.141701399] (arcsinh(231/20)) with approx 0.0001 [program = 842 / 268,res = 3.141791044776119,count = 805] [program = 776 / 247,res = 3.141700404858299,count = 955] * 2.596684952] (3 + Pi - 2 Pi^(1/2)) Results with some different settings: [program = atan2(273,-450),res = 2.596285606704921,count = 1] [program = 610 / 235,res = 2.595744680851064,count = 1] resultMap = [2.596285606704921 = 1,2.595744680851064 = 1] results_best = [[0.000094042909091,-914 / -352,check = 2.596590909090909]] results_best = [[0.000022866930041,631 / 243,check = 2.596707818930041]] results_best = [[0.00031075542356,-6 * 2.718281828459045 / (2.718281828459045 + -9),check = 2.59637419657644]] results_best = [[0.000289404857614,sqrt(3 - -8) * ((sqrt(8) - -5) / 10),check = 2.596395547142386]] results_best = [[0.000005727430084,tan(-2) / sin(1),check = 2.596690679430084]] results_best = [[0.000006247083619,atan2(atan(log(2)),-1),check = 2.596691199083619]] results_best = [[0.000033199575207,0 - -4 - asec(6),check = 2.596651752424793]] results_best = [[0.00000534991137,4 * sin(2.718281828459045 + 6),check = 2.59669030191137]] approx = 0.0: gen = 218 (time: 0.168s) results_best = [[0.000017907842573,exp(log10(9)),check = 2.596702859842573]] * 3.141592654 (pi) gen = 1 (time: 0.051s) results_best = [[0.000000000410207,3.141592653589793 + pow4(exp(-9)),check = 3.141592653589794]] gen = 281 (time: 1.249s) results_best = [[0.000000000410206,tan(atan(3.141592653589793)),check = 3.141592653589794]] gen = 593 (time: 2.700s) results_best = [[0.000000000410194,pow4(exp(-8)) + asec(-1),check = 3.141592653589806]] gen = 1161 (time: 5.850s) results_best = [[0.000000000372456,pow4(exp(-6)) + 3.141592653589793,check = 3.141592653627544]] gen = 1728 (time: 9.526s) results_best = [[0.00000000012878,3.141592653589793 + exp(-7 * 3.141592653589793),check = 3.14159265387122]] gen = 11037 (time: 136.082s) results_best = [[0.000000000001418,acos(-1) + pow4(pow3(acot(6))),check = 3.141592654001418]] gen = 31116 (time: 834.999s) results_best = [[0.000000000001417,sqrt(pow4(sqrt(3.141592653589793))) + pow4(pow3(acot(6))),check = 3.141592654001417]] gen = 82809 (time: 5510.178s) results_best = [[0.000000000000667,pow4(pow3(acot(6))) + atan2(3 / pow3(pow4(10)),-4),check = 3.141592654000668]] Another run: gen = 1 (time: 0.061s) results_best = [[0.000000000410207,0 + asec(-1),check = 3.141592653589793]] gen = 112 (time: 0.486s) results_best = [[0.000000000410206,tan(atan(3.141592653589793)),check = 3.141592653589794]] gen = 1284 (time: 6.188s) results_best = [[0.000000000408328,pow3(exp(-9)) + 3.141592653589793,check = 3.141592653591673]] gen = 3386 (time: 22.015s) results_best = [[0.000000000404006,pow4(exp(-1 + -5) / acot(0)) + asec(-1),check = 3.141592653595994]] gen = 3976 (time: 27.769s) results_best = [[0.000000000077619,3.141592653589793 + exp(6 / 3.141592653589793) / pow4(pow3(-7)),check = 3.141592654077619]] gen = 11665 (time: 147.539s) results_best = [[0.000000000040994,3.141592653589793 - atan2(-1,pow3(pow4(8) / 3.141592653589793)),check = 3.141592654040994]] gen = 16212 (time: 260.441s) results_best = [[0.000000000040993,pow2(sqrt(3.141592653589793)) - atan2(-1,pow3(pow4(8) / 3.141592653589793)),check = 3.141592654040994]] gen = 41791 (time: 1473.762s) results_best = [[0.000000000001417,pow2(pow2(pow3(acot(-6)))) + pow2(sqrt(3.141592653589793)),check = 3.141592654001417]] * 0.7692389013 (cos(ln(2))) gen = 400 (time: 1.725s) results_best = [[0.000060062768583,sin(atan(log10(pow4(-2)))),check = 0.769298964068583]] gen = 508 (time: 2.217s) results_best = [[0.000040689070111,atan2(2.718281828459045,log2(7)),check = 0.769279590370111]] gen = 1377 (time: 6.756s) results_best = [[0.000027431263325,atan2(sqrt(10 * 6),8),check = 0.769266332563325]] gen = 1642 (time: 8.423s) results_best = [[0.000027431263325,atan(sin(asec(-4))),check = 0.769266332563325]] gen = 1787 (time: 9.228s) results_best = [[0.000019722166598,atan2(sin(asec(-4)),exp(exp(-9) / 8)),check = 0.769258623466598]] gen = 4606 (time: 33.670s) results_best = [[0.000008132069231,-10 / (-10 + -3),check = 0.769230769230769]] gen = 6550 (time: 56.600s) results_best = [[0.000008132069231,pow2(sqrt(10)) / (10 - -3),check = 0.769230769230769]] gen = 9525 (time: 102.012s) results_best = [[0.000002485066433,log10(7) / log(3),check = 0.769241386366433]] * 2.7889921029138087050 (2 Catalan + Catalan^(1/2)) gen = 208 (time: 0.931s) results_best = [[0.000173029229763,atan2(atan(10),-4),check = 2.789165132143571]] gen = 500 (time: 2.318s) results_best = [[0.000047546559429,atan2(0.577215664901533,atan(pow3(-8))),check = 2.789039649473238]] gen = 1102 (time: 5.489s) results_best = [[0.000012871101301,atan(2.718281828459045) + atan(pow4(-10)),check = 2.788979231812507]] gen = 11119 (time: 135.650s) results_best = [[0.000006631343264,atan(2.718281828459045) + acos(sqrt(0.577215664901533) * exp(-9)),check = 2.788985471570544]] * 9.141592654 Pi + 6 gen = 24 (time: 0.119s) results_best = [[0.000000000410207,3.141592653589793 + 6,check = 9.141592653589793]] * Phi (1.618033988749895) without special constants [program = (sqrt(5) + 1) / 2,res = 1.618033988749895,count = 1] * Phi (1.618033988749895) without the Phi constant [program = exp(asinh(log_2(9,3))),res = 1.61803,count = 1] [program = exp(asinh(-1 / -2)),res = 1.61803,count = 1] [program = exp(asinh(sin(tan(atan2(3.14159,6))))),res = 1.61803,count = 1] [program = sqrt(pow4(exp(asinh(2) / 6))),res = 1.61803,count = 1] (i.e. sqrt( exp(asinh(2) / 6) **4)) [program = exp(asinh((4 + -3) / 2)),res = 1.61803,count = 1] [program = exp(asinh(2) / 3),res = 1.61803,count = 1] [program = exp(asinh(-3 / -6)),res = 1.61803,count = 593] [program = pow2(exp(asinh(2) / 6)),res = 1.61803,count = 559] [program = exp(asinh(2) / 6) * exp(asinh(2) / 6),res = 1.61803,count = 327] Also skipping asinh/1 [program = (sqrt(5) - -1) / 2,res = 1.61803,count = 1] * Catalan without special constants Best so far: gen = 9076 (time: 87.539s) results_best = [[0.000006414754565,-6 / (sqrt(6) - 9),check = 0.915959179422654]] Another run: gen = 2682 (time: 14.758s) results_best = [[0.000002325734603,tan(-9) + acot(2),check = 0.915963268442616]] * 1 (constant 1): some variants [program = atan(tan(1)),res = 1.0,count = 975] [program = exp(0),res = 1.0,count = 868] [program = atan(tan(pow3(1))),res = 1.0,count = 842] [program = sqrt(pow4(3.141592653589793)) / sqrt(pow4(3.141592653589793)),res = 1.0,count = 3] [program = (0.915965594177219 + -7 - log2(1.618033988749895)) / (0.915965594177219 + -7 - log2(1.618033988749895)),res = 1.0,count = 2] [program = (acos(asec(log2(2.718281828459045)) * log(3.141592653589793)) - -9) / (acos(asec(log2(2.718281828459045)) * log(3.141592653589793)) - -9),res = 1.0,count = 1] * -1/12 AllGood: [program = -6 / (8 * 9),res = -0.0833333,count = 926] [program = 1 / (-3 * 4),res = -0.0833333,count = 601] [program = 1 / (-8 + -4),res = -0.0833333,count = 544] [program = 6 / 8 / -9,res = -0.0833333,count = 419] [program = log(2.71828) / (-8 + -4),res = -0.0833333,count = 310] [program = log(2.71828) / (-3 * 4),res = -0.0833333,count = 290] [program = 1 / (-9 + -3),res = -0.0833333,count = 262] [program = -2 / -6 / -4,res = -0.0833333,count = 242] [program = log(2.71828) / (-9 + -3),res = -0.0833333,count = 150] [program = 2 / -3 / 8,res = -0.0833333,count = 130] [program = -3 / pow2(6),res = -0.0833333,count = 125] [program = exp(0) / (-3 * 4),res = -0.0833333,count = 107] [program = pow2(-1) / (-8 + -4),res = -0.0833333,count = 106] [program = pow2(-1) / (-3 * 4),res = -0.0833333,count = 82] [program = log2(2) / (-3 * 4),res = -0.0833333,count = 77] [program = log2(2) / (-8 + -4),res = -0.0833333,count = 76] [program = exp(0) / (-8 + -4),res = -0.0833333,count = 76] [program = exp(0) / (-9 + -3),res = -0.0833333,count = 68] [program = pow2(1) / (-3 * 4),res = -0.0833333,count = 60] [program = pow3(exp(0)) / (-8 + -4),res = -0.0833333,count = 31] [program = pow2(1) / (-8 + -4),res = -0.0833333,count = 19] [program = pow4(-1) / (-8 + -4),res = -0.0833333,count = 5] [program = pow3(1) / (-3 * 4),res = -0.0833333,count = 5] [program = (4 - 3) / (-3 * 4),res = -0.0833333,count = 4] [program = sqrt(1) / (-3 * 4),res = -0.0833333,count = 4] [program = log2(2) / (-9 + -3),res = -0.0833333,count = 4] [program = (4 - 3) / (-8 + -4),res = -0.0833333,count = 3] [program = sqrt(1) / (-8 + -4),res = -0.0833333,count = 3] [program = pow4(-1) / (-3 * 4),res = -0.0833333,count = 3] [program = pow_mod2(-1,8) / (-3 * 4),res = -0.0833333,count = 2] [program = sqrt(log2(2)) / (-3 * 4),res = -0.0833333,count = 2] [program = pow_mod2(-10,0) / (-8 + -4),res = -0.0833333,count = 1] [program = pow_mod2(-10,0) / (-3 * 4),res = -0.0833333,count = 1] [program = sqrt(log10(10)) / (-9 + -3),res = -0.0833333,count = 1] [program = sqrt(1) / (-9 + -3),res = -0.0833333,count = 1] [program = pow4(-1) / (-9 + -3),res = -0.0833333,count = 1] [program = pow2(-1) / (-9 + -3),res = -0.0833333,count = 1] resultMap = [-0.0833333 = 37] * 1.4142135623730950488] % sqrt(2) Note: All these solutions uses sqrt/1. [program = sqrt(2),res = 1.41421,count = 1177] [program = exp(log(sqrt(2))),res = 1.41421,count = 779] [program = sqrt(log2(4)),res = 1.41421,count = 771] [program = sqrt(sqrt(4)),res = 1.41421,count = 725] [program = atan(tan(sqrt(2))),res = 1.41421,count = 616] [program = sqrt(-5 + 7),res = 1.41421,count = 441] [program = log(exp(sqrt(2))),res = 1.41421,count = 248] [program = sqrt(-8 - -10),res = 1.41421,count = 164] [program = sqrt(exp(0) * 2),res = 1.41421,count = 131] [program = sqrt(-8 + 10),res = 1.41421,count = 125] [program = atan2(tan(sqrt(2)),1),res = 1.41421,count = 95] [program = sqrt(log_2(3,9)),res = 1.41421,count = 89] [program = sqrt(4 - 2),res = 1.41421,count = 87] [program = sqrt(7 + -5),res = 1.41421,count = 66] [program = 0 + sqrt(2),res = 1.41421,count = 32] [program = sqrt(7 - 5),res = 1.41421,count = 28] [program = sqrt(2) + 0,res = 1.41421,count = 27] [program = 1 * sqrt(2),res = 1.41421,count = 19] [program = sqrt(2) + tan(0),res = 1.41421,count = 12] [program = atan2(tan(sqrt(2)),log10(10)),res = 1.41421,count = 8] [program = log_2(1.61803,1.61803) * sqrt(2),res = 1.41421,count = 8] [program = sqrt(2) - log10(log(2.71828)),res = 1.41421,count = 6] [program = atan2(tan(sqrt(2)),4 - 3),res = 1.41421,count = 4] [program = atan2(tan(sqrt(2)),log(exp(1))),res = 1.41421,count = 4] [program = 0 / 6 + sqrt(2),res = 1.41421,count = 4] [program = sqrt(-10 - (-6 + -6)),res = 1.41421,count = 4] [program = sqrt(2) - 0,res = 1.41421,count = 3] [program = atan2(tan(sqrt(2)),pow3(1)),res = 1.41421,count = 2] [program = sqrt(2) / 1,res = 1.41421,count = 2] [program = sqrt(3 - 1),res = 1.41421,count = 2] [program = atan2(tan(sqrt(2)),pow4(pow3(-1))),res = 1.41421,count = 1] [program = sqrt(8) / sqrt(4),res = 1.41421,count = 1] [program = sqrt(8) / 2,res = 1.41421,count = 1] [program = sqrt(2) / pow3(1),res = 1.41421,count = 1] [program = sqrt(9 + (-8 + 1)),res = 1.41421,count = 1] resultMap = [1.41421 = 35] * 1.414213562373095 sqrt(2) w/o sqrt/1 and with approx=0.0 [program = sin(acot(1)) * 2,res = 1.41421,count = 1] resultMap = [1.41421 = 1] [program = sin(acot(1)) + sin(acot(1)),res = 1.41421,count = 1] * 1.414213 sqrt(2) without sqrt/1 and with approx=0.00001 gen = 1606 (time: 30.291s) results_best = [[5.62373e-07,exp(asinh(1)) - (1 - tan(3.14159)),check = 1.414213562373095],[5.62373e-07,-1 + exp(asinh(1)),check = 1.414213562373095],[5.62373e-07,exp(asinh(1)) + -1,check = 1.414213562373095]] [program = atan2(6,tan(exp(5))),res = 1.41422,count = 1] [program = atan2(asec(4),exp(atan(pow3(-10)))),res = 1.41422,count = 343] [program = atan2(asec(pow2(-2)),exp(atan(pow3(-10)))),res = 1.41422,count = 156] * 1.6449340668482 zeta(2), or π^2/6. approx 0.0001 AllGood: [program = pow2(3.14159) / 6,res = 1.64493,count = 689] [program = atan2(exp(2),log(0.577216)),res = 1.64503,count = 262] [program = asec(pow2(sqrt(1.61803))) * asinh(3),res = 1.64489,count = 21] resultMap = [1.64503 = 1,1.64493 = 1,1.64489 = 1] AllGood: [program = (0 + asec(-2)) * acot(1),res = 1.64493,count = 260] [program = acot(1) * (0 + asec(-2)),res = 1.64493,count = 103] [program = asec(-2) * acot(1),res = 1.64493,count = 83] [program = acot(1) * asec(-2),res = 1.64493,count = 72] resultMap = [1.64493 = 4] approx 0.00001: AllGood: [program = pow2(3.14159) / 6,res = 1.64493,count = 888] [program = pow2(3.14159) / (4 - -2),res = 1.64493,count = 423] [program = asec(2) * acot(0),res = 1.64493,count = 231] resultMap = [1.64493 = 2,1.64493 = 1] AllGood: [program = acos(0) * asec(2),res = 1.64493,count = 639] [program = 3.14159 * (3.14159 / 6),res = 1.64493,count = 475] [program = acos(sqrt(0)) * asec(2),res = 1.64493,count = 468] [program = acos(atan(0)) * asec(2),res = 1.64493,count = 424] [program = asec(2) * acos(0),res = 1.64493,count = 319] [program = acos(-9 - -9) * asec(2),res = 1.64493,count = 226] [program = atan2(asinh(1.61803),0) * asec(2),res = 1.64493,count = 218] [program = asec(2) * atan2(asinh(1.61803),0),res = 1.64493,count = 212] [program = acos(tan(pow4(0))) * asec(2),res = 1.64493,count = 212] [program = asec(2) * acos(atan(0)),res = 1.64493,count = 166] [program = acos(sqrt(0)) * atan(sqrt(3)),res = 1.64493,count = 127] [program = acos(atan(0)) * atan(sqrt(3)),res = 1.64493,count = 120] [program = acot(0) * asec(2),res = 1.64493,count = 117] [program = asec(2) * acos(sqrt(0)),res = 1.64493,count = 111] [program = acos(0) * atan(sqrt(3)),res = 1.64493,count = 85] [program = 3.14159 * acot(sqrt(3)),res = 1.64493,count = 52] [program = 3.14159 / 6 * 3.14159,res = 1.64493,count = 47] [program = asec(2) * atan2(tan(-9),tan(3.14159)),res = 1.64493,count = 19] [program = acos(tan(pow4(0))) * atan(sqrt(3)),res = 1.64493,count = 9] [program = atan(sqrt(3)) * acos(atan(0)),res = 1.64493,count = 7] [program = asec(2) * acos(-9 - -9),res = 1.64493,count = 6] [program = asec(2) * acos(tan(pow4(0))),res = 1.64493,count = 6] [program = acot(sqrt(3)) * 3.14159,res = 1.64493,count = 6] [program = atan(sqrt(3)) * acos(tan(pow4(0))),res = 1.64493,count = 4] [program = acot(0) * atan(sqrt(3)),res = 1.64493,count = 4] [program = atan(sqrt(3)) * acos(sqrt(0)),res = 1.64493,count = 3] [program = asec(2) * acot(0),res = 1.64493,count = 3] [program = atan2(7,acos(1)) * asec(2),res = 1.64493,count = 2] [program = atan(sqrt(3)) * acos(-9 - -9),res = 1.64493,count = 2] [program = asec(-1) * acot(sqrt(3)),res = 1.64493,count = 2] [program = acos(-9 - -9) * atan(sqrt(3)),res = 1.64493,count = 2] [program = atan2(tan(-9),tan(3.14159)) * asec(2),res = 1.64493,count = 1] [program = 3.14159 / 6 * asec(-1),res = 1.64493,count = 1] [program = atan(sqrt(3)) * acos(0),res = 1.64493,count = 1] [program = asec(2) * atan2(2.71828,tan(3.14159)),res = 1.64493,count = 1] [program = asec(-1) * (3.14159 / 6),res = 1.64493,count = 1] [program = acot(sqrt(3)) * asec(-1),res = 1.64493,count = 1] Some references for mathematical constants * http://oeis.org/ * http://mrob.com/pub/ries/ * http://askconstants.org * wolframalpha.com * https://math.hawaii.edu/~dale/AskConstants/HowToHuntWildConstants.pdf * https://en.wikipedia.org/wiki/List_of_mathematical_constants * Notable Properties of Specific Numbers This is a list of a lot of special numbers. https://www.mrob.com/pub/math/numbers.html https://www.mrob.com/pub/math/numbers-2.html ... https://www.mrob.com/pub/math/numbers-25.html */ data(identify_constant,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- % Seq = [1,3.142857143], % make_point_seq(Seq,Data,Unknown,Vars), % make_seq(Seq,1,Data,Unknown,Vars), % make_seq(Seq,2,Data,Unknown,Vars), % make_seq(Seq,3,Data,Unknown,Vars), % Ops = [+,-,*,/,sin,exp,log,sqrt,pow2,pow3,pow4], Data = [ %% Floats: Change to float functions below % [[1], 3.142857143] % 22 / 7 % [[1], 3.146264370] % 2^1/2 + 3^1/2 % [[1], 3.141701399] % arcsinh(231/20) % [[1],2.596684952] % 3 + Pi - 2 Pi^(1/2) % [[1],math.pi] % Pi, % [[1], 0.7692389013] % cos(ln(2)) % [[1], 2.7889921029138087050] % 2 Catalan + Catalan^(1/2) % [[1], 1.618033988749895] % Phi % [[1],0.915965594177219 ] % Catalan % From David R. Stoutemyer "How to Hunt Wild Constants" % (https://www.researchgate.net/publication/350542593_How_to_hunt_wild_constants) % https://math.hawaii.edu/~dale/AskConstants/HowToHuntWildConstants.pdf % [[1], 9.141592654] % 6+Pi 6 + 3.14159, tan(atan(6)) + acos(-1) % [[1],0.1153442566] % [[1],0.1857930606004482] % 1/(e^(arccosh(5)/2) + sqrt(5)) % % [[1], -0.9125775987] % sin(exp(pi)) % -> sin(pow2(exp(3.14159))) % [[1], 0.9887872246] % sin(exp(2*pi)) % sin(exp(3.14159 * 2)) % [[1], 1.414213562373095] % sqrt(2) % [[1], 1.732050807568877] % sqrt(3) % [[1], 4.669201609] % Feigenbaum constant % [[1], 4.669201609] % 2 exp(1) % [[1], 0.3828968253968254] % 9649 / 25200 % [[1],0.26424111765711533] % 1 - 2/exp(1) % [[1],0.6321205588285577] % 1 - 1/exp(1) [[1],1.6449340668482] % zeta(2), or π^2/6. % [[1],299792458.0] % Speed of light (as float) % Integers % [[1], 6564120420] % 20th Catalan number: (40)!/(20!*21!), % [[1], 3628800] % 10! % [[1], 384] % 2*4*6*8 % pow2(-8) * 6, pow3(4) * 6, 1 * 6 * (-8 * -8) % [[1], 1] % 1 % [[1], 2] % 2 % [[1], 68] % 2*3+4*5+6*7 % [[1], -1/12] % [[1],299792458] % Speed of light ], Unknown = [1], % Vars = ['x'], Vars = [], % Note: No variables, just the constants. % Ops = [+,-,*,/], % Ops = [+,-,*,/,exp,log,sqrt,pow2,pow3,pow4], % IntegerOps = [+,-,*,/,div,gcd,floor,prime,pow_mod2,pow2,pow3,mod,factorial_restricted,mod_replace], IntegerOps = [+,-,*,/,div,gcd,floor,prime,pow_mod2,pow2,pow3,mod,mod_replace], % skipping factorial_restricted % FloatOps = [+,-,*,/,sqrt,pow_mod2,pow2,pow3,pow4,exp,log,log2,log10,log_2,sin,tan,atan,atan2,acos,acot,asec,asinh,atanh], FloatOps = [+,-,*,/,sqrt,pow_mod2,pow2,pow3,pow4,pow_neg3,pow_neg4,pow_neg5,exp,log,log2,log10,log_2], % Skipping trig functions % FloatOps = [+,-,*,/,sqrt,pow_mod2,pow2,pow3,pow4,exp,log,log2,log10,log_2,sin,tan,atan,atan2,acos,acot,asec,atanh], % w/o asinh/1 (for Phi identification) % FloatOps = [+,-,*,/,pow_mod2,pow2,pow3,pow4,exp,log,log2,log10,log_2,sin,tan,atan,atan2,acos,acot,asec,asinh,atanh], % w/o sqrt (for sqrt(2)) if integer(Data[1,2]) then TheOps = IntegerOps else TheOps = FloatOps end, member(Ops,[ % [+,-,*,/] % [+,-,*,/,sqrt] % [+,-,*,/,pow_mod2] % IntegerOps % FloatOps TheOps ]), nl, println(ops=Ops), % Constants = -100..0.01..100, % Constants = -1000..1000, % Constants = -1000..1000 ++ [math.pi,math.e], % Add some nice mathematical constants Catalan = 0.915965594177219, EulerGamma = 0.577215664901533, Phi = 1.618033988749895, % golden ratio Constants = -10..10 ++ [math.pi,math.e,Catalan,EulerGamma,Phi], % Constants = -10..10 ++ [math.e,Catalan,EulerGamma,Phi], % w/o Pi % Constants = -10..10 ++ [math.e,math.pi,Catalan,EulerGamma], % w/o Phi % Constants = -10..10, % Without specific constants MaxSize = 21, Params = new_map([% approx=0.001, % approx=0.0001, % approx=0.00001, % approx=0.000001, approx=0.00000000001, % approx=0.0, % approx=0.1, % approx=0.01, % remove_dups=false, init_size=1000, show_best=3, num_gens=1000 , reset_timeout = 600 % reset problem after reset_timeout seconds % , mutation_rate=0 % , crossover_rate=0 % , mutation_rate=0.01 % , crossover_rate=0.9 % , timeout=10 % , debug=true % , stop_criteria=generation % , show_only_improvements=false % , show_only_good=false ]).