return where(a.elem(), b.elem(), c.elem());
typename BinaryReturn<ILattice<T2,N>, ILattice<T3,N>, FnWhere>::Type_t  d;   for(int i=0; i < N; ++i) d.elem(i) = where(a.elem(i), b.elem(i), c.elem(i));  return d;
where(const IScalar<T1>& a, const IScalar<T2>& b, const IScalar<T3>& c){  return where(a.elem(), b.elem(), c.elem());}