From ef0f2126756c5a019254431a68e4efedeccf4f3e Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Tue, 12 Mar 2019 06:38:11 +0100 Subject: some more optimized complex matrix --- test/monniaux/complex/complex.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'test/monniaux/complex') diff --git a/test/monniaux/complex/complex.c b/test/monniaux/complex/complex.c index 0b806b24..6c7dae1d 100644 --- a/test/monniaux/complex/complex.c +++ b/test/monniaux/complex/complex.c @@ -41,15 +41,12 @@ static inline void COMPLEX_mul_addto(COMPLEX *r, r->im = im; } -#define MACRO_COMPLEX_mul_addto(r, x, y) \ +#define MACRO_COMPLEX_mul_addto(rre, rim, x, y) \ { \ - double rre=(r).re, rim=(r).im, \ - xre = (x).re, xim=(x).im, \ - yre = (y).re, yim = (y).im; \ - double re = rre + xre * yre - xim * yim; \ - double im = rim + xim * yre + xre * yim; \ - r.re = re; \ - r.im = im; \ + double xre = (x).re, xim=(x).im, \ + yre = (y).re, yim=(y).im; \ + (rre) += xre * yre - xim * yim; \ + (rim) += xim * yre + xre * yim; \ } @@ -121,7 +118,7 @@ void COMPLEX_mat_mul8(unsigned m, unsigned n, unsigned p, #undef CHUNK #define CHUNK \ - MACRO_COMPLEX_mul_addto(total, *pa_i_j, *pb_j_k) \ + MACRO_COMPLEX_mul_addto(totalre, totalim, *pa_i_j, *pb_j_k) \ pa_i_j ++; \ pb_j_k = (COMPLEX*) ((char*) pb_j_k + stride_b_scaled); @@ -135,8 +132,7 @@ void COMPLEX_mat_mul9(unsigned m, unsigned n, unsigned p, for(unsigned i=0; i 0) { @@ -158,7 +154,8 @@ void COMPLEX_mat_mul9(unsigned m, unsigned n, unsigned p, } while (j4 < n4); } } - pc_i[k] = total; + pc_i[k].re = totalre; + pc_i[k].im = totalim; } pa_i += stride_a; pc_i += stride_c; -- cgit