function lb = lagrange_base_1d ( nd, xd, ni, xi ) 

%*****************************************************************************80
%
%% lagrange_base_1d() evaluates a 1D Lagrange basis.
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    04 October 2012
%
%  Author:
%
%    John Burkardt
%
%  Input:
%
%    integer ND, the number of data points.
%
%    real XD(ND), the interpolation nodes.
%
%    integer NI, the number of evaluation points.
%
%    real XI(NI), the evaluation points.
%
%  Output:
%
%    real LB(NI,ND), the value, at the I-th point XI, of the
%    Jth basis function.
%
  lb = zeros ( ni, nd );

  for i = 1 : ni
    for j = 1 : nd
      k = find ( 1 : nd ~= j );
      lb(i,j) = prod ( xi(i) - xd(k) ) / prod ( xd(j) - xd(k) );
    end
  end

  return
end
