 
     g_a = s_a.real() + s_a.imag()*__I__;
     g_b = s_b.real() + s_b.imag()*__I__;
-    // Ok here we screwed big time
     b = cusp::asin(a);
     g_b = casin(g_a);
     s_b = std::complex<ValueType>(creal(g_b),cimag(g_b));


    g_a = s_a.real() + s_a.imag()*__I__;
    g_b = s_b.real() + s_b.imag()*__I__;
    // Ok here we screwed big time
    b = cusp::acosh(a);
    g_b = cacoshf(g_a);
    s_b = std::complex<ValueType>(creal(g_b),cimag(g_b));


    g_a = s_a.real() + s_a.imag()*__I__;
    g_b = s_b.real() + s_b.imag()*__I__;
    b = cusp::atan(a);
    g_b = catan(g_a);
    s_b = std::complex<ValueType>(creal(g_b),cimag(g_b));
