/* L system set up to enter observed data of Geotrichum. Exact data from 401 and 403. Adapted for both lsys and Lsys2midi Fran Soddell Date: 11 Feb 04 Last Updated: 11 Feb 04 */ #define maxgen 100 #define step 0.05 #define maxLength 65 #define pause 5 START : H(0,0,-1,0,-1,0,0)f(pause*step*4) p1:G(x):x=0-> p2:G(x)->F(step*x) /* alternate 3-5 insert a pause at the end of each branch */ /* p3:H(x,y,b,z,c,s,g):g=(maxgen-2)&s=1->Tf(pause*step) p4:H(x,y,b,z,c,s,g):g=(maxgen-2)&x>0->G(x)f(pause*step) p5:H(x,y,b,z,c,s,g):g=(maxgen-2)->f(pause*step) */ /* alternate 3-5 end of branch with no pause */ p3:H(x,y,b,z,c,s,g):g=(maxgen-2)&s=1->T p4:H(x,y,b,z,c,s,g):g=(maxgen-2)&x>0->G(x) p5:H(x,y,b,z,c,s,g):g=(maxgen-2)-> /* frequency of interbranch distances */ p6:H(x,y,b,z,c,s,g):b=-1->(0.05263)H(x,0,0,z,c,s,g+1) ->(0.05263)H(x,0,3,z,c,s,g+1) ->(0.05263)H(x,0,5,z,c,s,g+1) ->(0.05263)H(x,0,7,z,c,s,g+1) ->(0.05263)H(x,0,13,z,c,s,g+1) ->(0.05263)H(x,0,15,z,c,s,g+1) ->(0.05263)H(x,0,16,z,c,s,g+1) ->(0.05263)H(x,0,17,z,c,s,g+1) ->(0.05263)H(x,0,20,z,c,s,g+1) ->(0.10529)H(x,0,21,z,c,s,g+1) ->(0.10526)H(x,0,24,z,c,s,g+1) ->(0.05263)H(x,0,25,z,c,s,g+1) ->(0.05263)H(x,0,32,z,c,s,g+1) ->(0.05263)H(x,0,39,z,c,s,g+1) ->(0.05263)H(x,0,44,z,c,s,g+1) ->(0.05263)H(x,0,62,z,c,s,g+1) ->(0.05263)H(x,0,65,z,c,s,g+1) /* frequency of distances between changes in direction */ p7:H(x,y,b,z,c,s,g):c=-1->(0.04302)H(x,y,b,0,3,s,g+1) ->(0.05377)H(x,y,b,0,4,s,g+1) ->(0.06453)H(x,y,b,0,5,s,g+1) ->(0.03227)H(x,y,b,0,6,s,g+1) ->(0.07528)H(x,y,b,0,7,s,g+1) ->(0.09678)H(x,y,b,0,8,s,g+1) ->(0.08603)H(x,y,b,0,9,s,g+1) ->(0.05377)H(x,y,b,0,10,s,g+1) ->(0.04302)H(x,y,b,0,11,s,g+1) ->(0.09678)H(x,y,b,0,12,s,g+1) ->(0.07528)H(x,y,b,0,13,s,g+1) ->(0.02152)H(x,y,b,0,14,s,g+1) ->(0.02152)H(x,y,b,0,15,s,g+1) ->(0.01076)H(x,y,b,0,16,s,g+1) ->(0.02152)H(x,y,b,0,17,s,g+1) ->(0.03227)H(x,y,b,0,18,s,g+1) ->(0.01076)H(x,y,b,0,19,s,g+1) ->(0.02152)H(x,y,b,0,20,s,g+1) ->(0.01076)H(x,y,b,0,21,s,g+1) ->(0.02152)H(x,y,b,0,25,s,g+1) ->(0.01076)H(x,y,b,0,26,s,g+1) ->(0.02152)H(x,y,b,0,27,s,g+1) ->(0.01076)H(x,y,b,0,28,s,g+1) ->(0.01076)H(x,y,b,0,29,s,g+1) ->(0.01076)H(x,y,b,0,30,s,g+1) ->(0.01075)H(x,y,b,0,33,s,g+1) ->(0.01075)H(x,y,b,0,34,s,g+1) ->(0.01075)H(x,y,b,0,40,s,g+1) ->(0.01075)H(x,y,b,0,50,s,g+1) /* branch and change direction */ p8:H(x,y,b,z,c,s,g):y=b&z=c->G(x) MB(g+1) XC H(0,0,-1,0,-1,1,g+1) /* branch */ p9:H(x,y,b,z,c,s,g):y=b->G(x) MB(g+1) H(0,0,-1,z,c,2,g+1) /* change direction */ p10:H(x,y,b,z,c,s,g):z=c->G(x) XC H(0,y,b,0,-1,1,g+1) /* draw (sound note) if step is maximum length */ p11:H(x,y,b,z,c,s,g):x=maxLength->G(x) H(0,y,b,z,c,s,g+1) /* growing between branches and changes of direction */ p12:H(x,y,b,z,c,s,g)->H(x+1,y+1,b,z+1,c,s,g+1) /* 13-15 debugging aids p13:M->[+(90)f(0.1)F(0.1)f(0.2)F(0.1)f(0.1)F(0.1)f(1)] p14:X->[-(90)f(0.1)F(0.2)f(0.1)F(0.2)f(0.1)F(0.2)f(0.1)F(0.2)f(0.1)F(0.2)f(1)] */ /* p15:Y->[+(45)f(0.1)F(0.3)f(0.3)F(0.3)f(0.1)][-(45)f(0.1)F(0.3)f(0.3)F(0.3)f(0.1)] */ /* observed branching angles and frequencies */ p16:B(g)->(0.05883)[-(30)H(0,0,-1,0,-1,0,g+1)] ->(0.05883)[+(31)H(0,0,-1,0,-1,0,g+1)] ->(0.05883)[-(41)H(0,0,-1,0,-1,0,g+1)] ->(0.05883)[+(46)H(0,0,-1,0,-1,0,g+1)] ->(0.05883)[+(53)H(0,0,-1,0,-1,0,g+1)] ->(0.05883)[+(62)H(0,0,-1,0,-1,0,g+1)] ->(0.05882)[-(62)H(0,0,-1,0,-1,0,g+1)] ->(0.05882)[+(63)H(0,0,-1,0,-1,0,g+1)] ->(0.05882)[+(65)H(0,0,-1,0,-1,0,g+1)] ->(0.05882)[-(70)H(0,0,-1,0,-1,0,g+1)] ->(0.05882)[+(71)H(0,0,-1,0,-1,0,g+1)] ->(0.05882)[+(75)H(0,0,-1,0,-1,0,g+1)] ->(0.05882)[+(81)H(0,0,-1,0,-1,0,g+1)] ->(0.05882)[-(91)H(0,0,-1,0,-1,0,g+1)] ->(0.05882)[-(92)H(0,0,-1,0,-1,0,g+1)] ->(0.05882)[-(94)H(0,0,-1,0,-1,0,g+1)] ->(0.05882)[+(94)H(0,0,-1,0,-1,0,g+1)] /* observed angles of changes of direction and frequencies */ p17:C->(0.01075)-(2) ->(0.01075)-(3) ->(0.01075)-(6) ->(0.01075)+(6) ->(0.01075)+(7) ->(0.01075)+(8) ->(0.01075)+(9) ->(0.01075)-(10) ->(0.02151)-(11) ->(0.02151)+(11) ->(0.02151)-(12) ->(0.03226)+(14) ->(0.01076)-(14) ->(0.03226)+(15) ->(0.00001)-(15) ->(0.01076)+(16) ->(0.02151)-(16) ->(0.02151)+(17) ->(0.01076)-(17) ->(0.02151)+(18) ->(0.01076)-(18) ->(0.02151)+(19) ->(0.00001)-(19) ->(0.03226)+(20) ->(0.01076)-(20) ->(0.01076)+(21) ->(0.02151)-(21) ->(0.01076)+(22) ->(0.02151)-(22) ->(0.03226)+(23) ->(0.00001)-(23) ->(0.02151)+(24) ->(0.01076)-(24) ->(0.01077)+(25) ->(0.06452)-(25) ->(0.03226)+(26) ->(0.03226)-(26) ->(0.00001)+(28) ->(0.01075)-(28) ->(0.00001)+(28) ->(0.01075)-(28) ->(0.01075)+(29) ->(0.01075)-(29) ->(0.01075)+(30) ->(0.01075)-(30) ->(0.00001)+(31) ->(0.01075)-(31) ->(0.01075)+(32) ->(0.00001)-(32) ->(0.02151)+(33) ->(0.01076)-(33) ->(0.00001)+(34) ->(0.02151)-(34) ->(0.01076)+(35) ->(0.02151)-(35) ->(0.01075)+(36) ->(0.01075)-(36) ->(0.02151)+(37) ->(0.00001)-(37) ->(0.00001)+(38) ->(0.01075)-(38) ->(0.01075)+(39) ->(0.01075)-(39) ->(0.01076)+(42) ->(0.03226)-(42) ->(0.01075)+(44) ->(0.01075)-(44) ->(0.00001)+(47) ->(0.01075)-(47) ->(0.01075)+(61) ->(0.00001)-(61) ->(0.01075)-(87) /* observed tip lengths */ p18:T->(0.05882)F(3*step) ->(0.05882)F(4*step) ->(0.11765)F(5*step) ->(0.17647)F(6*step) ->(0.05883)F(7*step) ->(0.05883)F(8*step) ->(0.05883)F(9*step) ->(0.05883)F(11*step) ->(0.05883)F(12*step) ->(0.05883)F(13*step) ->(0.05882)F(15*step) ->(0.05882)F(16*step) ->(0.11765)F(23*step)