-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbro_ska.h
More file actions
50 lines (41 loc) · 971 Bytes
/
bro_ska.h
File metadata and controls
50 lines (41 loc) · 971 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*
* Generic multiplication (+ add) routines for matrices smaller than 128x128
* For legacy systems that don't have SSE2
*
* Pierre Karpman (CWI)
* 2017-07
*/
#include <stdint.h>
#include <m4ri/m4ri.h>
#ifndef __MUL_BRO_SKA_H
#define __MUL_BRO_SKA_H
/*
* All the following do:
* if (clear) res = V*A
* if (!clear) res = res + V*A
*/
/*
* assert(V->ncols <= 64)
* assert(A->ncols <= 64)
*/
void mul_64_64_bro_ska(mzd_t *res, mzd_t *V, mzd_t *A, int clear);
/*
* assert(V->ncols > 64)
* assert(V->ncols <= 128)
* assert(A->ncols <= 64)
*/
void mul_128_64_bro_ska(mzd_t *res, mzd_t *V, mzd_t *A, int clear);
/*
* assert(V->ncols <= 64)
* assert(A->ncols > 64)
* assert(A->ncols <= 128)
*/
void mul_64_128_bro_ska(mzd_t *res, mzd_t *V, mzd_t *A, int clear);
/*
* assert(V->ncols > 64)
* assert(V->ncols <= 128)
* assert(A->ncols > 64)
* assert(A->ncols <= 128)
*/
void mul_128_128_bro_ska(mzd_t *res, mzd_t *V, mzd_t *A, int clear);
#endif