/* Test of the modulo (mod/2) operator. Solutions: * Using point seq [program = 1 + A mod 3,res = 3,count = 26] [program = 1 / 1 + A mod 3,res = 3.0,count = 21] [program = A / A + A mod 3,res = 3.0,count = 8] [program = A mod 3 + A / A,res = 3.0,count = 7] [program = A mod 3 + 1,res = 3,count = 3] resultMap = [3.0 = 3,3 = 2] * Using seq, n=1 [program = A mod 8 mod 3 + 1,res = 3,count = 17] [program = A / A + A mod 3,res = 3.0,count = 16] [program = 9 mod A + 2 - 10 mod A,res = 3,count = 11] [program = A mod 3 + 1,res = 3,count = 3] resultMap = [3 = 3,3.0 = 1] * seq, n=2 [program = 10 / 10 - A + (5 - B),res = 3.0,count = 29] [program = 6 / (B * A),res = 3.0,count = 24] [program = 6 / (A * B),res = 3.0,count = 24] [program = 6 / B / A,res = 3.0,count = 23] [program = 6 - A - B,res = 3,count = 14] [program = 6 - (A + B),res = 3,count = 12] [program = 6 - (A mod 4 + B),res = 3,count = 11] [program = 6 / A / B,res = 3.0,count = 7] [program = 6 - (B + A),res = 3,count = 5] resultMap = [3.0 = 5,3 = 4] Cf http://hakank.org/jgap/mod_test.conf */ data(mod_test,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- Seq = [(I mod 3) + 1 : I in 1..10], ( println("\nmake_point_seq:"), make_point_seq(Seq,Data,Unknown,Vars) % ; % println("\nmake_seq:"), % make_seq(Seq,1,Data,Unknown,Vars) % %% make_seq(Seq,2,Data,Unknown,Vars) ), println(data=Data), Ops = [+,-,*,/,mod], Constants = 0..10, MaxSize = 4, Params = new_map([num_gens=30]).