1#include <muda/ext/linear_system/type_mapper/data_type_mapper.h>
4namespace details::linear_system
7 MUDA_INLINE
void norm_common_check(CDenseVectorView<T> x)
9 MUDA_ASSERT(x.data(),
"Vector x is empty");
14T LinearSystemContext::norm(CDenseVectorView<T> x)
23void LinearSystemContext::norm(CDenseVectorView<T> x, VarView<T> result)
25 set_pointer_mode_device();
26 details::linear_system::norm_common_check(x);
27 auto type = cuda_data_type<T>();
28 checkCudaErrors(cublasNrm2Ex(
29 cublas(), x.size() / x.inc(), x.data(), type, x.inc(), result.data(), type, type));
33void LinearSystemContext::norm(CDenseVectorView<T> x, T* result)
35 set_pointer_mode_host();
36 details::linear_system::norm_common_check(x);
37 auto type = cuda_data_type<T>();
38 checkCudaErrors(cublasNrm2Ex(
39 cublas(), x.size() / x.inc(), x.data(), type, x.inc(), result, type, type));