Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C++] Convoluzione discreta tra array

    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;
    }
    Ultima modifica di Luca Crippa; 11-02-2014 a 11:39 Motivo: indentazione

  2. #2
    Mi pare corretta, e ad occhio direi che quell'if di controllo sulla i e j non dovrebbe servire (i limiti sui for dovrebbero già essere giusti così).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Grazie della risposta
    La cosa strana è che, a quanto pare, mi produce un vettore di grandezza 1 contenente il solo valore zero...

  4. #4
    In che senso ti produce un vettore di grandezza 1? Il vettore è di grandezza npts1+npts2 visto che l'hai allocato così.
    Non è che da fuori stai cercando di determinarne le dimensioni con sizeof?
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    agliaaa la convoluzioneee che batosta......

  6. #6
    Quote Originariamente inviata da rossonero922 Visualizza il messaggio
    agliaaa la convoluzioneee che batosta......
    ?!?
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Quote Originariamente inviata da rossonero922 Visualizza il messaggio
    agliaaa la convoluzioneee che batosta......
    Studio Fisica, ti assicuro che la convoluzione è una delle cose considerate facilissime...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.