4 #include "../common/monolish_common.hpp"
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
189 void sin(
const matrix::Dense<double> &A, matrix::Dense<double> &C);
190 void sin(
const matrix::Dense<float> &A, matrix::Dense<float> &C);
201 void sqrt(
const matrix::Dense<double> &A, matrix::Dense<double> &C);
202 void sqrt(
const matrix::Dense<float> &A, matrix::Dense<float> &C);
213 void sinh(
const matrix::Dense<double> &A, matrix::Dense<double> &C);
214 void sinh(
const matrix::Dense<float> &A, matrix::Dense<float> &C);
225 void asin(
const matrix::Dense<double> &A, matrix::Dense<double> &C);
226 void asin(
const matrix::Dense<float> &A, matrix::Dense<float> &C);
237 void asinh(
const matrix::Dense<double> &A, matrix::Dense<double> &C);
238 void asinh(
const matrix::Dense<float> &A, matrix::Dense<float> &C);
249 void tan(
const matrix::Dense<double> &A, matrix::Dense<double> &C);
250 void tan(
const matrix::Dense<float> &A, matrix::Dense<float> &C);
261 void tanh(
const matrix::Dense<double> &A, matrix::Dense<double> &C);
262 void tanh(
const matrix::Dense<float> &A, matrix::Dense<float> &C);
273 void atan(
const matrix::Dense<double> &A, matrix::Dense<double> &C);
274 void atan(
const matrix::Dense<float> &A, matrix::Dense<float> &C);
285 void atanh(
const matrix::Dense<double> &A, matrix::Dense<double> &C);
286 void atanh(
const matrix::Dense<float> &A, matrix::Dense<float> &C);
297 void ceil(
const matrix::Dense<double> &A, matrix::Dense<double> &C);
298 void ceil(
const matrix::Dense<float> &A, matrix::Dense<float> &C);
309 void floor(
const matrix::Dense<double> &A, matrix::Dense<double> &C);
310 void floor(
const matrix::Dense<float> &A, matrix::Dense<float> &C);
321 void sign(
const matrix::Dense<double> &A, matrix::Dense<double> &C);
322 void sign(
const matrix::Dense<float> &A, matrix::Dense<float> &C);
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);
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);
367 [[nodiscard]]
double max(
const matrix::Dense<double> &C);
368 [[nodiscard]]
float max(
const matrix::Dense<float> &C);
379 [[nodiscard]]
double min(
const matrix::Dense<double> &C);
380 [[nodiscard]]
float min(
const matrix::Dense<float> &C);
391 void reciprocal(
const matrix::Dense<double> &a, matrix::Dense<double> &y);
392 void reciprocal(
const matrix::Dense<float> &a, matrix::Dense<float> &y);