Let’s think about the following auto/cross correlator:
http://i.imgur.com/Fy5hdVj.png
I’ve placed divide because I need to normalize the correlation result.
If we place null source, or constant source with value of zero right
before the pad source, the simplified form of the correlator becomes 0
divided by 0.
I’ve placed time sink right after the pad sink then, I can see the
line
hit the infinity. With a simplified flow graph:
http://i.imgur.com/Msx9EQj.png
Back to the my correlator, how can I handle such infinity value coming
into the next block?
My guess is that if a source block is a type of float, then infinity
might have a maximum value of float. So, I think I can reject infinity
value with if (in[i] > threshold), where threshold is big enough,
for
correlator it is fine to have a value just larger than one.
Do you think what I guess is right? Or can some boost numeric types, or
PMT
help somehow to deal with it?
In addition, not important.
In pages std::numeric_limits<T>::infinity - cppreference.com
and
INFINITY - cppreference.com,
non floating point numeric types can’t handle infinity.
Is it also applied to GNU Radio?
Regards,
Jeon.