clear;close all;clc;

%initialisation des images
n=100;
tps1=[];
tps2=[];
while (n<15000)
    n = round(1.1*n)
    A = rand(n,n); %images aléatoires
    B = rand(n,n);
    
    % Création d'une nouvelle image C égale au produit terme à terme de A et B
    % et calcul de la somme des termes de C
    
    % (1) avec parcours des images (boucle for)
    tic
    C = zeros(n,n);
    somme_boucle = 0;
    for i=1:n
        for j=1:n
            C(i,j) = A(i,j) * B(i,j);
            somme_boucle = somme_boucle + C(i,j);
        end
    end
    temps_boucle = toc;
    tps1=[tps1 temps_boucle];
    
    % (2) sans parcours explicite des images , en utilisant les fonctions matlab adéquates
    tic
    C = A.*B;
    somme_matlab = sum(C(:));
    temps_matlab = toc;
    tps2=[tps2 temps_matlab];
    
    % Comparaison des temps de calcul
    disp([' Avec boucle : somme=' num2str(somme_boucle) '  calcul en ' num2str(temps_boucle) ' secondes']);
    disp([' Sans boucle : somme=' num2str(somme_matlab) '  calcul en ' num2str(temps_matlab) ' secondes']);
    
    disp(['Soit un calcul ' num2str(temps_boucle/temps_matlab) ' plus rapide !']);
    %fflush(stdout)  % <- pour octave, decommenter cette ligne
end