1mlib_MatrixMul_U8_U8_Mod(3MmLeIdBi)aLib Library Functmiloinbs_MatrixMul_U8_U8_Mod(3MLIB)
2
3
4

NAME

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

SYNOPSIS

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

DESCRIPTION

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

PARAMETERS

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

RETURN VALUES

198       Each of the functions returns MLIB_SUCCESS if successful. Otherwise  it
199       returns MLIB_FAILURE.
200

ATTRIBUTES

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

SEE ALSO

216       mlib_MatrixMulShift_S16_S16_Mod(3MLIB), attributes(5)
217
218
219
220SunOS 5.11                        2 Mar 2007   mlib_MatrixMul_U8_U8_Mod(3MLIB)
Impressum