Hello!

Following the discussion about Intel libraries[0] and sse optimization[1], I did some literature recherche about elementary functions (trigonometric functions, log, exp). In particular I hope to find some clever methods to speed up atan and sin/cos, which would be very handy for all the FM stuff. But I need some parameters to find useful methods:

* Which precision are we talking about? Do we need double precision floating point with exact rounding? Are we happy with reduced precision or net exact rounding? AFAIS it depends on the data type which is processed, and should be optimized for every type.

* How accurate do we want to be? Can we live with 1% relative error, or 0.01%? I have no clue about the accuracy constraints.

* Is it important to have a constant (if possible) calculation time or can we live with iterative algorithms with an estimation of average run times? I think runtime should be constant, as we do not want to have data dependent runtimes: one time the computation capacity is sufficient for real-time processing of a give input set, with a different input set it is over real time.

* Which input range has to be processed? Taylor-polynoms can be optimized quite fine, but perform bad outside a limited input range like say [-pi, pi]. Do we have some constraints, or are there fast and accurate methods to condition data suitable (as trigonometric functions are generally periodic)?

* How bad is branching (if, case, etc.) for our architectures? How can we measure the impact of branches on the calculation speed?

Patrick

[0] http://lists.gnu.org/archive/html/discuss-gnuradio/2007-12/msg00120.html
[1] http://lists.gnu.org/archive/html/discuss-gnuradio/2007-12/msg00144.html
--
Engineers motto: cheap, good, fast: choose any two
Patrick Strasser <patrick dot strasser at tugraz dot at>
Student of Telematik, Techn. University Graz, Austria



_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to