mirror of
https://github.com/NGSolve/netgen.git
synced 2025-01-26 04:40:34 +05:00
optional arm feature complex
This commit is contained in:
parent
69f5e8e572
commit
1d93dfba00
@ -154,6 +154,7 @@ namespace ngcore
|
|||||||
return FNMA(SIMD<double,2> (a), b, c);
|
return FNMA(SIMD<double,2> (a), b, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __ARM_FEATURE_COMPLEX
|
||||||
// ARM complex mult:
|
// ARM complex mult:
|
||||||
// https://arxiv.org/pdf/1901.07294.pdf
|
// https://arxiv.org/pdf/1901.07294.pdf
|
||||||
// c += a*b (a0re, a0im, a1re, a1im, ...),
|
// c += a*b (a0re, a0im, a1re, a1im, ...),
|
||||||
@ -162,6 +163,7 @@ namespace ngcore
|
|||||||
auto tmp = vcmlaq_f64(c.Data(), a.Data(), b.Data()); // are * b
|
auto tmp = vcmlaq_f64(c.Data(), a.Data(), b.Data()); // are * b
|
||||||
c = vcmlaq_rot90_f64(tmp, a.Data(), b.Data()); // += i*aim * b
|
c = vcmlaq_rot90_f64(tmp, a.Data(), b.Data()); // += i*aim * b
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
NETGEN_INLINE SIMD<double,2> operator+ (SIMD<double,2> a, SIMD<double,2> b)
|
NETGEN_INLINE SIMD<double,2> operator+ (SIMD<double,2> a, SIMD<double,2> b)
|
||||||
|
Loading…
Reference in New Issue
Block a user