LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::mdd::MddLocalMatrix< T > Struct Template Reference

A local rate matrix W_k^e of the Kronecker descriptor, held row-compressed. More...

#include <line/api/mdd/mdd_types.h>

Collaboration diagram for line::mdd::MddLocalMatrix< T >:

Classes

class  Builder
 Incremental triplet builder; duplicate entries are accumulated. More...

Static Public Member Functions

static MddLocalMatrix< T > identity (std::size_t d)
 The identity of the given order, used for a level an event does not touch.

Public Attributes

std::size_t dim = 0
 Order of the (square) local matrix, i.e.
std::vector< std::vector< std::size_t > > cols
 cols[i] holds the column indices of the nonzeros of row i.
std::vector< std::vector< T > > vals
 vals[i] holds the values of the nonzeros of row i, aligned with cols[i].
std::vector< T > row_sum
 row_sum[i] is the local enabling rate lambda[i].
std::size_t nnz = 0
 Total number of stored nonzeros.

Detailed Description

template<class T>
struct line::mdd::MddLocalMatrix< T >

A local rate matrix W_k^e of the Kronecker descriptor, held row-compressed.

The aggregation only ever walks a row of W and needs its row sums (the local enabling rates lambda_k^e), so the rows are stored as parallel column/value arrays rather than as a general sparse matrix. Duplicate triplets are summed when the matrix is built, so a caller may emit the same (i,j) more than once.

Definition at line 46 of file mdd_types.h.

Member Function Documentation

◆ identity()

template<class T>
MddLocalMatrix< T > line::mdd::MddLocalMatrix< T >::identity ( std::size_t d)
inlinestatic

The identity of the given order, used for a level an event does not touch.

Definition at line 59 of file mdd_types.h.

References cols, dim, nnz, row_sum, and vals.

Referenced by line::mdd::mdd_mcd().

Member Data Documentation

◆ cols

template<class T>
std::vector<std::vector<std::size_t> > line::mdd::MddLocalMatrix< T >::cols

cols[i] holds the column indices of the nonzeros of row i.

Definition at line 50 of file mdd_types.h.

Referenced by line::mdd::MddLocalMatrix< T >::Builder::build(), and identity().

◆ dim

template<class T>
std::size_t line::mdd::MddLocalMatrix< T >::dim = 0

Order of the (square) local matrix, i.e.

the level domain.

Definition at line 48 of file mdd_types.h.

Referenced by line::mdd::MddLocalMatrix< T >::Builder::build(), and identity().

◆ nnz

template<class T>
std::size_t line::mdd::MddLocalMatrix< T >::nnz = 0

Total number of stored nonzeros.

Definition at line 56 of file mdd_types.h.

Referenced by line::mdd::MddLocalMatrix< T >::Builder::build(), identity(), line::mdd::mdd_descriptor(), and line::mdd::mdd_ps().

◆ row_sum

template<class T>
std::vector<T> line::mdd::MddLocalMatrix< T >::row_sum

row_sum[i] is the local enabling rate lambda[i].

Definition at line 54 of file mdd_types.h.

Referenced by line::mdd::MddLocalMatrix< T >::Builder::build(), and identity().

◆ vals

template<class T>
std::vector<std::vector<T> > line::mdd::MddLocalMatrix< T >::vals

vals[i] holds the values of the nonzeros of row i, aligned with cols[i].

Definition at line 52 of file mdd_types.h.

Referenced by line::mdd::MddLocalMatrix< T >::Builder::build(), and identity().


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