![]() |
GemaCoreLib
The GeMA Core library
|
A base structure for storing layout data for sparse marices (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>
Signals | |
void | layoutCompleted () |
A signal emmited when the layout has been completed. This signal is emmited 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. | |
![]() | |
virtual const QMetaObject * | metaObject () const const |
virtual void * | qt_metacast (const char *) |
virtual int | qt_metacall (QMetaObject::Call, int, void **) |
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) |
QThread * | thread () 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) |
T | 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 ®Exp, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const |
const QObjectList & | children () 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< QByteArray > | dynamicPropertyNames () const const |
void | destroyed (QObject *obj) |
void | objectNameChanged (const QString &objectName) |
QObject * | parent () const const |
bool | inherits (const char *className) const const |
void | deleteLater () |
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 | |
![]() | |
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) |
![]() | |
QObject * | sender () 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) |
![]() | |
objectName | |
A base structure for storing layout data for sparse marices (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 costfull and should not be taken lightly. Solver matrices should in general restrict element updates to existing layout entries (it can be usefull to "reserve" places in the matrix, like its diagonal, to always exist in the structure even if its initial value is set to zero).