25#include <grass/gmath.h>
50void G_math_d_aA_B(
double **A,
double **B,
double a,
double **C,
int rows,
58#pragma omp for schedule (static) private(i, j)
59 for (i = rows - 1; i >= 0; i--)
60 for (j = cols - 1; j >= 0; j--)
61 C[i][j] = a * A[i][j];
68#pragma omp for schedule (static) private(i, j)
69 for (i = rows - 1; i >= 0; i--)
70 for (j = cols - 1; j >= 0; j--)
71 C[i][j] = A[i][j] + B[i][j];
74#pragma omp for schedule (static) private(i, j)
75 for (i = rows - 1; i >= 0; i--)
76 for (j = cols - 1; j >= 0; j--)
77 C[i][j] = B[i][j] - A[i][j];
80#pragma omp for schedule (static) private(i, j)
81 for (i = rows - 1; i >= 0; i--)
82 for (j = cols - 1; j >= 0; j--)
83 C[i][j] = a * A[i][j] + B[i][j];
120#pragma omp for schedule (static) private(i, j)
121 for (i = rows - 1; i >= 0; i--)
122 for (j = cols - 1; j >= 0; j--)
123 C[i][j] = a * A[i][j];
129#pragma omp for schedule (static) private(i, j)
130 for (i = rows - 1; i >= 0; i--)
131 for (j = cols - 1; j >= 0; j--)
132 C[i][j] = A[i][j] + B[i][j];
134 else if (a == -1.0) {
135#pragma omp for schedule (static) private(i, j)
136 for (i = rows - 1; i >= 0; i--)
137 for (j = cols - 1; j >= 0; j--)
138 C[i][j] = B[i][j] - A[i][j];
141#pragma omp for schedule (static) private(i, j)
142 for (i = rows - 1; i >= 0; i--)
143 for (j = cols - 1; j >= 0; j--)
144 C[i][j] = a * A[i][j] + B[i][j];
175 int cols_A,
int cols_B)
179#pragma omp for schedule (static) private(i, j, k)
180 for (i = 0; i < rows_A; i++) {
181 for (j = 0; j < cols_B; j++) {
183 for (k = cols_A - 1; k >= 0; k--) {
184 C[i][j] += A[i][k] * B[k][j];
216 int cols_A,
int cols_B)
220#pragma omp for schedule (static) private(i, j, k)
221 for (i = 0; i < rows_A; i++) {
222 for (j = 0; j < cols_B; j++) {
224 for (k = cols_A - 1; k >= 0; k--) {
225 C[i][j] += A[i][k] * B[k][j];
void G_math_f_aA_B(float **A, float **B, float a, float **C, int rows, int cols)
Add two matrices and scale matrix A with the scalar a.
void G_math_f_AB(float **A, float **B, float **C, int rows_A, int cols_A, int cols_B)
Matrix multiplication.
void G_math_d_aA_B(double **A, double **B, double a, double **C, int rows, int cols)
Add two matrices and scale matrix A with the scalar a.
void G_math_d_AB(double **A, double **B, double **C, int rows_A, int cols_A, int cols_B)
Matrix multiplication.