CAMLprim value spoc_cublasCaxpy (value n, value alpha, value x, value incx, value y, value incy, value dev){ CAMLparam5(n,alpha, x,incx, y); CAMLxparam2(incy, dev); CAMLlocal3(dev_vec_array, dev_vec, gi); CUdeviceptr d_A; CUdeviceptr d_B; int id; GET_VEC(x, d_A); GET_VEC(y, d_B); CUBLAS_GET_CONTEXT; cublasCaxpy(Int_val(n), Complex_val(alpha), (cuComplex*)d_A, Int_val(incx), (cuComplex*)d_B, Int_val(incy)); CUBLAS_CHECK_CALL(cublasGetError()); CUDA_RESTORE_CONTEXT; CAMLreturn(Val_unit); }
CAMLprim value math_catanh(value x) { CAMLparam1(x); CAMLreturn(caml_copy_complex(catanh(Complex_val(x)))); }
CAMLprim value math_cabs(value x) { CAMLparam1(x); CAMLreturn(caml_copy_double(cabs(Complex_val(x)))); }