Esempio n. 1
0
void srslte_vec_prod_ccc(cf_t *x,cf_t *y, cf_t *z, uint32_t len) {
#ifndef HAVE_VOLK_MULT2_FUNCTION
  int i;
  for (i=0;i<len;i++) {
    z[i] = x[i]*y[i];
  }
#else
  volk_32fc_x2_multiply_32fc(z,x,y,len);
#endif
}
Esempio n. 2
0
void Multiply<std::complex<float> >::work(
    const InputItems &ins, const OutputItems &outs
){
    const size_t n_nums = std::min(ins.min(), outs.min());
    std::complex<float> *out = outs[0].cast<std::complex<float> *>();
    const std::complex<float> *in0 = ins[0].cast<const std::complex<float> *>();

    for (size_t n = 1; n < ins.size(); n++)
    {
        const std::complex<float> *in = ins[n].cast<const std::complex<float> *>();
        volk_32fc_x2_multiply_32fc(out, in0, in, n_nums * _vlen);
        in0 = out; //for next input, we do output *= input
    }

    this->consume(n_nums);
    this->produce(n_nums);
}