1 #include "../../../../include/monolish_blas.hpp"
2 #include "../../../internal/monolish_internal.hpp"
12 const T *vecd = vec.data();
15 const size_t N = get_col();
16 const size_t Len = get_row() > get_col() ? get_row() : get_col();
18 assert(Len == vec.size());
20 if (gpu_status ==
true) {
21 #if MONOLISH_USE_NVIDIA_GPU // gpu
22 #pragma omp target teams distribute parallel for
23 for (
size_t i = 0; i < Len; i++) {
24 vald[N * i + i] -= vecd[i];
27 throw std::runtime_error(
"error USE_GPU is false, but gpu_status == true");
30 #pragma omp parallel for
31 for (
size_t i = 0; i < Len; i++) {
32 vald[N * i + i] -= vecd[i];
47 const T *vecd = vec.data();
50 const size_t N = get_col();
51 const size_t Len = get_row() > get_col() ? get_row() : get_col();
53 assert(Len == vec.size());
55 if (gpu_status ==
true) {
56 #if MONOLISH_USE_NVIDIA_GPU // gpu
57 #pragma omp target teams distribute parallel for
58 for (
size_t i = 0; i < Len; i++) {
59 vald[N * i + i] -= vecd[i];
62 throw std::runtime_error(
"error USE_GPU is false, but gpu_status == true");
65 #pragma omp parallel for
66 for (
size_t i = 0; i < Len; i++) {
67 vald[N * i + i] -= vecd[i];
74 const view1D<vector<double>,
double> &vec);
76 const view1D<vector<float>,
float> &vec);
83 const T *vecd = vec.data();
86 const size_t N = get_col();
87 const size_t Len = get_row() > get_col() ? get_row() : get_col();
89 assert(Len == vec.size());
91 if (gpu_status ==
true) {
92 #if MONOLISH_USE_NVIDIA_GPU // gpu
93 #pragma omp target teams distribute parallel for
94 for (
size_t i = 0; i < Len; i++) {
95 vald[N * i + i] -= vecd[i];
98 throw std::runtime_error(
"error USE_GPU is false, but gpu_status == true");
101 #pragma omp parallel for
102 for (
size_t i = 0; i < Len; i++) {
103 vald[N * i + i] -= vecd[i];
110 const view1D<matrix::Dense<double>,
double> &vec);
112 const view1D<matrix::Dense<float>,
float> &vec);