monolish
0.14.0
MONOlithic LIner equation Solvers for Highly-parallel architecture
src
vml
matrix
arithmetic
matsub.hpp
Go to the documentation of this file.
1
#pragma once
2
3
namespace
monolish
{
4
5
namespace
{
6
template
<
typename
F1,
typename
F2,
typename
F3>
7
void
smsub_core(
const
F1 &A,
const
F2 alpha, F3 &C) {
8
Logger &logger =
Logger::get_instance
();
9
logger.func_in(
monolish_func
);
10
11
// err
12
assert(
util::is_same_size
(A, C));
13
assert(
util::is_same_device_mem_stat
(A, C));
14
15
internal::vsub(A.get_nnz(), A.val.data(), alpha, C.val.data(),
16
C.get_device_mem_stat());
17
18
logger.func_out();
19
}
20
21
template
<
typename
F1,
typename
F2,
typename
F3>
22
void
mmsub_core(
const
F1 &A,
const
F2 &B, F3 &C) {
23
Logger &logger =
Logger::get_instance
();
24
logger.func_in(
monolish_func
);
25
26
// err
27
assert(
util::is_same_size
(A, B, C));
28
assert(
util::is_same_structure
(A, B, C));
29
assert(
util::is_same_device_mem_stat
(A, B, C));
30
31
internal::vsub(A.get_nnz(), A.val.data(), B.val.data(), C.val.data(),
32
C.get_device_mem_stat());
33
34
logger.func_out();
35
}
36
}
// namespace
37
38
}
// namespace monolish
monolish::util::is_same_size
bool is_same_size(const T &x, const U &y)
compare size of vector or 1Dview (same as is_same_structure())
Definition:
monolish_common.hpp:358
monolish_func
#define monolish_func
Definition:
monolish_logger.hpp:9
monolish::util::is_same_structure
bool is_same_structure(const T A, const U B)
compare matrix structure
Definition:
monolish_common.hpp:268
monolish::util::is_same_device_mem_stat
bool is_same_device_mem_stat(const T &arg1, const U &arg2)
compare same device memory status
Definition:
monolish_common.hpp:431
monolish
Definition:
monolish_matrix_blas.hpp:9
monolish::Logger::get_instance
static Logger & get_instance()
Definition:
monolish_logger.hpp:42
Generated by
1.8.17