function ll = evalAvgLogL(dens,at,varargin)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% evalAvgLogL(P,Q [,...])  -- evaluate the mean log-likelihood of the KDE P
%                             at points Q ([Ndim x Npts] double or KDE)
%                             Optional flags are the same as evaluate
% See also: evaluate
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Copyright (C) 2003 Alexander Ihler; distributable under GPL -- see README.txt

if (isa(at,'kde'))
  L = evaluate(dens,at,varargin{:});
  W = getWeights(at);
  ind = find(L==0);
  if (any(W(ind))) ll=-inf;
  else
    L(ind) = 1;
    ll = (log(L)*W');
  end;
else
  L = evaluate(dens,at,varargin{:});
  if (length(find(L==0)))
    ll = inf;
  else
    ll = mean(log(L));
  end;
end;