1mlib_MatrixMul_U8_U8_Mod(3MmLeIdBi)aLib Library Functmiloinbs_MatrixMul_U8_U8_Mod(3MLIB)
2
3
4
6 mlib_MatrixMul_U8_U8_Mod, mlib_MatrixMul_U8_U8_Sat, mlib_Matrix‐
7 Mul_U8C_U8C_Mod, mlib_MatrixMul_U8C_U8C_Sat, mlib_MatrixMul_S8_S8_Mod,
8 mlib_MatrixMul_S8_S8_Sat, mlib_MatrixMul_S8C_S8C_Mod, mlib_Matrix‐
9 Mul_S8C_S8C_Sat, mlib_MatrixMul_S16_U8_Mod, mlib_MatrixMul_S16_U8_Sat,
10 mlib_MatrixMul_S16_S8_Mod, mlib_MatrixMul_S16_S8_Sat, mlib_Matrix‐
11 Mul_S16_S16_Mod, mlib_MatrixMul_S16_S16_Sat, mlib_Matrix‐
12 Mul_S16C_U8C_Mod, mlib_MatrixMul_S16C_U8C_Sat, mlib_Matrix‐
13 Mul_S16C_S8C_Mod, mlib_MatrixMul_S16C_S8C_Sat, mlib_Matrix‐
14 Mul_S16C_S16C_Mod, mlib_MatrixMul_S16C_S16C_Sat, mlib_Matrix‐
15 Mul_S32_S16_Mod, mlib_MatrixMul_S32_S16_Sat, mlib_Matrix‐
16 Mul_S32_S32_Mod, mlib_MatrixMul_S32_S32_Sat, mlib_Matrix‐
17 Mul_S32C_S16C_Mod, mlib_MatrixMul_S32C_S16C_Sat, mlib_Matrix‐
18 Mul_S32C_S32C_Mod, mlib_MatrixMul_S32C_S32C_Sat - matrix multiplication
19
21 cc [ flag... ] file... -lmlib [ library... ]
22 #include <mlib.h>
23
24 mlib_status mlib_MatrixMul_U8_U8_Mod(mlib_u8 *z, const mlib_u8 *x,
25 const mlib_u8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
26
27
28 mlib_status mlib_MatrixMul_U8_U8_Sat(mlib_u8 *z, const mlib_u8 *x,
29 const mlib_u8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
30
31
32 mlib_status mlib_MatrixMul_U8C_U8C_Mod(mlib_u8 *z, const mlib_u8 *x,
33 const mlib_u8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
34
35
36 mlib_status mlib_MatrixMul_U8C_U8C_Sat(mlib_u8 *z, const mlib_u8 *x,
37 const mlib_u8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
38
39
40 mlib_status mlib_MatrixMul_S8_S8_Mod(mlib_s8 *z, const mlib_s8 *x,
41 const mlib_s8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
42
43
44 mlib_status mlib_MatrixMul_S8_S8_Sat(mlib_s8 *z, const mlib_s8 *x,
45 const mlib_s8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
46
47
48 mlib_status mlib_MatrixMul_S8C_S8C_Mod(mlib_s8 *z, const mlib_s8 *x,
49 const mlib_s8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
50
51
52 mlib_status mlib_MatrixMul_S8C_S8C_Sat(mlib_s8 *z, const mlib_s8 *x,
53 const mlib_s8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
54
55
56 mlib_status mlib_MatrixMul_S16_U8_Mod(mlib_s16 *z, const mlib_u8 *x,
57 const mlib_u8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
58
59
60 mlib_status mlib_MatrixMul_S16_U8_Sat(mlib_s16 *z, const mlib_u8 *x,
61 const mlib_u8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
62
63
64 mlib_status mlib_MatrixMul_S16_S8_Mod(mlib_s16 *z, const mlib_s8 *x,
65 const mlib_s8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
66
67
68 mlib_status mlib_MatrixMul_S16_S8_Sat(mlib_s16 *z, const mlib_s8 *x,
69 const mlib_s8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
70
71
72 mlib_status mlib_MatrixMul_S16_S16_Mod(mlib_s16 *z, const mlib_s16 *x,
73 const mlib_s16 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
74
75
76 mlib_status mlib_MatrixMul_S16_S16_Sat(mlib_s16 *z, const mlib_s16 *x,
77 const mlib_s16 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
78
79
80 mlib_status mlib_MatrixMul_S16C_U8C_Mod(mlib_s16 *z, const mlib_u8 *x,
81 const mlib_u8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
82
83
84 mlib_status mlib_MatrixMul_S16C_U8C_Sat(mlib_s16 *z, const mlib_u8 *x,
85 const mlib_u8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
86
87
88 mlib_status mlib_MatrixMul_S16C_S8C_Mod(mlib_s16 *z, const mlib_s8 *x,
89 const mlib_s8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
90
91
92 mlib_status mlib_MatrixMul_S16C_S8C_Sat(mlib_s16 *z, const mlib_s8 *x,
93 const mlib_s8 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
94
95
96 mlib_status mlib_MatrixMul_S16C_S16C_Mod(mlib_s16 *z, const mlib_s16 *x,
97 const mlib_s16 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
98
99
100 mlib_status mlib_MatrixMul_S16C_S16C_Sat(mlib_s16 *z, const mlib_s16 *x,
101 const mlib_s16 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
102
103
104 mlib_status mlib_MatrixMul_S32_S16_Mod(mlib_s32 *z, const mlib_s16 *x,
105 const mlib_s16 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
106
107
108 mlib_status mlib_MatrixMul_S32_S16_Sat(mlib_s32 *z, const mlib_s16 *x,
109 const mlib_s16 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
110
111
112 mlib_status mlib_MatrixMul_S32_S32_Mod(mlib_s32 *z, const mlib_s32 *x,
113 const mlib_s32 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
114
115
116 mlib_status mlib_MatrixMul_S32_S32_Sat(mlib_s32 *z, const mlib_s32 *x,
117 const mlib_s32 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
118
119
120 mlib_status mlib_MatrixMul_S32C_S16C_Mod(mlib_s32 *z, const mlib_s16 *x,
121 const mlib_s16 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
122
123
124 mlib_status mlib_MatrixMul_S32C_S16C_Sat(mlib_s32 *z, const mlib_s16 *x,
125 const mlib_s16 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
126
127
128 mlib_status mlib_MatrixMul_S32C_S32C_Mod(mlib_s32 *z, const mlib_s32 *x,
129 const mlib_s32 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
130
131
132 mlib_status mlib_MatrixMul_S32C_S32C_Sat(mlib_s32 *z, const mlib_s32 *x,
133 const mlib_s32 *y, mlib_s32 m, mlib_s32 l, mlib_s32 n);
134
135
137 Each of these functions performs matrix multiplication of the first
138 matrix to the second matrix or the first complex matrix to the second
139 complex matrix.
140
141
142 For real data, the following equation is used:
143
144 l-1
145 z[i*n + j] = SUM (x[i*l + k] * y[k*n + j])
146 k=0
147
148
149
150 where i = 0, 1, ..., (m - 1); j = 0, 1, ..., (n - 1).
151
152
153 For complex data, the following equation is used:
154
155 l-1
156 z[2*(i*n + j)] = SUM (xR*yR - xI*yI)
157 k=0
158
159 l-1
160 z[2*(i*n + j) + 1] = SUM (xR*yI + xI*yR)
161 k=0
162
163
164
165 where
166
167 xR = x[2*(i*l + k)]
168 xI = x[2*(i*l + k) + 1]
169 yR = y[2*(k*n + j)]
170 yI = y[2*(k*n + j) + 1]
171 i = 0, 1, ..., (m - 1)
172 j = 0, 1, ..., (n - 1)
173
174
176 Each of the functions takes the following arguments:
177
178 z Pointer to the destination matrix.
179
180
181 x Pointer to the first source matrix.
182
183
184 y Pointer to the second source matrix.
185
186
187 m Number of rows in the first matrix.
188
189
190 l Number of columns in the first matrix, and number of rows in the
191 second matrix.
192
193
194 n Number of columns in the second matrix.
195
196
198 Each of the functions returns MLIB_SUCCESS if successful. Otherwise it
199 returns MLIB_FAILURE.
200
202 See attributes(5) for descriptions of the following attributes:
203
204
205
206
207 ┌─────────────────────────────┬─────────────────────────────┐
208 │ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
209 ├─────────────────────────────┼─────────────────────────────┤
210 │Interface Stability │Committed │
211 ├─────────────────────────────┼─────────────────────────────┤
212 │MT-Level │MT-Safe │
213 └─────────────────────────────┴─────────────────────────────┘
214
216 mlib_MatrixMulShift_S16_S16_Mod(3MLIB), attributes(5)
217
218
219
220SunOS 5.11 2 Mar 2007 mlib_MatrixMul_U8_U8_Mod(3MLIB)