Method

NumCosmoMathLaurentSeriesTPSconv

Declaration [src]

void
ncm_laurent_series_tps_conv (
  NcmLaurentSeriesTPS* out,
  const NcmLaurentSeriesTPS* a,
  const NcmLaurentSeriesTPS* b
)

Description [src]

Truncated Cauchy product $out_m=\sum_{k=0}^m a_k b_{m-k}$ for $m=0..N$ — truncated at the shared order $N$, not extended to $\deg(a)+\deg(b)$ (this is a truncated power series, not a polynomial ring element). The inner fold only ever needs two non-aliasing accumulator buffers (ncm_laurent_series_add_into() forbids out aliasing an input, so the running sum alternates between them: at step $k$, the accumulator from step $k-2$ is already fully consumed and free to reuse for step $k$’s result) plus one transient product buffer — three fixed buffers regardless of order, drawn from outs own private conv_acc/conv_term rather than any external pool.

Parameters

a

Type: NcmLaurentSeriesTPS

A NcmLaurentSeriesTPS.

The data is owned by the caller of the method.
b

Type: NcmLaurentSeriesTPS

A NcmLaurentSeriesTPS, same order as a.

The data is owned by the caller of the method.