function F = times(F,A)
% TIMES Multiply factor
%
% F = TIMES(F,A) where A is either a scalar, a tensor of the same
% dimension as the factor table, or a factor of the same dimension.
    
     
% Jerod Weinman
% jerod@acm.org
    
% $Id: times.m 1 2009-05-07 13:41:00Z weinman $
 
% Jerod Weinman
% jerod@acm.org
% Copyright 2008, 2009, 2011
 
%    This file is part of MatLibFactorGraph.
%
%    MatLibFactorGraph is free software: you can redistribute it and/or modify
%    it under the terms of the GNU General Public License as published by
%    the Free Software Foundation, either version 3 of the License, or
%    (at your option) any later version.
%
%    MatLibFactorGraph is distributed in the hope that it will be useful,
%    but WITHOUT ANY WARRANTY; without even the implied warranty of
%    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
%    GNU General Public License for more details.
%
%    You should have received a copy of the GNU General Public License
%    along with MatLibFactorGraph.  If not, see <http://www.gnu.org/licenses/>.


  if isscalar(A)
    F.table = F.table .* A;
  elseif isa(A,'factor')
    if ndims(F.table)==ndims(A.table) && all(size(F.table)==A.table)
      F.table = F.table .* A.table;
    else
      error('Factor size mismatch');
    end;
  else
    error('Unknown multiplicand type');
  end;
  
    
  
