 #ifdef __GNUC__  
   /* Use the c99 complex function from gcc to test the
    function not part of the standard */
-  if(sizeof(ValueType) == 4){
+  if(is_same_type<ValueType,float>::result){
     __complex__ float g_a;
     __complex__ float g_b;
     g_a = s_a.real() + s_a.imag()*__I__;

  *a = ret;
}

template <typename ValueType>
void test_complex_compilation()
{
  cusp::complex<ValueType> a;
  cusp::complex<ValueType> * d_a;  

  a /= b;
  return a;
}


template <typename ValueType>
__host__ __device__ cusp::complex<ValueType> test_complex_non_members(){
