Logo MTL4

mtl::ConstantSizeAlgebraicCollection< T > Struct Template Reference
[Concepts]

Concept ConstantSizeAlgebraicCollection: extension of AlgebraicCollection with meta-functions. More...

#include <collection.hpp>

Inherits AlgebraicCollection< T >, and ConstantSizeCollection< T >.

Collaboration diagram for mtl::ConstantSizeAlgebraicCollection< T >:

Collaboration graph
[legend]

List of all members.

Public Types

typedef associated_type static_num_rows
 Associated type: meta-function for number of rows.
typedef associated_type static_num_cols
 Associated type: meta-function for number of columns.
typedef associated_type static_size
 Associated type: meta-function for number of elements.


Detailed Description

template<typename T>
struct mtl::ConstantSizeAlgebraicCollection< T >

Concept ConstantSizeAlgebraicCollection: extension of AlgebraicCollection with meta-functions.

This concept is used for algebraic collections with sizes known at compile time. The motivation is that if the size of the collection is is small, arithmetic operations can be unrolled at compile time.

Refinement of:
Notation:
Valid expressions:
  • Number of rows:
    static_num_rows<X>::value
  • Number of columns:
    static_num_cols<X>::value
  • Number of elements:
    static_size<X>::value
    Sematics: static_num_rows<X>::value * static_size<X>::value
Note:
  1. For more design clarity we consider them all as matrices (as Matlab does) and we regard Scalar and Vector as special cases (see there). However, the implementation of vectors is supposed to differ from the ones of matrices in order to provide efficient computations and storage.

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


mtl::ConstantSizeAlgebraicCollection< T > Struct Template Reference -- MTL 4 -- Peter Gottschling and Andrew Lumsdaine -- Generated on 24 Aug 2009 by Doxygen 1.5.9 -- Copyright 2008-09 by TU Dresden and the Trustees of Indiana University.