GGP 'knows' elementary functions/operators with one and two (or more) arguments. Each of them has the syntax xxx(a) or xxx(a,a), where xxx is the function/operator, and a, b are the arguments. The arguments can be strings containing other elementary functions/operators, explicit constants (standard Fortran syntax: -1.2, 3, 3.56E-12, etc.), implicit constants (c0,c1,c2,c3), parameter (p0), variable (x0). Note, that the actual GGP version works with four implicit constants, one parameter and one variable only. The index 0 of the parameter or variable can be omitted. GGP constructs formula for the basis functions by nesting of elementary functions/operators. For example, sin(p*x-1.23*c0) is in GGP notation sin(sub(mul(p0,x0),mul(1.23,c0))), or sin(add(mul(p0,x0),mul(-1.23,c0))), or ....

For constructing full binary trees, only operators with two arguments may be applied!

If you want to visualize a function consisting of these
elementary functions/operators, you can select ** Series
and Formula** from the

neg(a):=-a

inv(a):=1/a

sqr(a):=a*a

srt(a):=square root of a

log(a):=ln(a):=natural logarithm of a

exp(a):=e**a:=e^a

sin(a):=sinus of a

cos(a):=cosinus of a

int(a):=nearest integer value of a

abs(a):=srt(sqr(a))

sig(a):=1 if a>=0, -1 if a<0

add(a,b):=a+b

sub(a,b):=a-b

mul(a,b):=a*b

div(a,b):=a/b

lga(a,b):=ln(b)/ln(a):=logarithm of a with basis b

pow(a,b):=a**b:=a^b

sim(a,b):=sin(a*b)

com(a,b):=cos(a*b)

ta1(a,b):=a

ta2(a,b):=b

rnd(a,b):=random value in the interval a...b