
[section Functions]

[section begin]

``
// Entity stuff, e.g., in case of m being a Matrix:
begin( m, tag::addressing_index<1>() )  // Row iterator, only dense types supported at the moment
begin( m, tag::addressing_index<2>() )  // Column iterator
begin( m, tag::row() )            // Same as <1>
begin( m, tag::column() )         // Same as <2>
begin( m, tag::major() )          // Depends on data_order
begin( m, tag::minor() )          // Depends on data_order

begin( m, tag::index_major() )            // Sparse matrices
begin( m, tag::index_minor() )            // Sparse matrices
begin( m, tag::compressed_index_major() ) // Sparse matrices

// Data stuff, e.g.,:
begin( m, tag::value() )          // Begin of value array or main diagonal

// Convenience
begin1(m)                       // Convenience for tagged version
begin2(m)                       // Convenience for tagged version
begin_row(m)                    // Convenience for tagged version
begin_column(m)                 // Convenience for tagged version
begin_major(m)                  // Convenience for tagged version
begin_minor(m)                  // Convenience for tagged version

begin_index_major(m)            // Convenience for tagged version
begin_index_minor(m)            // Convenience for tagged version
begin_compressed_index_major(m) // Convenience for tagged version

begin_value(m)                  // Convenience for tagged version

``

[endsect]

[section end]
Identical to begin for semantics.
[endsect]

[section minimal_rank]

This function returns the minimal rank needed to represent the underlying,
0 <= minimal_rank <= rank.

[endsect]

[section size]
Identical to begin for semantics.
[endsect]

[section stride]

Only defined in case of 

``
// E.g., for matrices
stride< 1() )                   // Stride for increment of index 1
stride< 2() )                   // Stride for increment of index 2
stride< tag::major() )          // Depends on data_order
stride< tag::minor() )          // Depends on data_order

// Convenience stuff
stride1(m)
stride_major(m)
stride_minor(m)

``


[endsect]

[endsect]

[section Metafunctions]


[section begin]

[heading Description]
Returns the result type of begin

[heading Synopsis]
``
template< typename T, typename Tag >
struct begin {
    typedef __unspecified__ type;
};
``

[heading Expression Semantics]
``
result_of::begin< T, tag::index<1> >::type
``

[endsect]

[section rank]
[heading Description]
Returns the rank of the underlying

[heading Synopsis]
``
template< typename T >
struct rank: integral_constant {};
``
[endsect]



[section size]

[heading Description]
Returns the result type of size

[heading Synopsis]
``
template< typename T >
struct size {
    typedef __unspecified__ type;
};
``
[endsect]




[section value]
[heading Description]
Returns the value type of the underlying

[heading Synopsis]
``
template< typename T >
struct value {
    typedef __unspecified__ type;
};
``
[endsect]


[endsect]


