|
MOAB
4.9.3pre
|
#include <AmbiVector.h>

Public Types | |
| typedef _Scalar | Scalar |
| typedef NumTraits< Scalar >::Real | RealScalar |
Public Member Functions | |
| Iterator (const AmbiVector &vec, const RealScalar &epsilon=0) | |
| StorageIndex | index () const |
| Scalar | value () const |
| operator bool () const | |
| Iterator & | operator++ () |
Protected Attributes | |
| const AmbiVector & | m_vector |
| StorageIndex | m_currentEl |
| RealScalar | m_epsilon |
| StorageIndex | m_cachedIndex |
| Scalar | m_cachedValue |
| bool | m_isDense |
Iterator over the nonzero coefficients
Definition at line 283 of file AmbiVector.h.
| typedef NumTraits<Scalar>::Real Eigen::internal::AmbiVector< _Scalar, _StorageIndex >::Iterator::RealScalar |
Definition at line 287 of file AmbiVector.h.
| typedef _Scalar Eigen::internal::AmbiVector< _Scalar, _StorageIndex >::Iterator::Scalar |
Definition at line 286 of file AmbiVector.h.
| Eigen::internal::AmbiVector< _Scalar, _StorageIndex >::Iterator::Iterator | ( | const AmbiVector & | vec, |
| const RealScalar & | epsilon = 0 |
||
| ) | [inline, explicit] |
Default constructor
| vec | the vector on which we iterate |
| epsilon | the minimal value used to prune zero coefficients. In practice, all coefficients having a magnitude smaller than epsilon are skipped. |
Definition at line 295 of file AmbiVector.h.
: m_vector(vec) { using std::abs; m_epsilon = epsilon; m_isDense = m_vector.m_mode==IsDense; if (m_isDense) { m_currentEl = 0; // this is to avoid a compilation warning m_cachedValue = 0; // this is to avoid a compilation warning m_cachedIndex = m_vector.m_start-1; ++(*this); } else { ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_vector.m_buffer); m_currentEl = m_vector.m_llStart; while (m_currentEl>=0 && abs(llElements[m_currentEl].value)<=m_epsilon) m_currentEl = llElements[m_currentEl].next; if (m_currentEl<0) { m_cachedValue = 0; // this is to avoid a compilation warning m_cachedIndex = -1; } else { m_cachedIndex = llElements[m_currentEl].index; m_cachedValue = llElements[m_currentEl].value; } } }
| StorageIndex Eigen::internal::AmbiVector< _Scalar, _StorageIndex >::Iterator::index | ( | ) | const [inline] |
Definition at line 327 of file AmbiVector.h.
{ return m_cachedIndex; }
| Eigen::internal::AmbiVector< _Scalar, _StorageIndex >::Iterator::operator bool | ( | ) | const [inline] |
Definition at line 330 of file AmbiVector.h.
{ return m_cachedIndex>=0; }
| Iterator& Eigen::internal::AmbiVector< _Scalar, _StorageIndex >::Iterator::operator++ | ( | ) | [inline] |
Definition at line 332 of file AmbiVector.h.
{
using std::abs;
if (m_isDense)
{
do {
++m_cachedIndex;
} while (m_cachedIndex<m_vector.m_end && abs(m_vector.m_buffer[m_cachedIndex])<m_epsilon);
if (m_cachedIndex<m_vector.m_end)
m_cachedValue = m_vector.m_buffer[m_cachedIndex];
else
m_cachedIndex=-1;
}
else
{
ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_vector.m_buffer);
do {
m_currentEl = llElements[m_currentEl].next;
} while (m_currentEl>=0 && abs(llElements[m_currentEl].value)<m_epsilon);
if (m_currentEl<0)
{
m_cachedIndex = -1;
}
else
{
m_cachedIndex = llElements[m_currentEl].index;
m_cachedValue = llElements[m_currentEl].value;
}
}
return *this;
}
| Scalar Eigen::internal::AmbiVector< _Scalar, _StorageIndex >::Iterator::value | ( | ) | const [inline] |
Definition at line 328 of file AmbiVector.h.
{ return m_cachedValue; }
StorageIndex Eigen::internal::AmbiVector< _Scalar, _StorageIndex >::Iterator::m_cachedIndex [protected] |
Definition at line 368 of file AmbiVector.h.
Scalar Eigen::internal::AmbiVector< _Scalar, _StorageIndex >::Iterator::m_cachedValue [protected] |
Definition at line 369 of file AmbiVector.h.
StorageIndex Eigen::internal::AmbiVector< _Scalar, _StorageIndex >::Iterator::m_currentEl [protected] |
Definition at line 366 of file AmbiVector.h.
RealScalar Eigen::internal::AmbiVector< _Scalar, _StorageIndex >::Iterator::m_epsilon [protected] |
Definition at line 367 of file AmbiVector.h.
bool Eigen::internal::AmbiVector< _Scalar, _StorageIndex >::Iterator::m_isDense [protected] |
Definition at line 370 of file AmbiVector.h.
const AmbiVector& Eigen::internal::AmbiVector< _Scalar, _StorageIndex >::Iterator::m_vector [protected] |
Definition at line 365 of file AmbiVector.h.