1mlib_MatrixMulSShift_U8_U8_mMeoddi(a3LMiLbIBL)ibrarymlFiubn_cMtaitornisxMulSShift_U8_U8_Mod(3MLIB)
2
3
4

NAME

6       mlib_MatrixMulSShift_U8_U8_Mod,         mlib_MatrixMulSShift_U8_U8_Sat,
7       mlib_MatrixMulSShift_U8C_U8C_Mod,     mlib_MatrixMulSShift_U8C_U8C_Sat,
8       mlib_MatrixMulSShift_S8_S8_Mod,         mlib_MatrixMulSShift_S8_S8_Sat,
9       mlib_MatrixMulSShift_S8C_S8C_Mod,     mlib_MatrixMulSShift_S8C_S8C_Sat,
10       mlib_MatrixMulSShift_S16_S16_Mod,     mlib_MatrixMulSShift_S16_S16_Sat,
11       mlib_MatrixMulSShift_S16C_S16C_Mod, mlib_MatrixMulSShift_S16C_S16C_Sat,
12       mlib_MatrixMulSShift_S32_S32_Mod,     mlib_MatrixMulSShift_S32_S32_Sat,
13       mlib_MatrixMulSShift_S32C_S32C_Mod,  mlib_MatrixMulSShift_S32C_S32C_Sat
14       - matrix multiplication by scalar plus shifting
15

SYNOPSIS

17       cc [ flag... ] file... -lmlib [ library... ]
18       #include <mlib.h>
19
20       mlib_status mlib_MatrixMulSShift_U8_U8_Mod(mlib_u8 *z,
21            const mlib_u8 *x, const mlib_u8 *c, mlib_s32 m, mlib_s32 n,
22            mlib_s32 shift);
23
24
25       mlib_status mlib_MatrixMulSShift_U8_U8_Sat(mlib_u8 *z,
26            const mlib_u8 *x, const mlib_u8 *c, mlib_s32 m, mlib_s32 n,
27            mlib_s32 shift);
28
29
30       mlib_status mlib_MatrixMulSShift_U8C_U8C_Mod(mlib_u8 *z,
31            const mlib_u8 *x, const mlib_u8 *c, mlib_s32 m, mlib_s32 n,
32             mlib_s32 shift);
33
34
35       mlib_status mlib_MatrixMulSShift_U8C_U8C_Sat(mlib_u8 *z,
36            const mlib_u8 *x, const mlib_u8 *c, mlib_s32 m, mlib_s32 n,
37            mlib_s32 shift);
38
39
40       mlib_status mlib_MatrixMulSShift_S8_S8_Mod(mlib_s8 *z,
41            const mlib_s8 *x, const mlib_s8 *c, mlib_s32 m, mlib_s32 n,
42            mlib_s32 shift);
43
44
45       mlib_status mlib_MatrixMulSShift_S8_S8_Sat(mlib_s8 *z,
46            const mlib_s8 *x, const mlib_s8 *c, mlib_s32 m, mlib_s32 n,
47            mlib_s32 shift);
48
49
50       mlib_status mlib_MatrixMulSShift_S8C_S8C_Mod(mlib_s8 *z,
51            const mlib_s8 *x, const mlib_s8 *c, mlib_s32 m, mlib_s32 n,
52            mlib_s32 shift);
53
54
55       mlib_status mlib_MatrixMulSShift_S8C_S8C_Sat(mlib_s8 *z,
56            const mlib_s8 *x, const mlib_s8 *c, mlib_s32 m, mlib_s32 n,
57            mlib_s32 shift);
58
59
60       mlib_status mlib_MatrixMulSShift_S16_S16_Mod(mlib_s16 *z,
61            const mlib_s16 *x, const mlib_s16 *c, mlib_s32 m, mlib_s32 n,
62            mlib_s32 shift);
63
64
65       mlib_status mlib_MatrixMulSShift_S16_S16_Sat(mlib_s16 *z,
66            const mlib_s16 *x, const mlib_s16 *c, mlib_s32 m, mlib_s32 n,
67            mlib_s32 shift);
68
69
70       mlib_status mlib_MatrixMulSShift_S16C_S16C_Mod(mlib_s16 *z,
71            const mlib_s16 *x, const mlib_s16 *c, mlib_s32 m, mlib_s32 n,
72            mlib_s32 shift);
73
74
75       mlib_status mlib_MatrixMulSShift_S16C_S16C_Sat(mlib_s16 *z,
76            const mlib_s16 *x, const mlib_s16 *c, mlib_s32 m, mlib_s32 n,
77            mlib_s32 shift);
78
79
80       mlib_status mlib_MatrixMulSShift_S32_S32_Mod(mlib_s32 *z,
81            const mlib_s32 *x, const mlib_s32 *c, mlib_s32 m, mlib_s32 n,
82            mlib_s32 shift);
83
84
85       mlib_status mlib_MatrixMulSShift_S32_S32_Sat(mlib_s32 *z,
86            const mlib_s32 *x, const mlib_s32 *c, mlib_s32 m, mlib_s32 n,
87            mlib_s32 shift);
88
89
90       mlib_status mlib_MatrixMulSShift_S32C_S32C_Mod(mlib_s32 *z,
91            const mlib_s32 *x, const mlib_s32 *c, mlib_s32 m, mlib_s32 n,
92            mlib_s32 shift);
93
94
95       mlib_status mlib_MatrixMulSShift_S32C_S32C_Sat(mlib_s32 *z,
96            const mlib_s32 *x, const mlib_s32 *c, mlib_s32 m, mlib_s32 n,
97            mlib_s32 shift);
98
99

DESCRIPTION

101       Each  of  these  functions performs a multiplication of a matrix with a
102       scalar and shifts the result.
103
104
105       For real data, the following equation is used:
106
107         z[i] = c[0]*x[i]*2**(-shift)
108
109
110
111       where i = 0, 1, ..., (m*n - 1).
112
113
114       For complex data, the following equation is used:
115
116         z[2*i]     = (c[0]*x[2*i] - c[1]*x[2*i + 1])*2**(-shift)
117         z[2*i + 1] = (c[1]*x[2*i] + c[0]*x[2*i + 1])*2**(-shift)
118
119
120
121       where i = 0, 1, ..., (m*n - 1).
122
123
124       The ranges of valid shift are:
125
126         1 ≤ shift ≤ 8   for U8, S8, U8C, S8C types
127         1 ≤ shift ≤ 16  for S16, S16C types
128         1 ≤ shift ≤ 31  for S32, S32C types
129
130

PARAMETERS

132       Each of the functions takes the following arguments:
133
134       z        Pointer to the destination matrix.
135
136
137       x        Pointer to the source matrix.
138
139
140       c        Pointer to the source scalar. When the function is  used  with
141                complex  data  types,  c[0]  contains  the scalar for the real
142                part, and c[1] contains the scalar for the imaginary part.
143
144
145       m        Number of rows in each matrix.
146
147
148       n        Number of columns in each matrix.
149
150
151       shift    Right shifting factor.
152
153

RETURN VALUES

155       Each of the functions returns MLIB_SUCCESS if successful. Otherwise  it
156       returns MLIB_FAILURE.
157

ATTRIBUTES

159       See attributes(5) for descriptions of the following attributes:
160
161
162
163
164       ┌─────────────────────────────┬─────────────────────────────┐
165       │      ATTRIBUTE TYPE         │      ATTRIBUTE VALUE        │
166       ├─────────────────────────────┼─────────────────────────────┤
167       │Interface Stability          │Committed                    │
168       ├─────────────────────────────┼─────────────────────────────┤
169       │MT-Level                     │MT-Safe                      │
170       └─────────────────────────────┴─────────────────────────────┘
171

SEE ALSO

173       mlib_MatrixMulSShift_U8_Mod(3MLIB), attributes(5)
174
175
176
177SunOS 5.11                        2 Mar 20m0l7ib_MatrixMulSShift_U8_U8_Mod(3MLIB)
Impressum