+// fixes for function atan2(x,y)
+inline function atan2(symbol const & x,symbol const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(symbol const & x,function const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(symbol const & x,constant const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(symbol const & x,idx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(symbol const & x,lorentzidx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(symbol const & x,coloridx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(function const & x,symbol const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(function const & x,function const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(function const & x,constant const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(function const & x,idx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(function const & x,lorentzidx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(function const & x,coloridx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(constant const & x,symbol const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(constant const & x,function const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(constant const & x,constant const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(constant const & x,idx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(constant const & x,lorentzidx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(constant const & x,coloridx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(idx const & x,symbol const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(idx const & x,function const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(idx const & x,constant const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(idx const & x,idx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(idx const & x,lorentzidx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(idx const & x,coloridx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(lorentzidx const & x,symbol const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(lorentzidx const & x,function const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(lorentzidx const & x,constant const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(lorentzidx const & x,idx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(lorentzidx const & x,lorentzidx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(lorentzidx const & x,coloridx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(coloridx const & x,symbol const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(coloridx const & x,function const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(coloridx const & x,constant const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(coloridx const & x,idx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(coloridx const & x,lorentzidx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(coloridx const & x,coloridx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(symbol const & x,numeric const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(symbol const & x,int const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(symbol const & x,double const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(function const & x,numeric const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(function const & x,int const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(function const & x,double const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(constant const & x,numeric const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(constant const & x,int const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(constant const & x,double const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(idx const & x,numeric const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(idx const & x,int const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(idx const & x,double const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(lorentzidx const & x,numeric const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(lorentzidx const & x,int const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(lorentzidx const & x,double const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(coloridx const & x,numeric const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(coloridx const & x,int const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(coloridx const & x,double const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(numeric const & x,symbol const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(numeric const & x,function const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(numeric const & x,constant const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(numeric const & x,idx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(numeric const & x,lorentzidx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(numeric const & x,coloridx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(int const & x,symbol const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(int const & x,function const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(int const & x,constant const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(int const & x,idx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(int const & x,lorentzidx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(int const & x,coloridx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(double const & x,symbol const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(double const & x,function const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(double const & x,constant const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(double const & x,idx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(double const & x,lorentzidx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(double const & x,coloridx const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(ex const & x,numeric const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(ex const & x,int const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(ex const & x,double const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(numeric const & x,ex const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(int const & x,ex const & y) {
+ return atan2(ex(x),ex(y));
+}
+inline function atan2(double const & x,ex const & y) {
+ return atan2(ex(x),ex(y));
+}
+
+// fixes for ex pow(x,y)