# QVM: Quaternions, Vectors, Matrices

### mat_index_write

#include <boost/qvm/mat_index.hpp>

    namespace boost
    {
        namespace qvm
        {
            //Only enabled if:
            //  is_mat<A>::value
            template <class A>
            typename mat_traits<A>::scalar_type &
            mat_index_write( A & a, int r, int c );
        }
    }

#### Returns:

A mutable reference to the element of a at row r and column c.

#### Preconditions:

r >= 0 && r < mat_traits<A>::rows && c >= 0 && c < mat_traits<A>::cols.

#### Note:

This function uses template metaprogramming and can be used even if the optional access function mat_traits<A>::write_element_idx is not available.

See also: boost/qvm/mat_index.hpp