I have some code which multiplies complex numbers, and have noticed that mulxc3
(long double version of muldc3
) is being called frequently: i.e. the complex number multiplications are not being inlined.
I am compiling with g++
version 7.5, with -O3
and --ffast-math
.
It is similar to this question, except the problem persists when I compile with -ffast-math. Since I do not require checking for whether the arguments are Inf
or NaN
, I was considering making my own very simple complex class without such checks to allow the multiplication to be inlined, but given my lack of C++ proficiency, and having read this article makes me think that would be counterproductive.
So, is there a way to change either my code or compilation process so that I can keep using std::complex
, but inline the multiplication?