  n = 1;
  for j = 0 : 25
    dot_product_timing;
    jvec(j+1) = j;
    tvec(j+1) = t;
    rvec(j+1) = r;
    n = 2 * n;
  end

  plot ( jvec, log2 ( tvec ), 'b', 'linewidth', 3 );
  grid on
  xlabel ( 'Log2 of N' )
  ylabel ( 'Log2 of Time' )
  title ( 'Computational time as a function of N for dot product calculation' )
  print ( '-dpng', 'dot_product_timing_time.png' );
  pause
  plot ( jvec, rvec, 'b-o', 'linewidth', 3 );
  xlabel ( 'Log2 of N' )
  ylabel ( 'Computation rate (2N)/T' )
  title ( 'Computation rate for dot product calculation' )
  grid on
  print ( '-dpng', 'dot_product_timing_rate.png' );
  pause
  hold on
  plot ( jvec, rvec, 'b-o', 'linewidth', 3 );
  plot ( [0,25], [2800000000,2800000000], 'r', 'linewidth', 3 );
  xlabel ( 'Log2 of N' )
  ylabel ( 'Computation rate (2N)/T' )
  title ( 'Computation rate for dot product calculation' )
  grid on
  hold off
  print ( '-dpng', 'dot_product_timing_rates.png' );
