7#include "../../../include/lammp/impl/signed.h"
8#include "../../../include/lammp/impl/tmp_alloc.h"
9#include "../../../include/lammp/lmmpn.h"
10#include "../../../include/lammp/impl/mparam.h"
11#include "../../../include/lammp/matrix.h"
41 *tn = (*maxa << 1) + 1;
213#define A11 (matA->a00)
214#define A12 (matA->a01)
215#define A21 (matA->a10)
216#define A22 (matA->a11)
217#define B11 (matB->a00)
218#define B12 (matB->a01)
219#define B21 (matB->a10)
220#define B22 (matB->a11)
221#define A11n (matA->n00)
222#define A12n (matA->n01)
223#define A21n (matA->n10)
224#define A22n (matA->n11)
225#define B11n (matB->n00)
226#define B12n (matB->n01)
227#define B21n (matB->n10)
228#define B22n (matB->n11)
234#define t1 (dst->a00 + maxa)
235#define t2 (dst->a01 + maxa)
236#define t3 (dst->a10 + maxa)
237#define t4 (dst->a11 + maxa)
240#define p3 (tp + 2 * tn)
241#define p4 (tp + 3 * tn)
242#define p5 (tp + 4 * tn)
243#define p6 (tp + 5 * tn)
244#define p7 (tp + 6 * tn)
297#define C11 (dst->a00)
298#define C12 (dst->a01)
299#define C21 (dst->a10)
300#define C22 (dst->a11)
301#define C11n (dst->n00)
302#define C12n (dst->n01)
303#define C21n (dst->n10)
304#define C22n (dst->n11)
353#define A11 (mat->a00)
354#define A12 (mat->a01)
355#define A21 (mat->a10)
356#define A22 (mat->a11)
357#define A11n (mat->n00)
358#define A12n (mat->n01)
359#define A21n (mat->n10)
360#define A22n (mat->n11)
368#define p3 (tp + 2 * tn)
369#define p4 (tp + 3 * tn)
370#define p5 (tp + 4 * tn)
371#define p6 (tp + 5 * tn)
372#define p7 (tp + 6 * tn)
409#define C11 (dst->a00)
410#define C12 (dst->a01)
411#define C21 (dst->a10)
412#define C22 (dst->a11)
413#define C11n (dst->n00)
414#define C12n (dst->n01)
415#define C21n (dst->n10)
416#define C22n (dst->n11)
#define lmmp_param_assert(x)
void lmmp_mat22_mul_strassen_(lmmp_mat22_t *dst, const lmmp_mat22_t *matA, const lmmp_mat22_t *matB, mp_ptr tp, mp_size_t tn, mp_size_t maxa)
计算(稠密)2x2矩阵和(稠密)2x2矩阵的乘积(STRASSEN算法)
int lmmp_mat22_mul_size_(lmmp_mat22_t *dst, const lmmp_mat22_t *matA, const lmmp_mat22_t *matB, mp_size_t *tn, mp_size_t *maxa)
计算2x2矩阵和2x2矩阵的乘积需要分配的内存
void lmmp_mat22_mul_basecase_(lmmp_mat22_t *dst, const lmmp_mat22_t *matA, const lmmp_mat22_t *matB, mp_ptr tp, mp_size_t tn)
计算2x2矩阵和2x2矩阵的乘积
void lmmp_mat22_sqr_strassen_(lmmp_mat22_t *dst, const lmmp_mat22_t *mat, mp_ptr tp, mp_size_t tn)
计算(稠密)2x2矩阵平方(STRASSEN算法)
void lmmp_mat22_sqr_basecase_(lmmp_mat22_t *dst, const lmmp_mat22_t *matA, mp_ptr tp, mp_size_t tn)
计算2x2矩阵平方
#define MAT22_SQR_STRASSEN_THRESHOLD
#define MAT22_MUL_STRASSEN_THRESHOLD
static mp_ssize_t lmmp_sqr_signed_(mp_ptr dst, mp_srcptr numa, mp_ssize_t na)
计算带符号数的平方
static mp_ssize_t lmmp_add_signed_(mp_ptr dst, mp_srcptr numa, mp_ssize_t na, mp_srcptr numb, mp_ssize_t nb)
计算带符号数的加法
static mp_ssize_t lmmp_mul_signed_(mp_ptr dst, mp_srcptr numa, mp_ssize_t na, mp_srcptr numb, mp_ssize_t nb)
计算带符号数的乘法
#define TALLOC_TYPE(n, type)
#define BALLOC_TYPE(n, type)