1mlib_VectorMulMShift_S16_S1m6e_dMioadL(i3bMLLIiBb)ramrlyibF_uVneccttioornMsulMShift_S16_S16_Mod(3MLIB)
2
3
4
6 mlib_VectorMulMShift_S16_S16_Mod, mlib_VectorMulMShift_S16_S16_Sat,
7 mlib_VectorMulMShift_S16C_S16C_Mod, mlib_VectorMulMShift_S16C_S16C_Sat
8 - multiplication of vector by matrix with shifting
9
11 cc [ flag... ] file... -lmlib [ library... ]
12 #include <mlib.h>
13
14 mlib_status mlib_VectorMulMShift_S16_S16_Mod(mlib_s16 *z,
15 const mlib_s16 *x, const mlib_s16 *y, mlib_s32 m,
16 mlib_s32 n, mlib_s32 shift);
17
18
19 mlib_status mlib_VectorMulMShift_S16_S16_Sat(mlib_s16 *z,
20 const mlib_s16 *x, const mlib_s16 *y, mlib_s32 m,
21 mlib_s32 n, mlib_s32 shift);
22
23
24 mlib_status mlib_VectorMulMShift_S16C_S16C_Mod(mlib_s16 *z,
25 const mlib_s16 *x, const mlib_s16 *y, mlib_s32 m,
26 mlib_s32 n, mlib_s32 shift);
27
28
29 mlib_status mlib_VectorMulMShift_S16C_S16C_Sat(mlib_s16 *z,
30 const mlib_s16 *x, const mlib_s16 *y, mlib_s32 m,
31 mlib_s32 n, mlib_s32 shift);
32
33
35 Each of these functions multiplies a vector by a matrix and shifts the
36 results.
37
38
39 For real data, the following equation is used:
40
41 m-1
42 z[i] = { SUM (x[j] * y[j*m + i]) } * 2**(-shift)
43 j=0
44
45
46
47 where i = 0, 1, ..., (n - 1).
48
49
50 For complex data, the following equation is used:
51
52 m-1
53 z[2*i ] = { SUM (xR*yR - xI*yI) } * 2**(-shift)
54 j=0
55
56 m-1
57 z[2*i + 1] = { SUM (xR*yI + xI*yR) } * 2**(-shift)
58 j=0
59
60
61
62 where i = 0, 1, ..., (n - 1), and
63
64 xR = x[2*j]
65 xI = x[2*j + 1]
66 yR = y[2*(j*m + i)]
67 yI = y[2*(j*m + i) + 1]
68
69
71 Each of the functions takes the following arguments:
72
73 z Pointer to the first element of the destination vector.
74
75
76 x Pointer to the first element of the source vector.
77
78
79 y Pointer to the first element of the source matrix.
80
81
82 m Number of rows in the matrix, and number of elements in the
83 source vector.
84
85
86 n Number of columns in the matrix, and number of elements in the
87 destination vector.
88
89
90 shift Right shifting factor.
91
92
94 Each of the functions returns MLIB_SUCCESS if successful. Otherwise it
95 returns MLIB_FAILURE.
96
98 See attributes(5) for descriptions of the following attributes:
99
100
101
102
103 ┌─────────────────────────────┬─────────────────────────────┐
104 │ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
105 ├─────────────────────────────┼─────────────────────────────┤
106 │Interface Stability │Committed │
107 ├─────────────────────────────┼─────────────────────────────┤
108 │MT-Level │MT-Safe │
109 └─────────────────────────────┴─────────────────────────────┘
110
112 mlib_VectorMulM_U8_U8_Mod(3MLIB), attributes(5)
113
114
115
116SunOS 5.11 2 Marm2l0i0b7_VectorMulMShift_S16_S16_Mod(3MLIB)