11 #ifndef EIGEN_SPARSE_TRIANGULARVIEW_H 
   12 #define EIGEN_SPARSE_TRIANGULARVIEW_H 
   30            SkipLast = !SkipFirst,
 
   50     template<typename RhsType, typename DstType>
 
   55       this->solveInPlace(dst);
 
   68 template<
typename ArgType, 
unsigned int Mode>
 
   82          SkipLast = !SkipFirst,
 
   91     Flags = XprType::Flags
 
   97     return m_argImpl.nonZerosEstimate();
 
  106         : 
Base(xprEval.m_argImpl,outer), m_returnOne(false), m_containsDiag(
Base::outer()<xprEval.m_arg.innerSize())
 
  110           while((*
this) && ((HasUnitDiag||SkipDiag)  ? this->index()<=outer : this->index()<outer))
 
  113             m_returnOne = m_containsDiag;
 
  115         else if(HasUnitDiag && ((!Base::operator 
bool()) || Base::index()>=Base::outer()))
 
  117           if((!SkipFirst) && Base::operator 
bool())
 
  119           m_returnOne = m_containsDiag;
 
  125         if(HasUnitDiag && m_returnOne)
 
  130           if(HasUnitDiag && (!SkipFirst) && ((!Base::operator 
bool()) || Base::index()>=Base::outer()))
 
  132             if((!SkipFirst) && Base::operator 
bool())
 
  134             m_returnOne = m_containsDiag;
 
  142         if(HasUnitDiag && m_returnOne)
 
  144         if(SkipFirst) 
return  Base::operator bool();
 
  147           if (SkipDiag) 
return (Base::operator 
bool() && this->index() < this->outer());
 
  148           else return (Base::operator 
bool() && this->index() <= this->outer());
 
  156         if(HasUnitDiag && m_returnOne)  
return internal::convert_index<StorageIndex>(Base::outer());
 
  157         else                            return Base::index();
 
  161         if(HasUnitDiag && m_returnOne)  
return Scalar(1);
 
  179 template<
typename Derived>
 
  189 #endif // EIGEN_SPARSE_TRIANGULARVIEW_H