GemaCoreLib
The GeMA Core library
Loading...
Searching...
No Matches
GmSparseMatrixLayout Struct Referenceabstract

A base structure for storing layout data for sparse matrices (fill structure or non zero positions). The matrix data itself is not stored, allowing for the layout to be shared among several matrices if needed. More...

#include <gmSparseMatrixLayout.h>

Inheritance diagram for GmSparseMatrixLayout:
Collaboration diagram for GmSparseMatrixLayout:

Signals

void layoutCompleted ()
 A signal emitted when the layout has been completed. This signal is emitted on behalf of the layout builder so that matrices sharing a layout don't have to also share the builder.
 

Public Member Functions

 GmSparseMatrixLayout (GmSparseMatrixLayoutTypes type)
 Constructor.
 
virtual ~GmSparseMatrixLayout ()
 Virtual destructor.
 
virtual bool empty () const =0
 Returns true if the layout is empty.
 
virtual void clear ()=0
 Clears the layout releasing memory and making the matrix a zero matrix.
 
virtual int index (int row, int col) const =0
 Returns the index for the value in the given matrix row, col. Returns -1 if the value is not part of the sparse layout.
 
virtual int dindex (int n) const =0
 Returns the index for the value in the diagonal of the given matrix row (column). Returns -1 if the value is not part of the sparse layout. This call is semantically equivalent to calling index(n, n) but can be optimized depending on the sparse layout in use.
 
virtual void printStatistics (const GmLogCategory &logger) const =0
 Print layout statistics to the given logger.
 
void emitLayoutCompleted ()
 Emits the layoutCompleted signal.
 
- Public Member Functions inherited from QObject
virtual const QMetaObjectmetaObject () const const
 
 QObject (QObject *parent)
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
QString objectName () const const
 
void setObjectName (const QString &name)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
bool signalsBlocked () const const
 
bool blockSignals (bool block)
 
QThreadthread () const const
 
void moveToThread (QThread *targetThread)
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
void killTimer (int id)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
const QObjectListchildren () const const
 
void setParent (QObject *parent)
 
void installEventFilter (QObject *filterObj)
 
void removeEventFilter (QObject *obj)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectTree ()
 
void dumpObjectInfo ()
 
void dumpObjectTree () const const
 
void dumpObjectInfo () const const
 
bool setProperty (const char *name, const QVariant &value)
 
QVariant property (const char *name) const const
 
QList< QByteArraydynamicPropertyNames () const const
 
void destroyed (QObject *obj)
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
bool inherits (const char *className) const const
 
void deleteLater ()
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
qobject_cast (QObject *object)
 
qobject_cast (const QObject *object)
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
 Q_CLASSINFO (Name, Value)
 
 Q_INTERFACES (...)
 
 Q_PROPERTY (...)
 
 Q_ENUMS (...)
 
 Q_FLAGS (...)
 
 Q_ENUM (...)
 
 Q_FLAG (...)
 
 Q_ENUM_NS (...)
 
 Q_FLAG_NS (...)
 
 Q_OBJECT Q_OBJECT
 
 Q_GADGET Q_GADGET
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SLOTS Q_SLOTS
 
 Q_SLOT Q_SLOT
 
 Q_EMIT Q_EMIT
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 

Public Attributes

GmSparseMatrixLayoutTypes _type
 The stored sparse matrix type.
 
bool _shared
 Is this layout shared? Mutable to enable matrices sharing a layout to specify so.
 

Additional Inherited Members

- Public Types inherited from QObject
typedef  QObjectList
 
- Static Public Member Functions inherited from QObject
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
- Protected Member Functions inherited from QObject
QObjectsender () const const
 
int senderSignalIndex () const const
 
int receivers (const char *signal) const const
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
virtual void timerEvent (QTimerEvent *event)
 
virtual void childEvent (QChildEvent *event)
 
virtual void customEvent (QEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
- Properties inherited from QObject
 objectName
 

Detailed Description

A base structure for storing layout data for sparse matrices (fill structure or non zero positions). The matrix data itself is not stored, allowing for the layout to be shared among several matrices if needed.

Even though this is a structure with public fields, if a solver matrix type allows layout sharing, it should store a constant pointer to a sparse matrix layout inhibiting structure changes.

In any way, changes to a sparse matrix layout, once created, are generally cost full and should not be taken lightly. Solver matrices should in general restrict element updates to existing layout entries (it can be useful to "reserve" places in the matrix, like its diagonal, to always exist in the structure even if its initial value is set to zero).

Member Function Documentation

◆ clear()

virtual void GmSparseMatrixLayout::clear ( )
pure virtual

Clears the layout releasing memory and making the matrix a zero matrix.

Implemented in GmCSxSparseMatrixLayout< IndexType, T >.

◆ dindex()

virtual int GmSparseMatrixLayout::dindex ( int n) const
pure virtual

Returns the index for the value in the diagonal of the given matrix row (column). Returns -1 if the value is not part of the sparse layout. This call is semantically equivalent to calling index(n, n) but can be optimized depending on the sparse layout in use.

Implemented in GmCSxSparseMatrixLayout< IndexType, T >.

◆ empty()

virtual bool GmSparseMatrixLayout::empty ( ) const
pure virtual

Returns true if the layout is empty.

Implemented in GmCSxSparseMatrixLayout< IndexType, T >.

◆ index()

virtual int GmSparseMatrixLayout::index ( int row,
int col ) const
pure virtual

Returns the index for the value in the given matrix row, col. Returns -1 if the value is not part of the sparse layout.

Implemented in GmCSxSparseMatrixLayout< IndexType, T >, GmCSxSparseMatrixLayout< IndexType, T >, GmCSxSparseMatrixLayout< IndexType, T >, GmCSxSparseMatrixLayout< IndexType, T >, and GmCSxSparseMatrixLayout< IndexType, T >.

◆ printStatistics()

virtual void GmSparseMatrixLayout::printStatistics ( const GmLogCategory & logger) const
pure virtual

Print layout statistics to the given logger.

Implemented in GmCSxSparseMatrixLayout< IndexType, T >.


The documentation for this struct was generated from the following file: