Salve, una domanda: ho creato questa funzioncina che fa la convoluzione di due array di uguale lunghezza (101 elementi). Vedete errori palesi? Perchè non so se funziona... A me non sembra avere problemi, così ad occhio.
codice:double* calculate_conv (double energy_spectrum1[], double energy_spectrum2[]) { unsigned npts1 = 101; unsigned npts2 = 101; unsigned npts = npts1 + npts2; double* conv_spectra; conv_spectra = new double[npts]; // Convolution for (unsigned i = 0; i < npts; i++) { double sum = 0; for (unsigned j = 0; j <= i; j++) { if (j > npts1 - 1 || (i - j) > npts2 - 1) continue; sum += energy_spectrum1[j] * energy_spectrum2[i-j]; } conv_spectra[i] = sum; } return conv_spectra; }