Hi John, > I have a complex phase rotation function that uses a pre-generated sin/cos > LUT and some basic multiple/adds. > > As it turns out, the rotation calc, which uses "straight" C/C++ math is > still the bottleneck in a demod.
I don't quite get what you need ... Rotating a single sample by a given angle is one sin/cos (for which you use LUT) and a single complex multiply (and gcc is going to have a pretty optimized version of that). Doing stuff for single samples at a time, the bottleneck isn't going to be the computation, it's going to be the load/store from/to memory. Also are we talking changing the phase by a fixed amount , or an amount that change after each sample (like the rotator kernel does) ? Need more info ... In optimization the devil is in the details :p Also lack of alignement doesn't mean SIMD is out if you have several of them to do at once ... Cheers, Sylvain _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio