Got a look at this and used 2.6.8 beta
I get wha you men with the sign etc and aactually what I was after was a function atan2 with 2 parameters that you enter.
atan2(val1,val2)
Thus getting the 2 signed values of x and y. This would be most useful for polar to cart.
atan2(val1,val2) could be atan(y/x) with a more useful pi to -pi range.
Sorry when you said yo where adding atan2 I was presuming it would be a function that I have seen in other apps that does this. (In fact this is what I typed first the function form but obviously when I ran GF it did not look as I would have liked.

)
There is an example of the code where I want a full(er) range I probably have to tweak it a lot to get the correct stuff out I would like but anyway have a wraparound effect for atan2 of pi to -pi would help.
//Rovastar & Geiss - Dynamic Swirls TEst
//modified from Ryan GEiss scenes for MilkDrop
A0="(0.01*rnd(50)) -0.25", //placement swirl 1 x co-ord
A1="(0.01*rnd(50)) -0.25", //placement swirl 1 y co-ord
A2="(0.01*rnd(50)) -0.25", //placement swirl 2 x co-ord
A3="(0.01*rnd(50)) -0.25", //placement swirl 2 y co-ord
//A4="0.01*(rnd(1)+1)", //swirl 1 power
//A5="0.01*(rnd(1)+1)", //swirl 2 power
D0 ="x+A0", //swirl location 1 x co-ord
D1 ="y+A1", //swirl location 1 y co-ord
D2 ="sqrt((D0*D0)+(D1*D1))", //newrad swirl 1
D3 = "atan2(D1/D0)", //newtheta swirl 1
//d3 ="atan2(D1,D0)",
D4 = "0.02/(D2+0.2)", //distance multiplier swirl 1
D5 ="x+A2", //swirl location 2 x co-ord
D6 ="y+A3", //swirl location 2 y co-ord
D7 ="sqrt((D5*D5)+(D6*D6))",//newrad swirl 2
D8 = "atan2(D6/D5)", //newtheta swirl2
//d8 = "atan2(D6,D5)",
D9 = "0.02/(D7+0.2)", //distance multipier swirl2
srcX = "x + d4*sin(d3-(1.5)) + d9*sin(d8+(1.5))",
srcY = "y + d4*cos(d3-(1.5)) + d9*cos(d8+(1.5))",
Vers=268,