Lines Matching +full:- +full:a
6 * Target Processor: Cortex-M and Cortex-A cores
9 * Copyright (c) 2010-2022 Arm Limited or its affiliates. All rights reserved.
11 * SPDX-License-Identifier: Apache-2.0
15 * You may obtain a copy of the License at
17 * www.apache.org/licenses/LICENSE-2.0
41 #define ELEM(A,ROW,COL) &((A)->pData[(A)->numCols* (ROW) + (COL)]) argument
43 #define SCALE_COL_T(T,CAST,A,ROW,v,i) \ argument
46 T *data = (A)->pData; \
47 const int32_t _numCols = (A)->numCols; \
48 const int32_t nb = (A)->numRows - ROW;\
59 #define COPY_COL_T(T,A,ROW,COL,DST) \ argument
63 T *_pa = (A)->pData + ROW * (A)->numCols + COL;\
64 for(_row = ROW; _row < (A)->numRows; _row ++) \
67 _pa += (A)->numCols; \
74 #define SWAP_ROWS_F16(A,COL,i,j) \ argument
76 int cnt = ((A)->numCols)-(COL); \
78 float16_t *data = (A)->pData; \
79 const int32_t _numCols = (A)->numCols; \
92 cnt -= 8; \
96 #define SCALE_ROW_F16(A,COL,v,i) \ argument
98 int cnt = ((A)->numCols)-(COL); \
100 float16_t *data = (A)->pData; \
101 const int32_t _numCols = (A)->numCols; \
110 cnt -= 8; \
115 #define MAC_ROW_F16(COL,A,i,v,B,j) \ argument
117 int cnt = ((A)->numCols)-(COL); \
119 float16_t *dataA = (A)->pData; \
120 float16_t *dataB = (B)->pData; \
121 const int32_t _numCols = (A)->numCols; \
131 cnt -= 8; \
136 #define MAS_ROW_F16(COL,A,i,v,B,j) \ argument
138 int cnt = ((A)->numCols)-(COL); \
140 float16_t *dataA = (A)->pData; \
141 float16_t *dataB = (B)->pData; \
142 const int32_t _numCols = (A)->numCols; \
153 cnt -= 8; \
161 #define SWAP_ROWS_F16(A,COL,i,j) \
164 float16_t *dataI = (A)->pData; \
165 float16_t *dataJ = (A)->pData; \
166 const int32_t _numCols = (A)->numCols;\
167 const int32_t nb = _numCols-(COL); \
181 #define SCALE_ROW_F16(A,COL,v,i) \
184 float16_t *data = (A)->pData; \
185 const int32_t _numCols = (A)->numCols;\
186 const int32_t nb = _numCols-(COL); \
197 #define MAC_ROW_F16(COL,A,i,v,B,j) \
200 float16_t *dataA = (A)->pData; \
201 float16_t *dataB = (B)->pData; \
202 const int32_t _numCols = (A)->numCols; \
203 const int32_t nb = _numCols-(COL); \
214 #define MAS_ROW_F16(COL,A,i,v,B,j) \
217 float16_t *dataA = (A)->pData; \
218 float16_t *dataB = (B)->pData; \
219 const int32_t _numCols = (A)->numCols; \
220 const int32_t nb = _numCols-(COL); \
227 *dataA++ -= (_Float16)v * (_Float16)*dataB++;\
233 /* Functions with only a scalar version */
234 #define COPY_COL_F16(A,ROW,COL,DST) \ argument
235 COPY_COL_T(float16_t,A,ROW,COL,DST)
237 #define SCALE_COL_F16(A,ROW,v,i) \ argument
238 SCALE_COL_T(float16_t,(_Float16),A,ROW,v,i)
244 #define SWAP_ROWS_F32(A,COL,i,j) \ argument
246 int cnt = ((A)->numCols)-(COL); \
247 float32_t *data = (A)->pData; \
248 const int32_t _numCols = (A)->numCols; \
262 cnt -= 4; \
266 #define MAC_ROW_F32(COL,A,i,v,B,j) \ argument
268 int cnt = ((A)->numCols)-(COL); \
269 float32_t *dataA = (A)->pData; \
270 float32_t *dataB = (B)->pData; \
271 const int32_t _numCols = (A)->numCols; \
282 cnt -= 4; \
287 #define MAS_ROW_F32(COL,A,i,v,B,j) \ argument
289 int cnt = ((A)->numCols)-(COL); \
290 float32_t *dataA = (A)->pData; \
291 float32_t *dataB = (B)->pData; \
292 const int32_t _numCols = (A)->numCols; \
304 cnt -= 4; \
309 #define SCALE_ROW_F32(A,COL,v,i) \ argument
311 int cnt = ((A)->numCols)-(COL); \
312 float32_t *data = (A)->pData; \
313 const int32_t _numCols = (A)->numCols; \
323 cnt -= 4; \
330 #define SWAP_ROWS_F32(A,COL,i,j) \
333 float32_t *dataI = (A)->pData; \
334 float32_t *dataJ = (A)->pData; \
335 const int32_t _numCols = (A)->numCols;\
336 const int32_t nb = _numCols - COL; \
351 #define MAC_ROW_F32(COL,A,i,v,B,j) \
353 float32_t *dataA = (A)->pData; \
354 float32_t *dataB = (B)->pData; \
355 const int32_t _numCols = (A)->numCols;\
356 const int32_t nb = _numCols - (COL); \
372 nbElems--; \
381 nbElems--; \
385 #define MAS_ROW_F32(COL,A,i,v,B,j) \
387 float32_t *dataA = (A)->pData; \
388 float32_t *dataB = (B)->pData; \
389 const int32_t _numCols = (A)->numCols;\
390 const int32_t nb = _numCols - (COL); \
406 nbElems--; \
414 *dataA++ -= v* *dataB++; \
415 nbElems--; \
419 #define SCALE_ROW_F32(A,COL,v,i) \
421 float32_t *data = (A)->pData; \
422 const int32_t _numCols = (A)->numCols; \
423 const int32_t nb = _numCols - (COL); \
437 nbElems --; \
444 nbElems--; \
451 #define SWAP_ROWS_F32(A,COL,i,j) \
455 float32_t *dataI = (A)->pData; \
456 float32_t *dataJ = (A)->pData; \
457 const int32_t _numCols = (A)->numCols;\
458 const int32_t nb = _numCols - COL; \
472 #define SCALE_ROW_F32(A,COL,v,i) \
475 float32_t *data = (A)->pData; \
476 const int32_t _numCols = (A)->numCols;\
477 const int32_t nb = _numCols - COL; \
488 #define MAC_ROW_F32(COL,A,i,v,B,j) \
491 float32_t *dataA = (A)->pData; \
492 float32_t *dataB = (B)->pData; \
493 const int32_t _numCols = (A)->numCols;\
494 const int32_t nb = _numCols-(COL); \
505 #define MAS_ROW_F32(COL,A,i,v,B,j) \
508 float32_t *dataA = (A)->pData; \
509 float32_t *dataB = (B)->pData; \
510 const int32_t _numCols = (A)->numCols;\
511 const int32_t nb = _numCols-(COL); \
518 *dataA++ -= v* *dataB++; \
525 /* Functions _with only a scalar version */
527 #define COPY_COL_F32(A,ROW,COL,DST) \ argument
528 COPY_COL_T(float32_t,A,ROW,COL,DST)
530 #define COPY_COL_F64(A,ROW,COL,DST) \ argument
531 COPY_COL_T(float64_t,A,ROW,COL,DST)
533 #define SWAP_COLS_F32(A,COL,i,j) \ argument
536 float32_t *data = (A)->pData; \
537 const int32_t _numCols = (A)->numCols; \
547 #define SCALE_COL_F32(A,ROW,v,i) \ argument
548 SCALE_COL_T(float32_t,,A,ROW,v,i)
550 #define SWAP_ROWS_F64(A,COL,i,j) \ argument
553 float64_t *dataI = (A)->pData; \
554 float64_t *dataJ = (A)->pData; \
555 const int32_t _numCols = (A)->numCols;\
556 const int32_t nb = _numCols-(COL); \
570 #define SWAP_COLS_F64(A,COL,i,j) \ argument
573 float64_t *data = (A)->pData; \
574 const int32_t _numCols = (A)->numCols; \
584 #define SCALE_ROW_F64(A,COL,v,i) \ argument
587 float64_t *data = (A)->pData; \
588 const int32_t _numCols = (A)->numCols;\
589 const int32_t nb = _numCols-(COL); \
599 #define SCALE_COL_F64(A,ROW,v,i) \ argument
600 SCALE_COL_T(float64_t,,A,ROW,v,i)
602 #define MAC_ROW_F64(COL,A,i,v,B,j) \ argument
605 float64_t *dataA = (A)->pData; \
606 float64_t *dataB = (B)->pData; \
607 const int32_t _numCols = (A)->numCols;\
608 const int32_t nb = _numCols-(COL); \
619 #define MAS_ROW_F64(COL,A,i,v,B,j) \ argument
622 float64_t *dataA = (A)->pData; \
623 float64_t *dataB = (B)->pData; \
624 const int32_t _numCols = (A)->numCols;\
625 const int32_t nb = _numCols-(COL); \
632 *dataA++ -= v* *dataB++; \