Edit: /usr/include/boost/qvm/mat_access.hpp (57007B)
//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_QVM_47B1D1217B411E08424FA0ADFD72085
#define BOOST_QVM_47B1D1217B411E08424FA0ADFD72085
#include
#include
#include
#include
namespace
boost
{
namespace
qvm
{
////////////////////////////////////////////////
template
BOOST_QVM_INLINE_TRIVIAL
typename enable_if_c<
is_mat::value,
typename mat_traits::scalar_type>::type
A( M const & a )
{
BOOST_STATIC_ASSERT(R>=0);
BOOST_STATIC_ASSERT(R::rows);
BOOST_STATIC_ASSERT(C>=0);
BOOST_STATIC_ASSERT(C::cols);
return mat_traits::template read_element(a);
}
template
BOOST_QVM_INLINE_TRIVIAL
typename enable_if_c<
is_mat::value,
typename mat_traits::scalar_type &>::type
A( M & a )
{
BOOST_STATIC_ASSERT(R>=0);
BOOST_STATIC_ASSERT(R::rows);
BOOST_STATIC_ASSERT(C>=0);
BOOST_STATIC_ASSERT(C::cols);
return mat_traits::template write_element(a);
}
////////////////////////////////////////////////
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A00( M const & a ) { BOOST_STATIC_ASSERT(0::rows && 0::cols); return mat_traits::template read_element<0,0>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A01( M const & a ) { BOOST_STATIC_ASSERT(0::rows && 1::cols); return mat_traits::template read_element<0,1>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A02( M const & a ) { BOOST_STATIC_ASSERT(0::rows && 2::cols); return mat_traits::template read_element<0,2>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A03( M const & a ) { BOOST_STATIC_ASSERT(0::rows && 3::cols); return mat_traits::template read_element<0,3>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A04( M const & a ) { BOOST_STATIC_ASSERT(0::rows && 4::cols); return mat_traits::template read_element<0,4>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A05( M const & a ) { BOOST_STATIC_ASSERT(0::rows && 5::cols); return mat_traits::template read_element<0,5>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A06( M const & a ) { BOOST_STATIC_ASSERT(0::rows && 6::cols); return mat_traits::template read_element<0,6>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A07( M const & a ) { BOOST_STATIC_ASSERT(0::rows && 7::cols); return mat_traits::template read_element<0,7>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A08( M const & a ) { BOOST_STATIC_ASSERT(0::rows && 8::cols); return mat_traits::template read_element<0,8>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A09( M const & a ) { BOOST_STATIC_ASSERT(0::rows && 9::cols); return mat_traits::template read_element<0,9>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A10( M const & a ) { BOOST_STATIC_ASSERT(1::rows && 0::cols); return mat_traits::template read_element<1,0>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A11( M const & a ) { BOOST_STATIC_ASSERT(1::rows && 1::cols); return mat_traits::template read_element<1,1>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A12( M const & a ) { BOOST_STATIC_ASSERT(1::rows && 2::cols); return mat_traits::template read_element<1,2>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A13( M const & a ) { BOOST_STATIC_ASSERT(1::rows && 3::cols); return mat_traits::template read_element<1,3>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A14( M const & a ) { BOOST_STATIC_ASSERT(1::rows && 4::cols); return mat_traits::template read_element<1,4>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A15( M const & a ) { BOOST_STATIC_ASSERT(1::rows && 5::cols); return mat_traits::template read_element<1,5>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A16( M const & a ) { BOOST_STATIC_ASSERT(1::rows && 6::cols); return mat_traits::template read_element<1,6>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A17( M const & a ) { BOOST_STATIC_ASSERT(1::rows && 7::cols); return mat_traits::template read_element<1,7>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A18( M const & a ) { BOOST_STATIC_ASSERT(1::rows && 8::cols); return mat_traits::template read_element<1,8>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A19( M const & a ) { BOOST_STATIC_ASSERT(1::rows && 9::cols); return mat_traits::template read_element<1,9>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A20( M const & a ) { BOOST_STATIC_ASSERT(2::rows && 0::cols); return mat_traits::template read_element<2,0>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A21( M const & a ) { BOOST_STATIC_ASSERT(2::rows && 1::cols); return mat_traits::template read_element<2,1>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A22( M const & a ) { BOOST_STATIC_ASSERT(2::rows && 2::cols); return mat_traits::template read_element<2,2>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A23( M const & a ) { BOOST_STATIC_ASSERT(2::rows && 3::cols); return mat_traits::template read_element<2,3>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A24( M const & a ) { BOOST_STATIC_ASSERT(2::rows && 4::cols); return mat_traits::template read_element<2,4>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A25( M const & a ) { BOOST_STATIC_ASSERT(2::rows && 5::cols); return mat_traits::template read_element<2,5>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A26( M const & a ) { BOOST_STATIC_ASSERT(2::rows && 6::cols); return mat_traits::template read_element<2,6>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A27( M const & a ) { BOOST_STATIC_ASSERT(2::rows && 7::cols); return mat_traits::template read_element<2,7>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A28( M const & a ) { BOOST_STATIC_ASSERT(2::rows && 8::cols); return mat_traits::template read_element<2,8>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A29( M const & a ) { BOOST_STATIC_ASSERT(2::rows && 9::cols); return mat_traits::template read_element<2,9>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A30( M const & a ) { BOOST_STATIC_ASSERT(3::rows && 0::cols); return mat_traits::template read_element<3,0>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A31( M const & a ) { BOOST_STATIC_ASSERT(3::rows && 1::cols); return mat_traits::template read_element<3,1>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A32( M const & a ) { BOOST_STATIC_ASSERT(3::rows && 2::cols); return mat_traits::template read_element<3,2>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A33( M const & a ) { BOOST_STATIC_ASSERT(3::rows && 3::cols); return mat_traits::template read_element<3,3>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A34( M const & a ) { BOOST_STATIC_ASSERT(3::rows && 4::cols); return mat_traits::template read_element<3,4>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A35( M const & a ) { BOOST_STATIC_ASSERT(3::rows && 5::cols); return mat_traits::template read_element<3,5>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A36( M const & a ) { BOOST_STATIC_ASSERT(3::rows && 6::cols); return mat_traits::template read_element<3,6>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A37( M const & a ) { BOOST_STATIC_ASSERT(3::rows && 7::cols); return mat_traits::template read_element<3,7>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c::value,typename mat_traits::scalar_type>::type A38( M const & a ) { BOOST_STATIC_ASSERT(3::rows && 8::cols); return mat_traits::template read_element<3,8>(a); }
template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c