1 #include "../../../../include/monolish_blas.hpp" 
    2 #include "../../../internal/monolish_internal.hpp" 
   13   const T *vecd = vec.data();
 
   16   const size_t N = get_col();
 
   17   const size_t Len = get_row() > get_col() ? get_row() : get_col();
 
   19   assert(Len == vec.size());
 
   21   if (gpu_status == 
true) {
 
   22 #if MONOLISH_USE_GPU // gpu 
   23 #pragma omp target teams distribute parallel for 
   24     for (
size_t i = 0; i < Len; i++) {
 
   25       vald[N * i + i] *= vecd[i];
 
   28     throw std::runtime_error(
"error USE_GPU is false, but gpu_status == true");
 
   31 #pragma omp parallel for 
   32     for (
size_t i = 0; i < Len; i++) {
 
   33       vald[N * i + i] *= vecd[i];
 
   48   const T *vecd = vec.data();
 
   51   const size_t N = get_col();
 
   52   const size_t Len = get_row() > get_col() ? get_row() : get_col();
 
   54   assert(Len == vec.size());
 
   56   if (gpu_status == 
true) {
 
   57 #if MONOLISH_USE_GPU // gpu 
   58 #pragma omp target teams distribute parallel for 
   59     for (
size_t i = 0; i < Len; i++) {
 
   60       vald[N * i + i] *= vecd[i];
 
   63     throw std::runtime_error(
"error USE_GPU is false, but gpu_status == true");
 
   66 #pragma omp parallel for 
   67     for (
size_t i = 0; i < Len; i++) {
 
   68       vald[N * i + i] *= vecd[i];
 
   75     const view1D<vector<double>, 
double> &vec);
 
   77     const view1D<vector<float>, 
float> &vec);
 
   84   const T *vecd = vec.data();
 
   87   const size_t N = get_col();
 
   88   const size_t Len = get_row() > get_col() ? get_row() : get_col();
 
   90   assert(Len == vec.size());
 
   92   if (gpu_status == 
true) {
 
   93 #if MONOLISH_USE_GPU // gpu 
   94 #pragma omp target teams distribute parallel for 
   95     for (
size_t i = 0; i < Len; i++) {
 
   96       vald[N * i + i] *= vecd[i];
 
   99     throw std::runtime_error(
"error USE_GPU is false, but gpu_status == true");
 
  102 #pragma omp parallel for 
  103     for (
size_t i = 0; i < Len; i++) {
 
  104       vald[N * i + i] *= vecd[i];
 
  111     const view1D<matrix::Dense<double>, 
double> &vec);
 
  113     const view1D<matrix::Dense<float>, 
float> &vec);