satdump/src-core/dsp/utils/multiply.cpp

42 lines
1.2 KiB
C++
Raw Normal View History

2026-01-25 02:39:33 -03:00
#include "multiply.h"
namespace satdump
{
namespace ndsp
{
template <typename T>
MultiplyBlock<T>::MultiplyBlock()
2026-01-26 20:33:52 -03:00
: BlockSimpleMulti<T, T, 2, 1>( //
"multiply_" + getShortTypeName<T>(), //
{{"in 1", getTypeSampleType<T>()}, {"in 2", getTypeSampleType<T>()}}, //
2026-01-25 02:39:33 -03:00
{{"out", getTypeSampleType<T>()}})
{
}
template <typename T>
MultiplyBlock<T>::~MultiplyBlock()
{
}
template <typename T>
2026-01-26 20:33:52 -03:00
void MultiplyBlock<T>::process(T **input, uint32_t *nsamples, T **output, uint32_t *nsamples_out)
2026-01-25 02:39:33 -03:00
{
2026-01-26 20:33:52 -03:00
if (nsamples[0] != nsamples[1])
2026-01-25 02:39:33 -03:00
{
2026-01-26 20:33:52 -03:00
nsamples_out[0] = 0;
return;
2026-01-25 02:39:33 -03:00
}
2026-01-26 20:33:52 -03:00
for (uint32_t i = 0; i < nsamples[0]; i++)
2026-01-25 02:39:33 -03:00
{
2026-01-26 20:33:52 -03:00
output[0][i] = input[0][i] * input[1][i];
2026-01-25 02:39:33 -03:00
}
2026-01-26 20:33:52 -03:00
nsamples_out[0] = nsamples[0];
2026-01-25 02:39:33 -03:00
}
2026-01-26 20:33:52 -03:00
template class MultiplyBlock<float>;
template class MultiplyBlock<complex_t>;
2026-01-25 02:39:33 -03:00
} // namespace ndsp
} // namespace satdump