function [d0, p0, b, bb] = minimumd (data)

%	[d0, p0, b, bb] = minimumd (data)
%
% Fonction qui permet de trouver les constantes de transformation
% b et bb optimales de façon à minimiser la valeur de d (sortie de
% la fonction kstest.
%	transformation: yprime = log10 (bb + b*y)
%
% Input:   data  -> échantillon (y)
% Output:  d0    -> valeur de d minimale
%	   p0    -> Niveau de signification de la valeur de d
%	   b, bb -> Constantes de la transformation linéaire

% Valeurs des constantes à considérer

  b0 = [1 -1];
  b1 = min(data);
  if b1 == 0
    i = find(data ~= 0);
    dat = data(i);
    b1 = min(dat);
  end

% Premier test sans translation 

  if isempty (find(data <= 0))
    [d,pst] = kstest (log10(data));
  end  

% Itérations sur les valeurs de constantes  

  dd = 100;
  for j = 1:2
    if b0(j) == -1
      	b1 = 1-b1;
    end
    for i = b1/10:b1/10:2*b1
	y = b0(j)*data + i;
	if isempty(find(y == 0));
	  yprime = b0(j)*data+i;
    	  if isempty(find(yprime <= 0))
 	     [d,prob] = kstest(log10(yprime));
	     if d < dd
		d0 = d;
		p0 = prob;
		b  = b0(j);
		bb = i;
		dd = d;
	     end
	  end
	end
    end
  end

% Comparaison entre d sans et avec translation 

  if pst > p0
    b  = 1;
    bb = 0;
  end 
 