fixed checking in dual::assign and scomplex::assign