where(const ILattice<T1,N>& a, const ILattice<T2,N>& b, const ILattice<T3,N>& c)
where(const IScalar<T1>& a, const IScalar<T2>& b, const IScalar<T3>& c)
where(const ILattice<T1,N>& a, const ILattice<T2,N>& b, const ILattice<T3,N>& c){  typename BinaryReturn<ILattice<T2,N>, ILattice<T3,N>, FnWhere>::Type_t  d;  // Not optimal - want to have where outside assignment  for(int i=0; i < N; ++i)    d.elem(i) = where(a.elem(i), b.elem(i), c.elem(i));  return d;}