monolish  0.14.2
MONOlithic LIner equation Solvers for Highly-parallel architecture
monolish_dense_vml.hpp
Go to the documentation of this file.
1 // this code is generated by gen_dense_vml.sh
2 #pragma once
3 
4 #include "../common/monolish_common.hpp"
5 
10 namespace monolish::vml {
11 
24 void add(const matrix::Dense<double> &A, const matrix::Dense<double> &B,
25  matrix::Dense<double> &C);
26 void add(const matrix::Dense<float> &A, const matrix::Dense<float> &B,
27  matrix::Dense<float> &C);
28 
41 void sub(const matrix::Dense<double> &A, const matrix::Dense<double> &B,
42  matrix::Dense<double> &C);
43 void sub(const matrix::Dense<float> &A, const matrix::Dense<float> &B,
44  matrix::Dense<float> &C);
45 
58 void mul(const matrix::Dense<double> &A, const matrix::Dense<double> &B,
59  matrix::Dense<double> &C);
60 void mul(const matrix::Dense<float> &A, const matrix::Dense<float> &B,
61  matrix::Dense<float> &C);
62 
75 void div(const matrix::Dense<double> &A, const matrix::Dense<double> &B,
76  matrix::Dense<double> &C);
77 void div(const matrix::Dense<float> &A, const matrix::Dense<float> &B,
78  matrix::Dense<float> &C);
79 
92 void add(const matrix::Dense<double> &A, const double alpha,
93  matrix::Dense<double> &C);
94 void add(const matrix::Dense<float> &A, const float alpha,
95  matrix::Dense<float> &C);
96 
109 void sub(const matrix::Dense<double> &A, const double alpha,
110  matrix::Dense<double> &C);
111 void sub(const matrix::Dense<float> &A, const float alpha,
112  matrix::Dense<float> &C);
113 
126 void mul(const matrix::Dense<double> &A, const double alpha,
127  matrix::Dense<double> &C);
128 void mul(const matrix::Dense<float> &A, const float alpha,
129  matrix::Dense<float> &C);
130 
143 void div(const matrix::Dense<double> &A, const double alpha,
144  matrix::Dense<double> &C);
145 void div(const matrix::Dense<float> &A, const float alpha,
146  matrix::Dense<float> &C);
147 
159 void pow(const matrix::Dense<double> &A, const matrix::Dense<double> &B,
160  matrix::Dense<double> &C);
161 void pow(const matrix::Dense<float> &A, const matrix::Dense<float> &B,
162  matrix::Dense<float> &C);
163 
175 void pow(const matrix::Dense<double> &A, const double alpha,
176  matrix::Dense<double> &C);
177 void pow(const matrix::Dense<float> &A, const float alpha,
178  matrix::Dense<float> &C);
179 
189 void sin(const matrix::Dense<double> &A, matrix::Dense<double> &C);
190 void sin(const matrix::Dense<float> &A, matrix::Dense<float> &C);
191 
201 void sqrt(const matrix::Dense<double> &A, matrix::Dense<double> &C);
202 void sqrt(const matrix::Dense<float> &A, matrix::Dense<float> &C);
203 
213 void sinh(const matrix::Dense<double> &A, matrix::Dense<double> &C);
214 void sinh(const matrix::Dense<float> &A, matrix::Dense<float> &C);
215 
225 void asin(const matrix::Dense<double> &A, matrix::Dense<double> &C);
226 void asin(const matrix::Dense<float> &A, matrix::Dense<float> &C);
227 
237 void asinh(const matrix::Dense<double> &A, matrix::Dense<double> &C);
238 void asinh(const matrix::Dense<float> &A, matrix::Dense<float> &C);
239 
249 void tan(const matrix::Dense<double> &A, matrix::Dense<double> &C);
250 void tan(const matrix::Dense<float> &A, matrix::Dense<float> &C);
251 
261 void tanh(const matrix::Dense<double> &A, matrix::Dense<double> &C);
262 void tanh(const matrix::Dense<float> &A, matrix::Dense<float> &C);
263 
273 void atan(const matrix::Dense<double> &A, matrix::Dense<double> &C);
274 void atan(const matrix::Dense<float> &A, matrix::Dense<float> &C);
275 
285 void atanh(const matrix::Dense<double> &A, matrix::Dense<double> &C);
286 void atanh(const matrix::Dense<float> &A, matrix::Dense<float> &C);
287 
297 void ceil(const matrix::Dense<double> &A, matrix::Dense<double> &C);
298 void ceil(const matrix::Dense<float> &A, matrix::Dense<float> &C);
299 
309 void floor(const matrix::Dense<double> &A, matrix::Dense<double> &C);
310 void floor(const matrix::Dense<float> &A, matrix::Dense<float> &C);
311 
321 void sign(const matrix::Dense<double> &A, matrix::Dense<double> &C);
322 void sign(const matrix::Dense<float> &A, matrix::Dense<float> &C);
323 
336 void max(const matrix::Dense<double> &A, const matrix::Dense<double> &B,
337  matrix::Dense<double> &C);
338 void max(const matrix::Dense<float> &A, const matrix::Dense<float> &B,
339  matrix::Dense<float> &C);
340 
353 void min(const matrix::Dense<double> &A, const matrix::Dense<double> &B,
354  matrix::Dense<double> &C);
355 void min(const matrix::Dense<float> &A, const matrix::Dense<float> &B,
356  matrix::Dense<float> &C);
357 
367 [[nodiscard]] double max(const matrix::Dense<double> &C);
368 [[nodiscard]] float max(const matrix::Dense<float> &C);
369 
379 [[nodiscard]] double min(const matrix::Dense<double> &C);
380 [[nodiscard]] float min(const matrix::Dense<float> &C);
381 
391 void reciprocal(const matrix::Dense<double> &a, matrix::Dense<double> &y);
392 void reciprocal(const matrix::Dense<float> &a, matrix::Dense<float> &y);
393 } // namespace monolish::vml
monolish::vml::ceil
void ceil(const matrix::CRS< double > &A, matrix::CRS< double > &C)
ceil to CRS matrix elements (C[0:nnz] = ceil(A[0:nnz]))
Definition: matrix_vml.cpp:357
monolish::vml::min
void min(const matrix::CRS< double > &A, const matrix::CRS< double > &B, matrix::CRS< double > &C)
Create a new CRS matrix with smallest elements of two matrices (C[0:nnz] = min(A[0:nnz],...
Definition: matrix_vml.cpp:390
monolish::vml::asinh
void asinh(const matrix::CRS< double > &A, matrix::CRS< double > &C)
asinh to CRS matrix elements (C[0:nnz] = asinh(A[0:nnz]))
Definition: matrix_vml.cpp:327
monolish::vml::max
void max(const matrix::CRS< double > &A, const matrix::CRS< double > &B, matrix::CRS< double > &C)
Create a new CRS matrix with greatest elements of two matrices (C[0:nnz] = max(A[0:nnz],...
Definition: matrix_vml.cpp:382
monolish::vml::sub
void sub(const matrix::CRS< double > &A, const matrix::CRS< double > &B, matrix::CRS< double > &C)
element by element subtract CRS matrix A and CRS matrix B.
Definition: matrix_vml.cpp:228
monolish::vml::sinh
void sinh(const matrix::CRS< double > &A, matrix::CRS< double > &C)
sinh to CRS matrix elements (C[0:nnz] = sinh(A[0:nnz]))
Definition: matrix_vml.cpp:315
monolish::vml::sqrt
void sqrt(const matrix::CRS< double > &A, matrix::CRS< double > &C)
sqrt to CRS matrix elements (C[0:nnz] = sqrt(A[0:nnz]))
Definition: matrix_vml.cpp:309
monolish::vml::reciprocal
void reciprocal(const matrix::CRS< double > &a, matrix::CRS< double > &y)
reciprocal to CRS matrix elements (C[0:nnz] = 1 / A[0:nnz])
Definition: matrix_vml.cpp:375
monolish::vml
Vector and Matrix element-wise math library.
Definition: monolish_crs_vml.hpp:10
monolish::vml::sign
void sign(const matrix::CRS< double > &A, matrix::CRS< double > &C)
sign to CRS matrix elements (C[0:nnz] = sign(A[0:nnz]))
Definition: matrix_vml.cpp:369
monolish::vml::floor
void floor(const matrix::CRS< double > &A, matrix::CRS< double > &C)
floor to CRS matrix elements (C[0:nnz] = floor(A[0:nnz]))
Definition: matrix_vml.cpp:363
monolish::vml::div
void div(const matrix::CRS< double > &A, const matrix::CRS< double > &B, matrix::CRS< double > &C)
element by element division CRS matrix A and CRS matrix B.
Definition: matrix_vml.cpp:244
monolish::vml::tan
void tan(const matrix::CRS< double > &A, matrix::CRS< double > &C)
tan to CRS matrix elements (C[0:nnz] = tan(A[0:nnz]))
Definition: matrix_vml.cpp:333
monolish::vml::add
void add(const matrix::CRS< double > &A, const matrix::CRS< double > &B, matrix::CRS< double > &C)
element by element addition CRS matrix A and CRS matrix B.
Definition: matrix_vml.cpp:220
monolish::vml::tanh
void tanh(const matrix::CRS< double > &A, matrix::CRS< double > &C)
tanh to CRS matrix elements (C[0:nnz] = tanh(A[0:nnz]))
Definition: matrix_vml.cpp:339
monolish::vml::pow
void pow(const matrix::CRS< double > &A, const matrix::CRS< double > &B, matrix::CRS< double > &C)
power to CRS matrix elements CRS matrix (C[0:N] = pow(A[0:N], B[0:N]))
Definition: matrix_vml.cpp:286
monolish::vml::mul
void mul(const matrix::CRS< double > &A, const matrix::CRS< double > &B, matrix::CRS< double > &C)
element by element multiplication CRS matrix A and CRS matrix B.
Definition: matrix_vml.cpp:236
monolish::vml::sin
void sin(const matrix::CRS< double > &A, matrix::CRS< double > &C)
sin to CRS matrix elements (C[0:nnz] = sin(A[0:nnz]))
Definition: matrix_vml.cpp:303
monolish::vml::atanh
void atanh(const matrix::CRS< double > &A, matrix::CRS< double > &C)
atanh to CRS matrix elements (C[0:nnz] = atanh(A[0:nnz]))
Definition: matrix_vml.cpp:351
monolish::vml::asin
void asin(const matrix::CRS< double > &A, matrix::CRS< double > &C)
asin to CRS matrix elements (C[0:nnz] = asin(A[0:nnz]))
Definition: matrix_vml.cpp:321
monolish::vml::atan
void atan(const matrix::CRS< double > &A, matrix::CRS< double > &C)
atan to CRS matrix elements (C[0:nnz] = atan(A[0:nnz]))
Definition: matrix_vml.cpp:345