|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r59504 - in sandbox/la: boost boost/la boost/la/custom boost/la/detail libs libs/la libs/la/doc libs/la/doc/source libs/la/gen libs/la/test
From: emil_at_[hidden]
Date: 2010-02-05 00:37:47
Author: emildotchevski
Date: 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
New Revision: 59504
URL: http://svn.boost.org/trac/boost/changeset/59504
Log:
source code + documentation
Added:
sandbox/la/boost/
sandbox/la/boost/la/
sandbox/la/boost/la/all.hpp (contents, props changed)
sandbox/la/boost/la/array_matrix_traits.hpp (contents, props changed)
sandbox/la/boost/la/array_vector_traits.hpp (contents, props changed)
sandbox/la/boost/la/col.hpp (contents, props changed)
sandbox/la/boost/la/col_matrix.hpp (contents, props changed)
sandbox/la/boost/la/config.hpp (contents, props changed)
sandbox/la/boost/la/custom/
sandbox/la/boost/la/custom/matrix_assign.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_assign_1_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_assign_1_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_assign_1_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_assign_2_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_assign_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_assign_3_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_assign_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_assign_4_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_assign_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_determinant.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_determinant_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_determinant_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_determinant_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_eq_scalar.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_eq_scalar_1_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_eq_scalar_1_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_eq_scalar_1_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_eq_scalar_2_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_eq_scalar_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_eq_scalar_3_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_eq_scalar_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_eq_scalar_4_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_eq_scalar_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_scalar.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_scalar_1_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_scalar_1_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_scalar_1_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_scalar_2_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_scalar_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_scalar_3_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_scalar_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_scalar_4_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_div_scalar_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_eq_matrix.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_eq_matrix_1_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_eq_matrix_1_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_eq_matrix_1_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_eq_matrix_2_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_eq_matrix_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_eq_matrix_3_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_eq_matrix_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_eq_matrix_4_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_eq_matrix_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_inverse.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_inverse_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_inverse_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_inverse_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_make.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_make_1_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_make_1_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_make_1_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_make_2_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_make_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_make_3_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_make_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_make_4_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_make_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_1_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_1_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_1_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_2_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_3_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_4_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_eq_matrix.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_eq_matrix_1_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_eq_matrix_1_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_eq_matrix_1_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_eq_matrix_2_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_eq_matrix_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_eq_matrix_3_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_eq_matrix_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_eq_matrix_4_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_eq_matrix_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_matrix.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_matrix_1_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_matrix_1_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_matrix_1_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_matrix_2_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_matrix_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_matrix_3_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_matrix_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_matrix_4_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_minus_matrix_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_eq_matrix.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_eq_matrix_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_eq_matrix_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_eq_matrix_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_eq_scalar.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_eq_scalar_1_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_eq_scalar_1_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_eq_scalar_1_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_eq_scalar_2_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_eq_scalar_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_eq_scalar_3_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_eq_scalar_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_eq_scalar_4_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_eq_scalar_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_matrix.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_matrix_1_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_matrix_1_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_matrix_1_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_matrix_2_2_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_matrix_2_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_matrix_3_3_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_matrix_3_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_matrix_4_4_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_matrix_4_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_scalar.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_scalar_1_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_scalar_1_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_scalar_1_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_scalar_2_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_scalar_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_scalar_3_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_scalar_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_scalar_4_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_scalar_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_vector.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_vector_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_vector_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_mul_vector_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_neq_matrix.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_neq_matrix_1_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_neq_matrix_1_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_neq_matrix_1_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_neq_matrix_2_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_neq_matrix_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_neq_matrix_3_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_neq_matrix_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_neq_matrix_4_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_neq_matrix_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_eq_matrix.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_eq_matrix_1_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_eq_matrix_1_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_eq_matrix_1_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_eq_matrix_2_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_eq_matrix_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_eq_matrix_3_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_eq_matrix_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_eq_matrix_4_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_eq_matrix_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_matrix.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_matrix_1_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_matrix_1_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_matrix_1_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_matrix_2_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_matrix_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_matrix_3_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_matrix_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_matrix_4_1.hpp (contents, props changed)
sandbox/la/boost/la/custom/matrix_plus_matrix_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/swizzle.hpp (contents, props changed)
sandbox/la/boost/la/custom/swizzle_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/swizzle_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/swizzle_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_assign.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_assign_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_assign_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_assign_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_div_eq_scalar.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_div_eq_scalar_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_div_eq_scalar_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_div_eq_scalar_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_div_scalar.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_div_scalar_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_div_scalar_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_div_scalar_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_dot.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_dot_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_dot_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_dot_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_eq_vector.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_eq_vector_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_eq_vector_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_eq_vector_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_magnitude.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_magnitude2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_magnitude2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_magnitude2_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_magnitude2_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_magnitude_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_magnitude_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_magnitude_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_make.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_make_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_make_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_make_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_minus.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_minus_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_minus_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_minus_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_minus_eq_vector.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_minus_eq_vector_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_minus_eq_vector_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_minus_eq_vector_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_minus_vector.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_minus_vector_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_minus_vector_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_minus_vector_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_mul_eq_scalar.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_mul_eq_scalar_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_mul_eq_scalar_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_mul_eq_scalar_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_mul_matrix.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_mul_matrix_2_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_mul_matrix_3_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_mul_matrix_4_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_mul_scalar.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_mul_scalar_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_mul_scalar_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_mul_scalar_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_neq_vector.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_neq_vector_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_neq_vector_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_neq_vector_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_plus_eq_vector.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_plus_eq_vector_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_plus_eq_vector_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_plus_eq_vector_4.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_plus_vector.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_plus_vector_2.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_plus_vector_3.hpp (contents, props changed)
sandbox/la/boost/la/custom/vector_plus_vector_4.hpp (contents, props changed)
sandbox/la/boost/la/deduce_matrix.hpp (contents, props changed)
sandbox/la/boost/la/deduce_scalar.hpp (contents, props changed)
sandbox/la/boost/la/deduce_vector.hpp (contents, props changed)
sandbox/la/boost/la/delc.hpp (contents, props changed)
sandbox/la/boost/la/delr.hpp (contents, props changed)
sandbox/la/boost/la/delrc.hpp (contents, props changed)
sandbox/la/boost/la/detail/
sandbox/la/boost/la/detail/bind_oper.hpp (contents, props changed)
sandbox/la/boost/la/detail/cofactor_impl.hpp (contents, props changed)
sandbox/la/boost/la/detail/determinant_impl.hpp (contents, props changed)
sandbox/la/boost/la/detail/remove_const.hpp (contents, props changed)
sandbox/la/boost/la/detail/swizzle_traits.hpp (contents, props changed)
sandbox/la/boost/la/diag.hpp (contents, props changed)
sandbox/la/boost/la/diag_matrix.hpp (contents, props changed)
sandbox/la/boost/la/error.hpp (contents, props changed)
sandbox/la/boost/la/identity_matrix.hpp (contents, props changed)
sandbox/la/boost/la/mat.hpp (contents, props changed)
sandbox/la/boost/la/mat_traits.hpp (contents, props changed)
sandbox/la/boost/la/math.hpp (contents, props changed)
sandbox/la/boost/la/matrix_access.hpp (contents, props changed)
sandbox/la/boost/la/matrix_assign.hpp (contents, props changed)
sandbox/la/boost/la/matrix_determinant.hpp (contents, props changed)
sandbox/la/boost/la/matrix_div_eq_scalar.hpp (contents, props changed)
sandbox/la/boost/la/matrix_div_scalar.hpp (contents, props changed)
sandbox/la/boost/la/matrix_eq_matrix.hpp (contents, props changed)
sandbox/la/boost/la/matrix_inverse.hpp (contents, props changed)
sandbox/la/boost/la/matrix_make.hpp (contents, props changed)
sandbox/la/boost/la/matrix_minus.hpp (contents, props changed)
sandbox/la/boost/la/matrix_minus_eq_matrix.hpp (contents, props changed)
sandbox/la/boost/la/matrix_minus_matrix.hpp (contents, props changed)
sandbox/la/boost/la/matrix_mul_eq_matrix.hpp (contents, props changed)
sandbox/la/boost/la/matrix_mul_eq_scalar.hpp (contents, props changed)
sandbox/la/boost/la/matrix_mul_matrix.hpp (contents, props changed)
sandbox/la/boost/la/matrix_mul_scalar.hpp (contents, props changed)
sandbox/la/boost/la/matrix_mul_vector.hpp (contents, props changed)
sandbox/la/boost/la/matrix_neq_matrix.hpp (contents, props changed)
sandbox/la/boost/la/matrix_plus_eq_matrix.hpp (contents, props changed)
sandbox/la/boost/la/matrix_plus_matrix.hpp (contents, props changed)
sandbox/la/boost/la/matrix_scalar_cast.hpp (contents, props changed)
sandbox/la/boost/la/matrix_traits.hpp (contents, props changed)
sandbox/la/boost/la/mref.hpp (contents, props changed)
sandbox/la/boost/la/rotx_matrix.hpp (contents, props changed)
sandbox/la/boost/la/roty_matrix.hpp (contents, props changed)
sandbox/la/boost/la/rotz_matrix.hpp (contents, props changed)
sandbox/la/boost/la/row.hpp (contents, props changed)
sandbox/la/boost/la/row_matrix.hpp (contents, props changed)
sandbox/la/boost/la/scalar.hpp (contents, props changed)
sandbox/la/boost/la/scalar_traits.hpp (contents, props changed)
sandbox/la/boost/la/sw.hpp (contents, props changed)
sandbox/la/boost/la/swizzle.hpp (contents, props changed)
sandbox/la/boost/la/trans_matrix.hpp (contents, props changed)
sandbox/la/boost/la/transpose.hpp (contents, props changed)
sandbox/la/boost/la/vec.hpp (contents, props changed)
sandbox/la/boost/la/vec_traits.hpp (contents, props changed)
sandbox/la/boost/la/vector_access.hpp (contents, props changed)
sandbox/la/boost/la/vector_assign.hpp (contents, props changed)
sandbox/la/boost/la/vector_cross.hpp (contents, props changed)
sandbox/la/boost/la/vector_div_eq_scalar.hpp (contents, props changed)
sandbox/la/boost/la/vector_div_scalar.hpp (contents, props changed)
sandbox/la/boost/la/vector_dot.hpp (contents, props changed)
sandbox/la/boost/la/vector_eq_vector.hpp (contents, props changed)
sandbox/la/boost/la/vector_magnitude.hpp (contents, props changed)
sandbox/la/boost/la/vector_magnitude2.hpp (contents, props changed)
sandbox/la/boost/la/vector_make.hpp (contents, props changed)
sandbox/la/boost/la/vector_minus.hpp (contents, props changed)
sandbox/la/boost/la/vector_minus_eq_vector.hpp (contents, props changed)
sandbox/la/boost/la/vector_minus_vector.hpp (contents, props changed)
sandbox/la/boost/la/vector_mul_eq_scalar.hpp (contents, props changed)
sandbox/la/boost/la/vector_mul_matrix.hpp (contents, props changed)
sandbox/la/boost/la/vector_mul_scalar.hpp (contents, props changed)
sandbox/la/boost/la/vector_neq_vector.hpp (contents, props changed)
sandbox/la/boost/la/vector_plus_eq_vector.hpp (contents, props changed)
sandbox/la/boost/la/vector_plus_vector.hpp (contents, props changed)
sandbox/la/boost/la/vector_scalar_cast.hpp (contents, props changed)
sandbox/la/boost/la/vector_traits.hpp (contents, props changed)
sandbox/la/boost/la/vref.hpp (contents, props changed)
sandbox/la/boost/la/zero_determinant_error.hpp (contents, props changed)
sandbox/la/boost/la/zero_matrix.hpp (contents, props changed)
sandbox/la/boost/la/zero_vector.hpp (contents, props changed)
sandbox/la/libs/
sandbox/la/libs/la/
sandbox/la/libs/la/doc/
sandbox/la/libs/la/doc/BOOST_LA_FORCE_INLINE.html (contents, props changed)
sandbox/la/libs/la/doc/BOOST_LA_INLINE.html (contents, props changed)
sandbox/la/libs/la/doc/BOOST_LA_INLINE_CRITICAL.html (contents, props changed)
sandbox/la/libs/la/doc/BOOST_LA_INLINE_OPERATIONS.html (contents, props changed)
sandbox/la/libs/la/doc/BOOST_LA_INLINE_RECURSION.html (contents, props changed)
sandbox/la/libs/la/doc/BOOST_LA_INLINE_TRIVIAL.html (contents, props changed)
sandbox/la/libs/la/doc/Index_of_Functions.html (contents, props changed)
sandbox/la/libs/la/doc/Index_of_Headers.html (contents, props changed)
sandbox/la/libs/la/doc/Index_of_Types.html (contents, props changed)
sandbox/la/libs/la/doc/Index_of_View_Proxies.html (contents, props changed)
sandbox/la/libs/la/doc/Interoperability.html (contents, props changed)
sandbox/la/libs/la/doc/MSVC_view_proxy_bug.html (contents, props changed)
sandbox/la/libs/la/doc/SFINAE.html (contents, props changed)
sandbox/la/libs/la/doc/Swizzling.html (contents, props changed)
sandbox/la/libs/la/doc/Synopsis.html (contents, props changed)
sandbox/la/libs/la/doc/Views.html (contents, props changed)
sandbox/la/libs/la/doc/accessing_matrix_elements.html (contents, props changed)
sandbox/la/libs/la/doc/accessing_vector_elements_swizzling.html (contents, props changed)
sandbox/la/libs/la/doc/assign_matrix_matrix_.html (contents, props changed)
sandbox/la/libs/la/doc/assign_vector_vector_.html (contents, props changed)
sandbox/la/libs/la/doc/binary_matrix_matrix_operations.html (contents, props changed)
sandbox/la/libs/la/doc/binary_matrix_scalar_operations.html (contents, props changed)
sandbox/la/libs/la/doc/binary_vector_matrix_operations.html (contents, props changed)
sandbox/la/libs/la/doc/binary_vector_scalar_operations.html (contents, props changed)
sandbox/la/libs/la/doc/binary_vector_vector_operations.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_all_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_array_matrix_traits_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_array_vector_traits_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_col_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_col_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_config_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_deduce_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_deduce_scalar_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_deduce_vector_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_delc_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_delr_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_delrc_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_diag_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_diag_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_error_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_identity_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_mat_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_mat_traits_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_access_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_assign_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_determinant_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_div_eq_scalar_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_div_scalar_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_eq_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_inverse_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_make_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_minus_eq_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_minus_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_minus_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_mul_eq_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_mul_eq_scalar_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_mul_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_mul_scalar_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_mul_vector_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_neq_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_plus_eq_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_plus_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_scalar_cast_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_matrix_traits_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_mref_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_rotx_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_roty_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_rotz_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_row_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_row_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_scalar_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_scalar_traits_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_sw_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_swizzle_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_trans_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_transpose_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vec_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vec_traits_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_access_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_assign_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_cross_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_div_eq_scalar_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_div_scalar_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_dot_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_eq_vector_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_magnitude2_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_magnitude_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_make_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_minus_eq_vector_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_minus_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_minus_vector_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_mul_eq_scalar_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_mul_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_mul_scalar_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_neq_vector_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_plus_eq_vector_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_plus_vector_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_scalar_cast_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vector_traits_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_vref_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_zero_determinant_error_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_zero_matrix_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/boost_la_zero_vector_hpp.html (contents, props changed)
sandbox/la/libs/la/doc/c_arrays.html (contents, props changed)
sandbox/la/libs/la/doc/col.html (contents, props changed)
sandbox/la/libs/la/doc/col_matrix.html (contents, props changed)
sandbox/la/libs/la/doc/configuration_macro.html (contents, props changed)
sandbox/la/libs/la/doc/conversion_functions.html (contents, props changed)
sandbox/la/libs/la/doc/creating_matrix_objects.html (contents, props changed)
sandbox/la/libs/la/doc/creating_vector_objects.html (contents, props changed)
sandbox/la/libs/la/doc/cross.html (contents, props changed)
sandbox/la/libs/la/doc/deduce_matrix.html (contents, props changed)
sandbox/la/libs/la/doc/deduce_matrix2.html (contents, props changed)
sandbox/la/libs/la/doc/deduce_scalar.html (contents, props changed)
sandbox/la/libs/la/doc/deduce_vector.html (contents, props changed)
sandbox/la/libs/la/doc/deduce_vector2.html (contents, props changed)
sandbox/la/libs/la/doc/delc.html (contents, props changed)
sandbox/la/libs/la/doc/delr.html (contents, props changed)
sandbox/la/libs/la/doc/delrc.html (contents, props changed)
sandbox/la/libs/la/doc/determinant.html (contents, props changed)
sandbox/la/libs/la/doc/diag.html (contents, props changed)
sandbox/la/libs/la/doc/diag_matrix.html (contents, props changed)
sandbox/la/libs/la/doc/dot.html (contents, props changed)
sandbox/la/libs/la/doc/error.html (contents, props changed)
sandbox/la/libs/la/doc/exception_types.html (contents, props changed)
sandbox/la/libs/la/doc/generic_programming_utilities.html (contents, props changed)
sandbox/la/libs/la/doc/identity_matrix.html (contents, props changed)
sandbox/la/libs/la/doc/index.html (contents, props changed)
sandbox/la/libs/la/doc/inverse.html (contents, props changed)
sandbox/la/libs/la/doc/is_matrix.html (contents, props changed)
sandbox/la/libs/la/doc/is_vector.html (contents, props changed)
sandbox/la/libs/la/doc/magnitude.html (contents, props changed)
sandbox/la/libs/la/doc/magnitude2.html (contents, props changed)
sandbox/la/libs/la/doc/make_matrix_.html (contents, props changed)
sandbox/la/libs/la/doc/make_vector_.html (contents, props changed)
sandbox/la/libs/la/doc/mat.html (contents, props changed)
sandbox/la/libs/la/doc/matrix_A.html (contents, props changed)
sandbox/la/libs/la/doc/matrix_and_vector_types.html (contents, props changed)
sandbox/la/libs/la/doc/matrix_traits.html (contents, props changed)
sandbox/la/libs/la/doc/matrix_traits_Matrix_cols.html (contents, props changed)
sandbox/la/libs/la/doc/matrix_traits_Matrix_ir.html (contents, props changed)
sandbox/la/libs/la/doc/matrix_traits_Matrix_iw.html (contents, props changed)
sandbox/la/libs/la/doc/matrix_traits_Matrix_r.html (contents, props changed)
sandbox/la/libs/la/doc/matrix_traits_Matrix_rows.html (contents, props changed)
sandbox/la/libs/la/doc/matrix_traits_Matrix_scalar_type.html (contents, props changed)
sandbox/la/libs/la/doc/matrix_traits_Matrix_w.html (contents, props changed)
sandbox/la/libs/la/doc/matrix_traits_mat_T_Rows_Cols_.html (contents, props changed)
sandbox/la/libs/la/doc/mref.html (contents, props changed)
sandbox/la/libs/la/doc/operator_add_matrix_matrix_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_add_vector_vector_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_bitor_rationale.html (contents, props changed)
sandbox/la/libs/la/doc/operator_div_eq_matrix_scalar_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_div_eq_vector_scalar_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_eq_matrix_matrix_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_eq_vector_vector_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_minus_matrix_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_minus_matrix_matrix_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_minus_vector_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_minus_vector_vector_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_mul_eq_matrix_matrix_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_mul_eq_matrix_scalar_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_mul_eq_vector_scalar_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_not_eq_matrix_matrix_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_not_eq_vector_vector_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_over_matrix_scalar_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_over_vector_scalar_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_plus_matrix_matrix_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_plus_vector_vector_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_sub_eq_matrix_matrix_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_sub_eq_vector_vector_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_times_matrix_matrix_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_times_matrix_scalar_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_times_matrix_vector_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_times_vector_matrix_.html (contents, props changed)
sandbox/la/libs/la/doc/operator_times_vector_scalar_.html (contents, props changed)
sandbox/la/libs/la/doc/reno.css (contents, props changed)
sandbox/la/libs/la/doc/reverge.png (contents, props changed)
sandbox/la/libs/la/doc/rotx_matrix.html (contents, props changed)
sandbox/la/libs/la/doc/roty_matrix.html (contents, props changed)
sandbox/la/libs/la/doc/rotz_matrix.html (contents, props changed)
sandbox/la/libs/la/doc/row.html (contents, props changed)
sandbox/la/libs/la/doc/row_matrix.html (contents, props changed)
sandbox/la/libs/la/doc/scalar.html (contents, props changed)
sandbox/la/libs/la/doc/scalar_cast_matrix_.html (contents, props changed)
sandbox/la/libs/la/doc/scalar_cast_vector_.html (contents, props changed)
sandbox/la/libs/la/doc/scalar_requirements.html (contents, props changed)
sandbox/la/libs/la/doc/scalar_traits.html (contents, props changed)
sandbox/la/libs/la/doc/shade-l.png (contents, props changed)
sandbox/la/libs/la/doc/shade-r.png (contents, props changed)
sandbox/la/libs/la/doc/source/
sandbox/la/libs/la/doc/source/Jamfile (contents, props changed)
sandbox/la/libs/la/doc/source/array_matrix_traits.cpp (contents, props changed)
sandbox/la/libs/la/doc/source/array_vector_traits.cpp (contents, props changed)
sandbox/la/libs/la/doc/source/boost-la.reno (contents, props changed)
sandbox/la/libs/la/doc/source/html_prefix.txt (contents, props changed)
sandbox/la/libs/la/doc/source/html_prefix1.txt (contents, props changed)
sandbox/la/libs/la/doc/source/html_suffix.txt (contents, props changed)
sandbox/la/libs/la/doc/source/html_suffix1.txt (contents, props changed)
sandbox/la/libs/la/doc/source/interoperability.cpp (contents, props changed)
sandbox/la/libs/la/doc/source/tutorial.cpp (contents, props changed)
sandbox/la/libs/la/doc/sw.html (contents, props changed)
sandbox/la/libs/la/doc/swizzling_support.html (contents, props changed)
sandbox/la/libs/la/doc/trans_matrix.html (contents, props changed)
sandbox/la/libs/la/doc/transpose.html (contents, props changed)
sandbox/la/libs/la/doc/type_traits.html (contents, props changed)
sandbox/la/libs/la/doc/unary_matrix_operations.html (contents, props changed)
sandbox/la/libs/la/doc/unary_vector_operations.html (contents, props changed)
sandbox/la/libs/la/doc/valid-css.png (contents, props changed)
sandbox/la/libs/la/doc/valid-xhtml.png (contents, props changed)
sandbox/la/libs/la/doc/vec.html (contents, props changed)
sandbox/la/libs/la/doc/vector_A.html (contents, props changed)
sandbox/la/libs/la/doc/vector_and_matrix_types.html (contents, props changed)
sandbox/la/libs/la/doc/vector_traits.html (contents, props changed)
sandbox/la/libs/la/doc/vector_traits_Vector_dim.html (contents, props changed)
sandbox/la/libs/la/doc/vector_traits_Vector_ir.html (contents, props changed)
sandbox/la/libs/la/doc/vector_traits_Vector_iw.html (contents, props changed)
sandbox/la/libs/la/doc/vector_traits_Vector_r.html (contents, props changed)
sandbox/la/libs/la/doc/vector_traits_Vector_scalar_type.html (contents, props changed)
sandbox/la/libs/la/doc/vector_traits_Vector_w.html (contents, props changed)
sandbox/la/libs/la/doc/vector_traits_vec_T_Dim_.html (contents, props changed)
sandbox/la/libs/la/doc/view_proxies_of_matrix_type.html (contents, props changed)
sandbox/la/libs/la/doc/view_proxies_of_vector_type.html (contents, props changed)
sandbox/la/libs/la/doc/view_proxy.html (contents, props changed)
sandbox/la/libs/la/doc/vref.html (contents, props changed)
sandbox/la/libs/la/doc/zero_determinant_error.html (contents, props changed)
sandbox/la/libs/la/doc/zero_matrix.html (contents, props changed)
sandbox/la/libs/la/doc/zero_vector.html (contents, props changed)
sandbox/la/libs/la/gen/
sandbox/la/libs/la/gen/Jamfile (contents, props changed)
sandbox/la/libs/la/gen/gen.cpp (contents, props changed)
sandbox/la/libs/la/test/
sandbox/la/libs/la/test/Jamfile (contents, props changed)
sandbox/la/libs/la/test/col_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/col_test.cpp (contents, props changed)
sandbox/la/libs/la/test/deduce_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/deduce_scalar_fail1.cpp (contents, props changed)
sandbox/la/libs/la/test/deduce_scalar_fail2.cpp (contents, props changed)
sandbox/la/libs/la/test/deduce_scalar_fail3.cpp (contents, props changed)
sandbox/la/libs/la/test/deduce_scalar_test.cpp (contents, props changed)
sandbox/la/libs/la/test/deduce_vector_test.cpp (contents, props changed)
sandbox/la/libs/la/test/delc_test.cpp (contents, props changed)
sandbox/la/libs/la/test/delr_test.cpp (contents, props changed)
sandbox/la/libs/la/test/delrc_test.cpp (contents, props changed)
sandbox/la/libs/la/test/diag_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/diag_test.cpp (contents, props changed)
sandbox/la/libs/la/test/gold.hpp (contents, props changed)
sandbox/la/libs/la/test/header-test.cpp (contents, props changed)
sandbox/la/libs/la/test/identity_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/interop_test.cpp (contents, props changed)
sandbox/la/libs/la/test/make_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_access_fail1.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_access_fail2.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_access_fail3.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_access_fail4.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_access_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_assign_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_determinant_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_div_eq_scalar_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_div_scalar_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_eq_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_inverse_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_minus_eq_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_minus_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_minus_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_mul_eq_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_mul_eq_scalar_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_mul_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_mul_scalar_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_mul_vector_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_plus_eq_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_plus_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/matrix_scalar_cast_test.cpp (contents, props changed)
sandbox/la/libs/la/test/rotx_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/roty_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/rotz_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/row_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/row_test.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle1_fail2.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle1_fail3.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle1_fail4.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle1_test.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle2_fail2.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle2_fail3.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle2_fail4.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle2_test.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle3_fail2.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle3_fail3.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle3_fail4.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle3_test.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle4_fail2.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle4_fail3.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle4_fail4.cpp (contents, props changed)
sandbox/la/libs/la/test/swizzle4_test.cpp (contents, props changed)
sandbox/la/libs/la/test/test_la.hpp (contents, props changed)
sandbox/la/libs/la/test/test_la_matrix.hpp (contents, props changed)
sandbox/la/libs/la/test/test_la_vector.hpp (contents, props changed)
sandbox/la/libs/la/test/trans_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/transpose_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_access_fail1.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_access_fail2.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_access_fail3.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_access_fail4.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_access_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_assign_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_cross_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_div_eq_scalar_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_div_scalar_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_dot_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_eq_vector_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_magnitude2_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_magnitude_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_minus_eq_vector_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_minus_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_minus_vector_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_mul_eq_scalar_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_mul_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_mul_scalar_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_plus_eq_vector_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_plus_vector_test.cpp (contents, props changed)
sandbox/la/libs/la/test/vector_scalar_cast_test.cpp (contents, props changed)
sandbox/la/libs/la/test/zero_matrix_test.cpp (contents, props changed)
sandbox/la/libs/la/test/zero_vector_test.cpp (contents, props changed)
Added: sandbox/la/boost/la/all.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/all.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,87 @@
+//Copyright (c) 2008-2009 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 UUID_0B9D9FB6B95D11DEA8E0305E55D89593
+#define UUID_0B9D9FB6B95D11DEA8E0305E55D89593
+
+#include <boost/la/array_matrix_traits.hpp>
+#include <boost/la/array_vector_traits.hpp>
+#include <boost/la/col.hpp>
+#include <boost/la/col_matrix.hpp>
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/la/deduce_scalar.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/la/delc.hpp>
+#include <boost/la/delr.hpp>
+#include <boost/la/delrc.hpp>
+#include <boost/la/diag.hpp>
+#include <boost/la/diag_matrix.hpp>
+#include <boost/la/error.hpp>
+#include <boost/la/identity_matrix.hpp>
+#include <boost/la/matrix_make.hpp>
+#include <boost/la/vector_make.hpp>
+#include <boost/la/mat.hpp>
+#include <boost/la/math.hpp>
+#include <boost/la/matrix_access.hpp>
+#include <boost/la/matrix_assign.hpp>
+#include <boost/la/matrix_determinant.hpp>
+#include <boost/la/matrix_div_eq_scalar.hpp>
+#include <boost/la/matrix_div_scalar.hpp>
+#include <boost/la/matrix_eq_matrix.hpp>
+#include <boost/la/matrix_inverse.hpp>
+#include <boost/la/matrix_minus.hpp>
+#include <boost/la/matrix_minus_eq_matrix.hpp>
+#include <boost/la/matrix_minus_matrix.hpp>
+#include <boost/la/matrix_mul_eq_matrix.hpp>
+#include <boost/la/matrix_mul_eq_scalar.hpp>
+#include <boost/la/matrix_mul_matrix.hpp>
+#include <boost/la/matrix_mul_scalar.hpp>
+#include <boost/la/matrix_mul_vector.hpp>
+#include <boost/la/matrix_neq_matrix.hpp>
+#include <boost/la/matrix_plus_eq_matrix.hpp>
+#include <boost/la/matrix_plus_matrix.hpp>
+#include <boost/la/matrix_scalar_cast.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/la/mat_traits.hpp>
+#include <boost/la/mref.hpp>
+#include <boost/la/rotx_matrix.hpp>
+#include <boost/la/roty_matrix.hpp>
+#include <boost/la/rotz_matrix.hpp>
+#include <boost/la/row.hpp>
+#include <boost/la/row_matrix.hpp>
+#include <boost/la/scalar.hpp>
+#include <boost/la/sw.hpp>
+#include <boost/la/swizzle.hpp>
+#include <boost/la/transpose.hpp>
+#include <boost/la/trans_matrix.hpp>
+#include <boost/la/vec.hpp>
+#include <boost/la/vector_access.hpp>
+#include <boost/la/vector_assign.hpp>
+#include <boost/la/vector_cross.hpp>
+#include <boost/la/vector_div_eq_scalar.hpp>
+#include <boost/la/vector_div_scalar.hpp>
+#include <boost/la/vector_dot.hpp>
+#include <boost/la/vector_eq_vector.hpp>
+#include <boost/la/vector_magnitude.hpp>
+#include <boost/la/vector_magnitude2.hpp>
+#include <boost/la/vector_minus.hpp>
+#include <boost/la/vector_minus_eq_vector.hpp>
+#include <boost/la/vector_minus_vector.hpp>
+#include <boost/la/vector_mul_eq_scalar.hpp>
+#include <boost/la/vector_mul_matrix.hpp>
+#include <boost/la/vector_mul_scalar.hpp>
+#include <boost/la/vector_neq_vector.hpp>
+#include <boost/la/vector_plus_eq_vector.hpp>
+#include <boost/la/vector_plus_vector.hpp>
+#include <boost/la/vector_scalar_cast.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/la/vec_traits.hpp>
+#include <boost/la/vref.hpp>
+#include <boost/la/zero_determinant_error.hpp>
+#include <boost/la/zero_matrix.hpp>
+#include <boost/la/zero_vector.hpp>
+
+#endif
Added: sandbox/la/boost/la/array_matrix_traits.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/array_matrix_traits.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,98 @@
+//Copyright (c) 2008-2009 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 UUID_FA3ED0DCA17911DEA6BBA09955D89593
+#define UUID_FA3ED0DCA17911DEA6BBA09955D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/la/scalar.hpp>
+#include <boost/la/detail/remove_const.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class T,int Rows,int Cols>
+ struct
+ matrix_traits<T[Rows][Cols]>
+ {
+ typedef T this_matrix[Rows][Cols];
+ typedef typename la_detail::remove_const<T>::type scalar_type;
+ static int const rows=Rows;
+ static int const cols=Cols;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<Rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<Cols);
+ return x[Row][Col];
+ }
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_matrix & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<Rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<Cols);
+ return x[Row][Col];
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int row, int col, this_matrix const & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<Rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<Cols);
+ return x[row][col];
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int row, int col, this_matrix & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<Rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<Cols);
+ return x[row][col];
+ }
+ };
+
+ template <class T,int Rows,int Cols,int R,int C,class S>
+ struct
+ deduce_matrix<T[Rows][Cols],R,C,S>
+ {
+ typedef mat<S,R,C> type;
+ };
+
+ template <class T1,class T2,int Rows,int Cols,int R,int C>
+ struct
+ deduce_matrix2<T1[Rows][Cols],T2[Rows][Cols],R,C>
+ {
+ typedef mat<typename deduce_scalar<T1,T2>::type,R,C> type;
+ };
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/array_vector_traits.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/array_vector_traits.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,96 @@
+//Copyright (c) 2008-2009 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 UUID_DEC6035EA1C211DEA5E8ECB856D89593
+#define UUID_DEC6035EA1C211DEA5E8ECB856D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/la/detail/remove_const.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class T,int M,int N>
+ struct
+ vector_traits<T[M][N]>
+ {
+ static int const dim=0;
+ typedef void scalar_type;
+ };
+
+ template <class T,int Dim>
+ struct
+ vector_traits<T[Dim]>
+ {
+ typedef T this_vector[Dim];
+ typedef typename la_detail::remove_const<T>::type scalar_type;
+ static int const dim=Dim;
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_vector const & x )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<Dim);
+ return x[I];
+ }
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_vector & x )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<Dim);
+ return x[I];
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int i, this_vector const & x )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<Dim);
+ return x[i];
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int i, this_vector & x )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<Dim);
+ return x[i];
+ }
+ };
+
+ template <class T,int Dim,int D,class S>
+ struct
+ deduce_vector<T[Dim],D,S>
+ {
+ typedef vec<S,D> type;
+ };
+
+ template <class T1,class T2,int Dim,int D>
+ struct
+ deduce_vector2<T1[Dim],T2[Dim],D>
+ {
+ typedef vec<typename deduce_scalar<T1,T2>::type,D> type;
+ };
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/col.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/col.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,130 @@
+//Copyright (c) 2008-2009 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 UUID_5265FC7CA1C011DE9EBDFFA956D89593
+#define UUID_5265FC7CA1C011DE9EBDFFA956D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/la/detail/bind_oper.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int Col>
+ struct col_tag { };
+
+ template <int Col,class OriginalMatrix>
+ class
+ col_
+ {
+ col_( col_ const & );
+ col_ & operator=( col_ const & );
+ ~col_();
+
+ public:
+
+ template <class T>
+ BOOST_LA_INLINE_TRIVIAL
+ col_ &
+ operator=( T const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <class T,int Col>
+ struct
+ pipe_return<T,col_tag<Col> >
+ {
+ typedef col_<Col,T> type;
+ };
+ }
+
+ template <class Vector>
+ struct vector_traits;
+
+ template <int Col,class OriginalMatrix>
+ struct
+ vector_traits< la_detail::col_<Col,OriginalMatrix> >
+ {
+ typedef la_detail::col_<Col,OriginalMatrix> this_vector;
+ typedef typename matrix_traits<OriginalMatrix>::scalar_type scalar_type;
+ static int const dim=matrix_traits<OriginalMatrix>::rows;
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<matrix_traits<OriginalMatrix>::cols);
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_vector const & x )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ return matrix_traits<OriginalMatrix>::template r<I,Col>(reinterpret_cast<OriginalMatrix const &>(x));
+ }
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_vector & x )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ return matrix_traits<OriginalMatrix>::template w<I,Col>(reinterpret_cast<OriginalMatrix &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int i, this_vector const & x )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<dim);
+ return matrix_traits<OriginalMatrix>::ir(i,Col,reinterpret_cast<OriginalMatrix const &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int i, this_vector & x )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<dim);
+ return matrix_traits<OriginalMatrix>::iw(i,Col,reinterpret_cast<OriginalMatrix &>(x));
+ }
+ };
+
+ template <int C>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::col_tag<C>
+ col()
+ {
+ return la_detail::col_tag<C>();
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/col_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/col_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,131 @@
+//Copyright (c) 2008-2009 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 UUID_3EDF999CA1C011DEBA5C8DA956D89593
+#define UUID_3EDF999CA1C011DEBA5C8DA956D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/la/detail/bind_oper.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ struct col_matrix_tag { };
+
+ template <class OriginalVector>
+ class
+ col_matrix_
+ {
+ col_matrix_( col_matrix_ const & );
+ col_matrix_ & operator=( col_matrix_ const & );
+ ~col_matrix_();
+
+ public:
+
+ template <class T>
+ BOOST_LA_INLINE_TRIVIAL
+ col_matrix_ &
+ operator=( T const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <class T>
+ struct
+ pipe_return<T,col_matrix_tag>
+ {
+ typedef col_matrix_<T> type;
+ };
+ }
+
+ template <class Vector>
+ struct matrix_traits;
+
+ template <class OriginalVector>
+ struct
+ matrix_traits< la_detail::col_matrix_<OriginalVector> >
+ {
+ typedef la_detail::col_matrix_<OriginalVector> this_matrix;
+ typedef typename vector_traits<OriginalVector>::scalar_type scalar_type;
+ static int const rows=vector_traits<OriginalVector>::dim;
+ static int const cols=1;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_STATIC_ASSERT(Col==0);
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ return vector_traits<OriginalVector>::template r<Row>(reinterpret_cast<OriginalVector const &>(x));
+ }
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_matrix & x )
+ {
+ BOOST_STATIC_ASSERT(Col==0);
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ return vector_traits<OriginalVector>::template w<Row>(reinterpret_cast<OriginalVector &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int row, int col, this_matrix const & x )
+ {
+ BOOST_ASSERT(col==0);
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ return vector_traits<OriginalVector>::ir(row,reinterpret_cast<OriginalVector const &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int row, int col, this_matrix & x )
+ {
+ BOOST_ASSERT(col==0);
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ return vector_traits<OriginalVector>::iw(row,reinterpret_cast<OriginalVector &>(x));
+ }
+ };
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::col_matrix_tag
+ col_matrix()
+ {
+ return la_detail::col_matrix_tag();
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/config.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/config.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,34 @@
+//Copyright (c) 2008-2009 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_LA_FORCEINLINE
+# if defined(_MSC_VER)
+# define BOOST_LA_FORCEINLINE __forceinline
+# elif defined(__GNUC__) && __GNUC__>3
+# define BOOST_LA_FORCEINLINE inline __attribute__ ((always_inline))
+# else
+# define BOOST_LA_FORCEINLINE inline
+# endif
+#endif
+
+#ifndef BOOST_LA_INLINE
+#define BOOST_LA_INLINE inline
+#endif
+
+#ifndef BOOST_LA_INLINE_TRIVIAL
+#define BOOST_LA_INLINE_TRIVIAL BOOST_LA_FORCEINLINE
+#endif
+
+#ifndef BOOST_LA_INLINE_CRITICAL
+#define BOOST_LA_INLINE_CRITICAL BOOST_LA_FORCEINLINE
+#endif
+
+#ifndef BOOST_LA_INLINE_OPERATIONS
+#define BOOST_LA_INLINE_OPERATIONS BOOST_LA_INLINE
+#endif
+
+#ifndef BOOST_LA_INLINE_RECURSION
+#define BOOST_LA_INLINE_RECURSION BOOST_LA_INLINE_OPERATIONS
+#endif
Added: sandbox/la/boost/la/custom/matrix_assign.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_assign.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,22 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_ASSIGN_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_ASSIGN_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_assign_2_2.hpp>
+#include <boost/la/custom/matrix_assign_2_1.hpp>
+#include <boost/la/custom/matrix_assign_1_2.hpp>
+#include <boost/la/custom/matrix_assign_3_3.hpp>
+#include <boost/la/custom/matrix_assign_3_1.hpp>
+#include <boost/la/custom/matrix_assign_1_3.hpp>
+#include <boost/la/custom/matrix_assign_4_4.hpp>
+#include <boost/la/custom/matrix_assign_4_1.hpp>
+#include <boost/la/custom/matrix_assign_1_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_assign_1_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_assign_1_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_ASSIGN_1_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_ASSIGN_1_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)=matrix_traits<B>::template r<0,1>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_assign_defined;
+
+ template <>
+ struct
+ matrix_assign_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_assign_1_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_assign_1_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_ASSIGN_1_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_ASSIGN_1_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)=matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<A>::template w<0,2>(a)=matrix_traits<B>::template r<0,2>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_assign_defined;
+
+ template <>
+ struct
+ matrix_assign_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_assign_1_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_assign_1_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_ASSIGN_1_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_ASSIGN_1_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)=matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<A>::template w<0,2>(a)=matrix_traits<B>::template r<0,2>(b);
+ matrix_traits<A>::template w<0,3>(a)=matrix_traits<B>::template r<0,3>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_assign_defined;
+
+ template <>
+ struct
+ matrix_assign_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_assign_2_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_assign_2_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_ASSIGN_2_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_ASSIGN_2_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<1,0>(a)=matrix_traits<B>::template r<1,0>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_assign_defined;
+
+ template <>
+ struct
+ matrix_assign_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_assign_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_assign_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_ASSIGN_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_ASSIGN_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)=matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<A>::template w<1,0>(a)=matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<A>::template w<1,1>(a)=matrix_traits<B>::template r<1,1>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_assign_defined;
+
+ template <>
+ struct
+ matrix_assign_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_assign_3_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_assign_3_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_ASSIGN_3_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_ASSIGN_3_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<1,0>(a)=matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<A>::template w<2,0>(a)=matrix_traits<B>::template r<2,0>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_assign_defined;
+
+ template <>
+ struct
+ matrix_assign_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_assign_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_assign_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_ASSIGN_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_ASSIGN_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)=matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<A>::template w<0,2>(a)=matrix_traits<B>::template r<0,2>(b);
+ matrix_traits<A>::template w<1,0>(a)=matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<A>::template w<1,1>(a)=matrix_traits<B>::template r<1,1>(b);
+ matrix_traits<A>::template w<1,2>(a)=matrix_traits<B>::template r<1,2>(b);
+ matrix_traits<A>::template w<2,0>(a)=matrix_traits<B>::template r<2,0>(b);
+ matrix_traits<A>::template w<2,1>(a)=matrix_traits<B>::template r<2,1>(b);
+ matrix_traits<A>::template w<2,2>(a)=matrix_traits<B>::template r<2,2>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_assign_defined;
+
+ template <>
+ struct
+ matrix_assign_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_assign_4_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_assign_4_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_ASSIGN_4_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_ASSIGN_4_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<1,0>(a)=matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<A>::template w<2,0>(a)=matrix_traits<B>::template r<2,0>(b);
+ matrix_traits<A>::template w<3,0>(a)=matrix_traits<B>::template r<3,0>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_assign_defined;
+
+ template <>
+ struct
+ matrix_assign_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_assign_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_assign_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,64 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_ASSIGN_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_ASSIGN_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)=matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<A>::template w<0,2>(a)=matrix_traits<B>::template r<0,2>(b);
+ matrix_traits<A>::template w<0,3>(a)=matrix_traits<B>::template r<0,3>(b);
+ matrix_traits<A>::template w<1,0>(a)=matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<A>::template w<1,1>(a)=matrix_traits<B>::template r<1,1>(b);
+ matrix_traits<A>::template w<1,2>(a)=matrix_traits<B>::template r<1,2>(b);
+ matrix_traits<A>::template w<1,3>(a)=matrix_traits<B>::template r<1,3>(b);
+ matrix_traits<A>::template w<2,0>(a)=matrix_traits<B>::template r<2,0>(b);
+ matrix_traits<A>::template w<2,1>(a)=matrix_traits<B>::template r<2,1>(b);
+ matrix_traits<A>::template w<2,2>(a)=matrix_traits<B>::template r<2,2>(b);
+ matrix_traits<A>::template w<2,3>(a)=matrix_traits<B>::template r<2,3>(b);
+ matrix_traits<A>::template w<3,0>(a)=matrix_traits<B>::template r<3,0>(b);
+ matrix_traits<A>::template w<3,1>(a)=matrix_traits<B>::template r<3,1>(b);
+ matrix_traits<A>::template w<3,2>(a)=matrix_traits<B>::template r<3,2>(b);
+ matrix_traits<A>::template w<3,3>(a)=matrix_traits<B>::template r<3,3>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_assign_defined;
+
+ template <>
+ struct
+ matrix_assign_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_determinant.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_determinant.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DETERMINANT_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DETERMINANT_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_determinant_2.hpp>
+#include <boost/la/custom/matrix_determinant_3.hpp>
+#include <boost/la/custom/matrix_determinant_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_determinant_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_determinant_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DETERMINANT_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DETERMINANT_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<A>::cols==2,
+ typename matrix_traits<A>::scalar_type>::type
+ determinant( A const & a )
+ {
+ typedef typename matrix_traits<A>::scalar_type T;
+ T const a00=matrix_traits<A>::template r<0,0>(a);
+ T const a01=matrix_traits<A>::template r<0,1>(a);
+ T const a10=matrix_traits<A>::template r<1,0>(a);
+ T const a11=matrix_traits<A>::template r<1,1>(a);
+ T det=(a00*a11-a01*a10);
+ return det;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct matrix_determinant_defined;
+
+ template <>
+ struct
+ matrix_determinant_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_determinant_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_determinant_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DETERMINANT_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DETERMINANT_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<A>::cols==3,
+ typename matrix_traits<A>::scalar_type>::type
+ determinant( A const & a )
+ {
+ typedef typename matrix_traits<A>::scalar_type T;
+ T const a00=matrix_traits<A>::template r<0,0>(a);
+ T const a01=matrix_traits<A>::template r<0,1>(a);
+ T const a02=matrix_traits<A>::template r<0,2>(a);
+ T const a10=matrix_traits<A>::template r<1,0>(a);
+ T const a11=matrix_traits<A>::template r<1,1>(a);
+ T const a12=matrix_traits<A>::template r<1,2>(a);
+ T const a20=matrix_traits<A>::template r<2,0>(a);
+ T const a21=matrix_traits<A>::template r<2,1>(a);
+ T const a22=matrix_traits<A>::template r<2,2>(a);
+ T det=(a00*(a11*a22-a12*a21)-a01*(a10*a22-a12*a20)+a02*(a10*a21-a11*a20));
+ return det;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct matrix_determinant_defined;
+
+ template <>
+ struct
+ matrix_determinant_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_determinant_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_determinant_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,65 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DETERMINANT_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DETERMINANT_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<A>::cols==4,
+ typename matrix_traits<A>::scalar_type>::type
+ determinant( A const & a )
+ {
+ typedef typename matrix_traits<A>::scalar_type T;
+ T const a00=matrix_traits<A>::template r<0,0>(a);
+ T const a01=matrix_traits<A>::template r<0,1>(a);
+ T const a02=matrix_traits<A>::template r<0,2>(a);
+ T const a03=matrix_traits<A>::template r<0,3>(a);
+ T const a10=matrix_traits<A>::template r<1,0>(a);
+ T const a11=matrix_traits<A>::template r<1,1>(a);
+ T const a12=matrix_traits<A>::template r<1,2>(a);
+ T const a13=matrix_traits<A>::template r<1,3>(a);
+ T const a20=matrix_traits<A>::template r<2,0>(a);
+ T const a21=matrix_traits<A>::template r<2,1>(a);
+ T const a22=matrix_traits<A>::template r<2,2>(a);
+ T const a23=matrix_traits<A>::template r<2,3>(a);
+ T const a30=matrix_traits<A>::template r<3,0>(a);
+ T const a31=matrix_traits<A>::template r<3,1>(a);
+ T const a32=matrix_traits<A>::template r<3,2>(a);
+ T const a33=matrix_traits<A>::template r<3,3>(a);
+ T det=(a00*(a11*(a22*a33-a23*a32)-a12*(a21*a33-a23*a31)+a13*(a21*a32-a22*a31))-a01*(a10*(a22*a33-a23*a32)-a12*(a20*a33-a23*a30)+a13*(a20*a32-a22*a30))+a02*(a10*(a21*a33-a23*a31)-a11*(a20*a33-a23*a30)+a13*(a20*a31-a21*a30))-a03*(a10*(a21*a32-a22*a31)-a11*(a20*a32-a22*a30)+a12*(a20*a31-a21*a30)));
+ return det;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct matrix_determinant_defined;
+
+ template <>
+ struct
+ matrix_determinant_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_eq_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_eq_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,22 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_div_eq_scalar_2_2.hpp>
+#include <boost/la/custom/matrix_div_eq_scalar_2_1.hpp>
+#include <boost/la/custom/matrix_div_eq_scalar_1_2.hpp>
+#include <boost/la/custom/matrix_div_eq_scalar_3_3.hpp>
+#include <boost/la/custom/matrix_div_eq_scalar_3_1.hpp>
+#include <boost/la/custom/matrix_div_eq_scalar_1_3.hpp>
+#include <boost/la/custom/matrix_div_eq_scalar_4_4.hpp>
+#include <boost/la/custom/matrix_div_eq_scalar_4_1.hpp>
+#include <boost/la/custom/matrix_div_eq_scalar_1_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_eq_scalar_1_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_eq_scalar_1_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_1_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_1_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<A>::cols==2,
+ A &>::type
+ operator/=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)/=b;
+ matrix_traits<A>::template w<0,1>(a)/=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_eq_scalar_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_eq_scalar_1_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_eq_scalar_1_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_1_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_1_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<A>::cols==3,
+ A &>::type
+ operator/=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)/=b;
+ matrix_traits<A>::template w<0,1>(a)/=b;
+ matrix_traits<A>::template w<0,2>(a)/=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_eq_scalar_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_eq_scalar_1_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_eq_scalar_1_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_1_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_1_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<A>::cols==4,
+ A &>::type
+ operator/=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)/=b;
+ matrix_traits<A>::template w<0,1>(a)/=b;
+ matrix_traits<A>::template w<0,2>(a)/=b;
+ matrix_traits<A>::template w<0,3>(a)/=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_eq_scalar_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_eq_scalar_2_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_eq_scalar_2_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_2_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_2_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<A>::cols==1,
+ A &>::type
+ operator/=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)/=b;
+ matrix_traits<A>::template w<1,0>(a)/=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_eq_scalar_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_eq_scalar_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_eq_scalar_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<A>::cols==2,
+ A &>::type
+ operator/=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)/=b;
+ matrix_traits<A>::template w<0,1>(a)/=b;
+ matrix_traits<A>::template w<1,0>(a)/=b;
+ matrix_traits<A>::template w<1,1>(a)/=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_eq_scalar_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_eq_scalar_3_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_eq_scalar_3_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_3_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_3_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<A>::cols==1,
+ A &>::type
+ operator/=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)/=b;
+ matrix_traits<A>::template w<1,0>(a)/=b;
+ matrix_traits<A>::template w<2,0>(a)/=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_eq_scalar_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_eq_scalar_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_eq_scalar_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<A>::cols==3,
+ A &>::type
+ operator/=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)/=b;
+ matrix_traits<A>::template w<0,1>(a)/=b;
+ matrix_traits<A>::template w<0,2>(a)/=b;
+ matrix_traits<A>::template w<1,0>(a)/=b;
+ matrix_traits<A>::template w<1,1>(a)/=b;
+ matrix_traits<A>::template w<1,2>(a)/=b;
+ matrix_traits<A>::template w<2,0>(a)/=b;
+ matrix_traits<A>::template w<2,1>(a)/=b;
+ matrix_traits<A>::template w<2,2>(a)/=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_eq_scalar_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_eq_scalar_4_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_eq_scalar_4_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_4_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_4_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<A>::cols==1,
+ A &>::type
+ operator/=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)/=b;
+ matrix_traits<A>::template w<1,0>(a)/=b;
+ matrix_traits<A>::template w<2,0>(a)/=b;
+ matrix_traits<A>::template w<3,0>(a)/=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_eq_scalar_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_eq_scalar_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_eq_scalar_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_EQ_SCALAR_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<A>::cols==4,
+ A &>::type
+ operator/=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)/=b;
+ matrix_traits<A>::template w<0,1>(a)/=b;
+ matrix_traits<A>::template w<0,2>(a)/=b;
+ matrix_traits<A>::template w<0,3>(a)/=b;
+ matrix_traits<A>::template w<1,0>(a)/=b;
+ matrix_traits<A>::template w<1,1>(a)/=b;
+ matrix_traits<A>::template w<1,2>(a)/=b;
+ matrix_traits<A>::template w<1,3>(a)/=b;
+ matrix_traits<A>::template w<2,0>(a)/=b;
+ matrix_traits<A>::template w<2,1>(a)/=b;
+ matrix_traits<A>::template w<2,2>(a)/=b;
+ matrix_traits<A>::template w<2,3>(a)/=b;
+ matrix_traits<A>::template w<3,0>(a)/=b;
+ matrix_traits<A>::template w<3,1>(a)/=b;
+ matrix_traits<A>::template w<3,2>(a)/=b;
+ matrix_traits<A>::template w<3,3>(a)/=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_eq_scalar_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,22 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_SCALAR_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_SCALAR_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_div_scalar_2_2.hpp>
+#include <boost/la/custom/matrix_div_scalar_2_1.hpp>
+#include <boost/la/custom/matrix_div_scalar_1_2.hpp>
+#include <boost/la/custom/matrix_div_scalar_3_3.hpp>
+#include <boost/la/custom/matrix_div_scalar_3_1.hpp>
+#include <boost/la/custom/matrix_div_scalar_1_3.hpp>
+#include <boost/la/custom/matrix_div_scalar_4_4.hpp>
+#include <boost/la/custom/matrix_div_scalar_4_1.hpp>
+#include <boost/la/custom/matrix_div_scalar_1_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_scalar_1_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_scalar_1_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_SCALAR_1_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_SCALAR_1_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<A>::cols==2,
+ deduce_matrix<A> >::type
+ operator/( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)/b;
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)/b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_scalar_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_scalar_1_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_scalar_1_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_SCALAR_1_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_SCALAR_1_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<A>::cols==3,
+ deduce_matrix<A> >::type
+ operator/( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)/b;
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)/b;
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)/b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_scalar_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_scalar_1_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_scalar_1_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_SCALAR_1_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_SCALAR_1_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<A>::cols==4,
+ deduce_matrix<A> >::type
+ operator/( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)/b;
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)/b;
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)/b;
+ matrix_traits<R>::template w<0,3>(r)=matrix_traits<A>::template r<0,3>(a)/b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_scalar_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_scalar_2_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_scalar_2_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_SCALAR_2_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_SCALAR_2_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<A>::cols==1,
+ deduce_matrix<A> >::type
+ operator/( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)/b;
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)/b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_scalar_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_scalar_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_scalar_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_SCALAR_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_SCALAR_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<A>::cols==2,
+ deduce_matrix<A> >::type
+ operator/( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)/b;
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)/b;
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)/b;
+ matrix_traits<R>::template w<1,1>(r)=matrix_traits<A>::template r<1,1>(a)/b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_scalar_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_scalar_3_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_scalar_3_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_SCALAR_3_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_SCALAR_3_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<A>::cols==1,
+ deduce_matrix<A> >::type
+ operator/( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)/b;
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)/b;
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)/b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_scalar_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_scalar_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_scalar_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_SCALAR_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_SCALAR_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<A>::cols==3,
+ deduce_matrix<A> >::type
+ operator/( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)/b;
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)/b;
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)/b;
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)/b;
+ matrix_traits<R>::template w<1,1>(r)=matrix_traits<A>::template r<1,1>(a)/b;
+ matrix_traits<R>::template w<1,2>(r)=matrix_traits<A>::template r<1,2>(a)/b;
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)/b;
+ matrix_traits<R>::template w<2,1>(r)=matrix_traits<A>::template r<2,1>(a)/b;
+ matrix_traits<R>::template w<2,2>(r)=matrix_traits<A>::template r<2,2>(a)/b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_scalar_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_scalar_4_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_scalar_4_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_SCALAR_4_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_SCALAR_4_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<A>::cols==1,
+ deduce_matrix<A> >::type
+ operator/( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)/b;
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)/b;
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)/b;
+ matrix_traits<R>::template w<3,0>(r)=matrix_traits<A>::template r<3,0>(a)/b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_scalar_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_div_scalar_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_div_scalar_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,65 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_DIV_SCALAR_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_DIV_SCALAR_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<A>::cols==4,
+ deduce_matrix<A> >::type
+ operator/( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)/b;
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)/b;
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)/b;
+ matrix_traits<R>::template w<0,3>(r)=matrix_traits<A>::template r<0,3>(a)/b;
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)/b;
+ matrix_traits<R>::template w<1,1>(r)=matrix_traits<A>::template r<1,1>(a)/b;
+ matrix_traits<R>::template w<1,2>(r)=matrix_traits<A>::template r<1,2>(a)/b;
+ matrix_traits<R>::template w<1,3>(r)=matrix_traits<A>::template r<1,3>(a)/b;
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)/b;
+ matrix_traits<R>::template w<2,1>(r)=matrix_traits<A>::template r<2,1>(a)/b;
+ matrix_traits<R>::template w<2,2>(r)=matrix_traits<A>::template r<2,2>(a)/b;
+ matrix_traits<R>::template w<2,3>(r)=matrix_traits<A>::template r<2,3>(a)/b;
+ matrix_traits<R>::template w<3,0>(r)=matrix_traits<A>::template r<3,0>(a)/b;
+ matrix_traits<R>::template w<3,1>(r)=matrix_traits<A>::template r<3,1>(a)/b;
+ matrix_traits<R>::template w<3,2>(r)=matrix_traits<A>::template r<3,2>(a)/b;
+ matrix_traits<R>::template w<3,3>(r)=matrix_traits<A>::template r<3,3>(a)/b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_div_scalar_defined;
+
+ template <>
+ struct
+ matrix_div_scalar_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_eq_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_eq_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,22 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_EQ_MATRIX_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_EQ_MATRIX_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_eq_matrix_2_2.hpp>
+#include <boost/la/custom/matrix_eq_matrix_2_1.hpp>
+#include <boost/la/custom/matrix_eq_matrix_1_2.hpp>
+#include <boost/la/custom/matrix_eq_matrix_3_3.hpp>
+#include <boost/la/custom/matrix_eq_matrix_3_1.hpp>
+#include <boost/la/custom/matrix_eq_matrix_1_3.hpp>
+#include <boost/la/custom/matrix_eq_matrix_4_4.hpp>
+#include <boost/la/custom/matrix_eq_matrix_4_1.hpp>
+#include <boost/la/custom/matrix_eq_matrix_1_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_eq_matrix_1_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_eq_matrix_1_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_EQ_MATRIX_1_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_EQ_MATRIX_1_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b) &&
+ matrix_traits<A>::template r<0,1>(a)==matrix_traits<B>::template r<0,1>(b);
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_eq_matrix_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_eq_matrix_1_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_eq_matrix_1_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_EQ_MATRIX_1_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_EQ_MATRIX_1_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b) &&
+ matrix_traits<A>::template r<0,1>(a)==matrix_traits<B>::template r<0,1>(b) &&
+ matrix_traits<A>::template r<0,2>(a)==matrix_traits<B>::template r<0,2>(b);
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_eq_matrix_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_eq_matrix_1_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_eq_matrix_1_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_EQ_MATRIX_1_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_EQ_MATRIX_1_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b) &&
+ matrix_traits<A>::template r<0,1>(a)==matrix_traits<B>::template r<0,1>(b) &&
+ matrix_traits<A>::template r<0,2>(a)==matrix_traits<B>::template r<0,2>(b) &&
+ matrix_traits<A>::template r<0,3>(a)==matrix_traits<B>::template r<0,3>(b);
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_eq_matrix_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_eq_matrix_2_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_eq_matrix_2_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_EQ_MATRIX_2_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_EQ_MATRIX_2_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b) &&
+ matrix_traits<A>::template r<1,0>(a)==matrix_traits<B>::template r<1,0>(b);
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_eq_matrix_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_eq_matrix_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_eq_matrix_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_EQ_MATRIX_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_EQ_MATRIX_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b) &&
+ matrix_traits<A>::template r<0,1>(a)==matrix_traits<B>::template r<0,1>(b) &&
+ matrix_traits<A>::template r<1,0>(a)==matrix_traits<B>::template r<1,0>(b) &&
+ matrix_traits<A>::template r<1,1>(a)==matrix_traits<B>::template r<1,1>(b);
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_eq_matrix_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_eq_matrix_3_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_eq_matrix_3_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_EQ_MATRIX_3_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_EQ_MATRIX_3_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b) &&
+ matrix_traits<A>::template r<1,0>(a)==matrix_traits<B>::template r<1,0>(b) &&
+ matrix_traits<A>::template r<2,0>(a)==matrix_traits<B>::template r<2,0>(b);
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_eq_matrix_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_eq_matrix_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_eq_matrix_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_EQ_MATRIX_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_EQ_MATRIX_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b) &&
+ matrix_traits<A>::template r<0,1>(a)==matrix_traits<B>::template r<0,1>(b) &&
+ matrix_traits<A>::template r<0,2>(a)==matrix_traits<B>::template r<0,2>(b) &&
+ matrix_traits<A>::template r<1,0>(a)==matrix_traits<B>::template r<1,0>(b) &&
+ matrix_traits<A>::template r<1,1>(a)==matrix_traits<B>::template r<1,1>(b) &&
+ matrix_traits<A>::template r<1,2>(a)==matrix_traits<B>::template r<1,2>(b) &&
+ matrix_traits<A>::template r<2,0>(a)==matrix_traits<B>::template r<2,0>(b) &&
+ matrix_traits<A>::template r<2,1>(a)==matrix_traits<B>::template r<2,1>(b) &&
+ matrix_traits<A>::template r<2,2>(a)==matrix_traits<B>::template r<2,2>(b);
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_eq_matrix_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_eq_matrix_4_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_eq_matrix_4_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_EQ_MATRIX_4_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_EQ_MATRIX_4_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b) &&
+ matrix_traits<A>::template r<1,0>(a)==matrix_traits<B>::template r<1,0>(b) &&
+ matrix_traits<A>::template r<2,0>(a)==matrix_traits<B>::template r<2,0>(b) &&
+ matrix_traits<A>::template r<3,0>(a)==matrix_traits<B>::template r<3,0>(b);
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_eq_matrix_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_eq_matrix_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_eq_matrix_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,64 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_EQ_MATRIX_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_EQ_MATRIX_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b) &&
+ matrix_traits<A>::template r<0,1>(a)==matrix_traits<B>::template r<0,1>(b) &&
+ matrix_traits<A>::template r<0,2>(a)==matrix_traits<B>::template r<0,2>(b) &&
+ matrix_traits<A>::template r<0,3>(a)==matrix_traits<B>::template r<0,3>(b) &&
+ matrix_traits<A>::template r<1,0>(a)==matrix_traits<B>::template r<1,0>(b) &&
+ matrix_traits<A>::template r<1,1>(a)==matrix_traits<B>::template r<1,1>(b) &&
+ matrix_traits<A>::template r<1,2>(a)==matrix_traits<B>::template r<1,2>(b) &&
+ matrix_traits<A>::template r<1,3>(a)==matrix_traits<B>::template r<1,3>(b) &&
+ matrix_traits<A>::template r<2,0>(a)==matrix_traits<B>::template r<2,0>(b) &&
+ matrix_traits<A>::template r<2,1>(a)==matrix_traits<B>::template r<2,1>(b) &&
+ matrix_traits<A>::template r<2,2>(a)==matrix_traits<B>::template r<2,2>(b) &&
+ matrix_traits<A>::template r<2,3>(a)==matrix_traits<B>::template r<2,3>(b) &&
+ matrix_traits<A>::template r<3,0>(a)==matrix_traits<B>::template r<3,0>(b) &&
+ matrix_traits<A>::template r<3,1>(a)==matrix_traits<B>::template r<3,1>(b) &&
+ matrix_traits<A>::template r<3,2>(a)==matrix_traits<B>::template r<3,2>(b) &&
+ matrix_traits<A>::template r<3,3>(a)==matrix_traits<B>::template r<3,3>(b);
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_eq_matrix_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_inverse.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_inverse.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_INVERSE_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_INVERSE_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_inverse_2.hpp>
+#include <boost/la/custom/matrix_inverse_3.hpp>
+#include <boost/la/custom/matrix_inverse_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_inverse_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_inverse_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,62 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_INVERSE_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_INVERSE_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/la/scalar_traits.hpp>
+#include <boost/assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<A>::cols==2,
+ deduce_matrix<A> >::type
+ inverse( A const & a, typename matrix_traits<A>::scalar_type det )
+ {
+ typedef typename matrix_traits<A>::scalar_type T;
+ BOOST_ASSERT(det!=scalar_traits<T>::zero());
+ T const a00=matrix_traits<A>::template r<0,0>(a);
+ T const a01=matrix_traits<A>::template r<0,1>(a);
+ T const a10=matrix_traits<A>::template r<1,0>(a);
+ T const a11=matrix_traits<A>::template r<1,1>(a);
+ T const f=scalar_traits<T>::one()/det;
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)= f*a11;
+ matrix_traits<R>::template w<0,1>(r)=-f*a01;
+ matrix_traits<R>::template w<1,0>(r)=-f*a10;
+ matrix_traits<R>::template w<1,1>(r)= f*a00;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct matrix_inverse_defined;
+
+ template <>
+ struct
+ matrix_inverse_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_inverse_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_inverse_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,72 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_INVERSE_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_INVERSE_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/la/scalar_traits.hpp>
+#include <boost/assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<A>::cols==3,
+ deduce_matrix<A> >::type
+ inverse( A const & a, typename matrix_traits<A>::scalar_type det )
+ {
+ typedef typename matrix_traits<A>::scalar_type T;
+ BOOST_ASSERT(det!=scalar_traits<T>::zero());
+ T const a00=matrix_traits<A>::template r<0,0>(a);
+ T const a01=matrix_traits<A>::template r<0,1>(a);
+ T const a02=matrix_traits<A>::template r<0,2>(a);
+ T const a10=matrix_traits<A>::template r<1,0>(a);
+ T const a11=matrix_traits<A>::template r<1,1>(a);
+ T const a12=matrix_traits<A>::template r<1,2>(a);
+ T const a20=matrix_traits<A>::template r<2,0>(a);
+ T const a21=matrix_traits<A>::template r<2,1>(a);
+ T const a22=matrix_traits<A>::template r<2,2>(a);
+ T const f=scalar_traits<T>::one()/det;
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)= f*(a11*a22-a12*a21);
+ matrix_traits<R>::template w<0,1>(r)=-f*(a01*a22-a02*a21);
+ matrix_traits<R>::template w<0,2>(r)= f*(a01*a12-a02*a11);
+ matrix_traits<R>::template w<1,0>(r)=-f*(a10*a22-a12*a20);
+ matrix_traits<R>::template w<1,1>(r)= f*(a00*a22-a02*a20);
+ matrix_traits<R>::template w<1,2>(r)=-f*(a00*a12-a02*a10);
+ matrix_traits<R>::template w<2,0>(r)= f*(a10*a21-a11*a20);
+ matrix_traits<R>::template w<2,1>(r)=-f*(a00*a21-a01*a20);
+ matrix_traits<R>::template w<2,2>(r)= f*(a00*a11-a01*a10);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct matrix_inverse_defined;
+
+ template <>
+ struct
+ matrix_inverse_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_inverse_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_inverse_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,86 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_INVERSE_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_INVERSE_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/la/scalar_traits.hpp>
+#include <boost/assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<A>::cols==4,
+ deduce_matrix<A> >::type
+ inverse( A const & a, typename matrix_traits<A>::scalar_type det )
+ {
+ typedef typename matrix_traits<A>::scalar_type T;
+ BOOST_ASSERT(det!=scalar_traits<T>::zero());
+ T const a00=matrix_traits<A>::template r<0,0>(a);
+ T const a01=matrix_traits<A>::template r<0,1>(a);
+ T const a02=matrix_traits<A>::template r<0,2>(a);
+ T const a03=matrix_traits<A>::template r<0,3>(a);
+ T const a10=matrix_traits<A>::template r<1,0>(a);
+ T const a11=matrix_traits<A>::template r<1,1>(a);
+ T const a12=matrix_traits<A>::template r<1,2>(a);
+ T const a13=matrix_traits<A>::template r<1,3>(a);
+ T const a20=matrix_traits<A>::template r<2,0>(a);
+ T const a21=matrix_traits<A>::template r<2,1>(a);
+ T const a22=matrix_traits<A>::template r<2,2>(a);
+ T const a23=matrix_traits<A>::template r<2,3>(a);
+ T const a30=matrix_traits<A>::template r<3,0>(a);
+ T const a31=matrix_traits<A>::template r<3,1>(a);
+ T const a32=matrix_traits<A>::template r<3,2>(a);
+ T const a33=matrix_traits<A>::template r<3,3>(a);
+ T const f=scalar_traits<T>::one()/det;
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)= f*(a11*(a22*a33-a23*a32)-a12*(a21*a33-a23*a31)+a13*(a21*a32-a22*a31));
+ matrix_traits<R>::template w<0,1>(r)=-f*(a01*(a22*a33-a23*a32)-a02*(a21*a33-a23*a31)+a03*(a21*a32-a22*a31));
+ matrix_traits<R>::template w<0,2>(r)= f*(a01*(a12*a33-a13*a32)-a02*(a11*a33-a13*a31)+a03*(a11*a32-a12*a31));
+ matrix_traits<R>::template w<0,3>(r)=-f*(a01*(a12*a23-a13*a22)-a02*(a11*a23-a13*a21)+a03*(a11*a22-a12*a21));
+ matrix_traits<R>::template w<1,0>(r)=-f*(a10*(a22*a33-a23*a32)-a12*(a20*a33-a23*a30)+a13*(a20*a32-a22*a30));
+ matrix_traits<R>::template w<1,1>(r)= f*(a00*(a22*a33-a23*a32)-a02*(a20*a33-a23*a30)+a03*(a20*a32-a22*a30));
+ matrix_traits<R>::template w<1,2>(r)=-f*(a00*(a12*a33-a13*a32)-a02*(a10*a33-a13*a30)+a03*(a10*a32-a12*a30));
+ matrix_traits<R>::template w<1,3>(r)= f*(a00*(a12*a23-a13*a22)-a02*(a10*a23-a13*a20)+a03*(a10*a22-a12*a20));
+ matrix_traits<R>::template w<2,0>(r)= f*(a10*(a21*a33-a23*a31)-a11*(a20*a33-a23*a30)+a13*(a20*a31-a21*a30));
+ matrix_traits<R>::template w<2,1>(r)=-f*(a00*(a21*a33-a23*a31)-a01*(a20*a33-a23*a30)+a03*(a20*a31-a21*a30));
+ matrix_traits<R>::template w<2,2>(r)= f*(a00*(a11*a33-a13*a31)-a01*(a10*a33-a13*a30)+a03*(a10*a31-a11*a30));
+ matrix_traits<R>::template w<2,3>(r)=-f*(a00*(a11*a23-a13*a21)-a01*(a10*a23-a13*a20)+a03*(a10*a21-a11*a20));
+ matrix_traits<R>::template w<3,0>(r)=-f*(a10*(a21*a32-a22*a31)-a11*(a20*a32-a22*a30)+a12*(a20*a31-a21*a30));
+ matrix_traits<R>::template w<3,1>(r)= f*(a00*(a21*a32-a22*a31)-a01*(a20*a32-a22*a30)+a02*(a20*a31-a21*a30));
+ matrix_traits<R>::template w<3,2>(r)=-f*(a00*(a11*a32-a12*a31)-a01*(a10*a32-a12*a30)+a02*(a10*a31-a11*a30));
+ matrix_traits<R>::template w<3,3>(r)= f*(a00*(a11*a22-a12*a21)-a01*(a10*a22-a12*a20)+a02*(a10*a21-a11*a20));
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct matrix_inverse_defined;
+
+ template <>
+ struct
+ matrix_inverse_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_make.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_make.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,22 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MAKE_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MAKE_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_make_2_2.hpp>
+#include <boost/la/custom/matrix_make_2_1.hpp>
+#include <boost/la/custom/matrix_make_1_2.hpp>
+#include <boost/la/custom/matrix_make_3_3.hpp>
+#include <boost/la/custom/matrix_make_3_1.hpp>
+#include <boost/la/custom/matrix_make_1_3.hpp>
+#include <boost/la/custom/matrix_make_4_4.hpp>
+#include <boost/la/custom/matrix_make_4_1.hpp>
+#include <boost/la/custom/matrix_make_1_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_make_1_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_make_1_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MAKE_1_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MAKE_1_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class R,class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<R>::rows==1 && matrix_traits<A>::rows==1 &&
+ matrix_traits<R>::cols==2 && matrix_traits<A>::cols==2,
+ R>::type
+ make( A const & a )
+ {
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_make_defined;
+
+ template <>
+ struct
+ matrix_make_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_make_1_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_make_1_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MAKE_1_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MAKE_1_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class R,class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<R>::rows==1 && matrix_traits<A>::rows==1 &&
+ matrix_traits<R>::cols==3 && matrix_traits<A>::cols==3,
+ R>::type
+ make( A const & a )
+ {
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a);
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_make_defined;
+
+ template <>
+ struct
+ matrix_make_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_make_1_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_make_1_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MAKE_1_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MAKE_1_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class R,class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<R>::rows==1 && matrix_traits<A>::rows==1 &&
+ matrix_traits<R>::cols==4 && matrix_traits<A>::cols==4,
+ R>::type
+ make( A const & a )
+ {
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a);
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a);
+ matrix_traits<R>::template w<0,3>(r)=matrix_traits<A>::template r<0,3>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_make_defined;
+
+ template <>
+ struct
+ matrix_make_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_make_2_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_make_2_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MAKE_2_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MAKE_2_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class R,class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<R>::rows==2 && matrix_traits<A>::rows==2 &&
+ matrix_traits<R>::cols==1 && matrix_traits<A>::cols==1,
+ R>::type
+ make( A const & a )
+ {
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_make_defined;
+
+ template <>
+ struct
+ matrix_make_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_make_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_make_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MAKE_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MAKE_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class R,class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<R>::rows==2 && matrix_traits<A>::rows==2 &&
+ matrix_traits<R>::cols==2 && matrix_traits<A>::cols==2,
+ R>::type
+ make( A const & a )
+ {
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a);
+ matrix_traits<R>::template w<1,1>(r)=matrix_traits<A>::template r<1,1>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_make_defined;
+
+ template <>
+ struct
+ matrix_make_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_make_3_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_make_3_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MAKE_3_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MAKE_3_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class R,class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<R>::rows==3 && matrix_traits<A>::rows==3 &&
+ matrix_traits<R>::cols==1 && matrix_traits<A>::cols==1,
+ R>::type
+ make( A const & a )
+ {
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a);
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_make_defined;
+
+ template <>
+ struct
+ matrix_make_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_make_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_make_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MAKE_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MAKE_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class R,class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<R>::rows==3 && matrix_traits<A>::rows==3 &&
+ matrix_traits<R>::cols==3 && matrix_traits<A>::cols==3,
+ R>::type
+ make( A const & a )
+ {
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a);
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a);
+ matrix_traits<R>::template w<1,1>(r)=matrix_traits<A>::template r<1,1>(a);
+ matrix_traits<R>::template w<1,2>(r)=matrix_traits<A>::template r<1,2>(a);
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a);
+ matrix_traits<R>::template w<2,1>(r)=matrix_traits<A>::template r<2,1>(a);
+ matrix_traits<R>::template w<2,2>(r)=matrix_traits<A>::template r<2,2>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_make_defined;
+
+ template <>
+ struct
+ matrix_make_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_make_4_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_make_4_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MAKE_4_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MAKE_4_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class R,class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<R>::rows==4 && matrix_traits<A>::rows==4 &&
+ matrix_traits<R>::cols==1 && matrix_traits<A>::cols==1,
+ R>::type
+ make( A const & a )
+ {
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a);
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a);
+ matrix_traits<R>::template w<3,0>(r)=matrix_traits<A>::template r<3,0>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_make_defined;
+
+ template <>
+ struct
+ matrix_make_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_make_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_make_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,65 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MAKE_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MAKE_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class R,class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<R>::rows==4 && matrix_traits<A>::rows==4 &&
+ matrix_traits<R>::cols==4 && matrix_traits<A>::cols==4,
+ R>::type
+ make( A const & a )
+ {
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a);
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a);
+ matrix_traits<R>::template w<0,3>(r)=matrix_traits<A>::template r<0,3>(a);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a);
+ matrix_traits<R>::template w<1,1>(r)=matrix_traits<A>::template r<1,1>(a);
+ matrix_traits<R>::template w<1,2>(r)=matrix_traits<A>::template r<1,2>(a);
+ matrix_traits<R>::template w<1,3>(r)=matrix_traits<A>::template r<1,3>(a);
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a);
+ matrix_traits<R>::template w<2,1>(r)=matrix_traits<A>::template r<2,1>(a);
+ matrix_traits<R>::template w<2,2>(r)=matrix_traits<A>::template r<2,2>(a);
+ matrix_traits<R>::template w<2,3>(r)=matrix_traits<A>::template r<2,3>(a);
+ matrix_traits<R>::template w<3,0>(r)=matrix_traits<A>::template r<3,0>(a);
+ matrix_traits<R>::template w<3,1>(r)=matrix_traits<A>::template r<3,1>(a);
+ matrix_traits<R>::template w<3,2>(r)=matrix_traits<A>::template r<3,2>(a);
+ matrix_traits<R>::template w<3,3>(r)=matrix_traits<A>::template r<3,3>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_make_defined;
+
+ template <>
+ struct
+ matrix_make_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,22 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_minus_2_2.hpp>
+#include <boost/la/custom/matrix_minus_2_1.hpp>
+#include <boost/la/custom/matrix_minus_1_2.hpp>
+#include <boost/la/custom/matrix_minus_3_3.hpp>
+#include <boost/la/custom/matrix_minus_3_1.hpp>
+#include <boost/la/custom/matrix_minus_1_3.hpp>
+#include <boost/la/custom/matrix_minus_4_4.hpp>
+#include <boost/la/custom/matrix_minus_4_1.hpp>
+#include <boost/la/custom/matrix_minus_1_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_1_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_1_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_1_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_1_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<A>::cols==2,
+ deduce_matrix<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=-matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<0,1>(r)=-matrix_traits<A>::template r<0,1>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_defined;
+
+ template <>
+ struct
+ matrix_minus_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_1_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_1_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_1_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_1_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<A>::cols==3,
+ deduce_matrix<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=-matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<0,1>(r)=-matrix_traits<A>::template r<0,1>(a);
+ matrix_traits<R>::template w<0,2>(r)=-matrix_traits<A>::template r<0,2>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_defined;
+
+ template <>
+ struct
+ matrix_minus_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_1_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_1_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_1_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_1_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<A>::cols==4,
+ deduce_matrix<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=-matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<0,1>(r)=-matrix_traits<A>::template r<0,1>(a);
+ matrix_traits<R>::template w<0,2>(r)=-matrix_traits<A>::template r<0,2>(a);
+ matrix_traits<R>::template w<0,3>(r)=-matrix_traits<A>::template r<0,3>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_defined;
+
+ template <>
+ struct
+ matrix_minus_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_2_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_2_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_2_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_2_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<A>::cols==1,
+ deduce_matrix<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=-matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<1,0>(r)=-matrix_traits<A>::template r<1,0>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_defined;
+
+ template <>
+ struct
+ matrix_minus_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<A>::cols==2,
+ deduce_matrix<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=-matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<0,1>(r)=-matrix_traits<A>::template r<0,1>(a);
+ matrix_traits<R>::template w<1,0>(r)=-matrix_traits<A>::template r<1,0>(a);
+ matrix_traits<R>::template w<1,1>(r)=-matrix_traits<A>::template r<1,1>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_defined;
+
+ template <>
+ struct
+ matrix_minus_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_3_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_3_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_3_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_3_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<A>::cols==1,
+ deduce_matrix<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=-matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<1,0>(r)=-matrix_traits<A>::template r<1,0>(a);
+ matrix_traits<R>::template w<2,0>(r)=-matrix_traits<A>::template r<2,0>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_defined;
+
+ template <>
+ struct
+ matrix_minus_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<A>::cols==3,
+ deduce_matrix<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=-matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<0,1>(r)=-matrix_traits<A>::template r<0,1>(a);
+ matrix_traits<R>::template w<0,2>(r)=-matrix_traits<A>::template r<0,2>(a);
+ matrix_traits<R>::template w<1,0>(r)=-matrix_traits<A>::template r<1,0>(a);
+ matrix_traits<R>::template w<1,1>(r)=-matrix_traits<A>::template r<1,1>(a);
+ matrix_traits<R>::template w<1,2>(r)=-matrix_traits<A>::template r<1,2>(a);
+ matrix_traits<R>::template w<2,0>(r)=-matrix_traits<A>::template r<2,0>(a);
+ matrix_traits<R>::template w<2,1>(r)=-matrix_traits<A>::template r<2,1>(a);
+ matrix_traits<R>::template w<2,2>(r)=-matrix_traits<A>::template r<2,2>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_defined;
+
+ template <>
+ struct
+ matrix_minus_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_4_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_4_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_4_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_4_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<A>::cols==1,
+ deduce_matrix<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=-matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<1,0>(r)=-matrix_traits<A>::template r<1,0>(a);
+ matrix_traits<R>::template w<2,0>(r)=-matrix_traits<A>::template r<2,0>(a);
+ matrix_traits<R>::template w<3,0>(r)=-matrix_traits<A>::template r<3,0>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_defined;
+
+ template <>
+ struct
+ matrix_minus_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,65 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<A>::cols==4,
+ deduce_matrix<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=-matrix_traits<A>::template r<0,0>(a);
+ matrix_traits<R>::template w<0,1>(r)=-matrix_traits<A>::template r<0,1>(a);
+ matrix_traits<R>::template w<0,2>(r)=-matrix_traits<A>::template r<0,2>(a);
+ matrix_traits<R>::template w<0,3>(r)=-matrix_traits<A>::template r<0,3>(a);
+ matrix_traits<R>::template w<1,0>(r)=-matrix_traits<A>::template r<1,0>(a);
+ matrix_traits<R>::template w<1,1>(r)=-matrix_traits<A>::template r<1,1>(a);
+ matrix_traits<R>::template w<1,2>(r)=-matrix_traits<A>::template r<1,2>(a);
+ matrix_traits<R>::template w<1,3>(r)=-matrix_traits<A>::template r<1,3>(a);
+ matrix_traits<R>::template w<2,0>(r)=-matrix_traits<A>::template r<2,0>(a);
+ matrix_traits<R>::template w<2,1>(r)=-matrix_traits<A>::template r<2,1>(a);
+ matrix_traits<R>::template w<2,2>(r)=-matrix_traits<A>::template r<2,2>(a);
+ matrix_traits<R>::template w<2,3>(r)=-matrix_traits<A>::template r<2,3>(a);
+ matrix_traits<R>::template w<3,0>(r)=-matrix_traits<A>::template r<3,0>(a);
+ matrix_traits<R>::template w<3,1>(r)=-matrix_traits<A>::template r<3,1>(a);
+ matrix_traits<R>::template w<3,2>(r)=-matrix_traits<A>::template r<3,2>(a);
+ matrix_traits<R>::template w<3,3>(r)=-matrix_traits<A>::template r<3,3>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_defined;
+
+ template <>
+ struct
+ matrix_minus_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_eq_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_eq_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,22 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_minus_eq_matrix_2_2.hpp>
+#include <boost/la/custom/matrix_minus_eq_matrix_2_1.hpp>
+#include <boost/la/custom/matrix_minus_eq_matrix_1_2.hpp>
+#include <boost/la/custom/matrix_minus_eq_matrix_3_3.hpp>
+#include <boost/la/custom/matrix_minus_eq_matrix_3_1.hpp>
+#include <boost/la/custom/matrix_minus_eq_matrix_1_3.hpp>
+#include <boost/la/custom/matrix_minus_eq_matrix_4_4.hpp>
+#include <boost/la/custom/matrix_minus_eq_matrix_4_1.hpp>
+#include <boost/la/custom/matrix_minus_eq_matrix_1_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_eq_matrix_1_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_eq_matrix_1_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_1_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_1_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ A &>::type
+ operator-=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)-=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)-=matrix_traits<B>::template r<0,1>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_eq_matrix_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_eq_matrix_1_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_eq_matrix_1_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_1_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_1_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ A &>::type
+ operator-=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)-=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)-=matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<A>::template w<0,2>(a)-=matrix_traits<B>::template r<0,2>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_eq_matrix_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_eq_matrix_1_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_eq_matrix_1_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_1_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_1_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ A &>::type
+ operator-=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)-=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)-=matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<A>::template w<0,2>(a)-=matrix_traits<B>::template r<0,2>(b);
+ matrix_traits<A>::template w<0,3>(a)-=matrix_traits<B>::template r<0,3>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_eq_matrix_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_eq_matrix_2_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_eq_matrix_2_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_2_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_2_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ A &>::type
+ operator-=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)-=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<1,0>(a)-=matrix_traits<B>::template r<1,0>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_eq_matrix_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_eq_matrix_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_eq_matrix_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ A &>::type
+ operator-=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)-=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)-=matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<A>::template w<1,0>(a)-=matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<A>::template w<1,1>(a)-=matrix_traits<B>::template r<1,1>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_eq_matrix_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_eq_matrix_3_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_eq_matrix_3_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_3_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_3_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ A &>::type
+ operator-=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)-=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<1,0>(a)-=matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<A>::template w<2,0>(a)-=matrix_traits<B>::template r<2,0>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_eq_matrix_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_eq_matrix_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_eq_matrix_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ A &>::type
+ operator-=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)-=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)-=matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<A>::template w<0,2>(a)-=matrix_traits<B>::template r<0,2>(b);
+ matrix_traits<A>::template w<1,0>(a)-=matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<A>::template w<1,1>(a)-=matrix_traits<B>::template r<1,1>(b);
+ matrix_traits<A>::template w<1,2>(a)-=matrix_traits<B>::template r<1,2>(b);
+ matrix_traits<A>::template w<2,0>(a)-=matrix_traits<B>::template r<2,0>(b);
+ matrix_traits<A>::template w<2,1>(a)-=matrix_traits<B>::template r<2,1>(b);
+ matrix_traits<A>::template w<2,2>(a)-=matrix_traits<B>::template r<2,2>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_eq_matrix_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_eq_matrix_4_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_eq_matrix_4_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_4_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_4_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ A &>::type
+ operator-=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)-=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<1,0>(a)-=matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<A>::template w<2,0>(a)-=matrix_traits<B>::template r<2,0>(b);
+ matrix_traits<A>::template w<3,0>(a)-=matrix_traits<B>::template r<3,0>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_eq_matrix_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_eq_matrix_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_eq_matrix_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,64 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_EQ_MATRIX_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ A &>::type
+ operator-=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)-=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)-=matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<A>::template w<0,2>(a)-=matrix_traits<B>::template r<0,2>(b);
+ matrix_traits<A>::template w<0,3>(a)-=matrix_traits<B>::template r<0,3>(b);
+ matrix_traits<A>::template w<1,0>(a)-=matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<A>::template w<1,1>(a)-=matrix_traits<B>::template r<1,1>(b);
+ matrix_traits<A>::template w<1,2>(a)-=matrix_traits<B>::template r<1,2>(b);
+ matrix_traits<A>::template w<1,3>(a)-=matrix_traits<B>::template r<1,3>(b);
+ matrix_traits<A>::template w<2,0>(a)-=matrix_traits<B>::template r<2,0>(b);
+ matrix_traits<A>::template w<2,1>(a)-=matrix_traits<B>::template r<2,1>(b);
+ matrix_traits<A>::template w<2,2>(a)-=matrix_traits<B>::template r<2,2>(b);
+ matrix_traits<A>::template w<2,3>(a)-=matrix_traits<B>::template r<2,3>(b);
+ matrix_traits<A>::template w<3,0>(a)-=matrix_traits<B>::template r<3,0>(b);
+ matrix_traits<A>::template w<3,1>(a)-=matrix_traits<B>::template r<3,1>(b);
+ matrix_traits<A>::template w<3,2>(a)-=matrix_traits<B>::template r<3,2>(b);
+ matrix_traits<A>::template w<3,3>(a)-=matrix_traits<B>::template r<3,3>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_eq_matrix_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,22 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_MATRIX_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_MATRIX_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_minus_matrix_2_2.hpp>
+#include <boost/la/custom/matrix_minus_matrix_2_1.hpp>
+#include <boost/la/custom/matrix_minus_matrix_1_2.hpp>
+#include <boost/la/custom/matrix_minus_matrix_3_3.hpp>
+#include <boost/la/custom/matrix_minus_matrix_3_1.hpp>
+#include <boost/la/custom/matrix_minus_matrix_1_3.hpp>
+#include <boost/la/custom/matrix_minus_matrix_4_4.hpp>
+#include <boost/la/custom/matrix_minus_matrix_4_1.hpp>
+#include <boost/la/custom/matrix_minus_matrix_1_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_matrix_1_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_matrix_1_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_MATRIX_1_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_MATRIX_1_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ deduce_matrix2<A,B,1,2> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,1,2>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==1);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==2);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)-matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)-matrix_traits<B>::template r<0,1>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_matrix_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_matrix_1_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_matrix_1_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_MATRIX_1_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_MATRIX_1_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ deduce_matrix2<A,B,1,3> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,1,3>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==1);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==3);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)-matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)-matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)-matrix_traits<B>::template r<0,2>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_matrix_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_matrix_1_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_matrix_1_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_MATRIX_1_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_MATRIX_1_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ deduce_matrix2<A,B,1,4> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,1,4>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==1);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==4);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)-matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)-matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)-matrix_traits<B>::template r<0,2>(b);
+ matrix_traits<R>::template w<0,3>(r)=matrix_traits<A>::template r<0,3>(a)-matrix_traits<B>::template r<0,3>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_matrix_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_matrix_2_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_matrix_2_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_MATRIX_2_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_MATRIX_2_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ deduce_matrix2<A,B,2,1> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,2,1>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==2);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==1);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)-matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)-matrix_traits<B>::template r<1,0>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_matrix_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_matrix_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_matrix_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_MATRIX_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_MATRIX_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ deduce_matrix2<A,B,2,2> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,2,2>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==2);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==2);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)-matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)-matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)-matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<R>::template w<1,1>(r)=matrix_traits<A>::template r<1,1>(a)-matrix_traits<B>::template r<1,1>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_matrix_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_matrix_3_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_matrix_3_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_MATRIX_3_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_MATRIX_3_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ deduce_matrix2<A,B,3,1> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,3,1>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==3);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==1);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)-matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)-matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)-matrix_traits<B>::template r<2,0>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_matrix_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_matrix_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_matrix_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,62 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_MATRIX_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_MATRIX_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ deduce_matrix2<A,B,3,3> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,3,3>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==3);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==3);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)-matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)-matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)-matrix_traits<B>::template r<0,2>(b);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)-matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<R>::template w<1,1>(r)=matrix_traits<A>::template r<1,1>(a)-matrix_traits<B>::template r<1,1>(b);
+ matrix_traits<R>::template w<1,2>(r)=matrix_traits<A>::template r<1,2>(a)-matrix_traits<B>::template r<1,2>(b);
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)-matrix_traits<B>::template r<2,0>(b);
+ matrix_traits<R>::template w<2,1>(r)=matrix_traits<A>::template r<2,1>(a)-matrix_traits<B>::template r<2,1>(b);
+ matrix_traits<R>::template w<2,2>(r)=matrix_traits<A>::template r<2,2>(a)-matrix_traits<B>::template r<2,2>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_matrix_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_matrix_4_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_matrix_4_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_MATRIX_4_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_MATRIX_4_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ deduce_matrix2<A,B,4,1> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,4,1>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==4);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==1);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)-matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)-matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)-matrix_traits<B>::template r<2,0>(b);
+ matrix_traits<R>::template w<3,0>(r)=matrix_traits<A>::template r<3,0>(a)-matrix_traits<B>::template r<3,0>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_matrix_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_minus_matrix_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_minus_matrix_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,69 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MINUS_MATRIX_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MINUS_MATRIX_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ deduce_matrix2<A,B,4,4> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,4,4>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==4);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==4);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)-matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)-matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)-matrix_traits<B>::template r<0,2>(b);
+ matrix_traits<R>::template w<0,3>(r)=matrix_traits<A>::template r<0,3>(a)-matrix_traits<B>::template r<0,3>(b);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)-matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<R>::template w<1,1>(r)=matrix_traits<A>::template r<1,1>(a)-matrix_traits<B>::template r<1,1>(b);
+ matrix_traits<R>::template w<1,2>(r)=matrix_traits<A>::template r<1,2>(a)-matrix_traits<B>::template r<1,2>(b);
+ matrix_traits<R>::template w<1,3>(r)=matrix_traits<A>::template r<1,3>(a)-matrix_traits<B>::template r<1,3>(b);
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)-matrix_traits<B>::template r<2,0>(b);
+ matrix_traits<R>::template w<2,1>(r)=matrix_traits<A>::template r<2,1>(a)-matrix_traits<B>::template r<2,1>(b);
+ matrix_traits<R>::template w<2,2>(r)=matrix_traits<A>::template r<2,2>(a)-matrix_traits<B>::template r<2,2>(b);
+ matrix_traits<R>::template w<2,3>(r)=matrix_traits<A>::template r<2,3>(a)-matrix_traits<B>::template r<2,3>(b);
+ matrix_traits<R>::template w<3,0>(r)=matrix_traits<A>::template r<3,0>(a)-matrix_traits<B>::template r<3,0>(b);
+ matrix_traits<R>::template w<3,1>(r)=matrix_traits<A>::template r<3,1>(a)-matrix_traits<B>::template r<3,1>(b);
+ matrix_traits<R>::template w<3,2>(r)=matrix_traits<A>::template r<3,2>(a)-matrix_traits<B>::template r<3,2>(b);
+ matrix_traits<R>::template w<3,3>(r)=matrix_traits<A>::template r<3,3>(a)-matrix_traits<B>::template r<3,3>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_minus_matrix_defined;
+
+ template <>
+ struct
+ matrix_minus_matrix_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_eq_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_eq_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_EQ_MATRIX_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_EQ_MATRIX_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_mul_eq_matrix_2.hpp>
+#include <boost/la/custom/matrix_mul_eq_matrix_3.hpp>
+#include <boost/la/custom/matrix_mul_eq_matrix_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_eq_matrix_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_eq_matrix_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,62 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_EQ_MATRIX_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_EQ_MATRIX_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ A &>::type
+ operator*=( A & a, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ typedef typename matrix_traits<B>::scalar_type Tb;
+ Ta const a00 = matrix_traits<A>::template r<0,0>(a);
+ Ta const a01 = matrix_traits<A>::template r<0,1>(a);
+ Ta const a10 = matrix_traits<A>::template r<1,0>(a);
+ Ta const a11 = matrix_traits<A>::template r<1,1>(a);
+ Tb const b00 = matrix_traits<B>::template r<0,0>(b);
+ Tb const b01 = matrix_traits<B>::template r<0,1>(b);
+ Tb const b10 = matrix_traits<B>::template r<1,0>(b);
+ Tb const b11 = matrix_traits<B>::template r<1,1>(b);
+ matrix_traits<A>::template w<0,0>(a)=a00*b00+a01*b10;
+ matrix_traits<A>::template w<0,1>(a)=a00*b01+a01*b11;
+ matrix_traits<A>::template w<1,0>(a)=a10*b00+a11*b10;
+ matrix_traits<A>::template w<1,1>(a)=a10*b01+a11*b11;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct matrix_mul_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_mul_eq_matrix_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_eq_matrix_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_eq_matrix_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,77 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_EQ_MATRIX_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_EQ_MATRIX_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ A &>::type
+ operator*=( A & a, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ typedef typename matrix_traits<B>::scalar_type Tb;
+ Ta const a00 = matrix_traits<A>::template r<0,0>(a);
+ Ta const a01 = matrix_traits<A>::template r<0,1>(a);
+ Ta const a02 = matrix_traits<A>::template r<0,2>(a);
+ Ta const a10 = matrix_traits<A>::template r<1,0>(a);
+ Ta const a11 = matrix_traits<A>::template r<1,1>(a);
+ Ta const a12 = matrix_traits<A>::template r<1,2>(a);
+ Ta const a20 = matrix_traits<A>::template r<2,0>(a);
+ Ta const a21 = matrix_traits<A>::template r<2,1>(a);
+ Ta const a22 = matrix_traits<A>::template r<2,2>(a);
+ Tb const b00 = matrix_traits<B>::template r<0,0>(b);
+ Tb const b01 = matrix_traits<B>::template r<0,1>(b);
+ Tb const b02 = matrix_traits<B>::template r<0,2>(b);
+ Tb const b10 = matrix_traits<B>::template r<1,0>(b);
+ Tb const b11 = matrix_traits<B>::template r<1,1>(b);
+ Tb const b12 = matrix_traits<B>::template r<1,2>(b);
+ Tb const b20 = matrix_traits<B>::template r<2,0>(b);
+ Tb const b21 = matrix_traits<B>::template r<2,1>(b);
+ Tb const b22 = matrix_traits<B>::template r<2,2>(b);
+ matrix_traits<A>::template w<0,0>(a)=a00*b00+a01*b10+a02*b20;
+ matrix_traits<A>::template w<0,1>(a)=a00*b01+a01*b11+a02*b21;
+ matrix_traits<A>::template w<0,2>(a)=a00*b02+a01*b12+a02*b22;
+ matrix_traits<A>::template w<1,0>(a)=a10*b00+a11*b10+a12*b20;
+ matrix_traits<A>::template w<1,1>(a)=a10*b01+a11*b11+a12*b21;
+ matrix_traits<A>::template w<1,2>(a)=a10*b02+a11*b12+a12*b22;
+ matrix_traits<A>::template w<2,0>(a)=a20*b00+a21*b10+a22*b20;
+ matrix_traits<A>::template w<2,1>(a)=a20*b01+a21*b11+a22*b21;
+ matrix_traits<A>::template w<2,2>(a)=a20*b02+a21*b12+a22*b22;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct matrix_mul_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_mul_eq_matrix_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_eq_matrix_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_eq_matrix_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,98 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_EQ_MATRIX_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_EQ_MATRIX_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ A &>::type
+ operator*=( A & a, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ typedef typename matrix_traits<B>::scalar_type Tb;
+ Ta const a00 = matrix_traits<A>::template r<0,0>(a);
+ Ta const a01 = matrix_traits<A>::template r<0,1>(a);
+ Ta const a02 = matrix_traits<A>::template r<0,2>(a);
+ Ta const a03 = matrix_traits<A>::template r<0,3>(a);
+ Ta const a10 = matrix_traits<A>::template r<1,0>(a);
+ Ta const a11 = matrix_traits<A>::template r<1,1>(a);
+ Ta const a12 = matrix_traits<A>::template r<1,2>(a);
+ Ta const a13 = matrix_traits<A>::template r<1,3>(a);
+ Ta const a20 = matrix_traits<A>::template r<2,0>(a);
+ Ta const a21 = matrix_traits<A>::template r<2,1>(a);
+ Ta const a22 = matrix_traits<A>::template r<2,2>(a);
+ Ta const a23 = matrix_traits<A>::template r<2,3>(a);
+ Ta const a30 = matrix_traits<A>::template r<3,0>(a);
+ Ta const a31 = matrix_traits<A>::template r<3,1>(a);
+ Ta const a32 = matrix_traits<A>::template r<3,2>(a);
+ Ta const a33 = matrix_traits<A>::template r<3,3>(a);
+ Tb const b00 = matrix_traits<B>::template r<0,0>(b);
+ Tb const b01 = matrix_traits<B>::template r<0,1>(b);
+ Tb const b02 = matrix_traits<B>::template r<0,2>(b);
+ Tb const b03 = matrix_traits<B>::template r<0,3>(b);
+ Tb const b10 = matrix_traits<B>::template r<1,0>(b);
+ Tb const b11 = matrix_traits<B>::template r<1,1>(b);
+ Tb const b12 = matrix_traits<B>::template r<1,2>(b);
+ Tb const b13 = matrix_traits<B>::template r<1,3>(b);
+ Tb const b20 = matrix_traits<B>::template r<2,0>(b);
+ Tb const b21 = matrix_traits<B>::template r<2,1>(b);
+ Tb const b22 = matrix_traits<B>::template r<2,2>(b);
+ Tb const b23 = matrix_traits<B>::template r<2,3>(b);
+ Tb const b30 = matrix_traits<B>::template r<3,0>(b);
+ Tb const b31 = matrix_traits<B>::template r<3,1>(b);
+ Tb const b32 = matrix_traits<B>::template r<3,2>(b);
+ Tb const b33 = matrix_traits<B>::template r<3,3>(b);
+ matrix_traits<A>::template w<0,0>(a)=a00*b00+a01*b10+a02*b20+a03*b30;
+ matrix_traits<A>::template w<0,1>(a)=a00*b01+a01*b11+a02*b21+a03*b31;
+ matrix_traits<A>::template w<0,2>(a)=a00*b02+a01*b12+a02*b22+a03*b32;
+ matrix_traits<A>::template w<0,3>(a)=a00*b03+a01*b13+a02*b23+a03*b33;
+ matrix_traits<A>::template w<1,0>(a)=a10*b00+a11*b10+a12*b20+a13*b30;
+ matrix_traits<A>::template w<1,1>(a)=a10*b01+a11*b11+a12*b21+a13*b31;
+ matrix_traits<A>::template w<1,2>(a)=a10*b02+a11*b12+a12*b22+a13*b32;
+ matrix_traits<A>::template w<1,3>(a)=a10*b03+a11*b13+a12*b23+a13*b33;
+ matrix_traits<A>::template w<2,0>(a)=a20*b00+a21*b10+a22*b20+a23*b30;
+ matrix_traits<A>::template w<2,1>(a)=a20*b01+a21*b11+a22*b21+a23*b31;
+ matrix_traits<A>::template w<2,2>(a)=a20*b02+a21*b12+a22*b22+a23*b32;
+ matrix_traits<A>::template w<2,3>(a)=a20*b03+a21*b13+a22*b23+a23*b33;
+ matrix_traits<A>::template w<3,0>(a)=a30*b00+a31*b10+a32*b20+a33*b30;
+ matrix_traits<A>::template w<3,1>(a)=a30*b01+a31*b11+a32*b21+a33*b31;
+ matrix_traits<A>::template w<3,2>(a)=a30*b02+a31*b12+a32*b22+a33*b32;
+ matrix_traits<A>::template w<3,3>(a)=a30*b03+a31*b13+a32*b23+a33*b33;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct matrix_mul_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_mul_eq_matrix_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_eq_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_eq_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,22 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_mul_eq_scalar_2_2.hpp>
+#include <boost/la/custom/matrix_mul_eq_scalar_2_1.hpp>
+#include <boost/la/custom/matrix_mul_eq_scalar_1_2.hpp>
+#include <boost/la/custom/matrix_mul_eq_scalar_3_3.hpp>
+#include <boost/la/custom/matrix_mul_eq_scalar_3_1.hpp>
+#include <boost/la/custom/matrix_mul_eq_scalar_1_3.hpp>
+#include <boost/la/custom/matrix_mul_eq_scalar_4_4.hpp>
+#include <boost/la/custom/matrix_mul_eq_scalar_4_1.hpp>
+#include <boost/la/custom/matrix_mul_eq_scalar_1_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_eq_scalar_1_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_eq_scalar_1_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_1_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_1_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<A>::cols==2,
+ A &>::type
+ operator*=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)*=b;
+ matrix_traits<A>::template w<0,1>(a)*=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_eq_scalar_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_eq_scalar_1_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_eq_scalar_1_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_1_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_1_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<A>::cols==3,
+ A &>::type
+ operator*=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)*=b;
+ matrix_traits<A>::template w<0,1>(a)*=b;
+ matrix_traits<A>::template w<0,2>(a)*=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_eq_scalar_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_eq_scalar_1_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_eq_scalar_1_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_1_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_1_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<A>::cols==4,
+ A &>::type
+ operator*=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)*=b;
+ matrix_traits<A>::template w<0,1>(a)*=b;
+ matrix_traits<A>::template w<0,2>(a)*=b;
+ matrix_traits<A>::template w<0,3>(a)*=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_eq_scalar_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_eq_scalar_2_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_eq_scalar_2_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_2_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_2_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<A>::cols==1,
+ A &>::type
+ operator*=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)*=b;
+ matrix_traits<A>::template w<1,0>(a)*=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_eq_scalar_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_eq_scalar_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_eq_scalar_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<A>::cols==2,
+ A &>::type
+ operator*=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)*=b;
+ matrix_traits<A>::template w<0,1>(a)*=b;
+ matrix_traits<A>::template w<1,0>(a)*=b;
+ matrix_traits<A>::template w<1,1>(a)*=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_eq_scalar_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_eq_scalar_3_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_eq_scalar_3_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_3_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_3_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<A>::cols==1,
+ A &>::type
+ operator*=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)*=b;
+ matrix_traits<A>::template w<1,0>(a)*=b;
+ matrix_traits<A>::template w<2,0>(a)*=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_eq_scalar_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_eq_scalar_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_eq_scalar_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<A>::cols==3,
+ A &>::type
+ operator*=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)*=b;
+ matrix_traits<A>::template w<0,1>(a)*=b;
+ matrix_traits<A>::template w<0,2>(a)*=b;
+ matrix_traits<A>::template w<1,0>(a)*=b;
+ matrix_traits<A>::template w<1,1>(a)*=b;
+ matrix_traits<A>::template w<1,2>(a)*=b;
+ matrix_traits<A>::template w<2,0>(a)*=b;
+ matrix_traits<A>::template w<2,1>(a)*=b;
+ matrix_traits<A>::template w<2,2>(a)*=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_eq_scalar_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_eq_scalar_4_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_eq_scalar_4_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_4_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_4_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<A>::cols==1,
+ A &>::type
+ operator*=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)*=b;
+ matrix_traits<A>::template w<1,0>(a)*=b;
+ matrix_traits<A>::template w<2,0>(a)*=b;
+ matrix_traits<A>::template w<3,0>(a)*=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_eq_scalar_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_eq_scalar_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_eq_scalar_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_EQ_SCALAR_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<A>::cols==4,
+ A &>::type
+ operator*=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ matrix_traits<A>::template w<0,0>(a)*=b;
+ matrix_traits<A>::template w<0,1>(a)*=b;
+ matrix_traits<A>::template w<0,2>(a)*=b;
+ matrix_traits<A>::template w<0,3>(a)*=b;
+ matrix_traits<A>::template w<1,0>(a)*=b;
+ matrix_traits<A>::template w<1,1>(a)*=b;
+ matrix_traits<A>::template w<1,2>(a)*=b;
+ matrix_traits<A>::template w<1,3>(a)*=b;
+ matrix_traits<A>::template w<2,0>(a)*=b;
+ matrix_traits<A>::template w<2,1>(a)*=b;
+ matrix_traits<A>::template w<2,2>(a)*=b;
+ matrix_traits<A>::template w<2,3>(a)*=b;
+ matrix_traits<A>::template w<3,0>(a)*=b;
+ matrix_traits<A>::template w<3,1>(a)*=b;
+ matrix_traits<A>::template w<3,2>(a)*=b;
+ matrix_traits<A>::template w<3,3>(a)*=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_eq_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_eq_scalar_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,22 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_MATRIX_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_MATRIX_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_mul_matrix_2_2_2.hpp>
+#include <boost/la/custom/matrix_mul_matrix_2_2_1.hpp>
+#include <boost/la/custom/matrix_mul_matrix_1_2_2.hpp>
+#include <boost/la/custom/matrix_mul_matrix_3_3_3.hpp>
+#include <boost/la/custom/matrix_mul_matrix_3_3_1.hpp>
+#include <boost/la/custom/matrix_mul_matrix_1_3_3.hpp>
+#include <boost/la/custom/matrix_mul_matrix_4_4_4.hpp>
+#include <boost/la/custom/matrix_mul_matrix_4_4_1.hpp>
+#include <boost/la/custom/matrix_mul_matrix_1_4_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_matrix_1_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_matrix_1_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_MATRIX_1_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_MATRIX_1_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ deduce_matrix2<A,B,1,2> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ typedef typename matrix_traits<B>::scalar_type Tb;
+ Ta const a00 = matrix_traits<A>::template r<0,0>(a);
+ Ta const a01 = matrix_traits<A>::template r<0,1>(a);
+ Tb const b00 = matrix_traits<B>::template r<0,0>(b);
+ Tb const b01 = matrix_traits<B>::template r<0,1>(b);
+ Tb const b10 = matrix_traits<B>::template r<1,0>(b);
+ Tb const b11 = matrix_traits<B>::template r<1,1>(b);
+ typedef typename deduce_matrix2<A,B,1,2>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==1);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==2);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=a00*b00+a01*b10;
+ matrix_traits<R>::template w<0,1>(r)=a00*b01+a01*b11;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N,int P>
+ struct matrix_mul_matrix_defined;
+
+ template <>
+ struct
+ matrix_mul_matrix_defined<1,2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_matrix_1_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_matrix_1_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,70 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_MATRIX_1_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_MATRIX_1_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ deduce_matrix2<A,B,1,3> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ typedef typename matrix_traits<B>::scalar_type Tb;
+ Ta const a00 = matrix_traits<A>::template r<0,0>(a);
+ Ta const a01 = matrix_traits<A>::template r<0,1>(a);
+ Ta const a02 = matrix_traits<A>::template r<0,2>(a);
+ Tb const b00 = matrix_traits<B>::template r<0,0>(b);
+ Tb const b01 = matrix_traits<B>::template r<0,1>(b);
+ Tb const b02 = matrix_traits<B>::template r<0,2>(b);
+ Tb const b10 = matrix_traits<B>::template r<1,0>(b);
+ Tb const b11 = matrix_traits<B>::template r<1,1>(b);
+ Tb const b12 = matrix_traits<B>::template r<1,2>(b);
+ Tb const b20 = matrix_traits<B>::template r<2,0>(b);
+ Tb const b21 = matrix_traits<B>::template r<2,1>(b);
+ Tb const b22 = matrix_traits<B>::template r<2,2>(b);
+ typedef typename deduce_matrix2<A,B,1,3>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==1);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==3);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=a00*b00+a01*b10+a02*b20;
+ matrix_traits<R>::template w<0,1>(r)=a00*b01+a01*b11+a02*b21;
+ matrix_traits<R>::template w<0,2>(r)=a00*b02+a01*b12+a02*b22;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N,int P>
+ struct matrix_mul_matrix_defined;
+
+ template <>
+ struct
+ matrix_mul_matrix_defined<1,3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_matrix_1_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_matrix_1_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,79 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_MATRIX_1_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_MATRIX_1_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ deduce_matrix2<A,B,1,4> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ typedef typename matrix_traits<B>::scalar_type Tb;
+ Ta const a00 = matrix_traits<A>::template r<0,0>(a);
+ Ta const a01 = matrix_traits<A>::template r<0,1>(a);
+ Ta const a02 = matrix_traits<A>::template r<0,2>(a);
+ Ta const a03 = matrix_traits<A>::template r<0,3>(a);
+ Tb const b00 = matrix_traits<B>::template r<0,0>(b);
+ Tb const b01 = matrix_traits<B>::template r<0,1>(b);
+ Tb const b02 = matrix_traits<B>::template r<0,2>(b);
+ Tb const b03 = matrix_traits<B>::template r<0,3>(b);
+ Tb const b10 = matrix_traits<B>::template r<1,0>(b);
+ Tb const b11 = matrix_traits<B>::template r<1,1>(b);
+ Tb const b12 = matrix_traits<B>::template r<1,2>(b);
+ Tb const b13 = matrix_traits<B>::template r<1,3>(b);
+ Tb const b20 = matrix_traits<B>::template r<2,0>(b);
+ Tb const b21 = matrix_traits<B>::template r<2,1>(b);
+ Tb const b22 = matrix_traits<B>::template r<2,2>(b);
+ Tb const b23 = matrix_traits<B>::template r<2,3>(b);
+ Tb const b30 = matrix_traits<B>::template r<3,0>(b);
+ Tb const b31 = matrix_traits<B>::template r<3,1>(b);
+ Tb const b32 = matrix_traits<B>::template r<3,2>(b);
+ Tb const b33 = matrix_traits<B>::template r<3,3>(b);
+ typedef typename deduce_matrix2<A,B,1,4>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==1);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==4);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=a00*b00+a01*b10+a02*b20+a03*b30;
+ matrix_traits<R>::template w<0,1>(r)=a00*b01+a01*b11+a02*b21+a03*b31;
+ matrix_traits<R>::template w<0,2>(r)=a00*b02+a01*b12+a02*b22+a03*b32;
+ matrix_traits<R>::template w<0,3>(r)=a00*b03+a01*b13+a02*b23+a03*b33;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N,int P>
+ struct matrix_mul_matrix_defined;
+
+ template <>
+ struct
+ matrix_mul_matrix_defined<1,4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_matrix_2_2_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_matrix_2_2_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_MATRIX_2_2_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_MATRIX_2_2_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==1,
+ deduce_matrix2<A,B,2,1> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ typedef typename matrix_traits<B>::scalar_type Tb;
+ Ta const a00 = matrix_traits<A>::template r<0,0>(a);
+ Ta const a01 = matrix_traits<A>::template r<0,1>(a);
+ Ta const a10 = matrix_traits<A>::template r<1,0>(a);
+ Ta const a11 = matrix_traits<A>::template r<1,1>(a);
+ Tb const b00 = matrix_traits<B>::template r<0,0>(b);
+ Tb const b10 = matrix_traits<B>::template r<1,0>(b);
+ typedef typename deduce_matrix2<A,B,2,1>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==2);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==1);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=a00*b00+a01*b10;
+ matrix_traits<R>::template w<1,0>(r)=a10*b00+a11*b10;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N,int P>
+ struct matrix_mul_matrix_defined;
+
+ template <>
+ struct
+ matrix_mul_matrix_defined<2,2,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_matrix_2_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_matrix_2_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,67 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_MATRIX_2_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_MATRIX_2_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ deduce_matrix2<A,B,2,2> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ typedef typename matrix_traits<B>::scalar_type Tb;
+ Ta const a00 = matrix_traits<A>::template r<0,0>(a);
+ Ta const a01 = matrix_traits<A>::template r<0,1>(a);
+ Ta const a10 = matrix_traits<A>::template r<1,0>(a);
+ Ta const a11 = matrix_traits<A>::template r<1,1>(a);
+ Tb const b00 = matrix_traits<B>::template r<0,0>(b);
+ Tb const b01 = matrix_traits<B>::template r<0,1>(b);
+ Tb const b10 = matrix_traits<B>::template r<1,0>(b);
+ Tb const b11 = matrix_traits<B>::template r<1,1>(b);
+ typedef typename deduce_matrix2<A,B,2,2>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==2);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==2);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=a00*b00+a01*b10;
+ matrix_traits<R>::template w<0,1>(r)=a00*b01+a01*b11;
+ matrix_traits<R>::template w<1,0>(r)=a10*b00+a11*b10;
+ matrix_traits<R>::template w<1,1>(r)=a10*b01+a11*b11;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N,int P>
+ struct matrix_mul_matrix_defined;
+
+ template <>
+ struct
+ matrix_mul_matrix_defined<2,2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_matrix_3_3_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_matrix_3_3_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,70 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_MATRIX_3_3_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_MATRIX_3_3_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==1,
+ deduce_matrix2<A,B,3,1> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ typedef typename matrix_traits<B>::scalar_type Tb;
+ Ta const a00 = matrix_traits<A>::template r<0,0>(a);
+ Ta const a01 = matrix_traits<A>::template r<0,1>(a);
+ Ta const a02 = matrix_traits<A>::template r<0,2>(a);
+ Ta const a10 = matrix_traits<A>::template r<1,0>(a);
+ Ta const a11 = matrix_traits<A>::template r<1,1>(a);
+ Ta const a12 = matrix_traits<A>::template r<1,2>(a);
+ Ta const a20 = matrix_traits<A>::template r<2,0>(a);
+ Ta const a21 = matrix_traits<A>::template r<2,1>(a);
+ Ta const a22 = matrix_traits<A>::template r<2,2>(a);
+ Tb const b00 = matrix_traits<B>::template r<0,0>(b);
+ Tb const b10 = matrix_traits<B>::template r<1,0>(b);
+ Tb const b20 = matrix_traits<B>::template r<2,0>(b);
+ typedef typename deduce_matrix2<A,B,3,1>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==3);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==1);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=a00*b00+a01*b10+a02*b20;
+ matrix_traits<R>::template w<1,0>(r)=a10*b00+a11*b10+a12*b20;
+ matrix_traits<R>::template w<2,0>(r)=a20*b00+a21*b10+a22*b20;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N,int P>
+ struct matrix_mul_matrix_defined;
+
+ template <>
+ struct
+ matrix_mul_matrix_defined<3,3,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_matrix_3_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_matrix_3_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,82 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_MATRIX_3_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_MATRIX_3_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ deduce_matrix2<A,B,3,3> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ typedef typename matrix_traits<B>::scalar_type Tb;
+ Ta const a00 = matrix_traits<A>::template r<0,0>(a);
+ Ta const a01 = matrix_traits<A>::template r<0,1>(a);
+ Ta const a02 = matrix_traits<A>::template r<0,2>(a);
+ Ta const a10 = matrix_traits<A>::template r<1,0>(a);
+ Ta const a11 = matrix_traits<A>::template r<1,1>(a);
+ Ta const a12 = matrix_traits<A>::template r<1,2>(a);
+ Ta const a20 = matrix_traits<A>::template r<2,0>(a);
+ Ta const a21 = matrix_traits<A>::template r<2,1>(a);
+ Ta const a22 = matrix_traits<A>::template r<2,2>(a);
+ Tb const b00 = matrix_traits<B>::template r<0,0>(b);
+ Tb const b01 = matrix_traits<B>::template r<0,1>(b);
+ Tb const b02 = matrix_traits<B>::template r<0,2>(b);
+ Tb const b10 = matrix_traits<B>::template r<1,0>(b);
+ Tb const b11 = matrix_traits<B>::template r<1,1>(b);
+ Tb const b12 = matrix_traits<B>::template r<1,2>(b);
+ Tb const b20 = matrix_traits<B>::template r<2,0>(b);
+ Tb const b21 = matrix_traits<B>::template r<2,1>(b);
+ Tb const b22 = matrix_traits<B>::template r<2,2>(b);
+ typedef typename deduce_matrix2<A,B,3,3>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==3);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==3);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=a00*b00+a01*b10+a02*b20;
+ matrix_traits<R>::template w<0,1>(r)=a00*b01+a01*b11+a02*b21;
+ matrix_traits<R>::template w<0,2>(r)=a00*b02+a01*b12+a02*b22;
+ matrix_traits<R>::template w<1,0>(r)=a10*b00+a11*b10+a12*b20;
+ matrix_traits<R>::template w<1,1>(r)=a10*b01+a11*b11+a12*b21;
+ matrix_traits<R>::template w<1,2>(r)=a10*b02+a11*b12+a12*b22;
+ matrix_traits<R>::template w<2,0>(r)=a20*b00+a21*b10+a22*b20;
+ matrix_traits<R>::template w<2,1>(r)=a20*b01+a21*b11+a22*b21;
+ matrix_traits<R>::template w<2,2>(r)=a20*b02+a21*b12+a22*b22;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N,int P>
+ struct matrix_mul_matrix_defined;
+
+ template <>
+ struct
+ matrix_mul_matrix_defined<3,3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_matrix_4_4_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_matrix_4_4_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,79 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_MATRIX_4_4_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_MATRIX_4_4_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==1,
+ deduce_matrix2<A,B,4,1> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ typedef typename matrix_traits<B>::scalar_type Tb;
+ Ta const a00 = matrix_traits<A>::template r<0,0>(a);
+ Ta const a01 = matrix_traits<A>::template r<0,1>(a);
+ Ta const a02 = matrix_traits<A>::template r<0,2>(a);
+ Ta const a03 = matrix_traits<A>::template r<0,3>(a);
+ Ta const a10 = matrix_traits<A>::template r<1,0>(a);
+ Ta const a11 = matrix_traits<A>::template r<1,1>(a);
+ Ta const a12 = matrix_traits<A>::template r<1,2>(a);
+ Ta const a13 = matrix_traits<A>::template r<1,3>(a);
+ Ta const a20 = matrix_traits<A>::template r<2,0>(a);
+ Ta const a21 = matrix_traits<A>::template r<2,1>(a);
+ Ta const a22 = matrix_traits<A>::template r<2,2>(a);
+ Ta const a23 = matrix_traits<A>::template r<2,3>(a);
+ Ta const a30 = matrix_traits<A>::template r<3,0>(a);
+ Ta const a31 = matrix_traits<A>::template r<3,1>(a);
+ Ta const a32 = matrix_traits<A>::template r<3,2>(a);
+ Ta const a33 = matrix_traits<A>::template r<3,3>(a);
+ Tb const b00 = matrix_traits<B>::template r<0,0>(b);
+ Tb const b10 = matrix_traits<B>::template r<1,0>(b);
+ Tb const b20 = matrix_traits<B>::template r<2,0>(b);
+ Tb const b30 = matrix_traits<B>::template r<3,0>(b);
+ typedef typename deduce_matrix2<A,B,4,1>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==4);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==1);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=a00*b00+a01*b10+a02*b20+a03*b30;
+ matrix_traits<R>::template w<1,0>(r)=a10*b00+a11*b10+a12*b20+a13*b30;
+ matrix_traits<R>::template w<2,0>(r)=a20*b00+a21*b10+a22*b20+a23*b30;
+ matrix_traits<R>::template w<3,0>(r)=a30*b00+a31*b10+a32*b20+a33*b30;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N,int P>
+ struct matrix_mul_matrix_defined;
+
+ template <>
+ struct
+ matrix_mul_matrix_defined<4,4,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_matrix_4_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_matrix_4_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,103 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_MATRIX_4_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_MATRIX_4_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ deduce_matrix2<A,B,4,4> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ typedef typename matrix_traits<B>::scalar_type Tb;
+ Ta const a00 = matrix_traits<A>::template r<0,0>(a);
+ Ta const a01 = matrix_traits<A>::template r<0,1>(a);
+ Ta const a02 = matrix_traits<A>::template r<0,2>(a);
+ Ta const a03 = matrix_traits<A>::template r<0,3>(a);
+ Ta const a10 = matrix_traits<A>::template r<1,0>(a);
+ Ta const a11 = matrix_traits<A>::template r<1,1>(a);
+ Ta const a12 = matrix_traits<A>::template r<1,2>(a);
+ Ta const a13 = matrix_traits<A>::template r<1,3>(a);
+ Ta const a20 = matrix_traits<A>::template r<2,0>(a);
+ Ta const a21 = matrix_traits<A>::template r<2,1>(a);
+ Ta const a22 = matrix_traits<A>::template r<2,2>(a);
+ Ta const a23 = matrix_traits<A>::template r<2,3>(a);
+ Ta const a30 = matrix_traits<A>::template r<3,0>(a);
+ Ta const a31 = matrix_traits<A>::template r<3,1>(a);
+ Ta const a32 = matrix_traits<A>::template r<3,2>(a);
+ Ta const a33 = matrix_traits<A>::template r<3,3>(a);
+ Tb const b00 = matrix_traits<B>::template r<0,0>(b);
+ Tb const b01 = matrix_traits<B>::template r<0,1>(b);
+ Tb const b02 = matrix_traits<B>::template r<0,2>(b);
+ Tb const b03 = matrix_traits<B>::template r<0,3>(b);
+ Tb const b10 = matrix_traits<B>::template r<1,0>(b);
+ Tb const b11 = matrix_traits<B>::template r<1,1>(b);
+ Tb const b12 = matrix_traits<B>::template r<1,2>(b);
+ Tb const b13 = matrix_traits<B>::template r<1,3>(b);
+ Tb const b20 = matrix_traits<B>::template r<2,0>(b);
+ Tb const b21 = matrix_traits<B>::template r<2,1>(b);
+ Tb const b22 = matrix_traits<B>::template r<2,2>(b);
+ Tb const b23 = matrix_traits<B>::template r<2,3>(b);
+ Tb const b30 = matrix_traits<B>::template r<3,0>(b);
+ Tb const b31 = matrix_traits<B>::template r<3,1>(b);
+ Tb const b32 = matrix_traits<B>::template r<3,2>(b);
+ Tb const b33 = matrix_traits<B>::template r<3,3>(b);
+ typedef typename deduce_matrix2<A,B,4,4>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==4);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==4);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=a00*b00+a01*b10+a02*b20+a03*b30;
+ matrix_traits<R>::template w<0,1>(r)=a00*b01+a01*b11+a02*b21+a03*b31;
+ matrix_traits<R>::template w<0,2>(r)=a00*b02+a01*b12+a02*b22+a03*b32;
+ matrix_traits<R>::template w<0,3>(r)=a00*b03+a01*b13+a02*b23+a03*b33;
+ matrix_traits<R>::template w<1,0>(r)=a10*b00+a11*b10+a12*b20+a13*b30;
+ matrix_traits<R>::template w<1,1>(r)=a10*b01+a11*b11+a12*b21+a13*b31;
+ matrix_traits<R>::template w<1,2>(r)=a10*b02+a11*b12+a12*b22+a13*b32;
+ matrix_traits<R>::template w<1,3>(r)=a10*b03+a11*b13+a12*b23+a13*b33;
+ matrix_traits<R>::template w<2,0>(r)=a20*b00+a21*b10+a22*b20+a23*b30;
+ matrix_traits<R>::template w<2,1>(r)=a20*b01+a21*b11+a22*b21+a23*b31;
+ matrix_traits<R>::template w<2,2>(r)=a20*b02+a21*b12+a22*b22+a23*b32;
+ matrix_traits<R>::template w<2,3>(r)=a20*b03+a21*b13+a22*b23+a23*b33;
+ matrix_traits<R>::template w<3,0>(r)=a30*b00+a31*b10+a32*b20+a33*b30;
+ matrix_traits<R>::template w<3,1>(r)=a30*b01+a31*b11+a32*b21+a33*b31;
+ matrix_traits<R>::template w<3,2>(r)=a30*b02+a31*b12+a32*b22+a33*b32;
+ matrix_traits<R>::template w<3,3>(r)=a30*b03+a31*b13+a32*b23+a33*b33;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N,int P>
+ struct matrix_mul_matrix_defined;
+
+ template <>
+ struct
+ matrix_mul_matrix_defined<4,4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,22 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_SCALAR_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_SCALAR_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_mul_scalar_2_2.hpp>
+#include <boost/la/custom/matrix_mul_scalar_2_1.hpp>
+#include <boost/la/custom/matrix_mul_scalar_1_2.hpp>
+#include <boost/la/custom/matrix_mul_scalar_3_3.hpp>
+#include <boost/la/custom/matrix_mul_scalar_3_1.hpp>
+#include <boost/la/custom/matrix_mul_scalar_1_3.hpp>
+#include <boost/la/custom/matrix_mul_scalar_4_4.hpp>
+#include <boost/la/custom/matrix_mul_scalar_4_1.hpp>
+#include <boost/la/custom/matrix_mul_scalar_1_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_scalar_1_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_scalar_1_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_SCALAR_1_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_SCALAR_1_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<A>::cols==2,
+ deduce_matrix<A> >::type
+ operator*( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)*b;
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)*b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_scalar_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_scalar_1_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_scalar_1_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_SCALAR_1_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_SCALAR_1_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<A>::cols==3,
+ deduce_matrix<A> >::type
+ operator*( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)*b;
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)*b;
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)*b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_scalar_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_scalar_1_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_scalar_1_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_SCALAR_1_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_SCALAR_1_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<A>::cols==4,
+ deduce_matrix<A> >::type
+ operator*( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)*b;
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)*b;
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)*b;
+ matrix_traits<R>::template w<0,3>(r)=matrix_traits<A>::template r<0,3>(a)*b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_scalar_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_scalar_2_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_scalar_2_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_SCALAR_2_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_SCALAR_2_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<A>::cols==1,
+ deduce_matrix<A> >::type
+ operator*( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)*b;
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)*b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_scalar_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_scalar_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_scalar_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_SCALAR_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_SCALAR_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<A>::cols==2,
+ deduce_matrix<A> >::type
+ operator*( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)*b;
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)*b;
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)*b;
+ matrix_traits<R>::template w<1,1>(r)=matrix_traits<A>::template r<1,1>(a)*b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_scalar_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_scalar_3_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_scalar_3_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_SCALAR_3_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_SCALAR_3_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<A>::cols==1,
+ deduce_matrix<A> >::type
+ operator*( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)*b;
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)*b;
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)*b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_scalar_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_scalar_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_scalar_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_SCALAR_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_SCALAR_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<A>::cols==3,
+ deduce_matrix<A> >::type
+ operator*( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)*b;
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)*b;
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)*b;
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)*b;
+ matrix_traits<R>::template w<1,1>(r)=matrix_traits<A>::template r<1,1>(a)*b;
+ matrix_traits<R>::template w<1,2>(r)=matrix_traits<A>::template r<1,2>(a)*b;
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)*b;
+ matrix_traits<R>::template w<2,1>(r)=matrix_traits<A>::template r<2,1>(a)*b;
+ matrix_traits<R>::template w<2,2>(r)=matrix_traits<A>::template r<2,2>(a)*b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_scalar_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_scalar_4_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_scalar_4_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_SCALAR_4_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_SCALAR_4_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<A>::cols==1,
+ deduce_matrix<A> >::type
+ operator*( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)*b;
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)*b;
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)*b;
+ matrix_traits<R>::template w<3,0>(r)=matrix_traits<A>::template r<3,0>(a)*b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_scalar_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_scalar_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_scalar_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,65 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_SCALAR_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_SCALAR_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<A>::cols==4,
+ deduce_matrix<A> >::type
+ operator*( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)*b;
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)*b;
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)*b;
+ matrix_traits<R>::template w<0,3>(r)=matrix_traits<A>::template r<0,3>(a)*b;
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)*b;
+ matrix_traits<R>::template w<1,1>(r)=matrix_traits<A>::template r<1,1>(a)*b;
+ matrix_traits<R>::template w<1,2>(r)=matrix_traits<A>::template r<1,2>(a)*b;
+ matrix_traits<R>::template w<1,3>(r)=matrix_traits<A>::template r<1,3>(a)*b;
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)*b;
+ matrix_traits<R>::template w<2,1>(r)=matrix_traits<A>::template r<2,1>(a)*b;
+ matrix_traits<R>::template w<2,2>(r)=matrix_traits<A>::template r<2,2>(a)*b;
+ matrix_traits<R>::template w<2,3>(r)=matrix_traits<A>::template r<2,3>(a)*b;
+ matrix_traits<R>::template w<3,0>(r)=matrix_traits<A>::template r<3,0>(a)*b;
+ matrix_traits<R>::template w<3,1>(r)=matrix_traits<A>::template r<3,1>(a)*b;
+ matrix_traits<R>::template w<3,2>(r)=matrix_traits<A>::template r<3,2>(a)*b;
+ matrix_traits<R>::template w<3,3>(r)=matrix_traits<A>::template r<3,3>(a)*b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_scalar_defined;
+
+ template <>
+ struct
+ matrix_mul_scalar_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_VECTOR_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_VECTOR_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_mul_vector_2_2.hpp>
+#include <boost/la/custom/matrix_mul_vector_3_3.hpp>
+#include <boost/la/custom/matrix_mul_vector_4_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_vector_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_vector_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,62 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_VECTOR_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_VECTOR_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<A>::cols==2 &&
+ vector_traits<B>::dim==2,
+ deduce_vector2<A,B,2> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ typedef typename vector_traits<B>::scalar_type Tb;
+ Ta const a00 = matrix_traits<A>::template r<0,0>(a);
+ Ta const a01 = matrix_traits<A>::template r<0,1>(a);
+ Ta const a10 = matrix_traits<A>::template r<1,0>(a);
+ Ta const a11 = matrix_traits<A>::template r<1,1>(a);
+ Tb const b0 = vector_traits<B>::template r<0>(b);
+ Tb const b1 = vector_traits<B>::template r<1>(b);
+ typedef typename deduce_vector2<A,B,2>::type R;
+ BOOST_STATIC_ASSERT(vector_traits<R>::dim==2);
+ R r;
+ vector_traits<R>::template w<0>(r)=a00*b0+a01*b1;
+ vector_traits<R>::template w<1>(r)=a10*b0+a11*b1;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_vector_defined;
+
+ template <>
+ struct
+ matrix_mul_vector_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_vector_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_vector_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,69 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_VECTOR_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_VECTOR_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<A>::cols==3 &&
+ vector_traits<B>::dim==3,
+ deduce_vector2<A,B,3> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ typedef typename vector_traits<B>::scalar_type Tb;
+ Ta const a00 = matrix_traits<A>::template r<0,0>(a);
+ Ta const a01 = matrix_traits<A>::template r<0,1>(a);
+ Ta const a02 = matrix_traits<A>::template r<0,2>(a);
+ Ta const a10 = matrix_traits<A>::template r<1,0>(a);
+ Ta const a11 = matrix_traits<A>::template r<1,1>(a);
+ Ta const a12 = matrix_traits<A>::template r<1,2>(a);
+ Ta const a20 = matrix_traits<A>::template r<2,0>(a);
+ Ta const a21 = matrix_traits<A>::template r<2,1>(a);
+ Ta const a22 = matrix_traits<A>::template r<2,2>(a);
+ Tb const b0 = vector_traits<B>::template r<0>(b);
+ Tb const b1 = vector_traits<B>::template r<1>(b);
+ Tb const b2 = vector_traits<B>::template r<2>(b);
+ typedef typename deduce_vector2<A,B,3>::type R;
+ BOOST_STATIC_ASSERT(vector_traits<R>::dim==3);
+ R r;
+ vector_traits<R>::template w<0>(r)=a00*b0+a01*b1+a02*b2;
+ vector_traits<R>::template w<1>(r)=a10*b0+a11*b1+a12*b2;
+ vector_traits<R>::template w<2>(r)=a20*b0+a21*b1+a22*b2;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_vector_defined;
+
+ template <>
+ struct
+ matrix_mul_vector_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_mul_vector_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_mul_vector_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,78 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_MUL_VECTOR_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_MUL_VECTOR_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<A>::cols==4 &&
+ vector_traits<B>::dim==4,
+ deduce_vector2<A,B,4> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ typedef typename vector_traits<B>::scalar_type Tb;
+ Ta const a00 = matrix_traits<A>::template r<0,0>(a);
+ Ta const a01 = matrix_traits<A>::template r<0,1>(a);
+ Ta const a02 = matrix_traits<A>::template r<0,2>(a);
+ Ta const a03 = matrix_traits<A>::template r<0,3>(a);
+ Ta const a10 = matrix_traits<A>::template r<1,0>(a);
+ Ta const a11 = matrix_traits<A>::template r<1,1>(a);
+ Ta const a12 = matrix_traits<A>::template r<1,2>(a);
+ Ta const a13 = matrix_traits<A>::template r<1,3>(a);
+ Ta const a20 = matrix_traits<A>::template r<2,0>(a);
+ Ta const a21 = matrix_traits<A>::template r<2,1>(a);
+ Ta const a22 = matrix_traits<A>::template r<2,2>(a);
+ Ta const a23 = matrix_traits<A>::template r<2,3>(a);
+ Ta const a30 = matrix_traits<A>::template r<3,0>(a);
+ Ta const a31 = matrix_traits<A>::template r<3,1>(a);
+ Ta const a32 = matrix_traits<A>::template r<3,2>(a);
+ Ta const a33 = matrix_traits<A>::template r<3,3>(a);
+ Tb const b0 = vector_traits<B>::template r<0>(b);
+ Tb const b1 = vector_traits<B>::template r<1>(b);
+ Tb const b2 = vector_traits<B>::template r<2>(b);
+ Tb const b3 = vector_traits<B>::template r<3>(b);
+ typedef typename deduce_vector2<A,B,4>::type R;
+ BOOST_STATIC_ASSERT(vector_traits<R>::dim==4);
+ R r;
+ vector_traits<R>::template w<0>(r)=a00*b0+a01*b1+a02*b2+a03*b3;
+ vector_traits<R>::template w<1>(r)=a10*b0+a11*b1+a12*b2+a13*b3;
+ vector_traits<R>::template w<2>(r)=a20*b0+a21*b1+a22*b2+a23*b3;
+ vector_traits<R>::template w<3>(r)=a30*b0+a31*b1+a32*b2+a33*b3;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_mul_vector_defined;
+
+ template <>
+ struct
+ matrix_mul_vector_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_neq_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_neq_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,22 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_NEQ_MATRIX_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_NEQ_MATRIX_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_neq_matrix_2_2.hpp>
+#include <boost/la/custom/matrix_neq_matrix_2_1.hpp>
+#include <boost/la/custom/matrix_neq_matrix_1_2.hpp>
+#include <boost/la/custom/matrix_neq_matrix_3_3.hpp>
+#include <boost/la/custom/matrix_neq_matrix_3_1.hpp>
+#include <boost/la/custom/matrix_neq_matrix_1_3.hpp>
+#include <boost/la/custom/matrix_neq_matrix_4_4.hpp>
+#include <boost/la/custom/matrix_neq_matrix_4_1.hpp>
+#include <boost/la/custom/matrix_neq_matrix_1_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_neq_matrix_1_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_neq_matrix_1_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_NEQ_MATRIX_1_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_NEQ_MATRIX_1_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b)) ||
+ !(matrix_traits<A>::template r<0,1>(a)==matrix_traits<B>::template r<0,1>(b));
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_neq_matrix_defined;
+
+ template <>
+ struct
+ matrix_neq_matrix_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_neq_matrix_1_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_neq_matrix_1_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_NEQ_MATRIX_1_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_NEQ_MATRIX_1_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b)) ||
+ !(matrix_traits<A>::template r<0,1>(a)==matrix_traits<B>::template r<0,1>(b)) ||
+ !(matrix_traits<A>::template r<0,2>(a)==matrix_traits<B>::template r<0,2>(b));
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_neq_matrix_defined;
+
+ template <>
+ struct
+ matrix_neq_matrix_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_neq_matrix_1_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_neq_matrix_1_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_NEQ_MATRIX_1_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_NEQ_MATRIX_1_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b)) ||
+ !(matrix_traits<A>::template r<0,1>(a)==matrix_traits<B>::template r<0,1>(b)) ||
+ !(matrix_traits<A>::template r<0,2>(a)==matrix_traits<B>::template r<0,2>(b)) ||
+ !(matrix_traits<A>::template r<0,3>(a)==matrix_traits<B>::template r<0,3>(b));
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_neq_matrix_defined;
+
+ template <>
+ struct
+ matrix_neq_matrix_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_neq_matrix_2_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_neq_matrix_2_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_NEQ_MATRIX_2_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_NEQ_MATRIX_2_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b)) ||
+ !(matrix_traits<A>::template r<1,0>(a)==matrix_traits<B>::template r<1,0>(b));
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_neq_matrix_defined;
+
+ template <>
+ struct
+ matrix_neq_matrix_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_neq_matrix_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_neq_matrix_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_NEQ_MATRIX_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_NEQ_MATRIX_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b)) ||
+ !(matrix_traits<A>::template r<0,1>(a)==matrix_traits<B>::template r<0,1>(b)) ||
+ !(matrix_traits<A>::template r<1,0>(a)==matrix_traits<B>::template r<1,0>(b)) ||
+ !(matrix_traits<A>::template r<1,1>(a)==matrix_traits<B>::template r<1,1>(b));
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_neq_matrix_defined;
+
+ template <>
+ struct
+ matrix_neq_matrix_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_neq_matrix_3_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_neq_matrix_3_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_NEQ_MATRIX_3_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_NEQ_MATRIX_3_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b)) ||
+ !(matrix_traits<A>::template r<1,0>(a)==matrix_traits<B>::template r<1,0>(b)) ||
+ !(matrix_traits<A>::template r<2,0>(a)==matrix_traits<B>::template r<2,0>(b));
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_neq_matrix_defined;
+
+ template <>
+ struct
+ matrix_neq_matrix_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_neq_matrix_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_neq_matrix_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_NEQ_MATRIX_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_NEQ_MATRIX_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b)) ||
+ !(matrix_traits<A>::template r<0,1>(a)==matrix_traits<B>::template r<0,1>(b)) ||
+ !(matrix_traits<A>::template r<0,2>(a)==matrix_traits<B>::template r<0,2>(b)) ||
+ !(matrix_traits<A>::template r<1,0>(a)==matrix_traits<B>::template r<1,0>(b)) ||
+ !(matrix_traits<A>::template r<1,1>(a)==matrix_traits<B>::template r<1,1>(b)) ||
+ !(matrix_traits<A>::template r<1,2>(a)==matrix_traits<B>::template r<1,2>(b)) ||
+ !(matrix_traits<A>::template r<2,0>(a)==matrix_traits<B>::template r<2,0>(b)) ||
+ !(matrix_traits<A>::template r<2,1>(a)==matrix_traits<B>::template r<2,1>(b)) ||
+ !(matrix_traits<A>::template r<2,2>(a)==matrix_traits<B>::template r<2,2>(b));
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_neq_matrix_defined;
+
+ template <>
+ struct
+ matrix_neq_matrix_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_neq_matrix_4_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_neq_matrix_4_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_NEQ_MATRIX_4_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_NEQ_MATRIX_4_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b)) ||
+ !(matrix_traits<A>::template r<1,0>(a)==matrix_traits<B>::template r<1,0>(b)) ||
+ !(matrix_traits<A>::template r<2,0>(a)==matrix_traits<B>::template r<2,0>(b)) ||
+ !(matrix_traits<A>::template r<3,0>(a)==matrix_traits<B>::template r<3,0>(b));
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_neq_matrix_defined;
+
+ template <>
+ struct
+ matrix_neq_matrix_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_neq_matrix_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_neq_matrix_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,64 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_NEQ_MATRIX_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_NEQ_MATRIX_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(matrix_traits<A>::template r<0,0>(a)==matrix_traits<B>::template r<0,0>(b)) ||
+ !(matrix_traits<A>::template r<0,1>(a)==matrix_traits<B>::template r<0,1>(b)) ||
+ !(matrix_traits<A>::template r<0,2>(a)==matrix_traits<B>::template r<0,2>(b)) ||
+ !(matrix_traits<A>::template r<0,3>(a)==matrix_traits<B>::template r<0,3>(b)) ||
+ !(matrix_traits<A>::template r<1,0>(a)==matrix_traits<B>::template r<1,0>(b)) ||
+ !(matrix_traits<A>::template r<1,1>(a)==matrix_traits<B>::template r<1,1>(b)) ||
+ !(matrix_traits<A>::template r<1,2>(a)==matrix_traits<B>::template r<1,2>(b)) ||
+ !(matrix_traits<A>::template r<1,3>(a)==matrix_traits<B>::template r<1,3>(b)) ||
+ !(matrix_traits<A>::template r<2,0>(a)==matrix_traits<B>::template r<2,0>(b)) ||
+ !(matrix_traits<A>::template r<2,1>(a)==matrix_traits<B>::template r<2,1>(b)) ||
+ !(matrix_traits<A>::template r<2,2>(a)==matrix_traits<B>::template r<2,2>(b)) ||
+ !(matrix_traits<A>::template r<2,3>(a)==matrix_traits<B>::template r<2,3>(b)) ||
+ !(matrix_traits<A>::template r<3,0>(a)==matrix_traits<B>::template r<3,0>(b)) ||
+ !(matrix_traits<A>::template r<3,1>(a)==matrix_traits<B>::template r<3,1>(b)) ||
+ !(matrix_traits<A>::template r<3,2>(a)==matrix_traits<B>::template r<3,2>(b)) ||
+ !(matrix_traits<A>::template r<3,3>(a)==matrix_traits<B>::template r<3,3>(b));
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_neq_matrix_defined;
+
+ template <>
+ struct
+ matrix_neq_matrix_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_eq_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_eq_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,22 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_plus_eq_matrix_2_2.hpp>
+#include <boost/la/custom/matrix_plus_eq_matrix_2_1.hpp>
+#include <boost/la/custom/matrix_plus_eq_matrix_1_2.hpp>
+#include <boost/la/custom/matrix_plus_eq_matrix_3_3.hpp>
+#include <boost/la/custom/matrix_plus_eq_matrix_3_1.hpp>
+#include <boost/la/custom/matrix_plus_eq_matrix_1_3.hpp>
+#include <boost/la/custom/matrix_plus_eq_matrix_4_4.hpp>
+#include <boost/la/custom/matrix_plus_eq_matrix_4_1.hpp>
+#include <boost/la/custom/matrix_plus_eq_matrix_1_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_eq_matrix_1_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_eq_matrix_1_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_1_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_1_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ A &>::type
+ operator+=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)+=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)+=matrix_traits<B>::template r<0,1>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_eq_matrix_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_eq_matrix_1_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_eq_matrix_1_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_1_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_1_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ A &>::type
+ operator+=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)+=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)+=matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<A>::template w<0,2>(a)+=matrix_traits<B>::template r<0,2>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_eq_matrix_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_eq_matrix_1_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_eq_matrix_1_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_1_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_1_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ A &>::type
+ operator+=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)+=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)+=matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<A>::template w<0,2>(a)+=matrix_traits<B>::template r<0,2>(b);
+ matrix_traits<A>::template w<0,3>(a)+=matrix_traits<B>::template r<0,3>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_eq_matrix_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_eq_matrix_2_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_eq_matrix_2_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_2_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_2_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ A &>::type
+ operator+=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)+=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<1,0>(a)+=matrix_traits<B>::template r<1,0>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_eq_matrix_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_eq_matrix_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_eq_matrix_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ A &>::type
+ operator+=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)+=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)+=matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<A>::template w<1,0>(a)+=matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<A>::template w<1,1>(a)+=matrix_traits<B>::template r<1,1>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_eq_matrix_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_eq_matrix_3_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_eq_matrix_3_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_3_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_3_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ A &>::type
+ operator+=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)+=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<1,0>(a)+=matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<A>::template w<2,0>(a)+=matrix_traits<B>::template r<2,0>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_eq_matrix_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_eq_matrix_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_eq_matrix_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ A &>::type
+ operator+=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)+=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)+=matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<A>::template w<0,2>(a)+=matrix_traits<B>::template r<0,2>(b);
+ matrix_traits<A>::template w<1,0>(a)+=matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<A>::template w<1,1>(a)+=matrix_traits<B>::template r<1,1>(b);
+ matrix_traits<A>::template w<1,2>(a)+=matrix_traits<B>::template r<1,2>(b);
+ matrix_traits<A>::template w<2,0>(a)+=matrix_traits<B>::template r<2,0>(b);
+ matrix_traits<A>::template w<2,1>(a)+=matrix_traits<B>::template r<2,1>(b);
+ matrix_traits<A>::template w<2,2>(a)+=matrix_traits<B>::template r<2,2>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_eq_matrix_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_eq_matrix_4_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_eq_matrix_4_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_4_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_4_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ A &>::type
+ operator+=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)+=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<1,0>(a)+=matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<A>::template w<2,0>(a)+=matrix_traits<B>::template r<2,0>(b);
+ matrix_traits<A>::template w<3,0>(a)+=matrix_traits<B>::template r<3,0>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_eq_matrix_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_eq_matrix_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_eq_matrix_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,64 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_EQ_MATRIX_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ A &>::type
+ operator+=( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<0,0>(a)+=matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<A>::template w<0,1>(a)+=matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<A>::template w<0,2>(a)+=matrix_traits<B>::template r<0,2>(b);
+ matrix_traits<A>::template w<0,3>(a)+=matrix_traits<B>::template r<0,3>(b);
+ matrix_traits<A>::template w<1,0>(a)+=matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<A>::template w<1,1>(a)+=matrix_traits<B>::template r<1,1>(b);
+ matrix_traits<A>::template w<1,2>(a)+=matrix_traits<B>::template r<1,2>(b);
+ matrix_traits<A>::template w<1,3>(a)+=matrix_traits<B>::template r<1,3>(b);
+ matrix_traits<A>::template w<2,0>(a)+=matrix_traits<B>::template r<2,0>(b);
+ matrix_traits<A>::template w<2,1>(a)+=matrix_traits<B>::template r<2,1>(b);
+ matrix_traits<A>::template w<2,2>(a)+=matrix_traits<B>::template r<2,2>(b);
+ matrix_traits<A>::template w<2,3>(a)+=matrix_traits<B>::template r<2,3>(b);
+ matrix_traits<A>::template w<3,0>(a)+=matrix_traits<B>::template r<3,0>(b);
+ matrix_traits<A>::template w<3,1>(a)+=matrix_traits<B>::template r<3,1>(b);
+ matrix_traits<A>::template w<3,2>(a)+=matrix_traits<B>::template r<3,2>(b);
+ matrix_traits<A>::template w<3,3>(a)+=matrix_traits<B>::template r<3,3>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_eq_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_eq_matrix_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,22 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_MATRIX_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_MATRIX_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/matrix_plus_matrix_2_2.hpp>
+#include <boost/la/custom/matrix_plus_matrix_2_1.hpp>
+#include <boost/la/custom/matrix_plus_matrix_1_2.hpp>
+#include <boost/la/custom/matrix_plus_matrix_3_3.hpp>
+#include <boost/la/custom/matrix_plus_matrix_3_1.hpp>
+#include <boost/la/custom/matrix_plus_matrix_1_3.hpp>
+#include <boost/la/custom/matrix_plus_matrix_4_4.hpp>
+#include <boost/la/custom/matrix_plus_matrix_4_1.hpp>
+#include <boost/la/custom/matrix_plus_matrix_1_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_matrix_1_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_matrix_1_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_MATRIX_1_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_MATRIX_1_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ deduce_matrix2<A,B,1,2> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,1,2>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==1);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==2);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)+matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)+matrix_traits<B>::template r<0,1>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_matrix_defined<1,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_matrix_1_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_matrix_1_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_MATRIX_1_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_MATRIX_1_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ deduce_matrix2<A,B,1,3> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,1,3>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==1);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==3);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)+matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)+matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)+matrix_traits<B>::template r<0,2>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_matrix_defined<1,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_matrix_1_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_matrix_1_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_MATRIX_1_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_MATRIX_1_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==1 && matrix_traits<B>::rows==1 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ deduce_matrix2<A,B,1,4> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,1,4>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==1);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==4);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)+matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)+matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)+matrix_traits<B>::template r<0,2>(b);
+ matrix_traits<R>::template w<0,3>(r)=matrix_traits<A>::template r<0,3>(a)+matrix_traits<B>::template r<0,3>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_matrix_defined<1,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_matrix_2_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_matrix_2_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_MATRIX_2_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_MATRIX_2_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ deduce_matrix2<A,B,2,1> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,2,1>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==2);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==1);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)+matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)+matrix_traits<B>::template r<1,0>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_matrix_defined<2,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_matrix_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_matrix_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_MATRIX_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_MATRIX_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==2 && matrix_traits<B>::rows==2 &&
+ matrix_traits<A>::cols==2 && matrix_traits<B>::cols==2,
+ deduce_matrix2<A,B,2,2> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,2,2>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==2);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==2);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)+matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)+matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)+matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<R>::template w<1,1>(r)=matrix_traits<A>::template r<1,1>(a)+matrix_traits<B>::template r<1,1>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_matrix_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_matrix_3_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_matrix_3_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_MATRIX_3_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_MATRIX_3_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ deduce_matrix2<A,B,3,1> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,3,1>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==3);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==1);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)+matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)+matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)+matrix_traits<B>::template r<2,0>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_matrix_defined<3,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_matrix_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_matrix_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,62 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_MATRIX_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_MATRIX_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==3 && matrix_traits<B>::rows==3 &&
+ matrix_traits<A>::cols==3 && matrix_traits<B>::cols==3,
+ deduce_matrix2<A,B,3,3> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,3,3>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==3);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==3);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)+matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)+matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)+matrix_traits<B>::template r<0,2>(b);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)+matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<R>::template w<1,1>(r)=matrix_traits<A>::template r<1,1>(a)+matrix_traits<B>::template r<1,1>(b);
+ matrix_traits<R>::template w<1,2>(r)=matrix_traits<A>::template r<1,2>(a)+matrix_traits<B>::template r<1,2>(b);
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)+matrix_traits<B>::template r<2,0>(b);
+ matrix_traits<R>::template w<2,1>(r)=matrix_traits<A>::template r<2,1>(a)+matrix_traits<B>::template r<2,1>(b);
+ matrix_traits<R>::template w<2,2>(r)=matrix_traits<A>::template r<2,2>(a)+matrix_traits<B>::template r<2,2>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_matrix_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_matrix_4_1.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_matrix_4_1.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_MATRIX_4_1_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_MATRIX_4_1_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==1 && matrix_traits<B>::cols==1,
+ deduce_matrix2<A,B,4,1> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,4,1>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==4);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==1);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)+matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)+matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)+matrix_traits<B>::template r<2,0>(b);
+ matrix_traits<R>::template w<3,0>(r)=matrix_traits<A>::template r<3,0>(a)+matrix_traits<B>::template r<3,0>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_matrix_defined<4,1>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/matrix_plus_matrix_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/matrix_plus_matrix_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,69 @@
+//Copyright (c) 2009 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_LA_CUSTOM_MATRIX_PLUS_MATRIX_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_MATRIX_PLUS_MATRIX_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<A>::rows==4 && matrix_traits<B>::rows==4 &&
+ matrix_traits<A>::cols==4 && matrix_traits<B>::cols==4,
+ deduce_matrix2<A,B,4,4> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,4,4>::type R;
+ BOOST_STATIC_ASSERT(matrix_traits<R>::rows==4);
+ BOOST_STATIC_ASSERT(matrix_traits<R>::cols==4);
+ R r;
+ matrix_traits<R>::template w<0,0>(r)=matrix_traits<A>::template r<0,0>(a)+matrix_traits<B>::template r<0,0>(b);
+ matrix_traits<R>::template w<0,1>(r)=matrix_traits<A>::template r<0,1>(a)+matrix_traits<B>::template r<0,1>(b);
+ matrix_traits<R>::template w<0,2>(r)=matrix_traits<A>::template r<0,2>(a)+matrix_traits<B>::template r<0,2>(b);
+ matrix_traits<R>::template w<0,3>(r)=matrix_traits<A>::template r<0,3>(a)+matrix_traits<B>::template r<0,3>(b);
+ matrix_traits<R>::template w<1,0>(r)=matrix_traits<A>::template r<1,0>(a)+matrix_traits<B>::template r<1,0>(b);
+ matrix_traits<R>::template w<1,1>(r)=matrix_traits<A>::template r<1,1>(a)+matrix_traits<B>::template r<1,1>(b);
+ matrix_traits<R>::template w<1,2>(r)=matrix_traits<A>::template r<1,2>(a)+matrix_traits<B>::template r<1,2>(b);
+ matrix_traits<R>::template w<1,3>(r)=matrix_traits<A>::template r<1,3>(a)+matrix_traits<B>::template r<1,3>(b);
+ matrix_traits<R>::template w<2,0>(r)=matrix_traits<A>::template r<2,0>(a)+matrix_traits<B>::template r<2,0>(b);
+ matrix_traits<R>::template w<2,1>(r)=matrix_traits<A>::template r<2,1>(a)+matrix_traits<B>::template r<2,1>(b);
+ matrix_traits<R>::template w<2,2>(r)=matrix_traits<A>::template r<2,2>(a)+matrix_traits<B>::template r<2,2>(b);
+ matrix_traits<R>::template w<2,3>(r)=matrix_traits<A>::template r<2,3>(a)+matrix_traits<B>::template r<2,3>(b);
+ matrix_traits<R>::template w<3,0>(r)=matrix_traits<A>::template r<3,0>(a)+matrix_traits<B>::template r<3,0>(b);
+ matrix_traits<R>::template w<3,1>(r)=matrix_traits<A>::template r<3,1>(a)+matrix_traits<B>::template r<3,1>(b);
+ matrix_traits<R>::template w<3,2>(r)=matrix_traits<A>::template r<3,2>(a)+matrix_traits<B>::template r<3,2>(b);
+ matrix_traits<R>::template w<3,3>(r)=matrix_traits<A>::template r<3,3>(a)+matrix_traits<B>::template r<3,3>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct matrix_plus_matrix_defined;
+
+ template <>
+ struct
+ matrix_plus_matrix_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/swizzle.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/swizzle.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_SWIZZLE_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_SWIZZLE_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/swizzle_2.hpp>
+#include <boost/la/custom/swizzle_3.hpp>
+#include <boost/la/custom/swizzle_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/swizzle_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/swizzle_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,118 @@
+//Copyright (c) 2009 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_LA_CUSTOM_SWIZZLE_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_SWIZZLE_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/detail/swizzle_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > >
+ W1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > >
+ Z1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > >
+ Y1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > >
+ X1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > >
+ W0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > >
+ Z0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > >
+ Y0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > >
+ X0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > >
+ WW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > >
+ ZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > >
+ YW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > >
+ XW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > >
+ WZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > >
+ ZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > >
+ YZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > >
+ XZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > >
+ WY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > >
+ ZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > >
+ YY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > >
+ XY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > >
+ WX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > >
+ ZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > >
+ YX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > >
+ XX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > >(); }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/swizzle_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/swizzle_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,406 @@
+//Copyright (c) 2009 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_LA_CUSTOM_SWIZZLE_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_SWIZZLE_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/detail/swizzle_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ WW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ ZW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ YW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ XW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ WZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ ZZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ YZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ XZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ WY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ ZY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ YY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ XY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ WX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ ZX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ YX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >
+ XX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ WW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ ZW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ YW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ XW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ WZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ ZZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ YZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ XZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ WY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ ZY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ YY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ XY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ WX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ ZX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ YX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >
+ XX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ WWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ ZWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ YWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ XWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ WZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ ZZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ YZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ XZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ WYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ ZYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ YYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ XYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ WXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ ZXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ YXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >
+ XXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ WWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ ZWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ YWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ XWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ WZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ ZZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ YZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ XZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ WYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ ZYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ YYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ XYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ WXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ ZXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ YXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >
+ XXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ WWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ ZWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ YWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ XWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ WZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ ZZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ YZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ XZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ WYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ ZYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ YYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ XYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ WXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ ZXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ YXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >
+ XXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ WWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ ZWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ YWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ XWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ WZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ ZZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ YZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ XZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ WYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ ZYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ YYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ XYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ WXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ ZXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ YXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >
+ XXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > >(); }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/swizzle_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/swizzle_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,1558 @@
+//Copyright (c) 2009 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_LA_CUSTOM_SWIZZLE_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_SWIZZLE_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/detail/swizzle_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WWW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZWW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YWW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XWW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WZW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZZW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YZW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XZW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WYW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZYW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YYW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XYW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WXW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZXW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YXW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XXW1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WWZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZWZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YWZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XWZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WZZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZZZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YZZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XZZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WYZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZYZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YYZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XYZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WXZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZXZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YXZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XXZ1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WWY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZWY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YWY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XWY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WZY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZZY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YZY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XZY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WYY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZYY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YYY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XYY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WXY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZXY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YXY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XXY1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WWX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZWX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YWX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XWX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WZX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZZX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YZX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XZX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WYX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZYX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YYX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XYX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ WXX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ ZXX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ YXX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >
+ XXX1() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_1_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WWW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZWW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YWW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XWW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WZW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZZW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YZW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XZW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WYW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZYW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YYW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XYW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WXW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZXW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YXW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XXW0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WWZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZWZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YWZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XWZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WZZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZZZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YZZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XZZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WYZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZYZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YYZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XYZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WXZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZXZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YXZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XXZ0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WWY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZWY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YWY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XWY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WZY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZZY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YZY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XZY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WYY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZYY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YYY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XYY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WXY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZXY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YXY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XXY0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WWX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZWX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YWX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XWX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WZX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZZX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YZX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XZX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WYX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZYX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YYX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XYX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ WXX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ ZXX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ YXX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >
+ XXX0() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_0_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WWWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZWWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YWWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XWWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WZWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZZWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YZWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XZWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WYWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZYWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YYWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XYWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WXWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZXWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YXWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XXWW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WWZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZWZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YWZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XWZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WZZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZZZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YZZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XZZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WYZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZYZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YYZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XYZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WXZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZXZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YXZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XXZW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WWYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZWYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YWYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XWYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WZYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZZYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YZYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XZYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WYYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZYYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YYYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XYYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WXYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZXYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YXYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XXYW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WWXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZWXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YWXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XWXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WZXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZZXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YZXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XZXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WYXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZYXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YYXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XYXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ WXXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ ZXXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ YXXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >
+ XXXW() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WWWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZWWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YWWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XWWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WZWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZZWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YZWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XZWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WYWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZYWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YYWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XYWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WXWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZXWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YXWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XXWZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WWZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZWZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YWZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XWZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WZZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZZZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YZZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XZZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WYZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZYZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YYZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XYZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WXZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZXZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YXZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XXZZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WWYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZWYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YWYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XWYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WZYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZZYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YZYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XZYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WYYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZYYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YYYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XYYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WXYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZXYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YXYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XXYZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WWXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZWXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YWXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XWXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WZXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZZXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YZXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XZXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WYXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZYXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YYXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XYXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ WXXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ ZXXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ YXXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >
+ XXXZ() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WWWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZWWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YWWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XWWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WZWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZZWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YZWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XZWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WYWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZYWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YYWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XYWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WXWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZXWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YXWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XXWY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WWZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZWZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YWZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XWZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WZZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZZZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YZZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XZZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WYZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZYZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YYZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XYZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WXZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZXZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YXZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XXZY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WWYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZWYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YWYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XWYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WZYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZZYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YZYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XZYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WYYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZYYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YYYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XYYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WXYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZXYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YXYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XXYY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WWXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZWXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YWXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XWXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WZXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZZXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YZXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XZXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WYXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZYXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YYXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XYXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ WXXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ ZXXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ YXXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >
+ XXXY() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WWWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZWWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YWWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XWWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WZWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZZWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YZWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XZWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WYWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZYWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YYWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XYWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WXWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZXWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YXWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XXWX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WWZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZWZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YWZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XWZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WZZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZZZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YZZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XZZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WYZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZYZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YYZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XYZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WXZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZXZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YXZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XXZX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WWYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZWYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YWYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XWYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WZYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZZYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YZYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XZYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WYYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZYYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YYYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XYYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WXYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZXYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YXYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XXYX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WWXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZWXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YWXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XWXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WZXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZZXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YZXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XZXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WYXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZYXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YYXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XYXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ WXXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_w_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ ZXXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_z_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ YXXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_y_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >
+ XXXX() { return la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<_x_>::value > > > >(); }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_assign.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_assign.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_ASSIGN_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_ASSIGN_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_assign_2.hpp>
+#include <boost/la/custom/vector_assign_3.hpp>
+#include <boost/la/custom/vector_assign_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_assign_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_assign_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_ASSIGN_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_ASSIGN_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==2 && vector_traits<B>::dim==2,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ vector_traits<A>::template w<0>(a)=vector_traits<B>::template r<0>(b);
+ vector_traits<A>::template w<1>(a)=vector_traits<B>::template r<1>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_assign_defined;
+
+ template <>
+ struct
+ vector_assign_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_assign_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_assign_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_ASSIGN_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_ASSIGN_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==3 && vector_traits<B>::dim==3,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ vector_traits<A>::template w<0>(a)=vector_traits<B>::template r<0>(b);
+ vector_traits<A>::template w<1>(a)=vector_traits<B>::template r<1>(b);
+ vector_traits<A>::template w<2>(a)=vector_traits<B>::template r<2>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_assign_defined;
+
+ template <>
+ struct
+ vector_assign_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_assign_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_assign_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_ASSIGN_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_ASSIGN_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==4 && vector_traits<B>::dim==4,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ vector_traits<A>::template w<0>(a)=vector_traits<B>::template r<0>(b);
+ vector_traits<A>::template w<1>(a)=vector_traits<B>::template r<1>(b);
+ vector_traits<A>::template w<2>(a)=vector_traits<B>::template r<2>(b);
+ vector_traits<A>::template w<3>(a)=vector_traits<B>::template r<3>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_assign_defined;
+
+ template <>
+ struct
+ vector_assign_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_div_eq_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_div_eq_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_DIV_EQ_SCALAR_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_DIV_EQ_SCALAR_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_div_eq_scalar_2.hpp>
+#include <boost/la/custom/vector_div_eq_scalar_3.hpp>
+#include <boost/la/custom/vector_div_eq_scalar_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_div_eq_scalar_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_div_eq_scalar_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_DIV_EQ_SCALAR_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_DIV_EQ_SCALAR_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==2,
+ A &>::type
+ operator/=( A & a, typename vector_traits<A>::scalar_type b )
+ {
+ vector_traits<A>::template w<0>(a)/=b;
+ vector_traits<A>::template w<1>(a)/=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_div_eq_scalar_defined;
+
+ template <>
+ struct
+ vector_div_eq_scalar_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_div_eq_scalar_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_div_eq_scalar_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_DIV_EQ_SCALAR_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_DIV_EQ_SCALAR_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==3,
+ A &>::type
+ operator/=( A & a, typename vector_traits<A>::scalar_type b )
+ {
+ vector_traits<A>::template w<0>(a)/=b;
+ vector_traits<A>::template w<1>(a)/=b;
+ vector_traits<A>::template w<2>(a)/=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_div_eq_scalar_defined;
+
+ template <>
+ struct
+ vector_div_eq_scalar_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_div_eq_scalar_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_div_eq_scalar_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_DIV_EQ_SCALAR_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_DIV_EQ_SCALAR_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==4,
+ A &>::type
+ operator/=( A & a, typename vector_traits<A>::scalar_type b )
+ {
+ vector_traits<A>::template w<0>(a)/=b;
+ vector_traits<A>::template w<1>(a)/=b;
+ vector_traits<A>::template w<2>(a)/=b;
+ vector_traits<A>::template w<3>(a)/=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_div_eq_scalar_defined;
+
+ template <>
+ struct
+ vector_div_eq_scalar_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_div_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_div_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_DIV_SCALAR_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_DIV_SCALAR_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_div_scalar_2.hpp>
+#include <boost/la/custom/vector_div_scalar_3.hpp>
+#include <boost/la/custom/vector_div_scalar_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_div_scalar_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_div_scalar_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_DIV_SCALAR_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_DIV_SCALAR_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==2,
+ deduce_vector<A> >::type
+ operator/( A const & a, typename vector_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_vector<A>::type R;
+ R r;
+ vector_traits<R>::template w<0>(r)=vector_traits<A>::template r<0>(a)/b;
+ vector_traits<R>::template w<1>(r)=vector_traits<A>::template r<1>(a)/b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_div_scalar_defined;
+
+ template <>
+ struct
+ vector_div_scalar_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_div_scalar_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_div_scalar_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_DIV_SCALAR_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_DIV_SCALAR_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==3,
+ deduce_vector<A> >::type
+ operator/( A const & a, typename vector_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_vector<A>::type R;
+ R r;
+ vector_traits<R>::template w<0>(r)=vector_traits<A>::template r<0>(a)/b;
+ vector_traits<R>::template w<1>(r)=vector_traits<A>::template r<1>(a)/b;
+ vector_traits<R>::template w<2>(r)=vector_traits<A>::template r<2>(a)/b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_div_scalar_defined;
+
+ template <>
+ struct
+ vector_div_scalar_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_div_scalar_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_div_scalar_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_DIV_SCALAR_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_DIV_SCALAR_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==4,
+ deduce_vector<A> >::type
+ operator/( A const & a, typename vector_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_vector<A>::type R;
+ R r;
+ vector_traits<R>::template w<0>(r)=vector_traits<A>::template r<0>(a)/b;
+ vector_traits<R>::template w<1>(r)=vector_traits<A>::template r<1>(a)/b;
+ vector_traits<R>::template w<2>(r)=vector_traits<A>::template r<2>(a)/b;
+ vector_traits<R>::template w<3>(r)=vector_traits<A>::template r<3>(a)/b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_div_scalar_defined;
+
+ template <>
+ struct
+ vector_div_scalar_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_dot.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_dot.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_DOT_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_DOT_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_dot_2.hpp>
+#include <boost/la/custom/vector_dot_3.hpp>
+#include <boost/la/custom/vector_dot_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_dot_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_dot_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_DOT_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_DOT_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/la/deduce_scalar.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==2 && vector_traits<B>::dim==2,
+ deduce_scalar<typename vector_traits<A>::scalar_type,typename vector_traits<B>::scalar_type> >::type
+ dot( A const & a, B const & b )
+ {
+ typedef typename vector_traits<A>::scalar_type Ta;
+ typedef typename vector_traits<B>::scalar_type Tb;
+ typedef typename deduce_scalar<Ta,Tb>::type Tr;
+ Ta const a0=vector_traits<A>::template r<0>(a);
+ Ta const a1=vector_traits<A>::template r<1>(a);
+ Tb const b0=vector_traits<B>::template r<0>(b);
+ Tb const b1=vector_traits<B>::template r<1>(b);
+ Tr const dot=a0*b0+a1*b1;
+ return dot;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_dot_defined;
+
+ template <>
+ struct
+ vector_dot_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_dot_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_dot_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_DOT_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_DOT_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/la/deduce_scalar.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==3 && vector_traits<B>::dim==3,
+ deduce_scalar<typename vector_traits<A>::scalar_type,typename vector_traits<B>::scalar_type> >::type
+ dot( A const & a, B const & b )
+ {
+ typedef typename vector_traits<A>::scalar_type Ta;
+ typedef typename vector_traits<B>::scalar_type Tb;
+ typedef typename deduce_scalar<Ta,Tb>::type Tr;
+ Ta const a0=vector_traits<A>::template r<0>(a);
+ Ta const a1=vector_traits<A>::template r<1>(a);
+ Ta const a2=vector_traits<A>::template r<2>(a);
+ Tb const b0=vector_traits<B>::template r<0>(b);
+ Tb const b1=vector_traits<B>::template r<1>(b);
+ Tb const b2=vector_traits<B>::template r<2>(b);
+ Tr const dot=a0*b0+a1*b1+a2*b2;
+ return dot;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_dot_defined;
+
+ template <>
+ struct
+ vector_dot_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_dot_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_dot_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,60 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_DOT_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_DOT_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/la/deduce_scalar.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==4 && vector_traits<B>::dim==4,
+ deduce_scalar<typename vector_traits<A>::scalar_type,typename vector_traits<B>::scalar_type> >::type
+ dot( A const & a, B const & b )
+ {
+ typedef typename vector_traits<A>::scalar_type Ta;
+ typedef typename vector_traits<B>::scalar_type Tb;
+ typedef typename deduce_scalar<Ta,Tb>::type Tr;
+ Ta const a0=vector_traits<A>::template r<0>(a);
+ Ta const a1=vector_traits<A>::template r<1>(a);
+ Ta const a2=vector_traits<A>::template r<2>(a);
+ Ta const a3=vector_traits<A>::template r<3>(a);
+ Tb const b0=vector_traits<B>::template r<0>(b);
+ Tb const b1=vector_traits<B>::template r<1>(b);
+ Tb const b2=vector_traits<B>::template r<2>(b);
+ Tb const b3=vector_traits<B>::template r<3>(b);
+ Tr const dot=a0*b0+a1*b1+a2*b2+a3*b3;
+ return dot;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_dot_defined;
+
+ template <>
+ struct
+ vector_dot_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_eq_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_eq_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_EQ_VECTOR_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_EQ_VECTOR_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_eq_vector_2.hpp>
+#include <boost/la/custom/vector_eq_vector_3.hpp>
+#include <boost/la/custom/vector_eq_vector_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_eq_vector_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_eq_vector_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_EQ_VECTOR_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_EQ_VECTOR_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==2 && vector_traits<B>::dim==2,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ vector_traits<A>::template r<0>(a)==vector_traits<B>::template r<0>(b) &&
+ vector_traits<A>::template r<1>(a)==vector_traits<B>::template r<1>(b);
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_eq_vector_defined;
+
+ template <>
+ struct
+ vector_eq_vector_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_eq_vector_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_eq_vector_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_EQ_VECTOR_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_EQ_VECTOR_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==3 && vector_traits<B>::dim==3,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ vector_traits<A>::template r<0>(a)==vector_traits<B>::template r<0>(b) &&
+ vector_traits<A>::template r<1>(a)==vector_traits<B>::template r<1>(b) &&
+ vector_traits<A>::template r<2>(a)==vector_traits<B>::template r<2>(b);
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_eq_vector_defined;
+
+ template <>
+ struct
+ vector_eq_vector_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_eq_vector_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_eq_vector_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_EQ_VECTOR_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_EQ_VECTOR_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==4 && vector_traits<B>::dim==4,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ return
+ vector_traits<A>::template r<0>(a)==vector_traits<B>::template r<0>(b) &&
+ vector_traits<A>::template r<1>(a)==vector_traits<B>::template r<1>(b) &&
+ vector_traits<A>::template r<2>(a)==vector_traits<B>::template r<2>(b) &&
+ vector_traits<A>::template r<3>(a)==vector_traits<B>::template r<3>(b);
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_eq_vector_defined;
+
+ template <>
+ struct
+ vector_eq_vector_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_magnitude.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_magnitude.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MAGNITUDE_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MAGNITUDE_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_magnitude_2.hpp>
+#include <boost/la/custom/vector_magnitude_3.hpp>
+#include <boost/la/custom/vector_magnitude_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_magnitude2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_magnitude2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MAGNITUDE2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MAGNITUDE2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_magnitude2_2.hpp>
+#include <boost/la/custom/vector_magnitude2_3.hpp>
+#include <boost/la/custom/vector_magnitude2_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_magnitude2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_magnitude2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MAGNITUDE2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MAGNITUDE2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/math.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value && vector_traits<A>::dim==2,
+ typename vector_traits<A>::scalar_type>::type
+ magnitude2( A const & a )
+ {
+ typedef typename vector_traits<A>::scalar_type T;
+ T const a0=vector_traits<A>::template r<0>(a);
+ T const a1=vector_traits<A>::template r<1>(a);
+ T const mag2=a0*a0+a1*a1;
+ return mag2;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_magnitude2_defined;
+
+ template <>
+ struct
+ vector_magnitude2_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_magnitude2_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_magnitude2_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MAGNITUDE2_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MAGNITUDE2_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/math.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value && vector_traits<A>::dim==3,
+ typename vector_traits<A>::scalar_type>::type
+ magnitude2( A const & a )
+ {
+ typedef typename vector_traits<A>::scalar_type T;
+ T const a0=vector_traits<A>::template r<0>(a);
+ T const a1=vector_traits<A>::template r<1>(a);
+ T const a2=vector_traits<A>::template r<2>(a);
+ T const mag2=a0*a0+a1*a1+a2*a2;
+ return mag2;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_magnitude2_defined;
+
+ template <>
+ struct
+ vector_magnitude2_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_magnitude2_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_magnitude2_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MAGNITUDE2_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MAGNITUDE2_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/math.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value && vector_traits<A>::dim==4,
+ typename vector_traits<A>::scalar_type>::type
+ magnitude2( A const & a )
+ {
+ typedef typename vector_traits<A>::scalar_type T;
+ T const a0=vector_traits<A>::template r<0>(a);
+ T const a1=vector_traits<A>::template r<1>(a);
+ T const a2=vector_traits<A>::template r<2>(a);
+ T const a3=vector_traits<A>::template r<3>(a);
+ T const mag2=a0*a0+a1*a1+a2*a2+a3*a3;
+ return mag2;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_magnitude2_defined;
+
+ template <>
+ struct
+ vector_magnitude2_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_magnitude_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_magnitude_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MAGNITUDE_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MAGNITUDE_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/math.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value && vector_traits<A>::dim==2,
+ typename vector_traits<A>::scalar_type>::type
+ magnitude( A const & a )
+ {
+ typedef typename vector_traits<A>::scalar_type T;
+ T const a0=vector_traits<A>::template r<0>(a);
+ T const a1=vector_traits<A>::template r<1>(a);
+ T const mag2=a0*a0+a1*a1;
+ T const mag=sqrt<T>(mag2);
+ return mag;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_magnitude_defined;
+
+ template <>
+ struct
+ vector_magnitude_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_magnitude_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_magnitude_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MAGNITUDE_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MAGNITUDE_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/math.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value && vector_traits<A>::dim==3,
+ typename vector_traits<A>::scalar_type>::type
+ magnitude( A const & a )
+ {
+ typedef typename vector_traits<A>::scalar_type T;
+ T const a0=vector_traits<A>::template r<0>(a);
+ T const a1=vector_traits<A>::template r<1>(a);
+ T const a2=vector_traits<A>::template r<2>(a);
+ T const mag2=a0*a0+a1*a1+a2*a2;
+ T const mag=sqrt<T>(mag2);
+ return mag;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_magnitude_defined;
+
+ template <>
+ struct
+ vector_magnitude_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_magnitude_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_magnitude_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MAGNITUDE_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MAGNITUDE_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/math.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value && vector_traits<A>::dim==4,
+ typename vector_traits<A>::scalar_type>::type
+ magnitude( A const & a )
+ {
+ typedef typename vector_traits<A>::scalar_type T;
+ T const a0=vector_traits<A>::template r<0>(a);
+ T const a1=vector_traits<A>::template r<1>(a);
+ T const a2=vector_traits<A>::template r<2>(a);
+ T const a3=vector_traits<A>::template r<3>(a);
+ T const mag2=a0*a0+a1*a1+a2*a2+a3*a3;
+ T const mag=sqrt<T>(mag2);
+ return mag;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_magnitude_defined;
+
+ template <>
+ struct
+ vector_magnitude_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_make.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_make.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MAKE_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MAKE_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_make_2.hpp>
+#include <boost/la/custom/vector_make_3.hpp>
+#include <boost/la/custom/vector_make_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_make_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_make_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MAKE_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MAKE_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class R,class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value &&
+ vector_traits<R>::dim==2 && vector_traits<A>::dim==2,
+ R>::type
+ make( A const & a )
+ {
+ R r;
+ vector_traits<R>::template w<0>(r)=vector_traits<A>::template r<0>(a);
+ vector_traits<R>::template w<1>(r)=vector_traits<A>::template r<1>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_make_defined;
+
+ template <>
+ struct
+ vector_make_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_make_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_make_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MAKE_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MAKE_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class R,class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value &&
+ vector_traits<R>::dim==3 && vector_traits<A>::dim==3,
+ R>::type
+ make( A const & a )
+ {
+ R r;
+ vector_traits<R>::template w<0>(r)=vector_traits<A>::template r<0>(a);
+ vector_traits<R>::template w<1>(r)=vector_traits<A>::template r<1>(a);
+ vector_traits<R>::template w<2>(r)=vector_traits<A>::template r<2>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_make_defined;
+
+ template <>
+ struct
+ vector_make_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_make_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_make_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MAKE_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MAKE_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class R,class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value &&
+ vector_traits<R>::dim==4 && vector_traits<A>::dim==4,
+ R>::type
+ make( A const & a )
+ {
+ R r;
+ vector_traits<R>::template w<0>(r)=vector_traits<A>::template r<0>(a);
+ vector_traits<R>::template w<1>(r)=vector_traits<A>::template r<1>(a);
+ vector_traits<R>::template w<2>(r)=vector_traits<A>::template r<2>(a);
+ vector_traits<R>::template w<3>(r)=vector_traits<A>::template r<3>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_make_defined;
+
+ template <>
+ struct
+ vector_make_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_minus.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_minus.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MINUS_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MINUS_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_minus_2.hpp>
+#include <boost/la/custom/vector_minus_3.hpp>
+#include <boost/la/custom/vector_minus_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_minus_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_minus_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MINUS_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MINUS_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==2,
+ deduce_vector<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_vector<A>::type R;
+ R r;
+ vector_traits<R>::template w<0>(r)=-vector_traits<A>::template r<0>(a);
+ vector_traits<R>::template w<1>(r)=-vector_traits<A>::template r<1>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_minus_defined;
+
+ template <>
+ struct
+ vector_minus_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_minus_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_minus_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MINUS_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MINUS_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==3,
+ deduce_vector<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_vector<A>::type R;
+ R r;
+ vector_traits<R>::template w<0>(r)=-vector_traits<A>::template r<0>(a);
+ vector_traits<R>::template w<1>(r)=-vector_traits<A>::template r<1>(a);
+ vector_traits<R>::template w<2>(r)=-vector_traits<A>::template r<2>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_minus_defined;
+
+ template <>
+ struct
+ vector_minus_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_minus_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_minus_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MINUS_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MINUS_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==4,
+ deduce_vector<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_vector<A>::type R;
+ R r;
+ vector_traits<R>::template w<0>(r)=-vector_traits<A>::template r<0>(a);
+ vector_traits<R>::template w<1>(r)=-vector_traits<A>::template r<1>(a);
+ vector_traits<R>::template w<2>(r)=-vector_traits<A>::template r<2>(a);
+ vector_traits<R>::template w<3>(r)=-vector_traits<A>::template r<3>(a);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_minus_defined;
+
+ template <>
+ struct
+ vector_minus_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_minus_eq_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_minus_eq_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MINUS_EQ_VECTOR_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MINUS_EQ_VECTOR_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_minus_eq_vector_2.hpp>
+#include <boost/la/custom/vector_minus_eq_vector_3.hpp>
+#include <boost/la/custom/vector_minus_eq_vector_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_minus_eq_vector_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_minus_eq_vector_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MINUS_EQ_VECTOR_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MINUS_EQ_VECTOR_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==2 && vector_traits<B>::dim==2,
+ A &>::type
+ operator-=( A & a, B const & b )
+ {
+ vector_traits<A>::template w<0>(a)-=vector_traits<B>::template r<0>(b);
+ vector_traits<A>::template w<1>(a)-=vector_traits<B>::template r<1>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_minus_eq_vector_defined;
+
+ template <>
+ struct
+ vector_minus_eq_vector_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_minus_eq_vector_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_minus_eq_vector_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MINUS_EQ_VECTOR_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MINUS_EQ_VECTOR_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==3 && vector_traits<B>::dim==3,
+ A &>::type
+ operator-=( A & a, B const & b )
+ {
+ vector_traits<A>::template w<0>(a)-=vector_traits<B>::template r<0>(b);
+ vector_traits<A>::template w<1>(a)-=vector_traits<B>::template r<1>(b);
+ vector_traits<A>::template w<2>(a)-=vector_traits<B>::template r<2>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_minus_eq_vector_defined;
+
+ template <>
+ struct
+ vector_minus_eq_vector_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_minus_eq_vector_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_minus_eq_vector_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MINUS_EQ_VECTOR_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MINUS_EQ_VECTOR_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==4 && vector_traits<B>::dim==4,
+ A &>::type
+ operator-=( A & a, B const & b )
+ {
+ vector_traits<A>::template w<0>(a)-=vector_traits<B>::template r<0>(b);
+ vector_traits<A>::template w<1>(a)-=vector_traits<B>::template r<1>(b);
+ vector_traits<A>::template w<2>(a)-=vector_traits<B>::template r<2>(b);
+ vector_traits<A>::template w<3>(a)-=vector_traits<B>::template r<3>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_minus_eq_vector_defined;
+
+ template <>
+ struct
+ vector_minus_eq_vector_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_minus_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_minus_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MINUS_VECTOR_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MINUS_VECTOR_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_minus_vector_2.hpp>
+#include <boost/la/custom/vector_minus_vector_3.hpp>
+#include <boost/la/custom/vector_minus_vector_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_minus_vector_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_minus_vector_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MINUS_VECTOR_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MINUS_VECTOR_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==2 && vector_traits<B>::dim==2,
+ deduce_vector2<A,B,2> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_vector2<A,B,2>::type R;
+ BOOST_STATIC_ASSERT(vector_traits<R>::dim==2);
+ R r;
+ vector_traits<R>::template w<0>(r)=vector_traits<A>::template r<0>(a)-vector_traits<B>::template r<0>(b);
+ vector_traits<R>::template w<1>(r)=vector_traits<A>::template r<1>(a)-vector_traits<B>::template r<1>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_minus_vector_defined;
+
+ template <>
+ struct
+ vector_minus_vector_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_minus_vector_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_minus_vector_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MINUS_VECTOR_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MINUS_VECTOR_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==3 && vector_traits<B>::dim==3,
+ deduce_vector2<A,B,3> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_vector2<A,B,3>::type R;
+ BOOST_STATIC_ASSERT(vector_traits<R>::dim==3);
+ R r;
+ vector_traits<R>::template w<0>(r)=vector_traits<A>::template r<0>(a)-vector_traits<B>::template r<0>(b);
+ vector_traits<R>::template w<1>(r)=vector_traits<A>::template r<1>(a)-vector_traits<B>::template r<1>(b);
+ vector_traits<R>::template w<2>(r)=vector_traits<A>::template r<2>(a)-vector_traits<B>::template r<2>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_minus_vector_defined;
+
+ template <>
+ struct
+ vector_minus_vector_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_minus_vector_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_minus_vector_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MINUS_VECTOR_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MINUS_VECTOR_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==4 && vector_traits<B>::dim==4,
+ deduce_vector2<A,B,4> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_vector2<A,B,4>::type R;
+ BOOST_STATIC_ASSERT(vector_traits<R>::dim==4);
+ R r;
+ vector_traits<R>::template w<0>(r)=vector_traits<A>::template r<0>(a)-vector_traits<B>::template r<0>(b);
+ vector_traits<R>::template w<1>(r)=vector_traits<A>::template r<1>(a)-vector_traits<B>::template r<1>(b);
+ vector_traits<R>::template w<2>(r)=vector_traits<A>::template r<2>(a)-vector_traits<B>::template r<2>(b);
+ vector_traits<R>::template w<3>(r)=vector_traits<A>::template r<3>(a)-vector_traits<B>::template r<3>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_minus_vector_defined;
+
+ template <>
+ struct
+ vector_minus_vector_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_mul_eq_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_mul_eq_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MUL_EQ_SCALAR_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MUL_EQ_SCALAR_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_mul_eq_scalar_2.hpp>
+#include <boost/la/custom/vector_mul_eq_scalar_3.hpp>
+#include <boost/la/custom/vector_mul_eq_scalar_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_mul_eq_scalar_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_mul_eq_scalar_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MUL_EQ_SCALAR_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MUL_EQ_SCALAR_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==2,
+ A &>::type
+ operator*=( A & a, typename vector_traits<A>::scalar_type b )
+ {
+ vector_traits<A>::template w<0>(a)*=b;
+ vector_traits<A>::template w<1>(a)*=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_mul_eq_scalar_defined;
+
+ template <>
+ struct
+ vector_mul_eq_scalar_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_mul_eq_scalar_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_mul_eq_scalar_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MUL_EQ_SCALAR_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MUL_EQ_SCALAR_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==3,
+ A &>::type
+ operator*=( A & a, typename vector_traits<A>::scalar_type b )
+ {
+ vector_traits<A>::template w<0>(a)*=b;
+ vector_traits<A>::template w<1>(a)*=b;
+ vector_traits<A>::template w<2>(a)*=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_mul_eq_scalar_defined;
+
+ template <>
+ struct
+ vector_mul_eq_scalar_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_mul_eq_scalar_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_mul_eq_scalar_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MUL_EQ_SCALAR_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MUL_EQ_SCALAR_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==4,
+ A &>::type
+ operator*=( A & a, typename vector_traits<A>::scalar_type b )
+ {
+ vector_traits<A>::template w<0>(a)*=b;
+ vector_traits<A>::template w<1>(a)*=b;
+ vector_traits<A>::template w<2>(a)*=b;
+ vector_traits<A>::template w<3>(a)*=b;
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_mul_eq_scalar_defined;
+
+ template <>
+ struct
+ vector_mul_eq_scalar_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_mul_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_mul_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MUL_MATRIX_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MUL_MATRIX_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_mul_matrix_2_2.hpp>
+#include <boost/la/custom/vector_mul_matrix_3_3.hpp>
+#include <boost/la/custom/vector_mul_matrix_4_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_mul_matrix_2_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_mul_matrix_2_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,62 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MUL_MATRIX_2_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MUL_MATRIX_2_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<B>::rows==2 && matrix_traits<B>::cols==2 &&
+ vector_traits<A>::dim==2,
+ deduce_vector2<A,B,2> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename vector_traits<A>::scalar_type Ta;
+ typedef typename matrix_traits<B>::scalar_type Tb;
+ Ta const a0 = vector_traits<A>::template r<0>(a);
+ Ta const a1 = vector_traits<A>::template r<1>(a);
+ Tb const b00 = matrix_traits<B>::template r<0,0>(b);
+ Tb const b01 = matrix_traits<B>::template r<0,1>(b);
+ Tb const b10 = matrix_traits<B>::template r<1,0>(b);
+ Tb const b11 = matrix_traits<B>::template r<1,1>(b);
+ typedef typename deduce_vector2<A,B,2>::type R;
+ BOOST_STATIC_ASSERT(vector_traits<R>::dim==2);
+ R r;
+ vector_traits<R>::template w<0>(r)=a0*b00+a1*b10;
+ vector_traits<R>::template w<1>(r)=a0*b01+a1*b11;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct vector_mul_matrix_defined;
+
+ template <>
+ struct
+ vector_mul_matrix_defined<2,2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_mul_matrix_3_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_mul_matrix_3_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,69 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MUL_MATRIX_3_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MUL_MATRIX_3_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<B>::rows==3 && matrix_traits<B>::cols==3 &&
+ vector_traits<A>::dim==3,
+ deduce_vector2<A,B,3> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename vector_traits<A>::scalar_type Ta;
+ typedef typename matrix_traits<B>::scalar_type Tb;
+ Ta const a0 = vector_traits<A>::template r<0>(a);
+ Ta const a1 = vector_traits<A>::template r<1>(a);
+ Ta const a2 = vector_traits<A>::template r<2>(a);
+ Tb const b00 = matrix_traits<B>::template r<0,0>(b);
+ Tb const b01 = matrix_traits<B>::template r<0,1>(b);
+ Tb const b02 = matrix_traits<B>::template r<0,2>(b);
+ Tb const b10 = matrix_traits<B>::template r<1,0>(b);
+ Tb const b11 = matrix_traits<B>::template r<1,1>(b);
+ Tb const b12 = matrix_traits<B>::template r<1,2>(b);
+ Tb const b20 = matrix_traits<B>::template r<2,0>(b);
+ Tb const b21 = matrix_traits<B>::template r<2,1>(b);
+ Tb const b22 = matrix_traits<B>::template r<2,2>(b);
+ typedef typename deduce_vector2<A,B,3>::type R;
+ BOOST_STATIC_ASSERT(vector_traits<R>::dim==3);
+ R r;
+ vector_traits<R>::template w<0>(r)=a0*b00+a1*b10+a2*b20;
+ vector_traits<R>::template w<1>(r)=a0*b01+a1*b11+a2*b21;
+ vector_traits<R>::template w<2>(r)=a0*b02+a1*b12+a2*b22;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct vector_mul_matrix_defined;
+
+ template <>
+ struct
+ vector_mul_matrix_defined<3,3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_mul_matrix_4_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_mul_matrix_4_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,78 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MUL_MATRIX_4_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MUL_MATRIX_4_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ matrix_traits<B>::rows==4 && matrix_traits<B>::cols==4 &&
+ vector_traits<A>::dim==4,
+ deduce_vector2<A,B,4> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename vector_traits<A>::scalar_type Ta;
+ typedef typename matrix_traits<B>::scalar_type Tb;
+ Ta const a0 = vector_traits<A>::template r<0>(a);
+ Ta const a1 = vector_traits<A>::template r<1>(a);
+ Ta const a2 = vector_traits<A>::template r<2>(a);
+ Ta const a3 = vector_traits<A>::template r<3>(a);
+ Tb const b00 = matrix_traits<B>::template r<0,0>(b);
+ Tb const b01 = matrix_traits<B>::template r<0,1>(b);
+ Tb const b02 = matrix_traits<B>::template r<0,2>(b);
+ Tb const b03 = matrix_traits<B>::template r<0,3>(b);
+ Tb const b10 = matrix_traits<B>::template r<1,0>(b);
+ Tb const b11 = matrix_traits<B>::template r<1,1>(b);
+ Tb const b12 = matrix_traits<B>::template r<1,2>(b);
+ Tb const b13 = matrix_traits<B>::template r<1,3>(b);
+ Tb const b20 = matrix_traits<B>::template r<2,0>(b);
+ Tb const b21 = matrix_traits<B>::template r<2,1>(b);
+ Tb const b22 = matrix_traits<B>::template r<2,2>(b);
+ Tb const b23 = matrix_traits<B>::template r<2,3>(b);
+ Tb const b30 = matrix_traits<B>::template r<3,0>(b);
+ Tb const b31 = matrix_traits<B>::template r<3,1>(b);
+ Tb const b32 = matrix_traits<B>::template r<3,2>(b);
+ Tb const b33 = matrix_traits<B>::template r<3,3>(b);
+ typedef typename deduce_vector2<A,B,4>::type R;
+ BOOST_STATIC_ASSERT(vector_traits<R>::dim==4);
+ R r;
+ vector_traits<R>::template w<0>(r)=a0*b00+a1*b10+a2*b20+a3*b30;
+ vector_traits<R>::template w<1>(r)=a0*b01+a1*b11+a2*b21+a3*b31;
+ vector_traits<R>::template w<2>(r)=a0*b02+a1*b12+a2*b22+a3*b32;
+ vector_traits<R>::template w<3>(r)=a0*b03+a1*b13+a2*b23+a3*b33;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct vector_mul_matrix_defined;
+
+ template <>
+ struct
+ vector_mul_matrix_defined<4,4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_mul_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_mul_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MUL_SCALAR_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MUL_SCALAR_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_mul_scalar_2.hpp>
+#include <boost/la/custom/vector_mul_scalar_3.hpp>
+#include <boost/la/custom/vector_mul_scalar_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_mul_scalar_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_mul_scalar_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MUL_SCALAR_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MUL_SCALAR_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==2,
+ deduce_vector<A> >::type
+ operator*( A const & a, typename vector_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_vector<A>::type R;
+ R r;
+ vector_traits<R>::template w<0>(r)=vector_traits<A>::template r<0>(a)*b;
+ vector_traits<R>::template w<1>(r)=vector_traits<A>::template r<1>(a)*b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_mul_scalar_defined;
+
+ template <>
+ struct
+ vector_mul_scalar_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_mul_scalar_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_mul_scalar_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MUL_SCALAR_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MUL_SCALAR_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==3,
+ deduce_vector<A> >::type
+ operator*( A const & a, typename vector_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_vector<A>::type R;
+ R r;
+ vector_traits<R>::template w<0>(r)=vector_traits<A>::template r<0>(a)*b;
+ vector_traits<R>::template w<1>(r)=vector_traits<A>::template r<1>(a)*b;
+ vector_traits<R>::template w<2>(r)=vector_traits<A>::template r<2>(a)*b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_mul_scalar_defined;
+
+ template <>
+ struct
+ vector_mul_scalar_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_mul_scalar_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_mul_scalar_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_MUL_SCALAR_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_MUL_SCALAR_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==4,
+ deduce_vector<A> >::type
+ operator*( A const & a, typename vector_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_vector<A>::type R;
+ R r;
+ vector_traits<R>::template w<0>(r)=vector_traits<A>::template r<0>(a)*b;
+ vector_traits<R>::template w<1>(r)=vector_traits<A>::template r<1>(a)*b;
+ vector_traits<R>::template w<2>(r)=vector_traits<A>::template r<2>(a)*b;
+ vector_traits<R>::template w<3>(r)=vector_traits<A>::template r<3>(a)*b;
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_mul_scalar_defined;
+
+ template <>
+ struct
+ vector_mul_scalar_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_neq_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_neq_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_NEQ_VECTOR_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_NEQ_VECTOR_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_neq_vector_2.hpp>
+#include <boost/la/custom/vector_neq_vector_3.hpp>
+#include <boost/la/custom/vector_neq_vector_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_neq_vector_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_neq_vector_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_NEQ_VECTOR_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_NEQ_VECTOR_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==2 && vector_traits<B>::dim==2,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(vector_traits<A>::template r<0>(a)==vector_traits<B>::template r<0>(b)) ||
+ !(vector_traits<A>::template r<1>(a)==vector_traits<B>::template r<1>(b));
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_neq_vector_defined;
+
+ template <>
+ struct
+ vector_neq_vector_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_neq_vector_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_neq_vector_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_NEQ_VECTOR_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_NEQ_VECTOR_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==3 && vector_traits<B>::dim==3,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(vector_traits<A>::template r<0>(a)==vector_traits<B>::template r<0>(b)) ||
+ !(vector_traits<A>::template r<1>(a)==vector_traits<B>::template r<1>(b)) ||
+ !(vector_traits<A>::template r<2>(a)==vector_traits<B>::template r<2>(b));
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_neq_vector_defined;
+
+ template <>
+ struct
+ vector_neq_vector_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_neq_vector_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_neq_vector_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_NEQ_VECTOR_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_NEQ_VECTOR_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==4 && vector_traits<B>::dim==4,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ return
+ !(vector_traits<A>::template r<0>(a)==vector_traits<B>::template r<0>(b)) ||
+ !(vector_traits<A>::template r<1>(a)==vector_traits<B>::template r<1>(b)) ||
+ !(vector_traits<A>::template r<2>(a)==vector_traits<B>::template r<2>(b)) ||
+ !(vector_traits<A>::template r<3>(a)==vector_traits<B>::template r<3>(b));
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_neq_vector_defined;
+
+ template <>
+ struct
+ vector_neq_vector_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_plus_eq_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_plus_eq_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_PLUS_EQ_VECTOR_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_PLUS_EQ_VECTOR_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_plus_eq_vector_2.hpp>
+#include <boost/la/custom/vector_plus_eq_vector_3.hpp>
+#include <boost/la/custom/vector_plus_eq_vector_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_plus_eq_vector_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_plus_eq_vector_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_PLUS_EQ_VECTOR_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_PLUS_EQ_VECTOR_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==2 && vector_traits<B>::dim==2,
+ A &>::type
+ operator+=( A & a, B const & b )
+ {
+ vector_traits<A>::template w<0>(a)+=vector_traits<B>::template r<0>(b);
+ vector_traits<A>::template w<1>(a)+=vector_traits<B>::template r<1>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_plus_eq_vector_defined;
+
+ template <>
+ struct
+ vector_plus_eq_vector_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_plus_eq_vector_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_plus_eq_vector_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_PLUS_EQ_VECTOR_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_PLUS_EQ_VECTOR_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==3 && vector_traits<B>::dim==3,
+ A &>::type
+ operator+=( A & a, B const & b )
+ {
+ vector_traits<A>::template w<0>(a)+=vector_traits<B>::template r<0>(b);
+ vector_traits<A>::template w<1>(a)+=vector_traits<B>::template r<1>(b);
+ vector_traits<A>::template w<2>(a)+=vector_traits<B>::template r<2>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_plus_eq_vector_defined;
+
+ template <>
+ struct
+ vector_plus_eq_vector_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_plus_eq_vector_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_plus_eq_vector_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_PLUS_EQ_VECTOR_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_PLUS_EQ_VECTOR_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ vector_traits<A>::dim==4 && vector_traits<B>::dim==4,
+ A &>::type
+ operator+=( A & a, B const & b )
+ {
+ vector_traits<A>::template w<0>(a)+=vector_traits<B>::template r<0>(b);
+ vector_traits<A>::template w<1>(a)+=vector_traits<B>::template r<1>(b);
+ vector_traits<A>::template w<2>(a)+=vector_traits<B>::template r<2>(b);
+ vector_traits<A>::template w<3>(a)+=vector_traits<B>::template r<3>(b);
+ return a;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_plus_eq_vector_defined;
+
+ template <>
+ struct
+ vector_plus_eq_vector_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_plus_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_plus_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_PLUS_VECTOR_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_PLUS_VECTOR_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/custom/vector_plus_vector_2.hpp>
+#include <boost/la/custom/vector_plus_vector_3.hpp>
+#include <boost/la/custom/vector_plus_vector_4.hpp>
+
+#endif
Added: sandbox/la/boost/la/custom/vector_plus_vector_2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_plus_vector_2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_PLUS_VECTOR_2_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_PLUS_VECTOR_2_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==2 && vector_traits<B>::dim==2,
+ deduce_vector2<A,B,2> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_vector2<A,B,2>::type R;
+ BOOST_STATIC_ASSERT(vector_traits<R>::dim==2);
+ R r;
+ vector_traits<R>::template w<0>(r)=vector_traits<A>::template r<0>(a)+vector_traits<B>::template r<0>(b);
+ vector_traits<R>::template w<1>(r)=vector_traits<A>::template r<1>(a)+vector_traits<B>::template r<1>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_plus_vector_defined;
+
+ template <>
+ struct
+ vector_plus_vector_defined<2>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_plus_vector_3.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_plus_vector_3.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_PLUS_VECTOR_3_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_PLUS_VECTOR_3_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==3 && vector_traits<B>::dim==3,
+ deduce_vector2<A,B,3> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_vector2<A,B,3>::type R;
+ BOOST_STATIC_ASSERT(vector_traits<R>::dim==3);
+ R r;
+ vector_traits<R>::template w<0>(r)=vector_traits<A>::template r<0>(a)+vector_traits<B>::template r<0>(b);
+ vector_traits<R>::template w<1>(r)=vector_traits<A>::template r<1>(a)+vector_traits<B>::template r<1>(b);
+ vector_traits<R>::template w<2>(r)=vector_traits<A>::template r<2>(a)+vector_traits<B>::template r<2>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_plus_vector_defined;
+
+ template <>
+ struct
+ vector_plus_vector_defined<3>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/custom/vector_plus_vector_4.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/custom/vector_plus_vector_4.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+//Copyright (c) 2009 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_LA_CUSTOM_VECTOR_PLUS_VECTOR_4_HPP_INCLUDED
+#define BOOST_LA_CUSTOM_VECTOR_PLUS_VECTOR_4_HPP_INCLUDED
+
+//This file was generated by a program. Do not edit manually.
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ vector_traits<A>::dim==4 && vector_traits<B>::dim==4,
+ deduce_vector2<A,B,4> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_vector2<A,B,4>::type R;
+ BOOST_STATIC_ASSERT(vector_traits<R>::dim==4);
+ R r;
+ vector_traits<R>::template w<0>(r)=vector_traits<A>::template r<0>(a)+vector_traits<B>::template r<0>(b);
+ vector_traits<R>::template w<1>(r)=vector_traits<A>::template r<1>(a)+vector_traits<B>::template r<1>(b);
+ vector_traits<R>::template w<2>(r)=vector_traits<A>::template r<2>(a)+vector_traits<B>::template r<2>(b);
+ vector_traits<R>::template w<3>(r)=vector_traits<A>::template r<3>(a)+vector_traits<B>::template r<3>(b);
+ return r;
+ }
+
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct vector_plus_vector_defined;
+
+ template <>
+ struct
+ vector_plus_vector_defined<4>
+ {
+ static bool const value=true;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/deduce_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/deduce_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,85 @@
+//Copyright (c) 2008-2009 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 UUID_9B266FF0B03911DE88B2247D55D89593
+#define UUID_9B266FF0B03911DE88B2247D55D89593
+
+#include <boost/la/mat_traits.hpp>
+#include <boost/la/deduce_scalar.hpp>
+#include <boost/la/scalar.hpp>
+#include <boost/la/matrix_assign.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class M,class S,int R,int C,
+ class MS=typename matrix_traits<M>::scalar_type,
+ int MR=matrix_traits<M>::rows,
+ int MC=matrix_traits<M>::cols>
+ struct
+ deduce_matrix_default
+ {
+ typedef mat<S,R,C> type;
+ };
+
+ template <class M,class S,int R,int C>
+ struct
+ deduce_matrix_default<M,S,R,C,S,R,C>
+ {
+ typedef M type;
+ };
+ }
+
+ template <class Matrix,int Rows=matrix_traits<Matrix>::rows,int Cols=matrix_traits<Matrix>::cols,class Scalar=typename matrix_traits<Matrix>::scalar_type>
+ struct
+ deduce_matrix
+ {
+ typedef typename la_detail::deduce_matrix_default<Matrix,Scalar,Rows,Cols>::type type;
+ };
+
+ namespace
+ la_detail
+ {
+ template <class A,class B,int R,int C,
+ bool VA=is_matrix<A>::value,
+ bool VB=is_matrix<B>::value,
+ int AR=matrix_traits<A>::rows,
+ int AC=matrix_traits<A>::cols,
+ int BR=matrix_traits<B>::rows,
+ int BC=matrix_traits<B>::cols>
+ struct
+ deduce_matrix2_default
+ {
+ typedef mat<
+ typename deduce_scalar<
+ typename scalar<A>::type,
+ typename scalar<B>::type>::type,
+ R,C> type;
+ };
+
+ template <class M,int R,int C>
+ struct
+ deduce_matrix2_default<M,M,R,C,true,true,R,C,R,C>
+ {
+ typedef M type;
+ };
+ };
+
+ template <class A,class B,int R,int C>
+ struct
+ deduce_matrix2
+ {
+ typedef typename la_detail::deduce_matrix2_default<A,B,R,C>::type type;
+ };
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/deduce_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/deduce_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,129 @@
+//Copyright (c) 2008-2009 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 UUID_5887E7ECB07911DEB7A974A655D89593
+#define UUID_5887E7ECB07911DEB7A974A655D89593
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ deduce_scalar_detail
+ {
+ template <class A,class B> struct deduce_scalar_impl { };
+
+ template <class T>
+ struct
+ deduce_scalar_impl<T,T>
+ {
+ typedef T type;
+ };
+
+ template <> struct deduce_scalar_impl<signed char,unsigned char> { typedef unsigned char type; };
+ template <> struct deduce_scalar_impl<signed char,unsigned short> { typedef unsigned short type; };
+ template <> struct deduce_scalar_impl<signed char,unsigned int> { typedef unsigned int type; };
+ template <> struct deduce_scalar_impl<signed char,unsigned long> { typedef unsigned long type; };
+ template <> struct deduce_scalar_impl<signed char,signed short> { typedef signed short type; };
+ template <> struct deduce_scalar_impl<signed char,signed int> { typedef signed int type; };
+ template <> struct deduce_scalar_impl<signed char,signed long> { typedef signed long type; };
+ template <> struct deduce_scalar_impl<signed char,float> { typedef float type; };
+ template <> struct deduce_scalar_impl<signed char,double> { typedef double type; };
+ template <> struct deduce_scalar_impl<unsigned char,unsigned short> { typedef unsigned short type; };
+ template <> struct deduce_scalar_impl<unsigned char,unsigned int> { typedef unsigned int type; };
+ template <> struct deduce_scalar_impl<unsigned char,unsigned long> { typedef unsigned long type; };
+ template <> struct deduce_scalar_impl<unsigned char,signed short> { typedef signed short type; };
+ template <> struct deduce_scalar_impl<unsigned char,signed int> { typedef signed int type; };
+ template <> struct deduce_scalar_impl<unsigned char,signed long> { typedef signed long type; };
+ template <> struct deduce_scalar_impl<unsigned char,float> { typedef float type; };
+ template <> struct deduce_scalar_impl<unsigned char,double> { typedef double type; };
+ template <> struct deduce_scalar_impl<signed short,unsigned short> { typedef unsigned short type; };
+ template <> struct deduce_scalar_impl<signed short,unsigned int> { typedef unsigned int type; };
+ template <> struct deduce_scalar_impl<signed short,unsigned long> { typedef unsigned long type; };
+ template <> struct deduce_scalar_impl<signed short,signed int> { typedef signed int type; };
+ template <> struct deduce_scalar_impl<signed short,signed long> { typedef signed long type; };
+ template <> struct deduce_scalar_impl<signed short,float> { typedef float type; };
+ template <> struct deduce_scalar_impl<signed short,double> { typedef double type; };
+ template <> struct deduce_scalar_impl<unsigned short,unsigned int> { typedef unsigned int type; };
+ template <> struct deduce_scalar_impl<unsigned short,unsigned long> { typedef unsigned long type; };
+ template <> struct deduce_scalar_impl<unsigned short,signed int> { typedef signed int type; };
+ template <> struct deduce_scalar_impl<unsigned short,signed long> { typedef signed long type; };
+ template <> struct deduce_scalar_impl<unsigned short,float> { typedef float type; };
+ template <> struct deduce_scalar_impl<unsigned short,double> { typedef double type; };
+ template <> struct deduce_scalar_impl<signed int,unsigned int> { typedef unsigned int type; };
+ template <> struct deduce_scalar_impl<signed int,unsigned long> { typedef unsigned long type; };
+ template <> struct deduce_scalar_impl<signed int,signed long> { typedef signed long type; };
+ template <> struct deduce_scalar_impl<signed int,float> { typedef float type; };
+ template <> struct deduce_scalar_impl<signed int,double> { typedef double type; };
+ template <> struct deduce_scalar_impl<unsigned int,unsigned long> { typedef unsigned long type; };
+ template <> struct deduce_scalar_impl<unsigned int,signed long> { typedef signed long type; };
+ template <> struct deduce_scalar_impl<unsigned int,float> { typedef float type; };
+ template <> struct deduce_scalar_impl<unsigned int,double> { typedef double type; };
+ template <> struct deduce_scalar_impl<signed long,unsigned long> { typedef unsigned long type; };
+ template <> struct deduce_scalar_impl<signed long,float> { typedef float type; };
+ template <> struct deduce_scalar_impl<signed long,double> { typedef double type; };
+ template <> struct deduce_scalar_impl<unsigned long,float> { typedef float type; };
+ template <> struct deduce_scalar_impl<unsigned long,double> { typedef double type; };
+ template <> struct deduce_scalar_impl<float,double> { typedef double type; };
+
+ template <> struct deduce_scalar_impl<unsigned char,signed char> { typedef unsigned char type; };
+ template <> struct deduce_scalar_impl<unsigned short,signed char> { typedef unsigned short type; };
+ template <> struct deduce_scalar_impl<unsigned int,signed char> { typedef unsigned int type; };
+ template <> struct deduce_scalar_impl<unsigned long,signed char> { typedef unsigned long type; };
+ template <> struct deduce_scalar_impl<signed short,signed char> { typedef signed short type; };
+ template <> struct deduce_scalar_impl<signed int,signed char> { typedef signed int type; };
+ template <> struct deduce_scalar_impl<signed long,signed char> { typedef signed long type; };
+ template <> struct deduce_scalar_impl<float,signed char> { typedef float type; };
+ template <> struct deduce_scalar_impl<double,signed char> { typedef double type; };
+ template <> struct deduce_scalar_impl<unsigned short,unsigned char> { typedef unsigned short type; };
+ template <> struct deduce_scalar_impl<unsigned int,unsigned char> { typedef unsigned int type; };
+ template <> struct deduce_scalar_impl<unsigned long,unsigned char> { typedef unsigned long type; };
+ template <> struct deduce_scalar_impl<signed short,unsigned char> { typedef signed short type; };
+ template <> struct deduce_scalar_impl<signed int,unsigned char> { typedef signed int type; };
+ template <> struct deduce_scalar_impl<signed long,unsigned char> { typedef signed long type; };
+ template <> struct deduce_scalar_impl<float,unsigned char> { typedef float type; };
+ template <> struct deduce_scalar_impl<double,unsigned char> { typedef double type; };
+ template <> struct deduce_scalar_impl<unsigned short,signed short> { typedef unsigned short type; };
+ template <> struct deduce_scalar_impl<unsigned int,signed short> { typedef unsigned int type; };
+ template <> struct deduce_scalar_impl<unsigned long,signed short> { typedef unsigned long type; };
+ template <> struct deduce_scalar_impl<signed int,signed short> { typedef signed int type; };
+ template <> struct deduce_scalar_impl<signed long,signed short> { typedef signed long type; };
+ template <> struct deduce_scalar_impl<float,signed short> { typedef float type; };
+ template <> struct deduce_scalar_impl<double,signed short> { typedef double type; };
+ template <> struct deduce_scalar_impl<unsigned int,unsigned short> { typedef unsigned int type; };
+ template <> struct deduce_scalar_impl<unsigned long,unsigned short> { typedef unsigned long type; };
+ template <> struct deduce_scalar_impl<signed int,unsigned short> { typedef signed int type; };
+ template <> struct deduce_scalar_impl<signed long,unsigned short> { typedef signed long type; };
+ template <> struct deduce_scalar_impl<float,unsigned short> { typedef float type; };
+ template <> struct deduce_scalar_impl<double,unsigned short> { typedef double type; };
+ template <> struct deduce_scalar_impl<unsigned int,signed int> { typedef unsigned int type; };
+ template <> struct deduce_scalar_impl<unsigned long,signed int> { typedef unsigned long type; };
+ template <> struct deduce_scalar_impl<signed long,signed int> { typedef signed long type; };
+ template <> struct deduce_scalar_impl<float,signed int> { typedef float type; };
+ template <> struct deduce_scalar_impl<double,signed int> { typedef double type; };
+ template <> struct deduce_scalar_impl<unsigned long,unsigned int> { typedef unsigned long type; };
+ template <> struct deduce_scalar_impl<signed long,unsigned int> { typedef signed long type; };
+ template <> struct deduce_scalar_impl<float,unsigned int> { typedef float type; };
+ template <> struct deduce_scalar_impl<double,unsigned int> { typedef double type; };
+ template <> struct deduce_scalar_impl<unsigned long,signed long> { typedef unsigned long type; };
+ template <> struct deduce_scalar_impl<float,signed long> { typedef float type; };
+ template <> struct deduce_scalar_impl<double,signed long> { typedef double type; };
+ template <> struct deduce_scalar_impl<float,unsigned long> { typedef float type; };
+ template <> struct deduce_scalar_impl<double,unsigned long> { typedef double type; };
+ template <> struct deduce_scalar_impl<double,float> { typedef double type; };
+ }
+
+ template <class A,class B>
+ struct
+ deduce_scalar
+ {
+ typedef typename deduce_scalar_detail::deduce_scalar_impl<A,B>::type type;
+ };
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/deduce_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/deduce_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,82 @@
+//Copyright (c) 2008-2009 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 UUID_C66C1B82B03A11DE946F878455D89593
+#define UUID_C66C1B82B03A11DE946F878455D89593
+
+#include <boost/la/vec_traits.hpp>
+#include <boost/la/deduce_scalar.hpp>
+#include <boost/la/scalar.hpp>
+#include <boost/la/vector_assign.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class V,class S,int D,
+ class VS=typename vector_traits<V>::scalar_type,
+ int VD=vector_traits<V>::dim>
+ struct
+ deduce_vector_default
+ {
+ typedef vec<S,D> type;
+ };
+
+ template <class V,class S,int D>
+ struct
+ deduce_vector_default<V,S,D,S,D>
+ {
+ typedef V type;
+ };
+ }
+
+ template <class Vector,int Dim=vector_traits<Vector>::dim,class Scalar=typename vector_traits<Vector>::scalar_type>
+ struct
+ deduce_vector
+ {
+ typedef typename la_detail::deduce_vector_default<Vector,Scalar,Dim>::type type;
+ };
+
+ namespace
+ la_detail
+ {
+ template <class A,class B,int D,
+ bool VA=is_vector<A>::value,
+ bool VB=is_vector<B>::value,
+ int AD=vector_traits<A>::dim,
+ int BD=vector_traits<B>::dim>
+ struct
+ deduce_vector2_default
+ {
+ typedef vec<
+ typename deduce_scalar<
+ typename scalar<A>::type,
+ typename scalar<B>::type>::type,
+ D> type;
+ };
+
+ template <class V,int D>
+ struct
+ deduce_vector2_default<V,V,D,true,true,D,D>
+ {
+ typedef V type;
+ };
+ };
+
+ template <class A,class B,int D>
+ struct
+ deduce_vector2
+ {
+ typedef typename la_detail::deduce_vector2_default<A,B,D>::type type;
+ };
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/delc.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/delc.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,129 @@
+//Copyright (c) 2008-2009 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 UUID_65C5A806B95511DE99A226A756D89593
+#define UUID_65C5A806B95511DE99A226A756D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/la/detail/bind_oper.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int Col>
+ struct delc_tag { };
+
+ template <int Col,class OriginalMatrix>
+ class
+ delc_
+ {
+ delc_( delc_ const & );
+ delc_ & operator=( delc_ const & );
+ ~delc_();
+
+ public:
+
+ template <class T>
+ BOOST_LA_INLINE_TRIVIAL
+ delc_ &
+ operator=( T const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <class T,int Col>
+ struct
+ pipe_return<T,delc_tag<Col> >
+ {
+ typedef delc_<Col,T> type;
+ };
+ }
+
+ template <int J,class OriginalMatrix>
+ struct
+ matrix_traits< la_detail::delc_<J,OriginalMatrix> >
+ {
+ typedef la_detail::delc_<J,OriginalMatrix> this_matrix;
+ typedef typename matrix_traits<OriginalMatrix>::scalar_type scalar_type;
+ static int const rows=matrix_traits<OriginalMatrix>::rows;
+ static int const cols=matrix_traits<OriginalMatrix>::cols-1;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<cols);
+ return matrix_traits<OriginalMatrix>::template r<Row,Col+(Col>=J)>(reinterpret_cast<OriginalMatrix const &>(x));
+ }
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_matrix & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<cols);
+ return matrix_traits<OriginalMatrix>::template w<Row,Col+(Col>=J)>(reinterpret_cast<OriginalMatrix &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int row, int col, this_matrix const & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return matrix_traits<OriginalMatrix>::ir(row,col+(col>=J),reinterpret_cast<OriginalMatrix const &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int row, int col, this_matrix & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return matrix_traits<OriginalMatrix>::iw(row,col+(col>=J),reinterpret_cast<OriginalMatrix &>(x));
+ }
+ };
+
+ template <int Col>
+ la_detail::delc_tag<Col> delc() { return la_detail::delc_tag<Col>(); }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/delr.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/delr.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,129 @@
+//Copyright (c) 2008-2009 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 UUID_15C6C808B95511DE840057A656D89593
+#define UUID_15C6C808B95511DE840057A656D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/la/detail/bind_oper.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int Row>
+ struct delr_tag { };
+
+ template <int Row,class OriginalMatrix>
+ class
+ delr_
+ {
+ delr_( delr_ const & );
+ delr_ & operator=( delr_ const & );
+ ~delr_();
+
+ public:
+
+ template <class T>
+ BOOST_LA_INLINE_TRIVIAL
+ delr_ &
+ operator=( T const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <class T,int Row>
+ struct
+ pipe_return<T,delr_tag<Row> >
+ {
+ typedef delr_<Row,T> type;
+ };
+ }
+
+ template <int I,class OriginalMatrix>
+ struct
+ matrix_traits< la_detail::delr_<I,OriginalMatrix> >
+ {
+ typedef la_detail::delr_<I,OriginalMatrix> this_matrix;
+ typedef typename matrix_traits<OriginalMatrix>::scalar_type scalar_type;
+ static int const rows=matrix_traits<OriginalMatrix>::rows-1;
+ static int const cols=matrix_traits<OriginalMatrix>::cols;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<cols);
+ return matrix_traits<OriginalMatrix>::template r<Row+(Row>=I),Col>(reinterpret_cast<OriginalMatrix const &>(x));
+ }
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_matrix & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<cols);
+ return matrix_traits<OriginalMatrix>::template w<Row+(Row>=I),Col>(reinterpret_cast<OriginalMatrix &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int row, int col, this_matrix const & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return matrix_traits<OriginalMatrix>::ir(row+(row>=I),col,reinterpret_cast<OriginalMatrix const &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int row, int col, this_matrix & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return matrix_traits<OriginalMatrix>::iw(row+(row>=I),col,reinterpret_cast<OriginalMatrix &>(x));
+ }
+ };
+
+ template <int Row>
+ la_detail::delr_tag<Row> delr() { return la_detail::delr_tag<Row>(); }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/delrc.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/delrc.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,129 @@
+//Copyright (c) 2008-2009 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 UUID_20D98340A3EB11DEB2180CD156D89593
+#define UUID_20D98340A3EB11DEB2180CD156D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/la/detail/bind_oper.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int Row,int Col>
+ struct delrc_tag { };
+
+ template <int Row,int Col,class OriginalMatrix>
+ class
+ delrc_
+ {
+ delrc_( delrc_ const & );
+ delrc_ & operator=( delrc_ const & );
+ ~delrc_();
+
+ public:
+
+ template <class T>
+ BOOST_LA_INLINE_TRIVIAL
+ delrc_ &
+ operator=( T const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <class T,int Row,int Col>
+ struct
+ pipe_return<T,delrc_tag<Row,Col> >
+ {
+ typedef delrc_<Row,Col,T> type;
+ };
+ }
+
+ template <int I,int J,class OriginalMatrix>
+ struct
+ matrix_traits< la_detail::delrc_<I,J,OriginalMatrix> >
+ {
+ typedef la_detail::delrc_<I,J,OriginalMatrix> this_matrix;
+ typedef typename matrix_traits<OriginalMatrix>::scalar_type scalar_type;
+ static int const rows=matrix_traits<OriginalMatrix>::rows-1;
+ static int const cols=matrix_traits<OriginalMatrix>::cols-1;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<cols);
+ return matrix_traits<OriginalMatrix>::template r<Row+(Row>=I),Col+(Col>=J)>(reinterpret_cast<OriginalMatrix const &>(x));
+ }
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_matrix & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<cols);
+ return matrix_traits<OriginalMatrix>::template w<Row+(Row>=I),Col+(Col>=J)>(reinterpret_cast<OriginalMatrix &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int row, int col, this_matrix const & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return matrix_traits<OriginalMatrix>::ir(row+(row>=I),col+(col>=J),reinterpret_cast<OriginalMatrix const &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int row, int col, this_matrix & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return matrix_traits<OriginalMatrix>::iw(row+(row>=I),col+(col>=J),reinterpret_cast<OriginalMatrix &>(x));
+ }
+ };
+
+ template <int Row,int Col>
+ la_detail::delrc_tag<Row,Col> delrc() { return la_detail::delrc_tag<Row,Col>(); }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/detail/bind_oper.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/detail/bind_oper.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+//Copyright (c) 2008-2009 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 UUID_4066AB9EA3E011DE8489536C55D89593
+#define UUID_4066AB9EA3E011DE8489536C55D89593
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class T,class Tag>
+ struct
+ pipe_return
+ {
+ };
+ }
+
+ template <class T,class Tag>
+ typename la_detail::pipe_return<T,Tag>::type const &
+ operator|( T const & a, Tag (*)() )
+ {
+ return reinterpret_cast<typename la_detail::pipe_return<T,Tag>::type const &>(a);
+ }
+
+ template <class T,class Tag>
+ typename la_detail::pipe_return<T,Tag>::type const &
+ operator|( T const & a, Tag )
+ {
+ return reinterpret_cast<typename la_detail::pipe_return<T,Tag>::type const &>(a);
+ }
+
+ template <class T,class Tag>
+ typename la_detail::pipe_return<T,Tag>::type &
+ operator|( T & a, Tag (*)() )
+ {
+ return reinterpret_cast<typename la_detail::pipe_return<T,Tag>::type &>(a);
+ }
+
+ template <class T,class Tag>
+ typename la_detail::pipe_return<T,Tag>::type &
+ operator|( T & a, Tag )
+ {
+ return reinterpret_cast<typename la_detail::pipe_return<T,Tag>::type &>(a);
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/detail/cofactor_impl.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/detail/cofactor_impl.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,64 @@
+//Copyright (c) 2008-2009 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 UUID_995547FAAE0E11DE8CF511E755D89593
+#define UUID_995547FAAE0E11DE8CF511E755D89593
+
+#include <boost/la/detail/determinant_impl.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename deduce_matrix<A>::type
+ cofactor_impl( A const & a )
+ {
+ BOOST_STATIC_ASSERT(matrix_traits<A>::rows==matrix_traits<A>::cols);
+ int const N=matrix_traits<A>::rows;
+ typedef typename matrix_traits<A>::scalar_type T;
+ T c[N-1][N-1];
+ typedef typename deduce_matrix<A>::type R;
+ R b;
+ for( int j=0; j!=N; ++j )
+ {
+ for( int i=0; i!=N; ++i )
+ {
+ int i1=0;
+ for( int ii=0; ii!=N; ++ii )
+ {
+ if( ii==i )
+ continue;
+ int j1=0;
+ for( int jj=0; jj!=N; ++jj )
+ {
+ if( jj==j )
+ continue;
+ c[i1][j1] = matrix_traits<A>::ir(ii,jj,a);
+ ++j1;
+ }
+ ++i1;
+ }
+ T det = determinant_impl(c);
+ if( (i+j)&1 )
+ det=-det;
+ matrix_traits<R>::iw(i,j,b) = det;
+ }
+ }
+ return b;
+ }
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/detail/determinant_impl.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/detail/determinant_impl.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,79 @@
+//Copyright (c) 2008-2009 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 UUID_3DCF6B90AE0E11DE9A315BE555D89593
+#define UUID_3DCF6B90AE0E11DE9A315BE555D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/array_matrix_traits.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int N>
+ struct
+ det_size
+ {
+ };
+
+ template <class M>
+ BOOST_LA_INLINE_TRIVIAL
+ typename matrix_traits<M>::scalar_type
+ determinant_impl_( M const & a, det_size<2> )
+ {
+ return
+ matrix_traits<M>::template r<0,0>(a) * matrix_traits<M>::template r<1,1>(a) -
+ matrix_traits<M>::template r<1,0>(a) * matrix_traits<M>::template r<0,1>(a);
+ }
+
+ template <class M,int N>
+ BOOST_LA_INLINE_RECURSION
+ typename matrix_traits<M>::scalar_type
+ determinant_impl_( M const & a, det_size<N> )
+ {
+ typedef typename matrix_traits<M>::scalar_type T;
+ T m[N-1][N-1];
+ T det=T(0);
+ for( int j1=0; j1!=N; ++j1 )
+ {
+ for( int i=1; i!=N; ++i )
+ {
+ int j2 = 0;
+ for( int j=0; j!=N; ++j )
+ {
+ if( j==j1 )
+ continue;
+ m[i-1][j2] = matrix_traits<M>::ir(i,j,a);
+ ++j2;
+ }
+ }
+ T d=determinant_impl_(m,det_size<N-1>());
+ if( j1&1 )
+ d=-d;
+ det += matrix_traits<M>::ir(0,j1,a) * d;
+ }
+ return det;
+ }
+
+ template <class M>
+ BOOST_LA_INLINE_TRIVIAL
+ typename matrix_traits<M>::scalar_type
+ determinant_impl( M const & a )
+ {
+ BOOST_STATIC_ASSERT(matrix_traits<M>::rows==matrix_traits<M>::cols);
+ return determinant_impl_(a,det_size<matrix_traits<M>::rows>());
+ }
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/detail/remove_const.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/detail/remove_const.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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 UUID_4E340430AE4C11DEBA56149755D89593
+#define UUID_4E340430AE4C11DEBA56149755D89593
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class T>
+ struct
+ remove_const
+ {
+ typedef T type;
+ };
+
+ template <class T>
+ struct
+ remove_const<T const>
+ {
+ typedef T type;
+ };
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/detail/swizzle_traits.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/detail/swizzle_traits.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,318 @@
+//Copyright (c) 2008-2009 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 UUID_E831FAD6B38F11DE8CECBF0D56D89593
+#define UUID_E831FAD6B38F11DE8CECBF0D56D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/la/scalar_traits.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ struct _x_;
+ struct _y_;
+ struct _z_;
+ struct _w_;
+ struct _b_;
+ struct _g_;
+ struct _r_;
+ struct _a_;
+ struct _0_;
+ struct _1_;
+
+ namespace
+ la_detail
+ {
+ template <int A,class Next=void> struct swizzle_idx { static int const value=A; typedef Next next; };
+
+ template <class Tag> struct swizzle_tag;
+ template <> struct swizzle_tag<_x_> { static int const value=0; };
+ template <> struct swizzle_tag<_y_> { static int const value=1; };
+ template <> struct swizzle_tag<_z_> { static int const value=2; };
+ template <> struct swizzle_tag<_w_> { static int const value=3; };
+ template <> struct swizzle_tag<_b_> { static int const value=0; };
+ template <> struct swizzle_tag<_g_> { static int const value=1; };
+ template <> struct swizzle_tag<_r_> { static int const value=2; };
+ template <> struct swizzle_tag<_a_> { static int const value=3; };
+ template <> struct swizzle_tag<_0_> { static int const value=-1; };
+ template <> struct swizzle_tag<_1_> { static int const value=-2; };
+
+ template <class S,int V>
+ struct
+ const_value
+ {
+ static
+ BOOST_LA_INLINE_TRIVIAL
+ S
+ value()
+ {
+ BOOST_ASSERT(0);
+ return S();
+ }
+ };
+
+ template <class S>
+ struct
+ const_value<S,swizzle_tag<_0_>::value>
+ {
+ static
+ BOOST_LA_INLINE_TRIVIAL
+ S
+ value()
+ {
+ return scalar_traits<S>::zero();
+ }
+ };
+
+ template <class S>
+ struct
+ const_value<S,swizzle_tag<_1_>::value>
+ {
+ static
+ BOOST_LA_INLINE_TRIVIAL
+ S
+ value()
+ {
+ return scalar_traits<S>::one();
+ }
+ };
+
+ template <int Index,bool Neg=(Index<0)>
+ struct neg_zero;
+
+ template <int Index>
+ struct
+ neg_zero<Index,true>
+ {
+ static int const value=0;
+ };
+
+ template <int Index>
+ struct
+ neg_zero<Index,false>
+ {
+ static int const value=Index;
+ };
+
+ template <class SwizzleList,int Index,int C=0>
+ struct
+ swizzle
+ {
+ static int const value=swizzle<typename SwizzleList::next,Index,C+1>::value;
+ };
+
+ template <class SwizzleList,int Match>
+ struct
+ swizzle<SwizzleList,Match,Match>
+ {
+ static int const value=SwizzleList::value;
+ };
+
+ template <int Index,int C>
+ struct swizzle<void,Index,C>;
+
+ template <class SwizzleList,int C=0>
+ struct
+ swizzle_list_length
+ {
+ static int const value=swizzle_list_length<typename SwizzleList::next,C+1>::value;
+ };
+
+ template <int C>
+ struct
+ swizzle_list_length<void,C>
+ {
+ static int const value=C;
+ };
+
+
+ template <class SwizzleList,int D>
+ struct
+ validate_swizzle_list
+ {
+ static bool const value =
+ (SwizzleList::value<D) &&
+ validate_swizzle_list<typename SwizzleList::next,D>::value;
+ };
+
+ template <int D>
+ struct
+ validate_swizzle_list<void,D>
+ {
+ static bool const value=true;
+ };
+
+ template <class OriginalType,class SwizzleList>
+ class
+ swizzle_
+ {
+ swizzle_( swizzle_ const & );
+ swizzle_ & operator=( swizzle_ const & );
+ ~swizzle_();
+
+ BOOST_STATIC_ASSERT((validate_swizzle_list<SwizzleList,vector_traits<OriginalType>::dim>::value));
+
+ public:
+
+ template <class T>
+ BOOST_LA_INLINE_TRIVIAL
+ swizzle_ &
+ operator=( T const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+ }
+
+ template <class Vector>
+ struct vector_traits;
+
+ template <class OriginalVector,class SwizzleList>
+ struct
+ vector_traits< la_detail::swizzle_<OriginalVector,SwizzleList> >
+ {
+ typedef la_detail::swizzle_<OriginalVector,SwizzleList> this_vector;
+ typedef typename vector_traits<OriginalVector>::scalar_type scalar_type;
+ static int const dim=la_detail::swizzle_list_length<SwizzleList>::value;
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_vector const & x )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ int const v=la_detail::swizzle<SwizzleList,I>::value;
+ BOOST_STATIC_ASSERT(v<vector_traits<OriginalVector>::dim);
+ return v>=0?
+ vector_traits<OriginalVector>::template r<la_detail::neg_zero<v>::value>(reinterpret_cast<OriginalVector const &>(x)) :
+ la_detail::const_value<scalar_type,v>::value();
+ }
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_vector & x )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ int const v=la_detail::swizzle<SwizzleList,I>::value;
+ BOOST_STATIC_ASSERT(v>=0);
+ BOOST_STATIC_ASSERT(v<vector_traits<OriginalVector>::dim);
+ return vector_traits<OriginalVector>::template w<v>(reinterpret_cast<OriginalVector &>(x));
+ }
+ };
+
+ template <class OriginalVector,int A,class Next>
+ BOOST_LA_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vector<OriginalVector>::value,
+ la_detail::swizzle_<OriginalVector,la_detail::swizzle_idx<A,Next> > const &>::type
+ operator|( OriginalVector const & a, la_detail::swizzle_idx<A,Next> )
+ {
+ return reinterpret_cast<la_detail::swizzle_<OriginalVector,la_detail::swizzle_idx<A,Next> > const &>(a);
+ }
+
+ template <class OriginalVector,int A,class Next>
+ BOOST_LA_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vector<OriginalVector>::value,
+ la_detail::swizzle_<OriginalVector,la_detail::swizzle_idx<A,Next> > &>::type
+ operator|( OriginalVector & a, la_detail::swizzle_idx<A,Next> )
+ {
+ return reinterpret_cast<la_detail::swizzle_<OriginalVector,la_detail::swizzle_idx<A,Next> > &>(a);
+ }
+
+ template <class OriginalVector,int A>
+ BOOST_LA_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vector<OriginalVector>::value,
+ typename vector_traits<OriginalVector>::scalar_type>::type
+ operator|( OriginalVector const & a, la_detail::swizzle_idx<A> )
+ {
+ BOOST_STATIC_ASSERT(A>=0);
+ BOOST_STATIC_ASSERT(A<vector_traits<OriginalVector>::dim);
+ return vector_traits<OriginalVector>::template r<A>(a);
+ }
+
+ template <class OriginalVector,int A>
+ BOOST_LA_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vector<OriginalVector>::value,
+ typename vector_traits<OriginalVector>::scalar_type &>::type
+ operator|( OriginalVector & a, la_detail::swizzle_idx<A> )
+ {
+ BOOST_STATIC_ASSERT(A>=0);
+ BOOST_STATIC_ASSERT(A<vector_traits<OriginalVector>::dim);
+ return vector_traits<OriginalVector>::template w<A>(a);
+ }
+
+ template <class OriginalVector,int A,class Next>
+ BOOST_LA_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vector<OriginalVector>::value,
+ la_detail::swizzle_<OriginalVector,la_detail::swizzle_idx<A,Next> > const &>::type
+ operator|( OriginalVector const & a, la_detail::swizzle_idx<A,Next> (*)() )
+ {
+ return reinterpret_cast<la_detail::swizzle_<OriginalVector,la_detail::swizzle_idx<A,Next> > const &>(a);
+ }
+
+ template <class OriginalVector,int A,class Next>
+ BOOST_LA_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vector<OriginalVector>::value,
+ la_detail::swizzle_<OriginalVector,la_detail::swizzle_idx<A,Next> > &>::type
+ operator|( OriginalVector & a, la_detail::swizzle_idx<A,Next> (*)() )
+ {
+ return reinterpret_cast<la_detail::swizzle_<OriginalVector,la_detail::swizzle_idx<A,Next> > &>(a);
+ }
+
+ template <class OriginalVector,int A>
+ BOOST_LA_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vector<OriginalVector>::value,
+ typename vector_traits<OriginalVector>::scalar_type>::type
+ operator|( OriginalVector const & a, la_detail::swizzle_idx<A> (*)() )
+ {
+ BOOST_STATIC_ASSERT(A>=0);
+ BOOST_STATIC_ASSERT(A<vector_traits<OriginalVector>::dim);
+ return vector_traits<OriginalVector>::template r<A>(a);
+ }
+
+ template <class OriginalVector,int A>
+ BOOST_LA_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vector<OriginalVector>::value,
+ typename vector_traits<OriginalVector>::scalar_type &>::type
+ operator|( OriginalVector & a, la_detail::swizzle_idx<A> (*)() )
+ {
+ BOOST_STATIC_ASSERT(A>=0);
+ BOOST_STATIC_ASSERT(A<vector_traits<OriginalVector>::dim);
+ return vector_traits<OriginalVector>::template w<A>(a);
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/diag.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/diag.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,146 @@
+//Copyright (c) 2008-2009 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 UUID_77C453ACA26911DEAFD066F255D89593
+#define UUID_77C453ACA26911DEAFD066F255D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/la/detail/bind_oper.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ struct diag_tag { };
+
+ template <class OriginalMatrix>
+ class
+ diag_
+ {
+ diag_( diag_ const & );
+ diag_ & operator=( diag_ const & );
+ ~diag_();
+
+ public:
+
+ template <class T>
+ BOOST_LA_INLINE_TRIVIAL
+ diag_ &
+ operator=( T const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <class T>
+ struct
+ pipe_return<T,diag_tag>
+ {
+ typedef diag_<T> type;
+ };
+
+ template <int X,int Y,bool Which>
+ struct diag_bool_dispatch;
+
+ template <int X,int Y>
+ struct
+ diag_bool_dispatch<X,Y,true>
+ {
+ static int const value=X;
+ };
+
+ template <int X,int Y>
+ struct
+ diag_bool_dispatch<X,Y,false>
+ {
+ static int const value=Y;
+ };
+ }
+
+ template <class Vector>
+ struct vector_traits;
+
+ template <class OriginalMatrix>
+ struct
+ vector_traits< la_detail::diag_<OriginalMatrix> >
+ {
+ typedef la_detail::diag_<OriginalMatrix> this_vector;
+ typedef typename matrix_traits<OriginalMatrix>::scalar_type scalar_type;
+ static int const dim=la_detail::diag_bool_dispatch<
+ matrix_traits<OriginalMatrix>::rows,
+ matrix_traits<OriginalMatrix>::cols,
+ matrix_traits<OriginalMatrix>::rows<=matrix_traits<OriginalMatrix>::cols>::value;
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_vector const & x )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ return matrix_traits<OriginalMatrix>::template r<I,I>(reinterpret_cast<OriginalMatrix const &>(x));
+ }
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_vector & x )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ return matrix_traits<OriginalMatrix>::template w<I,I>(reinterpret_cast<OriginalMatrix &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int i, this_vector const & x )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<dim);
+ return matrix_traits<OriginalMatrix>::ir(i,i,reinterpret_cast<OriginalMatrix const &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int i, this_vector & x )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<dim);
+ return matrix_traits<OriginalMatrix>::iw(i,i,reinterpret_cast<OriginalMatrix &>(x));
+ }
+ };
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::diag_tag
+ diag()
+ {
+ return la_detail::diag_tag();
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/diag_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/diag_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,134 @@
+//Copyright (c) 2008-2009 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 UUID_5E352A40A1C111DE850DE4B056D89593
+#define UUID_5E352A40A1C111DE850DE4B056D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/la/scalar_traits.hpp>
+#include <boost/la/detail/bind_oper.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ struct diag_matrix_tag { };
+
+ template <class OriginalVector>
+ class
+ diag_matrix_
+ {
+ diag_matrix_( diag_matrix_ const & );
+ diag_matrix_ & operator=( diag_matrix_ const & );
+ ~diag_matrix_();
+
+ public:
+
+ template <class T>
+ BOOST_LA_INLINE_TRIVIAL
+ diag_matrix_ &
+ operator=( T const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <class T>
+ struct
+ pipe_return<T,diag_matrix_tag>
+ {
+ typedef diag_matrix_<T> type;
+ };
+ }
+
+ template <class Matrix>
+ struct matrix_traits;
+
+ template <class OriginalVector>
+ struct
+ matrix_traits< la_detail::diag_matrix_<OriginalVector> >
+ {
+ typedef la_detail::diag_matrix_<OriginalVector> this_matrix;
+ typedef typename vector_traits<OriginalVector>::scalar_type scalar_type;
+ static int const rows=vector_traits<OriginalVector>::dim;
+ static int const cols=vector_traits<OriginalVector>::dim;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<cols);
+ return Row==Col?vector_traits<OriginalVector>::template r<Row>(reinterpret_cast<OriginalVector const &>(x)):scalar_traits<scalar_type>::zero();
+ }
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_matrix & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ BOOST_STATIC_ASSERT(Row==Col);
+ return vector_traits<OriginalVector>::template w<Row>(reinterpret_cast<OriginalVector &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int row, int col, this_matrix const & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return row==col?vector_traits<OriginalVector>::ir(row,reinterpret_cast<OriginalVector const &>(x)):scalar_traits<scalar_type>::zero();
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int row, int col, this_matrix & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(row==col);
+ return vector_traits<OriginalVector>::iw(row,reinterpret_cast<OriginalVector &>(x));
+ }
+ };
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::diag_matrix_tag
+ diag_matrix()
+ {
+ return la_detail::diag_matrix_tag();
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/error.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/error.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,36 @@
+//Copyright (c) 2008-2009 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 UUID_92B1247AAE1111DE9655F2FC55D89593
+#define UUID_92B1247AAE1111DE9655F2FC55D89593
+
+#include "boost/exception/exception.hpp"
+#include <exception>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ struct
+ error:
+ virtual boost::exception,
+ virtual std::exception
+ {
+ char const *
+ what() const throw()
+ {
+ return "Boost LA error";
+ }
+
+ ~error() throw()
+ {
+ }
+ };
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/identity_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/identity_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,101 @@
+//Copyright (c) 2008-2009 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 UUID_D6250026A17F11DEA29012BF55D89593
+#define UUID_D6250026A17F11DEA29012BF55D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class T,int Dim>
+ class
+ identity_matrix_
+ {
+ identity_matrix_( identity_matrix_ const & );
+ identity_matrix_ & operator=( identity_matrix_ const & );
+ ~identity_matrix_();
+
+ public:
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+ }
+
+ template <class Matrix>
+ struct matrix_traits;
+
+ template <class T,int Dim>
+ struct
+ matrix_traits< la_detail::identity_matrix_<T,Dim> >
+ {
+ typedef la_detail::identity_matrix_<T,Dim> this_matrix;
+ typedef T scalar_type;
+ static int const rows=Dim;
+ static int const cols=Dim;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_ASSERT(&x==0);
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<Dim);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<Dim);
+ return scalar_type(Row==Col);
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int row, int col, this_matrix const & x )
+ {
+ BOOST_ASSERT(&x==0);
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<Dim);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<Dim);
+ return scalar_type(row==col);
+ }
+ };
+
+ template <class T,int Dim,int R,int C,class S>
+ struct
+ deduce_matrix<la_detail::identity_matrix_<T,Dim>,R,C,S>
+ {
+ typedef mat<S,R,C> type;
+ };
+
+ template <class T,int Dim>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::identity_matrix_<T,Dim> const &
+ identity_matrix()
+ {
+ return *(la_detail::identity_matrix_<T,Dim> const *)0;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/mat.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/mat.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,31 @@
+//Copyright (c) 2008-2009 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 UUID_67E67D68A32F11DEA56FD18556D89593
+#define UUID_67E67D68A32F11DEA56FD18556D89593
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class T,int Rows,int Cols>
+ struct
+ mat
+ {
+ T a[Rows][Cols];
+ template <class R>
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/mat_traits.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/mat_traits.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,85 @@
+//Copyright (c) 2008-2009 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 UUID_9A7B4598AFBD11DE83607A9A55D89593
+#define UUID_9A7B4598AFBD11DE83607A9A55D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/mat.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class Matrix>
+ struct matrix_traits;
+
+ template <class T,int Rows,int Cols>
+ struct
+ matrix_traits< mat<T,Rows,Cols> >
+ {
+ typedef mat<T,Rows,Cols> this_matrix;
+ typedef T scalar_type;
+ static int const rows=Rows;
+ static int const cols=Cols;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<Rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<Cols);
+ return x.a[Row][Col];
+ }
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_matrix & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<Rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<Cols);
+ return x.a[Row][Col];
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int row, int col, this_matrix const & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<Rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<Cols);
+ return x.a[row][col];
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int row, int col, this_matrix & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<Rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<Cols);
+ return x.a[row][col];
+ }
+ };
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/math.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/math.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,86 @@
+//Copyright (c) 2008-2009 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 UUID_5FD6A664ACC811DEAAFF8A8055D89593
+#define UUID_5FD6A664ACC811DEAAFF8A8055D89593
+
+#include <math.h>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class T> T acos( T );
+ template <class T> T asin( T );
+ template <class T> T atan( T );
+ template <class T> T atan2( T, T );
+ template <class T> T cos( T );
+ template <class T> T sin( T );
+ template <class T> T tan( T );
+ template <class T> T cosh( T );
+ template <class T> T sinh( T );
+ template <class T> T tanh( T );
+ template <class T> T exp( T );
+ template <class T> T log( T );
+ template <class T> T log10( T );
+ template <class T> T mod( T , T );
+ template <class T> T pow( T, T );
+ template <class T> T sqrt( T );
+ template <class T> T ceil( T );
+ template <class T> T abs( T );
+ template <class T> T floor( T );
+ template <class T> T mod( T, T );
+ template <class T> T ldexp( T, int );
+ template <class T> T sign( T );
+
+ template <> inline float acos<float>( float x ) { return ::acosf(x); }
+ template <> inline float asin<float>( float x ) { return ::asinf(x); }
+ template <> inline float atan<float>( float x ) { return ::atanf(x); }
+ template <> inline float atan2<float>( float x, float y ) { return ::atan2f(x,y); }
+ template <> inline float cos<float>( float x ) { return ::cosf(x); }
+ template <> inline float sin<float>( float x ) { return ::sinf(x); }
+ template <> inline float tan<float>( float x ) { return ::tanf(x); }
+ template <> inline float cosh<float>( float x ) { return ::coshf(x); }
+ template <> inline float sinh<float>( float x ) { return ::sinhf(x); }
+ template <> inline float tanh<float>( float x ) { return ::tanhf(x); }
+ template <> inline float exp<float>( float x ) { return ::expf(x); }
+ template <> inline float log<float>( float x ) { return ::logf(x); }
+ template <> inline float log10<float>( float x ) { return ::log10f(x); }
+ template <> inline float mod<float>( float x, float y ) { return ::fmodf(x,y); }
+ template <> inline float pow<float>( float x, float y ) { return ::powf(x,y); }
+ template <> inline float sqrt<float>( float x ) { return ::sqrtf(x); }
+ template <> inline float ceil<float>( float x ) { return ::ceilf(x); }
+ template <> inline float abs<float>( float x ) { return ::fabsf(x); }
+ template <> inline float floor<float>( float x ) { return ::floorf(x); }
+ template <> inline float ldexp<float>( float x, int y ) { return ::ldexpf(x,y); }
+ template <> inline float sign<float>( float x ) { return x<0 ? -1.f : +1.f; }
+
+ template <> inline double acos<double>( double x ) { return ::acos(x); }
+ template <> inline double asin<double>( double x ) { return ::asin(x); }
+ template <> inline double atan<double>( double x ) { return ::atan(x); }
+ template <> inline double atan2<double>( double x, double y ) { return ::atan2(x,y); }
+ template <> inline double cos<double>( double x ) { return ::cos(x); }
+ template <> inline double sin<double>( double x ) { return ::sin(x); }
+ template <> inline double tan<double>( double x ) { return ::tan(x); }
+ template <> inline double cosh<double>( double x ) { return ::cosh(x); }
+ template <> inline double sinh<double>( double x ) { return ::sinh(x); }
+ template <> inline double tanh<double>( double x ) { return ::tanh(x); }
+ template <> inline double exp<double>( double x ) { return ::exp(x); }
+ template <> inline double log<double>( double x ) { return ::log(x); }
+ template <> inline double log10<double>( double x ) { return ::log10(x); }
+ template <> inline double mod<double>( double x, double y ) { return ::fmod(x,y); }
+ template <> inline double pow<double>( double x, double y ) { return ::pow(x,y); }
+ template <> inline double sqrt<double>( double x ) { return ::sqrt(x); }
+ template <> inline double ceil<double>( double x ) { return ::ceil(x); }
+ template <> inline double abs<double>( double x ) { return ::fabs(x); }
+ template <> inline double floor<double>( double x ) { return ::floor(x); }
+ template <> inline double ldexp<double>( double x, int y ) { return ::ldexp(x,y); }
+ template <> inline double sign<double>( double x ) { return x<0 ? -1.0 : +1.0; }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_access.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_access.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,188 @@
+//Copyright (c) 2008-2009 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 UUID_0B0AB514B91E11DEBCA23D3F56D89593
+#define UUID_0B0AB514B91E11DEBCA23D3F56D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int R,int C>
+ struct
+ matrix_access_tag
+ {
+ };
+ }
+
+ template <class Matrix,int R,int C>
+ BOOST_LA_INLINE_TRIVIAL
+ typename matrix_traits<Matrix>::scalar_type &
+ operator|( Matrix & a, la_detail::matrix_access_tag<R,C> (*)() )
+ {
+ BOOST_STATIC_ASSERT(R>=0);
+ BOOST_STATIC_ASSERT(R<matrix_traits<Matrix>::rows);
+ BOOST_STATIC_ASSERT(C>=0);
+ BOOST_STATIC_ASSERT(C<matrix_traits<Matrix>::cols);
+ return matrix_traits<Matrix>::template w<R,C>(a);
+ }
+
+ template <class Matrix,int R,int C>
+ BOOST_LA_INLINE_TRIVIAL
+ typename matrix_traits<Matrix>::scalar_type
+ operator|( Matrix const & a, la_detail::matrix_access_tag<R,C> (*)() )
+ {
+ BOOST_STATIC_ASSERT(R>=0);
+ BOOST_STATIC_ASSERT(R<matrix_traits<Matrix>::rows);
+ BOOST_STATIC_ASSERT(C>=0);
+ BOOST_STATIC_ASSERT(C<matrix_traits<Matrix>::cols);
+ return matrix_traits<Matrix>::template r<R,C>(a);
+ }
+
+ template <class Matrix,int R,int C>
+ BOOST_LA_INLINE_TRIVIAL
+ typename matrix_traits<Matrix>::scalar_type &
+ operator|( Matrix & a, la_detail::matrix_access_tag<R,C> )
+ {
+ BOOST_STATIC_ASSERT(R>=0);
+ BOOST_STATIC_ASSERT(R<matrix_traits<Matrix>::rows);
+ BOOST_STATIC_ASSERT(C>=0);
+ BOOST_STATIC_ASSERT(C<matrix_traits<Matrix>::cols);
+ return matrix_traits<Matrix>::template w<R,C>(a);
+ }
+
+ template <class Matrix,int R,int C>
+ BOOST_LA_INLINE_TRIVIAL
+ typename matrix_traits<Matrix>::scalar_type
+ operator|( Matrix const & a, la_detail::matrix_access_tag<R,C> )
+ {
+ BOOST_STATIC_ASSERT(R>=0);
+ BOOST_STATIC_ASSERT(R<matrix_traits<Matrix>::rows);
+ BOOST_STATIC_ASSERT(C>=0);
+ BOOST_STATIC_ASSERT(C<matrix_traits<Matrix>::cols);
+ return matrix_traits<Matrix>::template r<R,C>(a);
+ }
+
+ template <int R,int C>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::matrix_access_tag<R,C>
+ A()
+ {
+ return la_detail::matrix_access_tag<R,C>();
+ }
+
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<0,0> A00() { return la_detail::matrix_access_tag<0,0>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<0,1> A01() { return la_detail::matrix_access_tag<0,1>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<0,2> A02() { return la_detail::matrix_access_tag<0,2>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<0,3> A03() { return la_detail::matrix_access_tag<0,3>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<0,4> A04() { return la_detail::matrix_access_tag<0,4>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<0,5> A05() { return la_detail::matrix_access_tag<0,5>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<0,6> A06() { return la_detail::matrix_access_tag<0,6>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<0,7> A07() { return la_detail::matrix_access_tag<0,7>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<0,8> A08() { return la_detail::matrix_access_tag<0,8>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<0,9> A09() { return la_detail::matrix_access_tag<0,9>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<1,0> A10() { return la_detail::matrix_access_tag<1,0>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<1,1> A11() { return la_detail::matrix_access_tag<1,1>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<1,2> A12() { return la_detail::matrix_access_tag<1,2>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<1,3> A13() { return la_detail::matrix_access_tag<1,3>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<1,4> A14() { return la_detail::matrix_access_tag<1,4>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<1,5> A15() { return la_detail::matrix_access_tag<1,5>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<1,6> A16() { return la_detail::matrix_access_tag<1,6>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<1,7> A17() { return la_detail::matrix_access_tag<1,7>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<1,8> A18() { return la_detail::matrix_access_tag<1,8>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<1,9> A19() { return la_detail::matrix_access_tag<1,9>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<2,0> A20() { return la_detail::matrix_access_tag<2,0>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<2,1> A21() { return la_detail::matrix_access_tag<2,1>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<2,2> A22() { return la_detail::matrix_access_tag<2,2>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<2,3> A23() { return la_detail::matrix_access_tag<2,3>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<2,4> A24() { return la_detail::matrix_access_tag<2,4>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<2,5> A25() { return la_detail::matrix_access_tag<2,5>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<2,6> A26() { return la_detail::matrix_access_tag<2,6>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<2,7> A27() { return la_detail::matrix_access_tag<2,7>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<2,8> A28() { return la_detail::matrix_access_tag<2,8>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<2,9> A29() { return la_detail::matrix_access_tag<2,9>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<3,0> A30() { return la_detail::matrix_access_tag<3,0>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<3,1> A31() { return la_detail::matrix_access_tag<3,1>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<3,2> A32() { return la_detail::matrix_access_tag<3,2>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<3,3> A33() { return la_detail::matrix_access_tag<3,3>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<3,4> A34() { return la_detail::matrix_access_tag<3,4>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<3,5> A35() { return la_detail::matrix_access_tag<3,5>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<3,6> A36() { return la_detail::matrix_access_tag<3,6>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<3,7> A37() { return la_detail::matrix_access_tag<3,7>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<3,8> A38() { return la_detail::matrix_access_tag<3,8>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<3,9> A39() { return la_detail::matrix_access_tag<3,9>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<4,0> A40() { return la_detail::matrix_access_tag<4,0>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<4,1> A41() { return la_detail::matrix_access_tag<4,1>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<4,2> A42() { return la_detail::matrix_access_tag<4,2>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<4,3> A43() { return la_detail::matrix_access_tag<4,3>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<4,4> A44() { return la_detail::matrix_access_tag<4,4>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<4,5> A45() { return la_detail::matrix_access_tag<4,5>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<4,6> A46() { return la_detail::matrix_access_tag<4,6>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<4,7> A47() { return la_detail::matrix_access_tag<4,7>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<4,8> A48() { return la_detail::matrix_access_tag<4,8>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<4,9> A49() { return la_detail::matrix_access_tag<4,9>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<5,0> A50() { return la_detail::matrix_access_tag<5,0>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<5,1> A51() { return la_detail::matrix_access_tag<5,1>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<5,2> A52() { return la_detail::matrix_access_tag<5,2>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<5,3> A53() { return la_detail::matrix_access_tag<5,3>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<5,4> A54() { return la_detail::matrix_access_tag<5,4>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<5,5> A55() { return la_detail::matrix_access_tag<5,5>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<5,6> A56() { return la_detail::matrix_access_tag<5,6>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<5,7> A57() { return la_detail::matrix_access_tag<5,7>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<5,8> A58() { return la_detail::matrix_access_tag<5,8>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<5,9> A59() { return la_detail::matrix_access_tag<5,9>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<6,0> A60() { return la_detail::matrix_access_tag<6,0>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<6,1> A61() { return la_detail::matrix_access_tag<6,1>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<6,2> A62() { return la_detail::matrix_access_tag<6,2>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<6,3> A63() { return la_detail::matrix_access_tag<6,3>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<6,4> A64() { return la_detail::matrix_access_tag<6,4>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<6,5> A65() { return la_detail::matrix_access_tag<6,5>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<6,6> A66() { return la_detail::matrix_access_tag<6,6>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<6,7> A67() { return la_detail::matrix_access_tag<6,7>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<6,8> A68() { return la_detail::matrix_access_tag<6,8>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<6,9> A69() { return la_detail::matrix_access_tag<6,9>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<7,0> A70() { return la_detail::matrix_access_tag<7,0>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<7,1> A71() { return la_detail::matrix_access_tag<7,1>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<7,2> A72() { return la_detail::matrix_access_tag<7,2>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<7,3> A73() { return la_detail::matrix_access_tag<7,3>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<7,4> A74() { return la_detail::matrix_access_tag<7,4>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<7,5> A75() { return la_detail::matrix_access_tag<7,5>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<7,6> A76() { return la_detail::matrix_access_tag<7,6>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<7,7> A77() { return la_detail::matrix_access_tag<7,7>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<7,8> A78() { return la_detail::matrix_access_tag<7,8>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<7,9> A79() { return la_detail::matrix_access_tag<7,9>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<8,0> A80() { return la_detail::matrix_access_tag<8,0>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<8,1> A81() { return la_detail::matrix_access_tag<8,1>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<8,2> A82() { return la_detail::matrix_access_tag<8,2>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<8,3> A83() { return la_detail::matrix_access_tag<8,3>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<8,4> A84() { return la_detail::matrix_access_tag<8,4>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<8,5> A85() { return la_detail::matrix_access_tag<8,5>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<8,6> A86() { return la_detail::matrix_access_tag<8,6>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<8,7> A87() { return la_detail::matrix_access_tag<8,7>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<8,8> A88() { return la_detail::matrix_access_tag<8,8>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<8,9> A89() { return la_detail::matrix_access_tag<8,9>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<9,0> A90() { return la_detail::matrix_access_tag<9,0>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<9,1> A91() { return la_detail::matrix_access_tag<9,1>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<9,2> A92() { return la_detail::matrix_access_tag<9,2>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<9,3> A93() { return la_detail::matrix_access_tag<9,3>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<9,4> A94() { return la_detail::matrix_access_tag<9,4>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<9,5> A95() { return la_detail::matrix_access_tag<9,5>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<9,6> A96() { return la_detail::matrix_access_tag<9,6>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<9,7> A97() { return la_detail::matrix_access_tag<9,7>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<9,8> A98() { return la_detail::matrix_access_tag<9,8>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::matrix_access_tag<9,9> A99() { return la_detail::matrix_access_tag<9,9>(); }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_assign.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_assign.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,73 @@
+//Copyright (c) 2008-2009 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 UUID_90A10084A19011DEABB5838E55D89593
+#define UUID_90A10084A19011DEABB5838E55D89593
+
+#include <boost/la/custom/matrix_assign.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct
+ matrix_assign_defined
+ {
+ static bool const value=false;
+ };
+
+ template <int I,int N>
+ struct
+ copy_matrix_elements
+ {
+ template <class A,class B>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ void
+ f( A & a, B const & b )
+ {
+ matrix_traits<A>::template w<I/matrix_traits<A>::cols,I%matrix_traits<A>::cols>(a) =
+ matrix_traits<B>::template r<I/matrix_traits<B>::cols,I%matrix_traits<B>::cols>(b);
+ copy_matrix_elements<I+1,N>::f(a,b);
+ }
+ };
+
+ template <int N>
+ struct
+ copy_matrix_elements<N,N>
+ {
+ template <class A,class B>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ void
+ f( A & a, B const & b )
+ {
+ }
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_TRIVIAL
+ typename boost::enable_if_c<
+ is_matrix<A>::value && is_matrix<B>::value &&
+ matrix_traits<A>::rows==matrix_traits<B>::rows &&
+ matrix_traits<A>::cols==matrix_traits<B>::cols &&
+ !la_detail::matrix_assign_defined<matrix_traits<A>::rows,matrix_traits<A>::cols>::value,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ la_detail::copy_matrix_elements<0,matrix_traits<A>::rows*matrix_traits<A>::cols>::f(a,b);
+ return a;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_determinant.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_determinant.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,43 @@
+//Copyright (c) 2008-2009 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 UUID_44F0A73CAD6311DEB15C0A6355D89593
+#define UUID_44F0A73CAD6311DEB15C0A6355D89593
+
+#include <boost/la/custom/matrix_determinant.hpp>
+#include <boost/la/detail/determinant_impl.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ matrix_determinant_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A>
+ BOOST_LA_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_matrix<A>::value &&
+ matrix_traits<A>::rows==matrix_traits<A>::cols &&
+ !la_detail::matrix_determinant_defined<matrix_traits<A>::rows>::value,
+ typename matrix_traits<A>::scalar_type>::type
+ determinant( A const & a )
+ {
+ return la_detail::determinant_impl(a);
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_div_eq_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_div_eq_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+//Copyright (c) 2008-2009 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 UUID_6CD3128AAD6811DE9AA05D7F55D89593
+#define UUID_6CD3128AAD6811DE9AA05D7F55D89593
+
+#include <boost/la/custom/matrix_div_eq_scalar.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct
+ matrix_div_eq_scalar_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_matrix<A>::value &&
+ !la_detail::matrix_div_eq_scalar_defined<matrix_traits<A>::rows,matrix_traits<A>::cols>::value,
+ A &>::type
+ operator/=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ for( int i=0; i!=matrix_traits<A>::rows; ++i )
+ for( int j=0; j!=matrix_traits<A>::cols; ++j )
+ matrix_traits<A>::iw(i,j,a)/=b;
+ return a;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_div_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_div_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,46 @@
+//Copyright (c) 2008-2009 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 UUID_F5B3B612AD6911DEBF139F8855D89593
+#define UUID_F5B3B612AD6911DEBF139F8855D89593
+
+#include <boost/la/custom/matrix_div_scalar.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct
+ matrix_div_scalar_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ is_matrix<A>::value &&
+ !la_detail::matrix_div_scalar_defined<matrix_traits<A>::rows,matrix_traits<A>::cols>::value,
+ deduce_matrix<A> >::type
+ operator/( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ for( int i=0; i!=matrix_traits<A>::rows; ++i )
+ for( int j=0; j!=matrix_traits<A>::cols; ++j )
+ matrix_traits<R>::iw(i,j,r)=matrix_traits<A>::ir(i,j,a)/b;
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_eq_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_eq_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,47 @@
+//Copyright (c) 2008-2009 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 UUID_010CC14CAD6B11DE9AA9508F55D89593
+#define UUID_010CC14CAD6B11DE9AA9508F55D89593
+
+#include <boost/la/custom/matrix_eq_matrix.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct
+ matrix_eq_matrix_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_matrix<A>::value && is_matrix<B>::value &&
+ matrix_traits<A>::rows==matrix_traits<B>::rows &&
+ matrix_traits<A>::cols==matrix_traits<B>::cols &&
+ !la_detail::matrix_eq_matrix_defined<matrix_traits<A>::rows,matrix_traits<A>::cols>::value,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ for( int i=0; i!=matrix_traits<A>::rows; ++i )
+ for( int j=0; j!=matrix_traits<A>::cols; ++j )
+ if( matrix_traits<A>::ir(i,j,a)!=matrix_traits<B>::ir(i,j,b) )
+ return false;
+ return true;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_inverse.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_inverse.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,67 @@
+//Copyright (c) 2008-2009 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 UUID_1748793AAE0E11DE91888BE355D89593
+#define UUID_1748793AAE0E11DE91888BE355D89593
+
+#include <boost/la/custom/matrix_inverse.hpp>
+#include <boost/la/matrix_determinant.hpp>
+#include <boost/la/scalar_traits.hpp>
+#include <boost/throw_exception.hpp>
+#include <boost/la/matrix_mul_scalar.hpp>
+#include <boost/la/transpose.hpp>
+#include <boost/la/zero_determinant_error.hpp>
+#include <boost/la/detail/cofactor_impl.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ matrix_inverse_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A>
+ BOOST_LA_INLINE_TRIVIAL
+ typename lazy_enable_if_c<
+ is_matrix<A>::value &&
+ matrix_traits<A>::rows==matrix_traits<A>::cols &&
+ !la_detail::matrix_inverse_defined<matrix_traits<A>::rows>::value,
+ deduce_matrix<A> >::type
+ inverse( A const & a, typename matrix_traits<A>::scalar_type det )
+ {
+ typedef typename matrix_traits<A>::scalar_type T;
+ BOOST_ASSERT(det!=scalar_traits<T>::zero());
+ T f=scalar_traits<T>::one()/det;
+ return (la_detail::cofactor_impl(a)|transpose) * f;
+ }
+
+ template <class A>
+ BOOST_LA_INLINE_TRIVIAL
+ typename lazy_enable_if_c<
+ is_matrix<A>::value &&
+ matrix_traits<A>::rows==matrix_traits<A>::cols,
+ deduce_matrix<A> >::type
+ inverse( A const & a )
+ {
+ typedef typename matrix_traits<A>::scalar_type T;
+ T det=determinant(a);
+ if( det==scalar_traits<T>::zero() )
+ BOOST_THROW_EXCEPTION(zero_determinant_error());
+ return inverse(a,det);
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_make.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_make.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,45 @@
+//Copyright (c) 2008-2009 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 UUID_8328668EACC311DE8A2F7C5955D89593
+#define UUID_8328668EACC311DE8A2F7C5955D89593
+
+#include <boost/la/custom/matrix_make.hpp>
+#include <boost/la/matrix_assign.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct
+ matrix_make_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class R,class A>
+ BOOST_LA_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_matrix<R>::value && is_matrix<A>::value &&
+ matrix_traits<R>::rows==matrix_traits<A>::rows &&
+ matrix_traits<R>::cols==matrix_traits<A>::cols &&
+ !la_detail::matrix_make_defined<matrix_traits<A>::rows,matrix_traits<A>::cols>::value,
+ R>::type
+ make( A const & a )
+ {
+ R r; assign(r,a);
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_minus.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_minus.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,46 @@
+//Copyright (c) 2008-2009 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 UUID_A3D4B894AD8411DE9B98703856D89593
+#define UUID_A3D4B894AD8411DE9B98703856D89593
+
+#include <boost/la/custom/matrix_minus.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct
+ matrix_minus_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ is_matrix<A>::value &&
+ !la_detail::matrix_minus_defined<matrix_traits<A>::rows,matrix_traits<A>::cols>::value,
+ deduce_matrix<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ for( int i=0; i!=matrix_traits<A>::rows; ++i )
+ for( int j=0; j!=matrix_traits<A>::cols; ++j )
+ matrix_traits<R>::iw(i,j,r)=-matrix_traits<A>::ir(i,j,a);
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_minus_eq_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_minus_eq_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,46 @@
+//Copyright (c) 2008-2009 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 UUID_B4E1ABAAAD8511DEB9DF493D56D89593
+#define UUID_B4E1ABAAAD8511DEB9DF493D56D89593
+
+#include <boost/la/custom/matrix_minus_eq_matrix.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct
+ matrix_minus_eq_matrix_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_matrix<A>::value && is_matrix<B>::value &&
+ matrix_traits<A>::rows==matrix_traits<B>::rows &&
+ matrix_traits<A>::cols==matrix_traits<B>::cols &&
+ !la_detail::matrix_minus_eq_matrix_defined<matrix_traits<A>::rows,matrix_traits<A>::cols>::value,
+ A &>::type
+ operator-=( A & a, B const & b )
+ {
+ for( int i=0; i!=matrix_traits<A>::rows; ++i )
+ for( int j=0; j!=matrix_traits<A>::cols; ++j )
+ matrix_traits<A>::iw(i,j,a)-=matrix_traits<B>::ir(i,j,b);
+ return a;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_minus_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_minus_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2008-2009 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 UUID_AC5D7D92AD8511DEA5233A3D56D89593
+#define UUID_AC5D7D92AD8511DEA5233A3D56D89593
+
+#include <boost/utility/enable_if.hpp>
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/la/custom/matrix_minus_matrix.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct
+ matrix_minus_matrix_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ is_matrix<A>::value && is_matrix<B>::value &&
+ matrix_traits<A>::rows==matrix_traits<B>::rows &&
+ matrix_traits<A>::cols==matrix_traits<B>::cols &&
+ !la_detail::matrix_minus_matrix_defined<matrix_traits<A>::rows,matrix_traits<A>::cols>::value,
+ deduce_matrix2<A,B,matrix_traits<A>::rows,matrix_traits<A>::cols> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,matrix_traits<A>::rows,matrix_traits<A>::cols>::type R;
+ R r;
+ for( int i=0; i!=matrix_traits<A>::rows; ++i )
+ for( int j=0; j!=matrix_traits<A>::cols; ++j )
+ matrix_traits<R>::iw(i,j,r)=matrix_traits<A>::ir(i,j,a)-matrix_traits<B>::ir(i,j,b);
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_mul_eq_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_mul_eq_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,59 @@
+//Copyright (c) 2008-2009 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 UUID_C1B803C2AE2711DEB04CC72956D89593
+#define UUID_C1B803C2AE2711DEB04CC72956D89593
+
+#include <boost/la/custom/matrix_mul_eq_matrix.hpp>
+#include <boost/la/scalar_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ matrix_mul_eq_matrix_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_matrix<A>::value &&
+ is_matrix<B>::value &&
+ matrix_traits<A>::rows==matrix_traits<A>::cols &&
+ matrix_traits<A>::rows==matrix_traits<B>::rows &&
+ matrix_traits<A>::cols==matrix_traits<B>::cols &&
+ !la_detail::matrix_mul_eq_matrix_defined<matrix_traits<A>::rows>::value,
+ A &>::type
+ operator*=( A & r, B const & b )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ Ta a[matrix_traits<A>::rows][matrix_traits<A>::cols];
+ for( int i=0; i<matrix_traits<A>::rows; ++i )
+ for( int j=0; j<matrix_traits<B>::cols; ++j )
+ a[i][j]=matrix_traits<A>::ir(i,j,r);
+ for( int i=0; i<matrix_traits<A>::rows; ++i )
+ for( int j=0; j<matrix_traits<B>::cols; ++j )
+ {
+ Ta x(scalar_traits<Ta>::zero());
+ for( int k=0; k<matrix_traits<A>::cols; ++k )
+ x += a[i][k]*matrix_traits<B>::ir(k,j,b);
+ matrix_traits<A>::iw(i,j,r) = x;
+ }
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_mul_eq_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_mul_eq_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+//Copyright (c) 2008-2009 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 UUID_8395B1E8AE2711DE8D88D82856D89593
+#define UUID_8395B1E8AE2711DE8D88D82856D89593
+
+#include <boost/la/custom/matrix_mul_eq_scalar.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct
+ matrix_mul_eq_scalar_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_matrix<A>::value &&
+ !la_detail::matrix_mul_eq_scalar_defined<matrix_traits<A>::rows,matrix_traits<A>::cols>::value,
+ A &>::type
+ operator*=( A & a, typename matrix_traits<A>::scalar_type b )
+ {
+ for( int i=0; i!=matrix_traits<A>::rows; ++i )
+ for( int j=0; j!=matrix_traits<A>::cols; ++j )
+ matrix_traits<A>::iw(i,j,a)*=b;
+ return a;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_mul_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_mul_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+//Copyright (c) 2008-2009 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 UUID_D860B386AE3011DE8FFBCB6556D89593
+#define UUID_D860B386AE3011DE8FFBCB6556D89593
+
+#include <boost/utility/enable_if.hpp>
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/la/custom/matrix_mul_matrix.hpp>
+#include <boost/la/scalar_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N,int P>
+ struct
+ matrix_mul_matrix_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ is_matrix<A>::value && is_matrix<B>::value &&
+ matrix_traits<A>::cols==matrix_traits<B>::rows &&
+ !la_detail::matrix_mul_matrix_defined<matrix_traits<A>::rows,matrix_traits<A>::cols,matrix_traits<B>::cols>::value,
+ deduce_matrix2<A,B,matrix_traits<A>::rows,matrix_traits<B>::cols> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,matrix_traits<A>::rows,matrix_traits<B>::cols>::type R;
+ R r;
+ for( int i=0; i<matrix_traits<A>::rows; ++i )
+ for( int j=0; j<matrix_traits<B>::cols; ++j )
+ {
+ typedef typename matrix_traits<A>::scalar_type Ta;
+ Ta x(scalar_traits<Ta>::zero());
+ for( int k=0; k<matrix_traits<A>::cols; ++k )
+ x += matrix_traits<A>::ir(i,k,a)*matrix_traits<B>::ir(k,j,b);
+ matrix_traits<R>::iw(i,j,r) = x;
+ }
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_mul_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_mul_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,46 @@
+//Copyright (c) 2008-2009 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 UUID_8B429398AE2711DE9081E62856D89593
+#define UUID_8B429398AE2711DE9081E62856D89593
+
+#include <boost/la/custom/matrix_mul_scalar.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct
+ matrix_mul_scalar_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ is_matrix<A>::value &&
+ !la_detail::matrix_mul_scalar_defined<matrix_traits<A>::rows,matrix_traits<A>::cols>::value,
+ deduce_matrix<A> >::type
+ operator*( A const & a, typename matrix_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_matrix<A>::type R;
+ R r;
+ for( int i=0; i!=matrix_traits<A>::rows; ++i )
+ for( int j=0; j!=matrix_traits<A>::cols; ++j )
+ matrix_traits<R>::iw(i,j,r)=matrix_traits<A>::ir(i,j,a)*b;
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_mul_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_mul_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+//Copyright (c) 2008-2009 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 UUID_B03E4582AE3311DEB01D577856D89593
+#define UUID_B03E4582AE3311DEB01D577856D89593
+
+#include <boost/utility/enable_if.hpp>
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/la/custom/matrix_mul_vector.hpp>
+#include <boost/la/scalar_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct
+ matrix_mul_vector_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ is_matrix<A>::value && is_vector<B>::value &&
+ matrix_traits<A>::cols==vector_traits<B>::dim &&
+ !la_detail::matrix_mul_vector_defined<matrix_traits<A>::rows,matrix_traits<A>::cols>::value,
+ deduce_vector2<A,B,matrix_traits<A>::rows> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename deduce_vector2<A,B,matrix_traits<A>::rows>::type R;
+ R r;
+ for( int i=0; i<matrix_traits<A>::rows; ++i )
+ {
+ typedef typename vector_traits<R>::scalar_type Tr;
+ Tr x(scalar_traits<Tr>::zero());
+ for( int j=0; j<matrix_traits<A>::cols; ++j )
+ x += matrix_traits<A>::ir(i,j,a)*vector_traits<B>::ir(j,b);
+ vector_traits<R>::iw(i,r) = x;
+ }
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_neq_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_neq_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,47 @@
+//Copyright (c) 2008-2009 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 UUID_08842074B17A11DE9975A45356D89593
+#define UUID_08842074B17A11DE9975A45356D89593
+
+#include <boost/la/custom/matrix_neq_matrix.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct
+ matrix_neq_matrix_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_matrix<A>::value && is_matrix<B>::value &&
+ matrix_traits<A>::rows==matrix_traits<B>::rows &&
+ matrix_traits<A>::cols==matrix_traits<B>::cols &&
+ !la_detail::matrix_neq_matrix_defined<matrix_traits<A>::rows,matrix_traits<A>::cols>::value,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ for( int i=0; i!=matrix_traits<A>::rows; ++i )
+ for( int j=0; j!=matrix_traits<A>::cols; ++j )
+ if( matrix_traits<A>::ir(i,j,a)!=matrix_traits<B>::ir(i,j,b) )
+ return true;
+ return false;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_plus_eq_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_plus_eq_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,46 @@
+//Copyright (c) 2008-2009 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 UUID_793534DAA26011DE9E68EAB855D89593
+#define UUID_793534DAA26011DE9E68EAB855D89593
+
+#include <boost/la/custom/matrix_plus_eq_matrix.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct
+ matrix_plus_eq_matrix_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_matrix<A>::value && is_matrix<B>::value &&
+ matrix_traits<A>::rows==matrix_traits<B>::rows &&
+ matrix_traits<A>::cols==matrix_traits<B>::cols &&
+ !la_detail::matrix_plus_eq_matrix_defined<matrix_traits<A>::rows,matrix_traits<A>::cols>::value,
+ A &>::type
+ operator+=( A & a, B const & b )
+ {
+ for( int i=0; i!=matrix_traits<A>::rows; ++i )
+ for( int j=0; j!=matrix_traits<A>::cols; ++j )
+ matrix_traits<A>::iw(i,j,a)+=matrix_traits<B>::ir(i,j,b);
+ return a;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_plus_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_plus_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2008-2009 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 UUID_4C02BAE8A17811DE9B2A9F8F55D89593
+#define UUID_4C02BAE8A17811DE9B2A9F8F55D89593
+
+#include <boost/utility/enable_if.hpp>
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/la/custom/matrix_plus_matrix.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct
+ matrix_plus_matrix_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ is_matrix<A>::value && is_matrix<B>::value &&
+ matrix_traits<A>::rows==matrix_traits<B>::rows &&
+ matrix_traits<A>::cols==matrix_traits<B>::cols &&
+ !la_detail::matrix_plus_matrix_defined<matrix_traits<A>::rows,matrix_traits<A>::cols>::value,
+ deduce_matrix2<A,B,matrix_traits<A>::rows,matrix_traits<A>::cols> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_matrix2<A,B,matrix_traits<A>::rows,matrix_traits<A>::cols>::type R;
+ R r;
+ for( int i=0; i!=matrix_traits<A>::rows; ++i )
+ for( int j=0; j!=matrix_traits<A>::cols; ++j )
+ matrix_traits<R>::iw(i,j,r)=matrix_traits<A>::ir(i,j,a)+matrix_traits<B>::ir(i,j,b);
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_scalar_cast.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_scalar_cast.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,109 @@
+//Copyright (c) 2008-2009 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 UUID_2F8DF088B96C11DE95B095C955D89593
+#define UUID_2F8DF088B96C11DE95B095C955D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class OriginalType,class Scalar>
+ class
+ matrix_scalar_cast_
+ {
+ matrix_scalar_cast_( matrix_scalar_cast_ const & );
+ matrix_scalar_cast_ & operator=( matrix_scalar_cast_ const & );
+ ~matrix_scalar_cast_();
+
+ public:
+
+ template <class T>
+ BOOST_LA_INLINE_TRIVIAL
+ matrix_scalar_cast_ &
+ operator=( T const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <bool> struct scalar_cast_matrix_filter { };
+ template <> struct scalar_cast_matrix_filter<true> { typedef int type; };
+ }
+
+ template <class OriginalType,class Scalar>
+ struct
+ matrix_traits< la_detail::matrix_scalar_cast_<OriginalType,Scalar> >
+ {
+ typedef Scalar scalar_type;
+ typedef la_detail::matrix_scalar_cast_<OriginalType,Scalar> this_matrix;
+ static int const rows=matrix_traits<OriginalType>::rows;
+ static int const cols=matrix_traits<OriginalType>::cols;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<cols);
+ return scalar_type(matrix_traits<OriginalType>::template r<Row,Col>(reinterpret_cast<OriginalType const &>(x)));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int row, int col, this_matrix const & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return scalar_type(matrix_traits<OriginalType>::ir(col,row,reinterpret_cast<OriginalType const &>(x)));
+ }
+ };
+
+ template <class OriginalType,class Scalar,int R,int C,class S>
+ struct
+ deduce_matrix<la_detail::matrix_scalar_cast_<OriginalType,Scalar>,R,C,S>
+ {
+ typedef mat<S,R,C> type;
+ };
+
+ template <class Scalar,class T>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::matrix_scalar_cast_<T,Scalar> const &
+ scalar_cast( T const & x, typename la_detail::scalar_cast_matrix_filter<is_matrix<T>::value>::type=0 )
+ {
+ return reinterpret_cast<la_detail::matrix_scalar_cast_<T,Scalar> const &>(x);
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/matrix_traits.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/matrix_traits.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,33 @@
+//Copyright (c) 2008-2009 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 UUID_8C06FE26A3E711DEA02C88BA55D89593
+#define UUID_8C06FE26A3E711DEA02C88BA55D89593
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class Matrix>
+ struct
+ matrix_traits
+ {
+ static int const rows=0;
+ static int const cols=0;
+ typedef void scalar_type;
+ };
+
+ template <class T>
+ struct
+ is_matrix
+ {
+ static bool const value=matrix_traits<T>::rows>0 && matrix_traits<T>::cols>0;
+ };
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/mref.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/mref.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,144 @@
+//Copyright (c) 2008-2009 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 UUID_0ABE4A38A30911DEAB79DFF855D89593
+#define UUID_0ABE4A38A30911DEAB79DFF855D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class T>
+ class
+ mref_
+ {
+ mref_( mref_ const & );
+ mref_ & operator=( mref_ const & );
+ ~mref_();
+
+ public:
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ mref_ &
+ operator=( R const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+ }
+
+ template <class Matrix>
+ struct
+ matrix_traits< la_detail::mref_<Matrix> >
+ {
+ typedef typename matrix_traits<Matrix>::scalar_type scalar_type;
+ typedef la_detail::mref_<Matrix> this_matrix;
+ static int const rows=matrix_traits<Matrix>::rows;
+ static int const cols=matrix_traits<Matrix>::cols;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<cols);
+ return matrix_traits<Matrix>::template r<Row,Col>(reinterpret_cast<Matrix const &>(x));
+ }
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_matrix & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<cols);
+ return matrix_traits<Matrix>::template w<Row,Col>(reinterpret_cast<Matrix &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int row, int col, this_matrix const & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return matrix_traits<Matrix>::ir(row,col,reinterpret_cast<Matrix const &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int row, int col, this_matrix & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return matrix_traits<Matrix>::iw(row,col,reinterpret_cast<Matrix &>(x));
+ }
+ };
+
+ template <class Matrix,int R,int C,class S>
+ struct
+ deduce_matrix<la_detail::mref_<Matrix>,R,C,S>
+ {
+ typedef mat<S,R,C> type;
+ };
+
+ template <class Matrix>
+ BOOST_LA_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_matrix<Matrix>::value,
+ la_detail::mref_<Matrix> const &>::type
+ mref( Matrix const & a )
+ {
+ return reinterpret_cast<la_detail::mref_<Matrix> const &>(a);
+ }
+
+ template <class Matrix>
+ BOOST_LA_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_matrix<Matrix>::value,
+ la_detail::mref_<Matrix> &>::type
+ mref( Matrix & a )
+ {
+ return reinterpret_cast<la_detail::mref_<Matrix> &>(a);
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/rotx_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/rotx_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,157 @@
+//Copyright (c) 2008-2009 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 UUID_F1FD2A20A1BC11DEA67B0F9756D89593
+#define UUID_F1FD2A20A1BC11DEA67B0F9756D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/math.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class T,int Dim>
+ struct
+ rotx_matrix_
+ {
+ T s, c;
+
+ explicit
+ BOOST_LA_INLINE_TRIVIAL
+ rotx_matrix_( T a ):
+ s(la::sin(a)),
+ c(la::cos(a))
+ {
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <int Row,int Col>
+ struct
+ rotx_matrix_get
+ {
+ template <class T,int Dim>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ T
+ get( rotx_matrix_<T,Dim> const & )
+ {
+ return T(Row==Col);
+ };
+ };
+
+ template <>
+ struct
+ rotx_matrix_get<1,1>
+ {
+ template <class T,int Dim>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ T
+ get( rotx_matrix_<T,Dim> const & x )
+ {
+ BOOST_STATIC_ASSERT(Dim>2);
+ return x.c;
+ };
+ };
+
+ template <>
+ struct
+ rotx_matrix_get<1,2>
+ {
+ template <class T,int Dim>
+ static
+ T
+ BOOST_LA_INLINE_CRITICAL
+ get( rotx_matrix_<T,Dim> const & x )
+ {
+ BOOST_STATIC_ASSERT(Dim>2);
+ return -x.s;
+ };
+ };
+
+ template <>
+ struct
+ rotx_matrix_get<2,1>
+ {
+ template <class T,int Dim>
+ static
+ T
+ BOOST_LA_INLINE_CRITICAL
+ get( rotx_matrix_<T,Dim> const & x )
+ {
+ BOOST_STATIC_ASSERT(Dim>2);
+ return x.s;
+ };
+ };
+
+ template <>
+ struct
+ rotx_matrix_get<2,2>
+ {
+ template <class T,int Dim>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ T
+ get( rotx_matrix_<T,Dim> const & x )
+ {
+ BOOST_STATIC_ASSERT(Dim>2);
+ return x.c;
+ };
+ };
+ }
+
+ template <class Matrix>
+ struct matrix_traits;
+
+ template <class T,int Dim>
+ struct
+ matrix_traits< la_detail::rotx_matrix_<T,Dim> >
+ {
+ typedef la_detail::rotx_matrix_<T,Dim> this_matrix;
+ typedef T scalar_type;
+ static int const rows=Dim;
+ static int const cols=Dim;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Row<Dim);
+ BOOST_STATIC_ASSERT(Col<Dim);
+ return la_detail::rotx_matrix_get<Row,Col>::get(x);
+ }
+ };
+
+ template <int Dim,class T>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::rotx_matrix_<T,Dim>
+ rotx_matrix( T angle )
+ {
+ return la_detail::rotx_matrix_<T,Dim>(angle);
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/roty_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/roty_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,157 @@
+//Copyright (c) 2008-2009 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 UUID_14F2DB32A1BE11DE97C54B9E56D89593
+#define UUID_14F2DB32A1BE11DE97C54B9E56D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/math.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class T,int Dim>
+ struct
+ roty_matrix_
+ {
+ T s, c;
+
+ explicit
+ BOOST_LA_INLINE_TRIVIAL
+ roty_matrix_( T a ):
+ s(la::sin(a)),
+ c(la::cos(a))
+ {
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <int Row,int Col>
+ struct
+ roty_matrix_get
+ {
+ template <class T,int Dim>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ T
+ get( roty_matrix_<T,Dim> const & )
+ {
+ return T(Row==Col);
+ };
+ };
+
+ template <>
+ struct
+ roty_matrix_get<0,0>
+ {
+ template <class T,int Dim>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ T
+ get( roty_matrix_<T,Dim> const & x )
+ {
+ BOOST_STATIC_ASSERT(Dim>2);
+ return x.c;
+ };
+ };
+
+ template <>
+ struct
+ roty_matrix_get<0,2>
+ {
+ template <class T,int Dim>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ T
+ get( roty_matrix_<T,Dim> const & x )
+ {
+ BOOST_STATIC_ASSERT(Dim>2);
+ return x.s;
+ };
+ };
+
+ template <>
+ struct
+ roty_matrix_get<2,0>
+ {
+ template <class T,int Dim>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ T
+ get( roty_matrix_<T,Dim> const & x )
+ {
+ BOOST_STATIC_ASSERT(Dim>2);
+ return -x.s;
+ };
+ };
+
+ template <>
+ struct
+ roty_matrix_get<2,2>
+ {
+ template <class T,int Dim>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ T
+ get( roty_matrix_<T,Dim> const & x )
+ {
+ BOOST_STATIC_ASSERT(Dim>2);
+ return x.c;
+ };
+ };
+ }
+
+ template <class Matrix>
+ struct matrix_traits;
+
+ template <class T,int Dim>
+ struct
+ matrix_traits< la_detail::roty_matrix_<T,Dim> >
+ {
+ typedef la_detail::roty_matrix_<T,Dim> this_matrix;
+ typedef T scalar_type;
+ static int const rows=Dim;
+ static int const cols=Dim;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Row<Dim);
+ BOOST_STATIC_ASSERT(Col<Dim);
+ return la_detail::roty_matrix_get<Row,Col>::get(x);
+ }
+ };
+
+ template <int Dim,class T>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::roty_matrix_<T,Dim>
+ roty_matrix( T angle )
+ {
+ return la_detail::roty_matrix_<T,Dim>(angle);
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/rotz_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/rotz_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,157 @@
+//Copyright (c) 2008-2009 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 UUID_328FC462A19A11DE93A809CD55D89593
+#define UUID_328FC462A19A11DE93A809CD55D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/math.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class T,int Dim>
+ struct
+ rotz_matrix_
+ {
+ T s, c;
+
+ explicit
+ BOOST_LA_INLINE_TRIVIAL
+ rotz_matrix_( T a ):
+ s(la::sin(a)),
+ c(la::cos(a))
+ {
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <int Row,int Col>
+ struct
+ rotz_matrix_get
+ {
+ template <class T,int Dim>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ T
+ get( rotz_matrix_<T,Dim> const & )
+ {
+ return T(Row==Col);
+ };
+ };
+
+ template <>
+ struct
+ rotz_matrix_get<0,0>
+ {
+ template <class T,int Dim>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ T
+ get( rotz_matrix_<T,Dim> const & x )
+ {
+ BOOST_STATIC_ASSERT(Dim>=2);
+ return x.c;
+ };
+ };
+
+ template <>
+ struct
+ rotz_matrix_get<0,1>
+ {
+ template <class T,int Dim>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ T
+ get( rotz_matrix_<T,Dim> const & x )
+ {
+ BOOST_STATIC_ASSERT(Dim>=2);
+ return -x.s;
+ };
+ };
+
+ template <>
+ struct
+ rotz_matrix_get<1,0>
+ {
+ template <class T,int Dim>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ T
+ get( rotz_matrix_<T,Dim> const & x )
+ {
+ BOOST_STATIC_ASSERT(Dim>=2);
+ return x.s;
+ };
+ };
+
+ template <>
+ struct
+ rotz_matrix_get<1,1>
+ {
+ template <class T,int Dim>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ T
+ get( rotz_matrix_<T,Dim> const & x )
+ {
+ BOOST_STATIC_ASSERT(Dim>=2);
+ return x.c;
+ };
+ };
+ }
+
+ template <class Matrix>
+ struct matrix_traits;
+
+ template <class T,int Dim>
+ struct
+ matrix_traits< la_detail::rotz_matrix_<T,Dim> >
+ {
+ typedef la_detail::rotz_matrix_<T,Dim> this_matrix;
+ typedef T scalar_type;
+ static int const rows=Dim;
+ static int const cols=Dim;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Row<Dim);
+ BOOST_STATIC_ASSERT(Col<Dim);
+ return la_detail::rotz_matrix_get<Row,Col>::get(x);
+ }
+ };
+
+ template <int Dim,class T>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::rotz_matrix_<T,Dim>
+ rotz_matrix( T angle )
+ {
+ return la_detail::rotz_matrix_<T,Dim>(angle);
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/row.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/row.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,130 @@
+//Copyright (c) 2008-2009 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 UUID_339AB904A1C011DE9A625CA956D89593
+#define UUID_339AB904A1C011DE9A625CA956D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/la/detail/bind_oper.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int Row>
+ struct row_tag { };
+
+ template <int Row,class OriginalMatrix>
+ class
+ row_
+ {
+ row_( row_ const & );
+ row_ & operator=( row_ const & );
+ ~row_();
+
+ public:
+
+ template <class T>
+ BOOST_LA_INLINE_TRIVIAL
+ row_ &
+ operator=( T const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <class T,int Row>
+ struct
+ pipe_return<T,row_tag<Row> >
+ {
+ typedef row_<Row,T> type;
+ };
+ }
+
+ template <class Vector>
+ struct vector_traits;
+
+ template <int Row,class OriginalMatrix>
+ struct
+ vector_traits< la_detail::row_<Row,OriginalMatrix> >
+ {
+ typedef la_detail::row_<Row,OriginalMatrix> this_vector;
+ typedef typename matrix_traits<OriginalMatrix>::scalar_type scalar_type;
+ static int const dim=matrix_traits<OriginalMatrix>::cols;
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<matrix_traits<OriginalMatrix>::rows);
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_vector const & x )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ return matrix_traits<OriginalMatrix>::template r<Row,I>(reinterpret_cast<OriginalMatrix const &>(x));
+ }
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_vector & x )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ return matrix_traits<OriginalMatrix>::template w<Row,I>(reinterpret_cast<OriginalMatrix &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int i, this_vector const & x )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<dim);
+ return matrix_traits<OriginalMatrix>::ir(Row,i,reinterpret_cast<OriginalMatrix const &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int i, this_vector & x )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<dim);
+ return matrix_traits<OriginalMatrix>::iw(Row,i,reinterpret_cast<OriginalMatrix &>(x));
+ }
+ };
+
+ template <int C>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::row_tag<C>
+ row()
+ {
+ return la_detail::row_tag<C>();
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/row_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/row_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,131 @@
+//Copyright (c) 2008-2009 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 UUID_47482DD8A1C011DEA9D0B1A956D89593
+#define UUID_47482DD8A1C011DEA9D0B1A956D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/la/detail/bind_oper.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ struct row_matrix_tag { };
+
+ template <class OriginalVector>
+ class
+ row_matrix_
+ {
+ row_matrix_( row_matrix_ const & );
+ row_matrix_ & operator=( row_matrix_ const & );
+ ~row_matrix_();
+
+ public:
+
+ template <class T>
+ BOOST_LA_INLINE_TRIVIAL
+ row_matrix_ &
+ operator=( T const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <class T>
+ struct
+ pipe_return<T,row_matrix_tag>
+ {
+ typedef row_matrix_<T> type;
+ };
+ }
+
+ template <class Matrix>
+ struct matrix_traits;
+
+ template <class OriginalVector>
+ struct
+ matrix_traits< la_detail::row_matrix_<OriginalVector> >
+ {
+ typedef la_detail::row_matrix_<OriginalVector> this_matrix;
+ typedef typename vector_traits<OriginalVector>::scalar_type scalar_type;
+ static int const rows=1;
+ static int const cols=vector_traits<OriginalVector>::dim;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_STATIC_ASSERT(Row==0);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<cols);
+ return vector_traits<OriginalVector>::template r<Col>(reinterpret_cast<OriginalVector const &>(x));
+ }
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_matrix & x )
+ {
+ BOOST_STATIC_ASSERT(Row==0);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<cols);
+ return vector_traits<OriginalVector>::template w<Col>(reinterpret_cast<OriginalVector &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int row, int col, this_matrix const & x )
+ {
+ BOOST_ASSERT(row==0);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return vector_traits<OriginalVector>::ir(col,reinterpret_cast<OriginalVector const &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int row, int col, this_matrix & x )
+ {
+ BOOST_ASSERT(row==0);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return vector_traits<OriginalVector>::iw(col,reinterpret_cast<OriginalVector &>(x));
+ }
+ };
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::row_matrix_tag
+ row_matrix()
+ {
+ return la_detail::row_matrix_tag();
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2008-2009 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 UUID_0B23ECEAB10E11DE8B61E7B455D89593
+#define UUID_0B23ECEAB10E11DE8B61E7B455D89593
+
+#include <boost/la/matrix_traits.hpp>
+#include <boost/la/vector_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class A,bool M=is_matrix<A>::value,bool V=is_vector<A>::value>
+ struct
+ scalar_impl
+ {
+ };
+
+ template <class A>
+ struct
+ scalar_impl<A,true,false>
+ {
+ typedef typename matrix_traits<A>::scalar_type type;
+ };
+
+ template <class A>
+ struct
+ scalar_impl<A,false,true>
+ {
+ typedef typename vector_traits<A>::scalar_type type;
+ };
+ }
+
+ template <class A>
+ struct
+ scalar
+ {
+ typedef typename la_detail::scalar_impl<A>::type type;
+ };
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/scalar_traits.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/scalar_traits.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,27 @@
+//Copyright (c) 2008-2009 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 UUID_57E1C032B9F311DEB7D9BAFE55D89593
+#define UUID_57E1C032B9F311DEB7D9BAFE55D89593
+
+#include <boost/la/config.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class Scalar>
+ struct
+ scalar_traits
+ {
+ static BOOST_LA_INLINE_TRIVIAL Scalar zero() { return Scalar(0); }
+ static BOOST_LA_INLINE_TRIVIAL Scalar one() { return Scalar(1); }
+ };
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/sw.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/sw.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,59 @@
+//Copyright (c) 2008-2009 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 UUID_3B4919D8A41411DEB0818E4C56D89593
+#define UUID_3B4919D8A41411DEB0818E4C56D89593
+
+#include <boost/la/detail/swizzle_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int A0>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<A0>
+ sw() { return la_detail::swizzle_idx<A0>(); }
+
+ template <int A0,int A1>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<A0,la_detail::swizzle_idx<A1> >
+ sw() { return la_detail::swizzle_idx<A0,la_detail::swizzle_idx<A1> >(); }
+
+ template <int A0,int A1,int A2>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<A0,la_detail::swizzle_idx<A1,la_detail::swizzle_idx<A2> > >
+ sw() { return la_detail::swizzle_idx<A0,la_detail::swizzle_idx<A1,la_detail::swizzle_idx<A2> > >(); }
+
+ template <int A0,int A1,int A2,int A3>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<A0,la_detail::swizzle_idx<A1,la_detail::swizzle_idx<A2,la_detail::swizzle_idx<A3> > > >
+ sw() { return la_detail::swizzle_idx<A0,la_detail::swizzle_idx<A1,la_detail::swizzle_idx<A2,la_detail::swizzle_idx<A3> > > >(); }
+
+ template <class A0>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<A0>::value>
+ sw() { return la_detail::swizzle_idx<la_detail::swizzle_tag<A0>::value>(); }
+
+ template <class A0,class A1>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<A0>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<A1>::value> >
+ sw() { return la_detail::swizzle_idx<la_detail::swizzle_tag<A0>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<A1>::value> >(); }
+
+ template <class A0,class A1,class A2>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<A0>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<A1>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<A2>::value> > >
+ sw() { return la_detail::swizzle_idx<la_detail::swizzle_tag<A0>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<A1>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<A2>::value> > >(); }
+
+ template <class A0,class A1,class A2,class A3>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::swizzle_idx<la_detail::swizzle_tag<A0>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<A1>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<A2>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<A3>::value> > > >
+ sw() { return la_detail::swizzle_idx<la_detail::swizzle_tag<A0>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<A1>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<A2>::value,la_detail::swizzle_idx<la_detail::swizzle_tag<A3>::value> > > >(); }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/swizzle.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/swizzle.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,11 @@
+//Copyright (c) 2008-2009 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 UUID_80A14BD2BB8811DE8D5FE47455D89593
+#define UUID_80A14BD2BB8811DE8D5FE47455D89593
+
+#include <boost/la/custom/swizzle.hpp>
+
+#endif
Added: sandbox/la/boost/la/trans_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/trans_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,197 @@
+//Copyright (c) 2008-2009 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 UUID_57209366ACCF11DE9FDFA6A855D89593
+#define UUID_57209366ACCF11DE9FDFA6A855D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/la/scalar_traits.hpp>
+#include <boost/la/detail/bind_oper.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class OriginalVector>
+ struct vector_traits;
+
+ namespace
+ la_detail
+ {
+ struct trans_matrix_tag { };
+
+ template <class OriginalVector>
+ class
+ trans_matrix_
+ {
+ trans_matrix_( trans_matrix_ const & );
+ trans_matrix_ & operator=( trans_matrix_ const & );
+ ~trans_matrix_();
+
+ public:
+
+ template <class T>
+ BOOST_LA_INLINE_TRIVIAL
+ trans_matrix_ &
+ operator=( T const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <class T>
+ struct
+ pipe_return<T,trans_matrix_tag>
+ {
+ typedef trans_matrix_<T> type;
+ };
+
+ template <class M,int Row,int Col,bool TransCol=(Col==matrix_traits<M>::cols-1)>
+ struct read_trans_matrix;
+
+ template <class OriginalVector,int Row,int Col,bool TransCol>
+ struct
+ read_trans_matrix<trans_matrix_<OriginalVector>,Row,Col,TransCol>
+ {
+ static
+ BOOST_LA_INLINE_CRITICAL
+ typename matrix_traits< trans_matrix_<OriginalVector> >::scalar_type
+ f( trans_matrix_<OriginalVector> const & )
+ {
+ return scalar_traits<typename matrix_traits< trans_matrix_<OriginalVector> >::scalar_type>::zero();
+ }
+ };
+
+ template <class OriginalVector,int D>
+ struct
+ read_trans_matrix<trans_matrix_<OriginalVector>,D,D,false>
+ {
+ static
+ BOOST_LA_INLINE_CRITICAL
+ typename matrix_traits< trans_matrix_<OriginalVector> >::scalar_type
+ f( trans_matrix_<OriginalVector> const & )
+ {
+ return scalar_traits<typename matrix_traits< trans_matrix_<OriginalVector> >::scalar_type>::one();
+ }
+ };
+
+ template <class OriginalVector,int D>
+ struct
+ read_trans_matrix<trans_matrix_<OriginalVector>,D,D,true>
+ {
+ static
+ BOOST_LA_INLINE_CRITICAL
+ typename matrix_traits< trans_matrix_<OriginalVector> >::scalar_type
+ f( trans_matrix_<OriginalVector> const & )
+ {
+ return scalar_traits<typename matrix_traits< trans_matrix_<OriginalVector> >::scalar_type>::one();
+ }
+ };
+
+ template <class OriginalVector,int Row,int Col>
+ struct
+ read_trans_matrix<trans_matrix_<OriginalVector>,Row,Col,true>
+ {
+ static
+ BOOST_LA_INLINE_CRITICAL
+ typename matrix_traits< trans_matrix_<OriginalVector> >::scalar_type
+ f( trans_matrix_<OriginalVector> const & x )
+ {
+ return vector_traits<OriginalVector>::template r<Row>(reinterpret_cast<OriginalVector const &>(x));
+ }
+ };
+ }
+
+ template <class OriginalVector>
+ struct
+ matrix_traits< la_detail::trans_matrix_<OriginalVector> >
+ {
+ typedef la_detail::trans_matrix_<OriginalVector> this_matrix;
+ typedef typename vector_traits<OriginalVector>::scalar_type scalar_type;
+ static int const rows=vector_traits<OriginalVector>::dim+1;
+ static int const cols=vector_traits<OriginalVector>::dim+1;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<cols);
+ return la_detail::read_trans_matrix<la_detail::trans_matrix_<OriginalVector>,Row,Col>::f(x);
+ }
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_matrix & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ BOOST_STATIC_ASSERT(Col==cols-1);
+ BOOST_STATIC_ASSERT(Col!=Row);
+ return vector_traits<OriginalVector>::template w<Row>(reinterpret_cast<OriginalVector &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int row, int col, this_matrix const & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return
+ row==col?
+ scalar_traits<scalar_type>::one():
+ (col==cols-1?
+ vector_traits<OriginalVector>::ir(row,reinterpret_cast<OriginalVector const &>(x)):
+ scalar_traits<scalar_type>::zero());
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int row, int col, this_matrix const & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(col==cols-1);
+ BOOST_ASSERT(col!=row);
+ return vector_traits<OriginalVector>::iw(row,reinterpret_cast<OriginalVector &>(x));
+ }
+ };
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::trans_matrix_tag
+ trans_matrix()
+ {
+ return la_detail::trans_matrix_tag();
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/transpose.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/transpose.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,140 @@
+//Copyright (c) 2008-2009 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 UUID_1248A9CEA26911DE88EE9BF055D89593
+#define UUID_1248A9CEA26911DE88EE9BF055D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/matrix_traits.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/la/detail/bind_oper.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ struct transpose_tag { };
+
+ template <class OriginalMatrix>
+ class
+ transpose_
+ {
+ transpose_( transpose_ const & );
+ transpose_ & operator=( transpose_ const & );
+ ~transpose_();
+
+ public:
+
+ template <class T>
+ BOOST_LA_INLINE_TRIVIAL
+ transpose_ &
+ operator=( T const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <class T>
+ struct
+ pipe_return<T,transpose_tag>
+ {
+ typedef transpose_<T> type;
+ };
+ }
+
+ template <class OriginalMatrix>
+ struct
+ matrix_traits< la_detail::transpose_<OriginalMatrix> >
+ {
+ typedef typename matrix_traits<OriginalMatrix>::scalar_type scalar_type;
+ typedef la_detail::transpose_<OriginalMatrix> this_matrix;
+ static int const rows=matrix_traits<OriginalMatrix>::cols;
+ static int const cols=matrix_traits<OriginalMatrix>::rows;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<cols);
+ return matrix_traits<OriginalMatrix>::template r<Col,Row>(reinterpret_cast<OriginalMatrix const &>(x));
+ }
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_matrix & x )
+ {
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<cols);
+ return matrix_traits<OriginalMatrix>::template w<Col,Row>(reinterpret_cast<OriginalMatrix &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int row, int col, this_matrix const & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return matrix_traits<OriginalMatrix>::ir(col,row,reinterpret_cast<OriginalMatrix const &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int row, int col, this_matrix & x )
+ {
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return matrix_traits<OriginalMatrix>::iw(col,row,reinterpret_cast<OriginalMatrix &>(x));
+ }
+ };
+
+ template <class OriginalMatrix,int R,int C,class S>
+ struct
+ deduce_matrix<la_detail::transpose_<OriginalMatrix>,R,C,S>
+ {
+ typedef mat<S,R,C> type;
+ };
+
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::transpose_tag
+ transpose()
+ {
+ return la_detail::transpose_tag();
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vec.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vec.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,31 @@
+//Copyright (c) 2008-2009 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 UUID_44EB56F0A33711DEB31B41BB56D89593
+#define UUID_44EB56F0A33711DEB31B41BB56D89593
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class T,int D>
+ struct
+ vec
+ {
+ T a[D];
+ template <class R>
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vec_traits.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vec_traits.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,76 @@
+//Copyright (c) 2008-2009 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 UUID_57AD596EA33711DE914576BB56D89593
+#define UUID_57AD596EA33711DE914576BB56D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/vec.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class Vector>
+ struct vector_traits;
+
+ template <class T,int Dim>
+ struct
+ vector_traits< vec<T,Dim> >
+ {
+ typedef vec<T,Dim> this_vector;
+ typedef T scalar_type;
+ static int const dim=Dim;
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_vector const & x )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ return x.a[I];
+ }
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_vector & x )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ return x.a[I];
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int i, this_vector const & x )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<dim);
+ return x.a[i];
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int i, this_vector & x )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<dim);
+ return x.a[i];
+ }
+ };
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_access.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_access.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,95 @@
+//Copyright (c) 2008-2009 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 UUID_49E8D458B92011DEA014CFC356D89593
+#define UUID_49E8D458B92011DEA014CFC356D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int I>
+ struct
+ vector_access_tag
+ {
+ };
+ }
+
+ template <class Vector,int I>
+ BOOST_LA_INLINE_TRIVIAL
+ typename vector_traits<Vector>::scalar_type &
+ operator|( Vector & a, la_detail::vector_access_tag<I> (*)() )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<vector_traits<Vector>::dim);
+ return vector_traits<Vector>::template w<I>(a);
+ }
+
+ template <class Vector,int I>
+ BOOST_LA_INLINE_TRIVIAL
+ typename vector_traits<Vector>::scalar_type
+ operator|( Vector const & a, la_detail::vector_access_tag<I> (*)() )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<vector_traits<Vector>::dim);
+ return vector_traits<Vector>::template r<I>(a);
+ }
+
+ template <class Vector,int I>
+ BOOST_LA_INLINE_TRIVIAL
+ typename vector_traits<Vector>::scalar_type &
+ operator|( Vector & a, la_detail::vector_access_tag<I> )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<vector_traits<Vector>::dim);
+ return vector_traits<Vector>::template w<I>(a);
+ }
+
+ template <class Vector,int I>
+ BOOST_LA_INLINE_TRIVIAL
+ typename vector_traits<Vector>::scalar_type
+ operator|( Vector const & a, la_detail::vector_access_tag<I> )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<vector_traits<Vector>::dim);
+ return vector_traits<Vector>::template r<I>(a);
+ }
+
+ template <int I>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::vector_access_tag<I>
+ A()
+ {
+ return la_detail::vector_access_tag<I>();
+ }
+
+ BOOST_LA_INLINE_TRIVIAL la_detail::vector_access_tag<0> X() { return la_detail::vector_access_tag<0>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::vector_access_tag<1> Y() { return la_detail::vector_access_tag<1>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::vector_access_tag<2> Z() { return la_detail::vector_access_tag<2>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::vector_access_tag<3> W() { return la_detail::vector_access_tag<3>(); }
+
+ BOOST_LA_INLINE_TRIVIAL la_detail::vector_access_tag<0> A0() { return la_detail::vector_access_tag<0>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::vector_access_tag<1> A1() { return la_detail::vector_access_tag<1>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::vector_access_tag<2> A2() { return la_detail::vector_access_tag<2>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::vector_access_tag<3> A3() { return la_detail::vector_access_tag<3>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::vector_access_tag<4> A4() { return la_detail::vector_access_tag<4>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::vector_access_tag<5> A5() { return la_detail::vector_access_tag<5>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::vector_access_tag<6> A6() { return la_detail::vector_access_tag<6>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::vector_access_tag<7> A7() { return la_detail::vector_access_tag<7>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::vector_access_tag<8> A8() { return la_detail::vector_access_tag<8>(); }
+ BOOST_LA_INLINE_TRIVIAL la_detail::vector_access_tag<9> A9() { return la_detail::vector_access_tag<9>(); }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_assign.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_assign.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,69 @@
+//Copyright (c) 2008-2009 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 UUID_2DBFB616A33B11DE8413405255D89593
+#define UUID_2DBFB616A33B11DE8413405255D89593
+
+#include <boost/la/custom/vector_assign.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_assign_defined
+ {
+ static bool const value=false;
+ };
+
+ template <int I,int N>
+ struct
+ copy_vector_elements
+ {
+ template <class A,class B>
+ static
+ void
+ f( A & a, B const & b )
+ {
+ vector_traits<A>::template w<I>(a)=vector_traits<B>::template r<I>(b);
+ copy_vector_elements<I+1,N>::f(a,b);
+ }
+ };
+
+ template <int N>
+ struct
+ copy_vector_elements<N,N>
+ {
+ template <class A,class B>
+ static
+ void
+ f( A & a, B const & b )
+ {
+ }
+ };
+ }
+
+ template <class A,class B>
+ inline
+ typename boost::enable_if_c<
+ is_vector<A>::value && is_vector<B>::value &&
+ vector_traits<A>::dim==vector_traits<B>::dim &&
+ !la_detail::vector_assign_defined<vector_traits<A>::dim>::value,
+ A &>::type
+ assign( A & a, B const & b )
+ {
+ la_detail::copy_vector_elements<0,vector_traits<A>::dim>::f(a,b);
+ return a;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_cross.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_cross.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,43 @@
+//Copyright (c) 2008-2009 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 UUID_297CF186B5CE11DE82D9405255D89593
+#define UUID_297CF186B5CE11DE82D9405255D89593
+
+#include <boost/utility/enable_if.hpp>
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ is_vector<A>::value && is_vector<B>::value &&
+ vector_traits<A>::dim==3 && vector_traits<B>::dim==3,
+ deduce_vector2<A,B,3> >::type
+ cross( A const & a, B const & b )
+ {
+ typedef typename deduce_vector2<A,B,3>::type R;
+ R r;
+ vector_traits<R>::template w<0>(r)=
+ vector_traits<A>::template r<1>(a)*vector_traits<B>::template r<2>(b)-
+ vector_traits<A>::template r<2>(a)*vector_traits<B>::template r<1>(b);
+ vector_traits<R>::template w<1>(r)=
+ vector_traits<A>::template r<2>(a)*vector_traits<B>::template r<0>(b)-
+ vector_traits<A>::template r<0>(a)*vector_traits<B>::template r<2>(b);
+ vector_traits<R>::template w<2>(r)=
+ vector_traits<A>::template r<0>(a)*vector_traits<B>::template r<1>(b)-
+ vector_traits<A>::template r<1>(a)*vector_traits<B>::template r<0>(b);
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_div_eq_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_div_eq_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,43 @@
+//Copyright (c) 2008-2009 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 UUID_B2B925F0B24511DE93FAFEC855D89593
+#define UUID_B2B925F0B24511DE93FAFEC855D89593
+
+#include <boost/la/custom/vector_div_eq_scalar.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_div_eq_scalar_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value &&
+ !la_detail::vector_div_eq_scalar_defined<vector_traits<A>::dim>::value,
+ A &>::type
+ operator/=( A & a, typename vector_traits<A>::scalar_type b )
+ {
+ for( int i=0; i!=vector_traits<A>::dim; ++i )
+ vector_traits<A>::iw(i,a)/=b;
+ return a;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_div_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_div_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,45 @@
+//Copyright (c) 2008-2009 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 UUID_BAB20574B24511DEB1F314C955D89593
+#define UUID_BAB20574B24511DEB1F314C955D89593
+
+#include <boost/la/custom/vector_div_scalar.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_div_scalar_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ is_vector<A>::value &&
+ !la_detail::vector_div_scalar_defined<vector_traits<A>::dim>::value,
+ deduce_vector<A> >::type
+ operator/( A const & a, typename vector_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_vector<A>::type R;
+ R r;
+ for( int i=0; i!=vector_traits<A>::dim; ++i )
+ vector_traits<R>::iw(i,r)=vector_traits<A>::ir(i,a)/b;
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_dot.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_dot.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,48 @@
+//Copyright (c) 2008-2009 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 UUID_AEE9F0E4B24A11DE9DEAB5F355D89593
+#define UUID_AEE9F0E4B24A11DE9DEAB5F355D89593
+
+#include <boost/la/deduce_scalar.hpp>
+#include <boost/la/custom/vector_dot.hpp>
+#include <boost/la/scalar_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_dot_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ is_vector<A>::value && is_vector<B>::value &&
+ vector_traits<A>::dim==vector_traits<B>::dim &&
+ !la_detail::vector_dot_defined<vector_traits<A>::dim>::value,
+ deduce_scalar<typename vector_traits<A>::scalar_type,typename vector_traits<B>::scalar_type> >::type
+ dot( A const & a, B const & b )
+ {
+ typedef typename deduce_scalar<typename vector_traits<A>::scalar_type,typename vector_traits<B>::scalar_type>::type T;
+ T m(scalar_traits<T>::zero());
+ for( int i=0; i!=vector_traits<A>::dim; ++i )
+ m+=vector_traits<A>::ir(i,a)*vector_traits<B>::ir(i,b);
+ return m;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_eq_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_eq_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,45 @@
+//Copyright (c) 2008-2009 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 UUID_4D9687F6B17A11DE85A4B05556D89593
+#define UUID_4D9687F6B17A11DE85A4B05556D89593
+
+#include <boost/la/custom/vector_eq_vector.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_eq_vector_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value && is_vector<B>::value &&
+ vector_traits<A>::dim==vector_traits<B>::dim &&
+ !la_detail::vector_eq_vector_defined<vector_traits<A>::dim>::value,
+ bool>::type
+ operator==( A const & a, B const & b )
+ {
+ for( int i=0; i!=vector_traits<A>::dim; ++i )
+ if( vector_traits<A>::ir(i,a)!=vector_traits<B>::ir(i,b) )
+ return false;
+ return true;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_magnitude.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_magnitude.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2008-2009 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 UUID_DC874E82B24711DEB6B7E4E155D89593
+#define UUID_DC874E82B24711DEB6B7E4E155D89593
+
+#include <boost/la/custom/vector_magnitude.hpp>
+#include <boost/la/scalar_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_magnitude_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value &&
+ !la_detail::vector_magnitude_defined<vector_traits<A>::dim>::value,
+ typename vector_traits<A>::scalar_type>::type
+ magnitude( A const & a )
+ {
+ typedef typename vector_traits<A>::scalar_type T;
+ T m(scalar_traits<T>::zero());
+ for( int i=0; i!=vector_traits<A>::dim; ++i )
+ {
+ T x=vector_traits<A>::ir(i,a);
+ m+=x*x;
+ }
+ return sqrt<T>(m);
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_magnitude2.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_magnitude2.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2008-2009 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 UUID_F31342B0B24611DE9CA3E5D455D89593
+#define UUID_F31342B0B24611DE9CA3E5D455D89593
+
+#include <boost/la/custom/vector_magnitude2.hpp>
+#include <boost/la/scalar_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_magnitude2_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value &&
+ !la_detail::vector_magnitude2_defined<vector_traits<A>::dim>::value,
+ typename vector_traits<A>::scalar_type>::type
+ magnitude2( A const & a )
+ {
+ typedef typename vector_traits<A>::scalar_type T;
+ T m(scalar_traits<T>::zero());
+ for( int i=0; i!=vector_traits<A>::dim; ++i )
+ {
+ T x=vector_traits<A>::ir(i,a);
+ m+=x*x;
+ }
+ return m;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_make.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_make.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+//Copyright (c) 2008-2009 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 UUID_14D494E4ACC511DE91E7736255D89593
+#define UUID_14D494E4ACC511DE91E7736255D89593
+
+#include <boost/la/custom/vector_make.hpp>
+#include <boost/la/vector_assign.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_make_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class R,class A>
+ BOOST_LA_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vector<R>::value && is_vector<A>::value &&
+ vector_traits<R>::dim==vector_traits<A>::dim &&
+ !la_detail::vector_make_defined<vector_traits<R>::dim>::value,
+ R>::type
+ make( A const & a )
+ {
+ R r; assign(r,a);
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_minus.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_minus.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,45 @@
+//Copyright (c) 2008-2009 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 UUID_727590E8B24811DEBB692CE655D89593
+#define UUID_727590E8B24811DEBB692CE655D89593
+
+#include <boost/la/custom/vector_minus.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_minus_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ is_vector<A>::value &&
+ !la_detail::vector_minus_defined<vector_traits<A>::dim>::value,
+ deduce_vector<A> >::type
+ operator-( A const & a )
+ {
+ typedef typename deduce_vector<A>::type R;
+ R r;
+ for( int i=0; i!=vector_traits<A>::dim; ++i )
+ vector_traits<R>::iw(i,r)=-vector_traits<A>::ir(i,a);
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_minus_eq_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_minus_eq_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+//Copyright (c) 2008-2009 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 UUID_67F80510B24811DE87CAFDE555D89593
+#define UUID_67F80510B24811DE87CAFDE555D89593
+
+#include <boost/la/custom/vector_minus_eq_vector.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_minus_eq_vector_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value && is_vector<B>::value &&
+ vector_traits<A>::dim==vector_traits<B>::dim &&
+ !la_detail::vector_minus_eq_vector_defined<vector_traits<A>::dim>::value,
+ A &>::type
+ operator-=( A & a, B const & b )
+ {
+ for( int i=0; i!=vector_traits<A>::dim; ++i )
+ vector_traits<A>::iw(i,a)-=vector_traits<B>::ir(i,b);
+ return a;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_minus_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_minus_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2008-2009 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 UUID_6076F0B2B24811DE8B5FB2E555D89593
+#define UUID_6076F0B2B24811DE8B5FB2E555D89593
+
+#include <boost/utility/enable_if.hpp>
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/la/custom/vector_minus_vector.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_minus_vector_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ is_vector<A>::value && is_vector<B>::value &&
+ vector_traits<A>::dim==vector_traits<B>::dim &&
+ !la_detail::vector_minus_vector_defined<vector_traits<A>::dim>::value,
+ deduce_vector2<A,B,vector_traits<A>::dim> >::type
+ operator-( A const & a, B const & b )
+ {
+ typedef typename deduce_vector2<A,B,vector_traits<A>::dim>::type R;
+ R r;
+ for( int i=0; i!=vector_traits<A>::dim; ++i )
+ vector_traits<R>::iw(i,r)=vector_traits<A>::ir(i,a)-vector_traits<B>::ir(i,b);
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_mul_eq_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_mul_eq_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,43 @@
+//Copyright (c) 2008-2009 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 UUID_A589319EB24611DEAFD559D255D89593
+#define UUID_A589319EB24611DEAFD559D255D89593
+
+#include <boost/la/custom/vector_mul_eq_scalar.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_mul_eq_scalar_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value &&
+ !la_detail::vector_mul_eq_scalar_defined<vector_traits<A>::dim>::value,
+ A &>::type
+ operator*=( A & a, typename vector_traits<A>::scalar_type b )
+ {
+ for( int i=0; i!=vector_traits<A>::dim; ++i )
+ vector_traits<A>::iw(i,a)*=b;
+ return a;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_mul_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_mul_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+//Copyright (c) 2008-2009 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 UUID_3B4D90BAAE3411DE9A62D77B56D89593
+#define UUID_3B4D90BAAE3411DE9A62D77B56D89593
+
+#include <boost/utility/enable_if.hpp>
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/la/custom/vector_mul_matrix.hpp>
+#include <boost/la/scalar_traits.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int M,int N>
+ struct
+ vector_mul_matrix_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ is_vector<A>::value && is_matrix<B>::value &&
+ vector_traits<A>::dim==matrix_traits<B>::rows &&
+ !la_detail::vector_mul_matrix_defined<matrix_traits<B>::rows,matrix_traits<B>::cols>::value,
+ deduce_vector2<A,B,matrix_traits<B>::cols> >::type
+ operator*( A const & a, B const & b )
+ {
+ typedef typename deduce_vector2<A,B,matrix_traits<B>::cols>::type R;
+ R r;
+ for( int i=0; i<matrix_traits<B>::cols; ++i )
+ {
+ typedef typename vector_traits<R>::scalar_type Tr;
+ Tr x(scalar_traits<Tr>::zero());
+ for( int j=0; j<matrix_traits<B>::rows; ++j )
+ x += vector_traits<A>::ir(j,a)*matrix_traits<B>::ir(j,i,b);
+ vector_traits<R>::iw(i,r) = x;
+ }
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_mul_scalar.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_mul_scalar.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,45 @@
+//Copyright (c) 2008-2009 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 UUID_AC7E24FAB24611DE9FDAA8D255D89593
+#define UUID_AC7E24FAB24611DE9FDAA8D255D89593
+
+#include <boost/la/custom/vector_mul_scalar.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_mul_scalar_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ is_vector<A>::value &&
+ !la_detail::vector_mul_scalar_defined<vector_traits<A>::dim>::value,
+ deduce_vector<A> >::type
+ operator*( A const & a, typename vector_traits<A>::scalar_type b )
+ {
+ typedef typename deduce_vector<A>::type R;
+ R r;
+ for( int i=0; i!=vector_traits<A>::dim; ++i )
+ vector_traits<R>::iw(i,r)=vector_traits<A>::ir(i,a)*b;
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_neq_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_neq_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,45 @@
+//Copyright (c) 2008-2009 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 UUID_56088E8EB17A11DEAFCCDF5556D89593
+#define UUID_56088E8EB17A11DEAFCCDF5556D89593
+
+#include <boost/la/custom/vector_neq_vector.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_neq_vector_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value && is_vector<B>::value &&
+ vector_traits<A>::dim==vector_traits<B>::dim &&
+ !la_detail::vector_neq_vector_defined<vector_traits<A>::dim>::value,
+ bool>::type
+ operator!=( A const & a, B const & b )
+ {
+ for( int i=0; i!=vector_traits<A>::dim; ++i )
+ if( vector_traits<A>::ir(i,a)!=vector_traits<B>::ir(i,b) )
+ return true;
+ return false;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_plus_eq_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_plus_eq_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+//Copyright (c) 2008-2009 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 UUID_5874D99CB24811DEAF6380E555D89593
+#define UUID_5874D99CB24811DEAF6380E555D89593
+
+#include <boost/la/custom/vector_plus_eq_vector.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_plus_eq_vector_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename enable_if_c<
+ is_vector<A>::value && is_vector<B>::value &&
+ vector_traits<A>::dim==vector_traits<B>::dim &&
+ !la_detail::vector_plus_eq_vector_defined<vector_traits<A>::dim>::value,
+ A &>::type
+ operator+=( A & a, B const & b )
+ {
+ for( int i=0; i!=vector_traits<A>::dim; ++i )
+ vector_traits<A>::iw(i,a)+=vector_traits<B>::ir(i,b);
+ return a;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_plus_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_plus_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2008-2009 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 UUID_7BB81DC4B24811DEB47F45E655D89593
+#define UUID_7BB81DC4B24811DEB47F45E655D89593
+
+#include <boost/utility/enable_if.hpp>
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/la/custom/vector_plus_vector.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <int D>
+ struct
+ vector_plus_vector_defined
+ {
+ static bool const value=false;
+ };
+ }
+
+ template <class A,class B>
+ BOOST_LA_INLINE_OPERATIONS
+ typename lazy_enable_if_c<
+ is_vector<A>::value && is_vector<B>::value &&
+ vector_traits<A>::dim==vector_traits<B>::dim &&
+ !la_detail::vector_plus_vector_defined<vector_traits<A>::dim>::value,
+ deduce_vector2<A,B,vector_traits<A>::dim> >::type
+ operator+( A const & a, B const & b )
+ {
+ typedef typename deduce_vector2<A,B,vector_traits<A>::dim>::type R;
+ R r;
+ for( int i=0; i!=vector_traits<A>::dim; ++i )
+ vector_traits<R>::iw(i,r)=vector_traits<A>::ir(i,a)+vector_traits<B>::ir(i,b);
+ return r;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_scalar_cast.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_scalar_cast.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,104 @@
+//Copyright (c) 2008-2009 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 UUID_8A95F136B96E11DE87FE1CD855D89593
+#define UUID_8A95F136B96E11DE87FE1CD855D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/vector_traits.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class OriginalType,class Scalar>
+ class
+ vector_scalar_cast_
+ {
+ vector_scalar_cast_( vector_scalar_cast_ const & );
+ vector_scalar_cast_ & operator=( vector_scalar_cast_ const & );
+ ~vector_scalar_cast_();
+
+ public:
+
+ template <class T>
+ BOOST_LA_INLINE_TRIVIAL
+ vector_scalar_cast_ &
+ operator=( T const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <bool> struct scalar_cast_vector_filter { };
+ template <> struct scalar_cast_vector_filter<true> { typedef int type; };
+ }
+
+ template <class OriginalType,class Scalar>
+ struct
+ vector_traits< la_detail::vector_scalar_cast_<OriginalType,Scalar> >
+ {
+ typedef Scalar scalar_type;
+ typedef la_detail::vector_scalar_cast_<OriginalType,Scalar> this_vector;
+ static int const dim=vector_traits<OriginalType>::dim;
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_vector const & x )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ return scalar_type(vector_traits<OriginalType>::template r<I>(reinterpret_cast<OriginalType const &>(x)));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int i, this_vector const & x )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<dim);
+ return scalar_type(vector_traits<OriginalType>::ir(i,reinterpret_cast<OriginalType const &>(x)));
+ }
+ };
+
+ template <class OriginalType,class Scalar,int D,class S>
+ struct
+ deduce_vector<la_detail::vector_scalar_cast_<OriginalType,Scalar>,D,S>
+ {
+ typedef vec<S,D> type;
+ };
+
+ template <class Scalar,class T>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::vector_scalar_cast_<T,Scalar> const &
+ scalar_cast( T const & x, typename la_detail::scalar_cast_vector_filter<is_vector<T>::value>::type=0 )
+ {
+ return reinterpret_cast<la_detail::vector_scalar_cast_<T,Scalar> const &>(x);
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vector_traits.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vector_traits.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,32 @@
+//Copyright (c) 2008-2009 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 UUID_8048C57EA3E711DE9FF857BA55D89593
+#define UUID_8048C57EA3E711DE9FF857BA55D89593
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class Vector>
+ struct
+ vector_traits
+ {
+ static int const dim=0;
+ typedef void scalar_type;
+ };
+
+ template <class T>
+ struct
+ is_vector
+ {
+ static bool const value=vector_traits<T>::dim>0;
+ };
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/vref.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/vref.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,137 @@
+//Copyright (c) 2008-2009 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 UUID_6D6AC1FAA33311DEABBA9A9D56D89593
+#define UUID_6D6AC1FAA33311DEABBA9A9D56D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class T>
+ class
+ vref_
+ {
+ vref_( vref_ const & );
+ vref_ & operator=( vref_ const & );
+ ~vref_();
+
+ public:
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ vref_ &
+ operator=( R const & x )
+ {
+ assign(*this,x);
+ return *this;
+ }
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+ }
+
+ template <class Vector>
+ struct vector_traits;
+
+ template <class Vector>
+ struct
+ vector_traits< la_detail::vref_<Vector> >
+ {
+ typedef typename vector_traits<Vector>::scalar_type scalar_type;
+ typedef la_detail::vref_<Vector> this_vector;
+ static int const dim=vector_traits<Vector>::dim;
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_vector const & x )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ return vector_traits<Vector>::template r<I>(reinterpret_cast<Vector const &>(x));
+ }
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ w( this_vector & x )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ return vector_traits<Vector>::template w<I>(reinterpret_cast<Vector &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int i, this_vector const & x )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<dim);
+ return vector_traits<Vector>::ir(i,reinterpret_cast<Vector const &>(x));
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type &
+ iw( int i, this_vector & x )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<dim);
+ return vector_traits<Vector>::iw(i,reinterpret_cast<Vector &>(x));
+ }
+ };
+
+ template <class Vector,int D,class S>
+ struct
+ deduce_vector<la_detail::vref_<Vector>,D,S>
+ {
+ typedef vec<S,D> type;
+ };
+
+ template <class Vector>
+ BOOST_LA_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vector<Vector>::value,
+ la_detail::vref_<Vector> const &>::type
+ vref( Vector const & a )
+ {
+ return reinterpret_cast<la_detail::vref_<Vector> const &>(a);
+ }
+
+ template <class Vector>
+ BOOST_LA_INLINE_TRIVIAL
+ typename enable_if_c<
+ is_vector<Vector>::value,
+ la_detail::vref_<Vector> &>::type
+ vref( Vector & a )
+ {
+ return reinterpret_cast<la_detail::vref_<Vector> &>(a);
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/zero_determinant_error.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/zero_determinant_error.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,13 @@
+//Copyright (c) 2008-2009 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 UUID_81EEF522AE1111DEBC3F4DFC55D89593
+#define UUID_81EEF522AE1111DEBC3F4DFC55D89593
+
+#include <boost/la/error.hpp>
+
+namespace boost { namespace la { struct zero_determinant_error: virtual error { }; } }
+
+#endif
Added: sandbox/la/boost/la/zero_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/zero_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,102 @@
+//Copyright (c) 2008-2009 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 UUID_FC410EE8A17B11DEA6064CA655D89593
+#define UUID_FC410EE8A17B11DEA6064CA655D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/la/scalar_traits.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class T,int Rows,int Cols>
+ class
+ zero_matrix_
+ {
+ zero_matrix_( zero_matrix_ const & );
+ zero_matrix_ & operator=( zero_matrix_ const & );
+ ~zero_matrix_();
+
+ public:
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+ }
+
+ template <class Matrix>
+ struct matrix_traits;
+
+ template <class T,int Rows,int Cols>
+ struct
+ matrix_traits< la_detail::zero_matrix_<T,Rows,Cols> >
+ {
+ typedef la_detail::zero_matrix_<T,Rows,Cols> this_matrix;
+ typedef T scalar_type;
+ static int const rows=Rows;
+ static int const cols=Cols;
+
+ template <int Row,int Col>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_matrix const & x )
+ {
+ BOOST_ASSERT(&x==0);
+ BOOST_STATIC_ASSERT(Row>=0);
+ BOOST_STATIC_ASSERT(Row<Rows);
+ BOOST_STATIC_ASSERT(Col>=0);
+ BOOST_STATIC_ASSERT(Col<Cols);
+ return scalar_traits<scalar_type>::zero();
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int row, int col, this_matrix const & x )
+ {
+ BOOST_ASSERT(&x==0);
+ BOOST_ASSERT(row>=0);
+ BOOST_ASSERT(row<rows);
+ BOOST_ASSERT(col>=0);
+ BOOST_ASSERT(col<cols);
+ return scalar_traits<scalar_type>::zero();
+ }
+ };
+
+ template <class T,int Rows,int Cols,int R,int C,class S>
+ struct
+ deduce_matrix<la_detail::zero_matrix_<T,Rows,Cols>,R,C,S>
+ {
+ typedef mat<S,R,C> type;
+ };
+
+ template <class T,int Rows,int Cols>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::zero_matrix_<T,Rows,Cols> const &
+ zero_matrix()
+ {
+ return *(la_detail::zero_matrix_<T,Rows,Cols> const *)0;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/boost/la/zero_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/boost/la/zero_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,90 @@
+//Copyright (c) 2008-2009 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 UUID_F8101DE2A17F11DE976588BF55D89593
+#define UUID_F8101DE2A17F11DE976588BF55D89593
+
+#include <boost/la/config.hpp>
+#include <boost/la/deduce_vector.hpp>
+#include <boost/la/scalar_traits.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ namespace
+ la_detail
+ {
+ template <class T,int Dim>
+ class
+ zero_vector_
+ {
+ zero_vector_( zero_vector_ const & );
+ zero_vector_ & operator=( zero_vector_ const & );
+ ~zero_vector_();
+
+ public:
+
+ template <class R>
+ BOOST_LA_INLINE_TRIVIAL
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+ }
+
+ template <class Vector>
+ struct vector_traits;
+
+ template <class T,int Dim>
+ struct
+ vector_traits< la_detail::zero_vector_<T,Dim> >
+ {
+ typedef la_detail::zero_vector_<T,Dim> this_vector;
+ typedef T scalar_type;
+ static int const dim=Dim;
+
+ template <int I>
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ r( this_vector const & x )
+ {
+ BOOST_ASSERT(&x==0);
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<Dim);
+ return scalar_traits<scalar_type>::zero();
+ }
+
+ static
+ BOOST_LA_INLINE_CRITICAL
+ scalar_type
+ ir( int i, this_vector const & x )
+ {
+ BOOST_ASSERT(&x==0);
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<Dim);
+ return scalar_traits<scalar_type>::zero();
+ }
+ };
+
+ template <class T,int Dim>
+ BOOST_LA_INLINE_TRIVIAL
+ la_detail::zero_vector_<T,Dim> const &
+ zero_vector()
+ {
+ return *(la_detail::zero_vector_<T,Dim> const *)0;
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/libs/la/doc/BOOST_LA_FORCE_INLINE.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/BOOST_LA_FORCE_INLINE.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>BOOST_LA_FORCE_INLINE</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>BOOST_LA_FORCE_INLINE</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>#ifndef <span class="RenoLink">BOOST_LA_FORCE_INLINE</span>
+#define <span class="RenoLink">BOOST_LA_FORCE_INLINE</span> /*platform-specific*/
+#endif</pre>
+</div></div><p>This macro is not used directly by Boost LA, except as the default value of other macros from <span class="RenoLink">boost/la/config.hpp</span>. A user-defined <span class="RenoLink">BOOST_LA_FORCE_INLINE</span> should expand to a value that is valid substitution of the inline keyword in function definitions, to indicate that the compiler <i>must</i> inline the function. Of course, actual inlining may not occur.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">BOOST_LA_INLINE_CRITICAL | BOOST_LA_INLINE_TRIVIAL | boost/la/config.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/BOOST_LA_INLINE.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/BOOST_LA_INLINE.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>BOOST_LA_INLINE</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>BOOST_LA_INLINE</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>#ifndef <span class="RenoLink">BOOST_LA_INLINE</span>
+#define <span class="RenoLink">BOOST_LA_INLINE</span> inline
+#endif</pre>
+</div></div><p>This macro is not used directly by Boost LA, except as the default value of other macros from <span class="RenoLink">boost/la/config.hpp</span>. A user-defined <span class="RenoLink">BOOST_LA_INLINE</span> should expand to a value that is valid substitution of the inline keyword in function definitions.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">BOOST_LA_INLINE_OPERATIONS | boost/la/config.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/BOOST_LA_INLINE_CRITICAL.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/BOOST_LA_INLINE_CRITICAL.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>BOOST_LA_INLINE_CRITICAL</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>BOOST_LA_INLINE_CRITICAL</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>#ifndef <span class="RenoLink">BOOST_LA_INLINE_CRITICAL</span>
+#define <span class="RenoLink">BOOST_LA_INLINE_CRITICAL</span> <span class="RenoLink">BOOST_LA_FORCE_INLINE</span>
+#endif</pre>
+</div></div><p>Boost LA uses <span class="RenoLink">BOOST_LA_INLINE_CRITICAL</span> in definitions of functions that are critical for the overall performance of the library, such as functions that access individual vector and matrix elements.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">BOOST_LA_INLINE_RECURSION | boost/la/config.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/BOOST_LA_INLINE_OPERATIONS.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/BOOST_LA_INLINE_OPERATIONS.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>BOOST_LA_INLINE_OPERATIONS</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>BOOST_LA_INLINE_OPERATIONS</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>#ifndef <span class="RenoLink">BOOST_LA_INLINE_OPERATIONS</span>
+#define <span class="RenoLink">BOOST_LA_INLINE_OPERATIONS</span> <span class="RenoLink">BOOST_LA_INLINE</span>
+#endif</pre>
+</div></div><p>Boost LA uses <span class="RenoLink">BOOST_LA_INLINE_OPERATIONS</span> in definitions of functions that implement various high-level linear algebra operations, such as matrix multiplication, computing the magnitude of a vector, etc.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">BOOST_LA_INLINE_RECURSION | boost/la/config.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/BOOST_LA_INLINE_RECURSION.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/BOOST_LA_INLINE_RECURSION.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>BOOST_LA_INLINE_RECURSION</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>BOOST_LA_INLINE_RECURSION</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>#ifndef <span class="RenoLink">BOOST_LA_INLINE_RECURSION</span>
+#define <span class="RenoLink">BOOST_LA_INLINE_RECURSION</span> <span class="RenoLink">BOOST_LA_INLINE_OPERATIONS</span>
+#endif</pre>
+</div></div><p>Boost LA uses <span class="RenoLink">BOOST_LA_INLINE_RECURSION</span> in definitions of recursive functions that are not critical for the overall performance of the library (definitions of all critical functions, including critical recursive functions, use <span class="RenoLink">BOOST_LA_INLINE_CRITICAL</span>.)</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/config.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/BOOST_LA_INLINE_TRIVIAL.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/BOOST_LA_INLINE_TRIVIAL.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>BOOST_LA_INLINE_TRIVIAL</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>BOOST_LA_INLINE_TRIVIAL</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>#ifndef <span class="RenoLink">BOOST_LA_INLINE_TRIVIAL</span>
+#define <span class="RenoLink">BOOST_LA_INLINE_TRIVIAL</span> <span class="RenoLink">BOOST_LA_FORCE_INLINE</span>
+#endif</pre>
+</div></div><p>Boost LA uses <span class="RenoLink">BOOST_LA_INLINE_TRIVIAL</span> in definitions of functions that are not critical for the overall performance of the library but are extremely simple (such as one-liners) and therefore should always be inlined.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/config.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/Index_of_Functions.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/Index_of_Functions.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>Index of Functions</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Index of Functions</h3>
+</div>
+<div class="RenoIndex"><h3>a</h3>
+<p>assign(matrix,matrix)</p>
+<p>assign(vector,vector)</p>
+<h3>c</h3>
+<p>cross</p>
+<h3>d</h3>
+<p>determinant</p>
+<p>dot</p>
+<h3>i</h3>
+<p>identity_matrix</p>
+<p>inverse</p>
+<h3>m</h3>
+<p>magnitude</p>
+<p>magnitude2</p>
+<p>make(matrix)</p>
+<p>make(vector)</p>
+<p>matrix_traits<Matrix>::ir</p>
+<p>matrix_traits<Matrix>::iw</p>
+<p>matrix_traits<Matrix>::r</p>
+<p>matrix_traits<Matrix>::w</p>
+<h3>o</h3>
+<p>operator!=(matrix,matrix)</p>
+<p>operator!=(vector,vector)</p>
+<p>operator*(matrix,matrix)</p>
+<p>operator*(matrix,scalar)</p>
+<p>operator*(matrix,vector)</p>
+<p>operator*(vector,matrix)</p>
+<p>operator*(vector,scalar)</p>
+<p>operator*=(matrix,matrix)</p>
+<p>operator*=(matrix,scalar)</p>
+<p>operator*=(vector,scalar)</p>
+<p>operator+(matrix,matrix)</p>
+<p>operator+(vector,vector)</p>
+<p>operator+=(matrix,matrix)</p>
+<p>operator+=(vector,vector)</p>
+<p>operator-(matrix)</p>
+<p>operator-(matrix,matrix)</p>
+<p>operator-(vector)</p>
+<p>operator-(vector,vector)</p>
+<p>operator-=(matrix,matrix)</p>
+<p>operator-=(vector,vector)</p>
+<p>operator/(matrix,scalar)</p>
+<p>operator/(vector,scalar)</p>
+<p>operator/=(matrix,scalar)</p>
+<p>operator/=(vector,scalar)</p>
+<p>operator==(matrix,matrix)</p>
+<p>operator==(vector,vector)</p>
+<h3>r</h3>
+<p>rotx_matrix</p>
+<p>roty_matrix</p>
+<p>rotz_matrix</p>
+<h3>v</h3>
+<p>vector_traits<Vector>::ir</p>
+<p>vector_traits<Vector>::iw</p>
+<p>vector_traits<Vector>::r</p>
+<p>vector_traits<Vector>::w</p>
+<h3>z</h3>
+<p>zero_matrix</p>
+<p>zero_vector</p>
+</div>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/Index_of_Headers.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/Index_of_Headers.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>Index of Headers</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Index of Headers</h3>
+</div>
+<div class="RenoIndex"><h3>a</h3>
+<p>boost/la/all.hpp</p>
+<p>boost/la/array_matrix_traits.hpp</p>
+<p>boost/la/array_vector_traits.hpp</p>
+<h3>c</h3>
+<p>boost/la/col.hpp</p>
+<p>boost/la/col_matrix.hpp</p>
+<p>boost/la/config.hpp</p>
+<h3>d</h3>
+<p>boost/la/deduce_matrix.hpp</p>
+<p>boost/la/deduce_scalar.hpp</p>
+<p>boost/la/deduce_vector.hpp</p>
+<p>boost/la/delc.hpp</p>
+<p>boost/la/delr.hpp</p>
+<p>boost/la/delrc.hpp</p>
+<p>boost/la/diag.hpp</p>
+<p>boost/la/diag_matrix.hpp</p>
+<h3>e</h3>
+<p>boost/la/error.hpp</p>
+<h3>i</h3>
+<p>boost/la/identity_matrix.hpp</p>
+<h3>m</h3>
+<p>boost/la/mat.hpp</p>
+<p>boost/la/mat_traits.hpp</p>
+<p>boost/la/matrix_access.hpp</p>
+<p>boost/la/matrix_assign.hpp</p>
+<p>boost/la/matrix_determinant.hpp</p>
+<p>boost/la/matrix_div_eq_scalar.hpp</p>
+<p>boost/la/matrix_div_scalar.hpp</p>
+<p>boost/la/matrix_eq_matrix.hpp</p>
+<p>boost/la/matrix_inverse.hpp</p>
+<p>boost/la/matrix_make.hpp</p>
+<p>boost/la/matrix_minus.hpp</p>
+<p>boost/la/matrix_minus_eq_matrix.hpp</p>
+<p>boost/la/matrix_minus_matrix.hpp</p>
+<p>boost/la/matrix_mul_eq_matrix.hpp</p>
+<p>boost/la/matrix_mul_eq_scalar.hpp</p>
+<p>boost/la/matrix_mul_matrix.hpp</p>
+<p>boost/la/matrix_mul_scalar.hpp</p>
+<p>boost/la/matrix_mul_vector.hpp</p>
+<p>boost/la/matrix_neq_matrix.hpp</p>
+<p>boost/la/matrix_plus_eq_matrix.hpp</p>
+<p>boost/la/matrix_plus_matrix.hpp</p>
+<p>boost/la/matrix_scalar_cast.hpp</p>
+<p>boost/la/matrix_traits.hpp</p>
+<p>boost/la/mref.hpp</p>
+<h3>r</h3>
+<p>boost/la/rotx_matrix.hpp</p>
+<p>boost/la/roty_matrix.hpp</p>
+<p>boost/la/rotz_matrix.hpp</p>
+<p>boost/la/row.hpp</p>
+<p>boost/la/row_matrix.hpp</p>
+<h3>s</h3>
+<p>boost/la/scalar.hpp</p>
+<p>boost/la/scalar_traits.hpp</p>
+<p>boost/la/sw.hpp</p>
+<p>boost/la/swizzle.hpp</p>
+<h3>t</h3>
+<p>boost/la/trans_matrix.hpp</p>
+<p>boost/la/transpose.hpp</p>
+<h3>v</h3>
+<p>boost/la/vec.hpp</p>
+<p>boost/la/vec_traits.hpp</p>
+<p>boost/la/vector_access.hpp</p>
+<p>boost/la/vector_assign.hpp</p>
+<p>boost/la/vector_cross.hpp</p>
+<p>boost/la/vector_div_eq_scalar.hpp</p>
+<p>boost/la/vector_div_scalar.hpp</p>
+<p>boost/la/vector_dot.hpp</p>
+<p>boost/la/vector_eq_vector.hpp</p>
+<p>boost/la/vector_magnitude.hpp</p>
+<p>boost/la/vector_magnitude2.hpp</p>
+<p>boost/la/vector_make.hpp</p>
+<p>boost/la/vector_minus.hpp</p>
+<p>boost/la/vector_minus_eq_vector.hpp</p>
+<p>boost/la/vector_minus_vector.hpp</p>
+<p>boost/la/vector_mul_eq_scalar.hpp</p>
+<p>boost/la/vector_mul_matrix.hpp</p>
+<p>boost/la/vector_mul_scalar.hpp</p>
+<p>boost/la/vector_neq_vector.hpp</p>
+<p>boost/la/vector_plus_eq_vector.hpp</p>
+<p>boost/la/vector_plus_vector.hpp</p>
+<p>boost/la/vector_scalar_cast.hpp</p>
+<p>boost/la/vector_traits.hpp</p>
+<p>boost/la/vref.hpp</p>
+<h3>z</h3>
+<p>boost/la/zero_determinant_error.hpp</p>
+<p>boost/la/zero_matrix.hpp</p>
+<p>boost/la/zero_vector.hpp</p>
+</div>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/Index_of_Types.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/Index_of_Types.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>Index of Types</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Index of Types</h3>
+</div>
+<div class="RenoIndex"><h3>d</h3>
+<p>deduce_matrix</p>
+<p>deduce_matrix2</p>
+<p>deduce_scalar</p>
+<p>deduce_vector</p>
+<p>deduce_vector2</p>
+<h3>i</h3>
+<p>is_matrix</p>
+<p>is_vector</p>
+<h3>m</h3>
+<p>mat</p>
+<p>matrix_traits</p>
+<p>matrix_traits<Matrix>::scalar_type</p>
+<p>matrix_traits<mat<T,Rows,Cols>></p>
+<h3>s</h3>
+<p>scalar</p>
+<p>scalar_traits</p>
+<h3>v</h3>
+<p>vec</p>
+<p>vector_traits</p>
+<p>vector_traits<Vector>::scalar_type</p>
+<p>vector_traits<vec<T,Dim>></p>
+</div>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/Index_of_View_Proxies.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/Index_of_View_Proxies.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,69 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>Index of View Proxies</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Index of View Proxies</h3>
+</div>
+<div class="RenoIndex"><h3>c</h3>
+<p>col</p>
+<p>col_matrix</p>
+<h3>d</h3>
+<p>delc</p>
+<p>delr</p>
+<p>delrc</p>
+<p>diag</p>
+<p>diag_matrix</p>
+<h3>m</h3>
+<p>matrix/A</p>
+<p>mref</p>
+<h3>r</h3>
+<p>row</p>
+<p>row_matrix</p>
+<h3>s</h3>
+<p>scalar_cast(matrix)</p>
+<p>scalar_cast(vector)</p>
+<p>sw</p>
+<p>swizzling support</p>
+<h3>t</h3>
+<p>trans_matrix</p>
+<p>transpose</p>
+<h3>v</h3>
+<p>vector/A</p>
+<p>vref</p>
+</div>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/Interoperability.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/Interoperability.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,73 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>Interoperability</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><h3>Interoperability</h3>
+<p>An important design goal of Boost LA is that it works seamlessly with 3rd-party matrix and vector types and libraries. Even when such libraries overload the same C++ operators as Boost LA, it is safe to bring the entire boost::la namespace in scope by specifying:</p>
+<pre>using namespace boost::la;</pre>
+<p>This does not cause interference with 3rd-party overloads because:</p>
+<div><ul><li>All boost::la function and operator overloads use <span class="RenoLink">SFINAE</span>, which makes them disappear unless an expression uses types that have the appropriate Boost LA-specific <span class="RenoLink">type traits</span> defined;</li>
+<li>Whenever Boost LA function or operator overloads are compatible with a given expression, their signature is extremely generic, which means that virtually any other compatible overload will be a better match in any overload resolution.</li>
+</ul></div>
+<p>Bringing the boost::la namespace in scope lets you mix vector and matrix types that come from different APIs into a common, type-safe framework. In this case however, it should be considered what types should be returned by binary operations that return an object by value. For example, if you multiply a 3x3 matrix m1 of type user_matrix1 by a 3x3 matrix m2 of type user_matrix2, what type should that operation return?</p>
+<p>The answer is that by default, Boost LA returns some kind of compatible matrix type, so (in C++0x terms) it is always safe to write:</p>
+<pre>auto m = m1 <span class="RenoLink">*</span> m2;</pre>
+<p>However, the type deduced by default converts implicitly to any compatible matrix type, so the following is also valid, at the cost of a temporary:</p>
+<pre>user_matrix1 m = m1 <span class="RenoLink">*</span> m2;</pre>
+<p>While the temporary object can be optimized away by most compilers, it can be avoided altogether by specializing the <span class="RenoLink">deduce_matrix2</span> template. For example, to specify that multiplying user_matrix1 by user_matrix2 should always produce a user_matrix1 object, you could specify:</p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <>
+ struct <span class="RenoLink">deduce_matrix2</span><user_matrix1,user_matrix2,3,3>
+ { typedef user_matrix1 type; };
+
+ template <>
+ struct <span class="RenoLink">deduce_matrix2</span><user_matrix2,user_matrix1,3,3>
+ { typedef user_matrix1 type; };
+ }
+ }</pre>
+<p>Finally, any time you need to create a matrix of a particular C++ type from any other compatible matrix type, you can use the <span class="RenoLink">make</span> function:</p>
+<pre>user_matrix2 m=<span class="RenoLink">make</span><user_matrix2>(m1 <span class="RenoLink">*</span> m2);</pre>
+<p>Perhaps surprisingly, unary operations that return an object by value have a similar, though simpler issue. That's because the argument they're called with may not be copyable, as in:</p>
+<pre>float m[3][3];
+auto inv = <span class="RenoLink">inverse</span>(m);</pre>
+<p>Again, Boost LA "just works", returning an object of suitable matrix type that is copyable. This deduction process can also be controlled, by specializing the <span class="RenoLink">deduce_matrix</span> template.</p>
+</div><div class="RenoIncludeDIV"><div class="RenoHR"><hr/></div>
+<p><b>Tutorial:</b> <span class="RenoLink">Vector and Matrix Types</span> | <span class="RenoLink">C Arrays</span> | <span class="RenoLink">Views</span> | <span class="RenoLink">Swizzling</span> | <span class="RenoLink">Interoperability</span> | Back to <span class="RenoLink">Boost LA</span></p>
+</div><!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/MSVC_view_proxy_bug.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/MSVC_view_proxy_bug.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>MSVC view proxy bug</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>MSVC View Proxy Bug</h3>
+</div>
+<p>Microsoft Visual C++ prior to and including version 9.0 erroneously issues compile errors in <i>template</i> <span class="RenoLink">view proxy</span> operator| overloads (non-template operator| overloads are OK.) An alternative syntax is supported to work around this issue. For example, instead of m|<span class="RenoLink">col</span><C> you can use m|<span class="RenoLink">col</span><C>(). The alternative syntax is valid on all compilers, not only on MSVC.</p>
+<p>Note however that this issue affects only template <span class="RenoLink">view proxies</span>. Here is a complete list the affected <span class="RenoLink">view proxies</span>: <span class="RenoLink">col</span>, <span class="RenoLink">row</span>, <span class="RenoLink">delc</span>, <span class="RenoLink">delr</span>, <span class="RenoLink">delrc</span>, <span class="RenoLink">sw</span>, <span class="RenoLink">matrix/A</span>, <span class="RenoLink">vector/A</span>.</p>
+</div><div class="RenoAutoDIV"></div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/SFINAE.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/SFINAE.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>SFINAE</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>SFINAE</h3>
+</div>
+<p>SFINAE stands for Substitution Failure Is Not An Error. This refers to a situation in C++ where an invalid substitution of template parameters (including when those parameters are deduced implicitly as a result of an unqualified call) is not in itself an error.</p>
+<p>In absence of concepts support, SFINAE can be used to disable function template overloads that would otherwise present a signature that is too generic. More formally, this is supported by the <span class="RenoLink">Boost enable_if library</span>.</p>
+<p>For example, Boost LA defines operator* overload which works with any user-defined matrix and vector types. The naive approach would be to declare this overload as follows:</p>
+<pre>template <class Matrix,class Vector>
+Vector operator*( Matrix const & m, Vector const & v );</pre>
+<p>Even if the function definition might contain code that would compile only for Matrix and Vector types, because the function declaration itself is valid, it will participate in overload rezolutions when multiplying objects of any two types whatsoever. This typically renders overload resolutions ambiguous and the compiler (correctly) issues an error.</p>
+<p>Using enable_if, Boost LA declares such overloads in a way that they retain their generic signature but only appear (in overload resolutions) if the passed parameters make sense depending on the semantics of the operation being defined:</p>
+<pre>template <class A,class B>
+typename enable_if_c<
+ <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_vector</span><B>::value && <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>, //Condition
+ B>::type //Return type
+operator*( A const & a, B const & b );</pre>
+<p>For brevity, function declarations throughout this documentation specify the condition which controls whether they are enabled or not without specifying exactly what enable_if construct is used to achieve this effect.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">assign(matrix,matrix) | assign(vector,vector) | cross | determinant | dot | inverse | magnitude | magnitude2 | make(matrix) | make(vector) | mref | operator!=(matrix,matrix) | operator!=(vector,vector) | operator*(matrix,matrix) | operator*(matrix,scalar) | operator*(matrix,vector) | <a href="operator_times_vector_matrix_
.html">operator*(vector,matrix)</a> | operator*(vector,scalar) | operator*=(matrix,matrix) | operator*=(matrix,scalar) | operator*=(vector,scalar) | operator+(matrix,matrix) | operator+(vector,vector) | operator+=(matrix,matrix) | operator+=(vector,vector) | operator-(matrix) | operator-(matrix,matrix) | operator-(vector) | operator-(vector,vector) | <a href="operator_sub_eq_matrix_ma
trix_.html">operator-=(matrix,matrix)</a> | operator-=(vector,vector) | operator/(matrix,scalar) | operator/(vector,scalar) | operator/=(matrix,scalar) | operator/=(vector,scalar) | operator==(matrix,matrix) | operator==(vector,vector) | scalar_cast(matrix) | scalar_cast(vector) | vref</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/Swizzling.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/Swizzling.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>Swizzling</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Swizzling</h3>
+</div>
+<p>Boost LA provides arbitrary <span class="RenoLink">swizzling support</span> for vector types, exposing vector views of different dimentions, and/or views with reordered elements. The example below rotates v around the X axis, and stores the resulting vector back in v but with the X and Y elements swapped:</p>
+<pre>float3 v = {0,0,7};
+v|<span class="RenoLink">YXZ</span> = <span class="RenoLink">rotx_matrix</span><3>(3.14159f) <span class="RenoLink">*</span> v;</pre>
+<p>A special case of swizzling provides next-dimension-view to a vector object, adding either 0 or 1 as its last component. Assuming float3 is a 3D vector type, and float4 is a 4D vector type, the following statements are valid:</p>
+<pre>float3 v = {0,0,7};
+float4 point = v|<span class="RenoLink">XYZ1</span>; //{0,0,7,1}
+float4 vector = v|<span class="RenoLink">XYZ0</span>; //{0,0,7,0}</pre>
+<p>It is also valid for swizzling to address vector elements more than once:</p>
+<pre>float3 v = {0,0,7};
+float4 v1 = v|<span class="RenoLink">ZZZZ</span>; //{7,7,7,7}</pre>
+<p>More generic swizzling is supported by the <span class="RenoLink">sw</span> function template. It provides overloads that can be instantiated either by a list of vector element indexes or by a list of vector element names, for example:</p>
+<pre>float3 v1, v2;
+v1 = v2|<span class="RenoLink">sw</span><1,0,2>; //swaps elements with index 0 and 1
+v1 = v2|<span class="RenoLink">sw</span><<span class="RenoLink">_y_</span>,<span class="RenoLink">_x_</span>,<span class="RenoLink">_z_</span>>; //same as v2|<span class="RenoLink">YXZ</span>;</pre>
+</div><div class="RenoIncludeDIV"><div class="RenoHR"><hr/></div>
+<p><b>Tutorial:</b> <span class="RenoLink">Vector and Matrix Types</span> | <span class="RenoLink">C Arrays</span> | <span class="RenoLink">Views</span> | <span class="RenoLink">Swizzling</span> | <span class="RenoLink">Interoperability</span> | Back to <span class="RenoLink">Boost LA</span></p>
+</div><!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/Synopsis.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/Synopsis.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,793 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>Synopsis</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Synopsis</h3>
+</div>
+<p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/all.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Type traits ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T>
+ struct
+ <span class="RenoLink">is_matrix</span>
+ {
+ static bool const value=/*unspecified*/;
+ };</span>
+
+ <span class="RenoIncludeSPAN">template <class M>
+ struct
+ <span class="RenoLink">matrix_traits</span>
+ {
+ /*main template members unspecified*/
+ };
+
+ /*
+ User-defined (partial) specializations:
+
+ template <>
+ struct
+ <span class="RenoLink">matrix_traits</span>< Matrix >
+ {
+ <span class="RenoIncludeSPAN"> static int const <span class="RenoLink">rows</span> = /*user-defined*/;</span>
+ <span class="RenoIncludeSPAN"> static int const <span class="RenoLink">cols</span> = /*user-defined*/;</span>
+ <span class="RenoIncludeSPAN"> typedef /*user-defined*/ <span class="RenoLink">scalar_type</span>;</span>
+
+ <span class="RenoIncludeSPAN"> template <int R,int C> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">r</span>( Matrix const & m );</span>
+ <span class="RenoIncludeSPAN"> template <int R,int C> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">w</span>( Matrix & m );</span>
+
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">ir</span>( int r, int c, Matrix const & m );</span>
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">iw</span>( int r, int c, Matrix & m );</span>
+ };
+ */</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T>
+ struct
+ <span class="RenoLink">is_vector</span>
+ {
+ static bool const value=/*unspecified*/;
+ };</span>
+
+ <span class="RenoIncludeSPAN">template <class V>
+ struct
+ <span class="RenoLink">vector_traits</span>
+ {
+ /*main template members unspecified*/
+ };
+
+ /*
+ User-defined (partial) specializations:
+
+ template <>
+ struct
+ <span class="RenoLink">vector_traits</span>< Vector >
+ {
+ <span class="RenoIncludeSPAN"> static int const <span class="RenoLink">dim</span> = /*user-defined*/;</span>
+ <span class="RenoIncludeSPAN"> typedef /*user-defined*/ <span class="RenoLink">scalar_type</span>;</span>
+
+ <span class="RenoIncludeSPAN"> template <int I> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">r</span>( Vector const & v );</span>
+ <span class="RenoIncludeSPAN"> template <int I> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">w</span>( Vector & v );</span>
+
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">ir</span>( int i, Vector const & v );</span>
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">iw</span>( int i, Vector & v );</span>
+ };
+ */</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class Scalar>
+ struct
+ <span class="RenoLink">scalar_traits</span>
+ {
+ static Scalar zero() { return Scalar(0); }
+ static Scalar one() { return Scalar(1); }
+ };</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** Binary matrix,scalar operations ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">operator*</span>( A const & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">operator/</span>( A const & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator*=</span>( A & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator/=</span>( A & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** Binary vector,scalar operations ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_vector</span><A>::type
+ <span class="RenoLink">operator*</span>( A const & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_vector</span><A>::type
+ <span class="RenoLink">operator/</span>( A const & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator*=</span>( A & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator/=</span>( A & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** Binary matrix,matrix operations ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_matrix2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>,<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator*</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator*=</span>( A & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_matrix2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator+</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_matrix2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator-</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator+=</span>( A & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator-=</span>( A & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator==</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator!=</span>( A const & a, B const & b );</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** Binary vector,vector operations ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_scalar</span><A,B>::type
+ <span class="RenoLink">dot</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==3 && <span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>==3
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,3>::type
+ <span class="RenoLink">cross</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>>::type
+ <span class="RenoLink">operator+</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>>::type
+ <span class="RenoLink">operator-</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator+=</span>( A & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator-=</span>( A & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator==</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator!=</span>( A const & a, B const & b );</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** Binary vector/matrix operations ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>>::type
+ <span class="RenoLink">operator*</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator*</span>( A const & a, B const & b );</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** Unary matrix operations ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">operator-</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>
+ template <class A>
+ <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span>
+ <span class="RenoLink">determinant</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>
+
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">inverse</span>( A const & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> det );
+
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">inverse</span>( A const & a );</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** Unary vector operations ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_vector</span><A>::type
+ <span class="RenoLink">operator-</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span>
+ <span class="RenoLink">magnitude</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span>
+ <span class="RenoLink">magnitude2</span>( A const & a );</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** Conversion functions ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><R>::value && <span class="RenoLink">is_matrix</span><A>::value &&
+ // <span class="RenoLink">matrix_traits</span><R>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><R>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>
+ template <class R,class A>
+ R
+ <span class="RenoLink">make</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><R>::value && <span class="RenoLink">is_vector</span><A>::value &&
+ // <span class="RenoLink">vector_traits</span><R>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>
+ template <class R,class A>
+ R
+ <span class="RenoLink">make</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">assign</span>( A & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">assign</span>( A & a, B const & b );</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** Creating matrix objects ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T,int R,int C>
+ -unspecified-return-type-
+ <span class="RenoLink">zero_matrix</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class S,int D>
+ -unspecified-return-type- <span class="RenoLink">identity_matrix</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int Dim,class T>
+ -unspecified-return-type-
+ <span class="RenoLink">rotx_matrix</span>( T angle );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int Dim,class T>
+ -unspecified-return-type-
+ <span class="RenoLink">roty_matrix</span>( T angle );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int Dim,class T>
+ -unspecified-return-type-
+ <span class="RenoLink">rotz_matrix</span>( T angle );</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** Creating vector objects ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T,int S>
+ -unspecified-return-type-
+ <span class="RenoLink">zero_vector</span>();</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** <span class="RenoLink">View proxies</span> of matrix type ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">row_matrix</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">col_matrix</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">diag_matrix</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">trans_matrix</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">transpose</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int R>
+ -unspecified-return-type- <span class="RenoLink">delr</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int C>
+ -unspecified-return-type- <span class="RenoLink">delc</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int R,int C>
+ -unspecified-return-type- <span class="RenoLink">delrc</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class Scalar,class A>
+ -unspecified-return_type- <span class="RenoLink">scalar_cast</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ -unspecified-return-type- <span class="RenoLink">mref</span>( A & a );</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** <span class="RenoLink">View proxies</span> of vector type ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int R>
+ -unspecified-return-type- <span class="RenoLink">row</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int C>
+ -unspecified-return-type- <span class="RenoLink">col</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">diag</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class Scalar,class A>
+ -unspecified-return_type- <span class="RenoLink">scalar_cast</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ -unspecified-return-type- <span class="RenoLink">vref</span>( A & a );</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** Accessing matrix elements ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int R,int C>
+ -unspecified-return-type- <span class="RenoLink">A</span>();
+
+ -unspecified-return-type- A00();
+ -unspecified-return-type- A01();
+ ...
+ -unspecified-return-type- A09();
+ -unspecified-return-type- A10();
+ ...
+ ...
+ -unspecified-return-type- A99();</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** Accessing vector elements, swizzling ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int I>
+ -unspecified-return-type- <span class="RenoLink">A</span>();
+
+ -unspecified-return-type- A0();
+ -unspecified-return-type- A1();
+ ...
+ -unspecified-return-type- A9();
+
+ -unspecified-return-type- X();
+ -unspecified-return-type- Y();
+ -unspecified-return-type- Z();
+ -unspecified-return-type- W();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">struct _x_;
+ struct _y_;
+ struct _z_;
+ struct _w_;
+ struct _0_;
+ struct _1_;
+
+ template <int I1,int I2,...int IN>
+ -unspecified-return-type- <span class="RenoLink">sw</span>();
+
+ template <class A1,class A2,...class AN>
+ -unspecified-return-type- <span class="RenoLink">sw</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//2D <span class="RenoLink">view proxies</span>:
+ -unspecified-return-type- XX();
+ -unspecified-return-type- XY();
+ -unspecified-return-type- XZ();
+ -unspecified-return-type- XW();
+ -unspecified-return-type- X0();
+ -unspecified-return-type- X1();
+ -unspecified-return-type- YX();
+ -unspecified-return-type- YY();
+ -unspecified-return-type- YZ();
+ -unspecified-return-type- YW();
+ -unspecified-return-type- Y0();
+ -unspecified-return-type- Y1();
+ -unspecified-return-type- ZX();
+ -unspecified-return-type- ZY();
+ -unspecified-return-type- ZZ();
+ -unspecified-return-type- ZW();
+ -unspecified-return-type- Z0();
+ -unspecified-return-type- Z1();
+ -unspecified-return-type- WX();
+ -unspecified-return-type- WY();
+ -unspecified-return-type- WZ();
+ -unspecified-return-type- WW();
+ -unspecified-return-type- W0();
+ -unspecified-return-type- W1();
+
+ //3D <span class="RenoLink">view proxies</span>:
+ -unspecified-return-type- XXX();
+ ...
+ -unspecified-return-type- XXW();
+ -unspecified-return-type- XX0();
+ -unspecified-return-type- XX1();
+ -unspecified-return-type- XYX();
+ ...
+ -unspecified-return-type- XY1();
+ ...
+ -unspecified-return-type- WW1();
+
+ //4D <span class="RenoLink">view proxies</span>:
+ -unspecified-return-type- XXXX();
+ ...
+ -unspecified-return-type- XXXW();
+ -unspecified-return-type- XXX0();
+ -unspecified-return-type- XXX1();
+ -unspecified-return-type- XXYX();
+ ...
+ -unspecified-return-type- XXY1();
+ ...
+ -unspecified-return-type- WWW1();</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** Matrix and vector types ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T,int Rows,int Cols>
+ struct
+ <span class="RenoLink">mat</span>
+ {
+ T a[Rows][Cols];
+
+ template <class R>
+ operator R() const
+ {
+ R r;
+ <span class="RenoLink">assign</span>(r,*this);
+ return r;
+ }
+ };</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class Matrix>
+ struct <span class="RenoLink">matrix_traits</span>;
+
+ template <class T,int Rows,int Cols>
+ struct
+ <span class="RenoLink">matrix_traits</span>< <span class="RenoLink">mat</span><T,Rows,Cols> >
+ {
+ typedef T scalar_type;
+ static int const rows=Rows;
+ static int const cols=Cols;
+
+ template <int Row,int Col>
+ static
+ scalar_type
+ <span class="RenoLink">r</span>( <span class="RenoLink">mat</span><T,Rows,Cols> const & x )
+ {
+ return x.a[Row][Col];
+ }
+
+ template <int Row,int Col>
+ static
+ scalar_type &
+ <span class="RenoLink">w</span>( <span class="RenoLink">mat</span><T,Rows,Cols> & x )
+ {
+ return x.a[Row][Col];
+ }
+
+ static
+ scalar_type
+ <span class="RenoLink">ir</span>( int row, int col, <span class="RenoLink">mat</span><T,Rows,Cols> const & x )
+ {
+ return x.a[row][col];
+ }
+
+ static
+ scalar_type &
+ <span class="RenoLink">iw</span>( int row, int col, <span class="RenoLink">mat</span><T,Rows,Cols> & x )
+ {
+ return x.a[row][col];
+ }
+ };</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T,int Dim>
+ struct
+ <span class="RenoLink">vec</span>
+ {
+ T a[Dim];
+
+ template <class R>
+ operator R() const
+ {
+ R r;
+ <span class="RenoLink">assign</span>(r,*this);
+ return r;
+ }
+ };</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class Vector>
+ struct <span class="RenoLink">vector_traits</span>;
+
+ template <class T,int Dim>
+ struct
+ <span class="RenoLink">vector_traits</span>< <span class="RenoLink">vec</span><T,Dim> >
+ {
+ typedef T scalar_type;
+ static int const dim=Dim;
+
+ template <int I>
+ static
+ scalar_type
+ <span class="RenoLink">r</span>( <span class="RenoLink">vec</span><T,Dim> const & x )
+ {
+ return x.a[I];
+ }
+
+ template <int I>
+ static
+ scalar_type &
+ <span class="RenoLink">w</span>( <span class="RenoLink">vec</span><T,Dim> & x )
+ {
+ return x.a[I];
+ }
+
+ static
+ scalar_type
+ <span class="RenoLink">ir</span>( int i, <span class="RenoLink">vec</span><T,Dim> const & x )
+ {
+ return x.a[i];
+ }
+
+ static
+ scalar_type &
+ <span class="RenoLink">iw</span>( int i, <span class="RenoLink">vec</span><T,Dim> & x )
+ {
+ return x.a[i];
+ }
+ };</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** Generic programming utilities ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <
+ class Matrix,
+ int Rows=<span class="RenoLink">matrix_traits<Matrix>::rows</span>,
+ int Cols=<span class="RenoLink">matrix_traits<Matrix>::cols</span>,
+ class Scalar=typename <span class="RenoLink">matrix_traits<Matrix>::scalar_type</span>>
+ struct
+ <span class="RenoLink">deduce_matrix</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span>
+
+ <span class="RenoIncludeSPAN">template <class A,class B,int Rows,int Cols>
+ struct
+ <span class="RenoLink">deduce_matrix2</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <
+ class Vector,
+ int Dim=<span class="RenoLink">vector_traits<Vector>::dim</span>,
+ class Scalar=typename <span class="RenoLink">vector_traits<Vector>::scalar_type</span>>
+ struct
+ <span class="RenoLink">deduce_vector</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span>
+
+ <span class="RenoIncludeSPAN">template <class A,class B,int Dim>
+ struct
+ <span class="RenoLink">deduce_vector2</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class A,class B>
+ struct
+ <span class="RenoLink">deduce_scalar</span>
+ {
+ typedef typename impl<A,B>::type type;
+ };</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T>
+ struct
+ <span class="RenoLink">scalar</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span></span></span>
+
+
+
+<span class="RenoIncludeSPAN"> //*** Exception types ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">struct
+ <span class="RenoLink">error</span>:
+ virtual boost::exception,
+ virtual std::exception
+ {
+ };</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">struct <span class="RenoLink">zero_determinant_error</span>: virtual <span class="RenoLink">error</span> { };</span></span></span>
+
+ } //namespace la
+
+ } //namespace boost
+
+
+
+<span class="RenoIncludeSPAN">//*** Configuration macros ***
+
+<span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_FORCE_INLINE</span>
+#define <span class="RenoLink">BOOST_LA_FORCE_INLINE</span> /*platform-specific*/
+#endif</span>
+
+<span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_INLINE</span>
+#define <span class="RenoLink">BOOST_LA_INLINE</span> inline
+#endif</span>
+
+<span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_INLINE_TRIVIAL</span>
+#define <span class="RenoLink">BOOST_LA_INLINE_TRIVIAL</span> <span class="RenoLink">BOOST_LA_FORCE_INLINE</span>
+#endif</span>
+
+<span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_INLINE_CRITICAL</span>
+#define <span class="RenoLink">BOOST_LA_INLINE_CRITICAL</span> <span class="RenoLink">BOOST_LA_FORCE_INLINE</span>
+#endif</span>
+
+<span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_INLINE_OPERATIONS</span>
+#define <span class="RenoLink">BOOST_LA_INLINE_OPERATIONS</span> <span class="RenoLink">BOOST_LA_INLINE</span>
+#endif</span>
+
+<span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_INLINE_RECURSION</span>
+#define <span class="RenoLink">BOOST_LA_INLINE_RECURSION</span> <span class="RenoLink">BOOST_LA_INLINE_OPERATIONS</span>
+#endif</span></span></span>
+</pre>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/Views.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/Views.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>Views</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Views</h3>
+</div>
+<p>Overloads of operator| are used to access vector and matrix elements, as well as to provide different views of matrix and vector types. The example below multiplies column 1 (Boost LA indexes are always zero-based) of the matrix m by a scalar:</p>
+<pre>void
+multiply_column1( float33 & m, float scalar )
+ {
+ m|<span class="RenoLink">col</span><1> <span class="RenoLink">*=</span> scalar;
+ }</pre>
+<p>The expression m|<span class="RenoLink">col</span><1> returns a reference of an unspecified 3D vector type that accessses column 1 of m. Note however that this does not create any temporary objects; instead <span class="RenoLink">operator*=</span> above works directly with a reference to m.</p>
+<p>Here is another example, multiplying a transposed view of a matrix by a vector of the user-defined type float3:</p>
+<pre>float3 v = {0,0,7};
+float3 vrot = (<span class="RenoLink">rotx_matrix</span><3>(3.14159f) | <span class="RenoLink">transpose</span>) <span class="RenoLink">*</span> v;</pre>
+<p>In general, the various view functions return references of unspecified, non-copyable types that refer to the original object. They can be assigned from or converted to any compatible vector or matrix type.</p>
+<p>For more details, see <span class="RenoLink">View Proxies</span>.</p>
+</div><div class="RenoIncludeDIV"><div class="RenoHR"><hr/></div>
+<p><b>Tutorial:</b> <span class="RenoLink">Vector and Matrix Types</span> | <span class="RenoLink">C Arrays</span> | <span class="RenoLink">Views</span> | <span class="RenoLink">Swizzling</span> | <span class="RenoLink">Interoperability</span> | Back to <span class="RenoLink">Boost LA</span></p>
+</div><!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/accessing_matrix_elements.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/accessing_matrix_elements.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,64 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>accessing matrix elements</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Accessing Matrix Elements</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_access.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Accessing matrix elements ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int R,int C>
+ -unspecified-return-type- <span class="RenoLink">A</span>();
+
+ -unspecified-return-type- A00();
+ -unspecified-return-type- A01();
+ ...
+ -unspecified-return-type- A09();
+ -unspecified-return-type- A10();
+ ...
+ ...
+ -unspecified-return-type- A99();</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/accessing_vector_elements_swizzling.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/accessing_vector_elements_swizzling.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>accessing vector elements, swizzling</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Accessing Vector Elements, Swizzling</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_access.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/sw.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/swizzle.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Accessing vector elements, swizzling ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int I>
+ -unspecified-return-type- <span class="RenoLink">A</span>();
+
+ -unspecified-return-type- A0();
+ -unspecified-return-type- A1();
+ ...
+ -unspecified-return-type- A9();
+
+ -unspecified-return-type- X();
+ -unspecified-return-type- Y();
+ -unspecified-return-type- Z();
+ -unspecified-return-type- W();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">struct _x_;
+ struct _y_;
+ struct _z_;
+ struct _w_;
+ struct _0_;
+ struct _1_;
+
+ template <int I1,int I2,...int IN>
+ -unspecified-return-type- <span class="RenoLink">sw</span>();
+
+ template <class A1,class A2,...class AN>
+ -unspecified-return-type- <span class="RenoLink">sw</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//2D <span class="RenoLink">view proxies</span>:
+ -unspecified-return-type- XX();
+ -unspecified-return-type- XY();
+ -unspecified-return-type- XZ();
+ -unspecified-return-type- XW();
+ -unspecified-return-type- X0();
+ -unspecified-return-type- X1();
+ -unspecified-return-type- YX();
+ -unspecified-return-type- YY();
+ -unspecified-return-type- YZ();
+ -unspecified-return-type- YW();
+ -unspecified-return-type- Y0();
+ -unspecified-return-type- Y1();
+ -unspecified-return-type- ZX();
+ -unspecified-return-type- ZY();
+ -unspecified-return-type- ZZ();
+ -unspecified-return-type- ZW();
+ -unspecified-return-type- Z0();
+ -unspecified-return-type- Z1();
+ -unspecified-return-type- WX();
+ -unspecified-return-type- WY();
+ -unspecified-return-type- WZ();
+ -unspecified-return-type- WW();
+ -unspecified-return-type- W0();
+ -unspecified-return-type- W1();
+
+ //3D <span class="RenoLink">view proxies</span>:
+ -unspecified-return-type- XXX();
+ ...
+ -unspecified-return-type- XXW();
+ -unspecified-return-type- XX0();
+ -unspecified-return-type- XX1();
+ -unspecified-return-type- XYX();
+ ...
+ -unspecified-return-type- XY1();
+ ...
+ -unspecified-return-type- WW1();
+
+ //4D <span class="RenoLink">view proxies</span>:
+ -unspecified-return-type- XXXX();
+ ...
+ -unspecified-return-type- XXXW();
+ -unspecified-return-type- XXX0();
+ -unspecified-return-type- XXX1();
+ -unspecified-return-type- XXYX();
+ ...
+ -unspecified-return-type- XXY1();
+ ...
+ -unspecified-return-type- WWW1();</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/assign_matrix_matrix_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/assign_matrix_matrix_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,64 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>assign(matrix,matrix)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>assign(matrix,matrix)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_assign.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">assign</span>( A & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Effects:</h4>
+<p>Copies all elements of the matrix b to the matrix a.</p>
+<h4>Returns:</h4>
+<p>a.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">w</span>, b:<span class="RenoLink">r</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_assign.hpp | make(matrix) | mat</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/assign_vector_vector_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/assign_vector_vector_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>assign(vector,vector)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>assign(vector,vector)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_assign.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">assign</span>( A & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Effects:</h4>
+<p>Copies all elements of the vector b to the vector a.</p>
+<h4>Returns:</h4>
+<p>a.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">w</span>, b:<span class="RenoLink">r</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_assign.hpp | make(vector) | vec</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/binary_matrix_matrix_operations.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/binary_matrix_matrix_operations.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>binary matrix,matrix operations</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Binary Matrix,Matrix Operations</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_mul_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_mul_eq_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_plus_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_minus_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>incl
ude <<span class="RenoLink">boost/la/matrix_plus_eq_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_minus_eq_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_eq_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_neq_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Binary matrix,matrix operations ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_matrix2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>,<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator*</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator*=</span>( A & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_matrix2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator+</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_matrix2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator-</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator+=</span>( A & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator-=</span>( A & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator==</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator!=</span>( A const & a, B const & b );</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/binary_matrix_scalar_operations.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/binary_matrix_scalar_operations.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,72 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>binary matrix,scalar operations</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Binary Matrix,Scalar Operations</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_mul_scalar.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_div_scalar.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_mul_eq_scalar.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_div_eq_scalar.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Binary matrix,scalar operations ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">operator*</span>( A const & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">operator/</span>( A const & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator*=</span>( A & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator/=</span>( A & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/binary_vector_matrix_operations.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/binary_vector_matrix_operations.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>binary vector/matrix operations</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Binary Vector/matrix Operations</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_mul_vector.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_mul_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Binary vector/matrix operations ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>>::type
+ <span class="RenoLink">operator*</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator*</span>( A const & a, B const & b );</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/binary_vector_scalar_operations.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/binary_vector_scalar_operations.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,72 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>binary vector,scalar operations</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Binary Vector,Scalar Operations</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_mul_scalar.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_div_scalar.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_mul_eq_scalar.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_div_eq_scalar.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Binary vector,scalar operations ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_vector</span><A>::type
+ <span class="RenoLink">operator*</span>( A const & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_vector</span><A>::type
+ <span class="RenoLink">operator/</span>( A const & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator*=</span>( A & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator/=</span>( A & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/binary_vector_vector_operations.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/binary_vector_vector_operations.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>binary vector,vector operations</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Binary Vector,Vector Operations</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_dot.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_cross.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_plus_vector.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_minus_vector.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"
>boost/la/vector_plus_eq_vector.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_minus_eq_vector.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_eq_vector.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_neq_vector.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Binary vector,vector operations ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_scalar</span><A,B>::type
+ <span class="RenoLink">dot</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==3 && <span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>==3
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,3>::type
+ <span class="RenoLink">cross</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>>::type
+ <span class="RenoLink">operator+</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>>::type
+ <span class="RenoLink">operator-</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator+=</span>( A & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator-=</span>( A & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator==</span>( A const & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator!=</span>( A const & a, B const & b );</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_all_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_all_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/all.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/all.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/all.hpp</span>></p>
+<h4>As if:</h4>
+<p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <boost/la/*.hpp></p>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_array_matrix_traits_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_array_matrix_traits_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/array_matrix_traits.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/array_matrix_traits.hpp</h3>
+</div>
+<p>This header introduces specializations of the <span class="RenoLink">matrix_traits</span>, <span class="RenoLink">deduce_matrix</span> and <span class="RenoLink">deduce_matrix2</span> templates that make it possible to pass 2D C arrays to any Boost LA function that takes a matrix of matching size.</p>
+<div class="RenoIncludeDIV"><p>For example, to compute the determinant of a square 2D C array matrix, you can use:</p>
+<pre>float a[4][4];
+float det = <span class="RenoLink">determinant</span>(a);</pre>
+<p>To use Boost LA operator overloads, at least one of the arguments must not be of a built-in type; for example, you can't multiply a C array matrix by a scalar by using <span class="RenoLink">operator*=</span> directly. Use <span class="RenoLink">mref</span> to work around this issue:</p>
+<pre>float a[4][4];
+<span class="RenoLink">mref</span>(a) <span class="RenoLink">*=</span> 42;</pre>
+</div></div><div class="RenoAutoDIV"></div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_array_vector_traits_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_array_vector_traits_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/array_vector_traits.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/array_vector_traits.hpp</h3>
+</div>
+<p>This header introduces specializations of the <span class="RenoLink">vector_traits</span>, <span class="RenoLink">deduce_vector</span> and <span class="RenoLink">deduce_vector2</span> templates that make it possible to pass C arrays to any Boost LA function that takes a vector of matching size.</p>
+<div class="RenoIncludeDIV"><p>For example, to compute the dot product of two C arrays, you could use:</p>
+<pre>float a[4], b[4];
+float dp = <span class="RenoLink">dot</span>(a,b);</pre>
+<p>To use Boost LA operator overloads, at least one of the arguments must not be of a built-in type; for example you can't multiply a C array vector by a scalar by using <span class="RenoLink">operator*=</span> directly. Use <span class="RenoLink">vref</span> to work around this issue:</p>
+<pre>float a[4];
+<span class="RenoLink">vref</span>(a) <span class="RenoLink">*=</span> 42;</pre>
+</div></div><div class="RenoAutoDIV"></div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_col_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_col_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/col.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/col.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/col.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int C>
+ -unspecified-return-type- <span class="RenoLink">col</span>();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">col</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_col_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_col_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/col_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/col_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/col_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">col_matrix</span>();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">col_matrix</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_config_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_config_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/config.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/config.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/config.hpp</span>></p>
+<div class="RenoIncludeDIV"><pre><span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_FORCE_INLINE</span>
+#define <span class="RenoLink">BOOST_LA_FORCE_INLINE</span> /*platform-specific*/
+#endif</span>
+
+<span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_INLINE</span>
+#define <span class="RenoLink">BOOST_LA_INLINE</span> inline
+#endif</span>
+
+<span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_INLINE_TRIVIAL</span>
+#define <span class="RenoLink">BOOST_LA_INLINE_TRIVIAL</span> <span class="RenoLink">BOOST_LA_FORCE_INLINE</span>
+#endif</span>
+
+<span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_INLINE_CRITICAL</span>
+#define <span class="RenoLink">BOOST_LA_INLINE_CRITICAL</span> <span class="RenoLink">BOOST_LA_FORCE_INLINE</span>
+#endif</span>
+
+<span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_INLINE_OPERATIONS</span>
+#define <span class="RenoLink">BOOST_LA_INLINE_OPERATIONS</span> <span class="RenoLink">BOOST_LA_INLINE</span>
+#endif</span>
+
+<span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_INLINE_RECURSION</span>
+#define <span class="RenoLink">BOOST_LA_INLINE_RECURSION</span> <span class="RenoLink">BOOST_LA_INLINE_OPERATIONS</span>
+#endif</span></pre>
+</div></div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">BOOST_LA_FORCE_INLINE | BOOST_LA_INLINE</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_deduce_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_deduce_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,70 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/deduce_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/deduce_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_scalar.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <
+ class Matrix,
+ int Rows=<span class="RenoLink">matrix_traits<Matrix>::rows</span>,
+ int Cols=<span class="RenoLink">matrix_traits<Matrix>::cols</span>,
+ class Scalar=typename <span class="RenoLink">matrix_traits<Matrix>::scalar_type</span>>
+ struct
+ <span class="RenoLink">deduce_matrix</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span>
+
+ <span class="RenoIncludeSPAN">template <class A,class B,int Rows,int Cols>
+ struct
+ <span class="RenoLink">deduce_matrix2</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_div_scalar.hpp | boost/la/matrix_minus.hpp | boost/la/matrix_minus_matrix.hpp | boost/la/matrix_mul_matrix.hpp | boost/la/matrix_mul_scalar.hpp | boost/la/matrix_plus_matrix.hpp | deduce_matrix | deduce_matrix2</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_deduce_scalar_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_deduce_scalar_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/deduce_scalar.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/deduce_scalar.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/deduce_scalar.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class A,class B>
+ struct
+ <span class="RenoLink">deduce_scalar</span>
+ {
+ typedef typename impl<A,B>::type type;
+ };</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/deduce_matrix.hpp | boost/la/deduce_vector.hpp | deduce_scalar</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_deduce_vector_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_deduce_vector_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,69 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/deduce_vector.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/deduce_vector.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_scalar.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <
+ class Vector,
+ int Dim=<span class="RenoLink">vector_traits<Vector>::dim</span>,
+ class Scalar=typename <span class="RenoLink">vector_traits<Vector>::scalar_type</span>>
+ struct
+ <span class="RenoLink">deduce_vector</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span>
+
+ <span class="RenoIncludeSPAN">template <class A,class B,int Dim>
+ struct
+ <span class="RenoLink">deduce_vector2</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_mul_vector.hpp | boost/la/vector_cross.hpp | boost/la/vector_div_scalar.hpp | boost/la/vector_minus.hpp | boost/la/vector_minus_vector.hpp | boost/la/vector_mul_matrix.hpp | boost/la/vector_mul_scalar.hpp | boost/la/vector_plus_vector.hpp | deduce_vector | deduce_vector2</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_delc_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_delc_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/delc.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/delc.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/delc.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int C>
+ -unspecified-return-type- <span class="RenoLink">delc</span>();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">delc</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_delr_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_delr_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/delr.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/delr.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/delr.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int R>
+ -unspecified-return-type- <span class="RenoLink">delr</span>();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">delr</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_delrc_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_delrc_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/delrc.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/delrc.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/delrc.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int R,int C>
+ -unspecified-return-type- <span class="RenoLink">delrc</span>();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">delrc</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_diag_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_diag_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/diag.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/diag.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/diag.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">diag</span>();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">diag</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_diag_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_diag_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/diag_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/diag_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/diag_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">diag_matrix</span>();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">diag_matrix</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_error_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_error_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/error.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/error.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/error.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">struct
+ <span class="RenoLink">error</span>:
+ virtual boost::exception,
+ virtual std::exception
+ {
+ };</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/zero_determinant_error.hpp | error</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_identity_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_identity_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/identity_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/identity_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/identity_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class S,int D>
+ -unspecified-return-type- <span class="RenoLink">identity_matrix</span>();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">identity_matrix</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_mat_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_mat_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/mat.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/mat.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/mat.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T,int Rows,int Cols>
+ struct
+ <span class="RenoLink">mat</span>
+ {
+ T a[Rows][Cols];
+
+ template <class R>
+ operator R() const
+ {
+ R r;
+ <span class="RenoLink">assign</span>(r,*this);
+ return r;
+ }
+ };</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/mat_traits.hpp | mat</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_mat_traits_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_mat_traits_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/mat_traits.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/mat_traits.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/mat_traits.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/mat.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class Matrix>
+ struct <span class="RenoLink">matrix_traits</span>;
+
+ template <class T,int Rows,int Cols>
+ struct
+ <span class="RenoLink">matrix_traits</span>< <span class="RenoLink">mat</span><T,Rows,Cols> >
+ {
+ typedef T scalar_type;
+ static int const rows=Rows;
+ static int const cols=Cols;
+
+ template <int Row,int Col>
+ static
+ scalar_type
+ <span class="RenoLink">r</span>( <span class="RenoLink">mat</span><T,Rows,Cols> const & x )
+ {
+ return x.a[Row][Col];
+ }
+
+ template <int Row,int Col>
+ static
+ scalar_type &
+ <span class="RenoLink">w</span>( <span class="RenoLink">mat</span><T,Rows,Cols> & x )
+ {
+ return x.a[Row][Col];
+ }
+
+ static
+ scalar_type
+ <span class="RenoLink">ir</span>( int row, int col, <span class="RenoLink">mat</span><T,Rows,Cols> const & x )
+ {
+ return x.a[row][col];
+ }
+
+ static
+ scalar_type &
+ <span class="RenoLink">iw</span>( int row, int col, <span class="RenoLink">mat</span><T,Rows,Cols> & x )
+ {
+ return x.a[row][col];
+ }
+ };</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">matrix_traits<mat<T,Rows,Cols>></span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_access_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_access_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,62 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_access.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_access.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_access.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int R,int C>
+ -unspecified-return-type- <span class="RenoLink">A</span>();
+
+ -unspecified-return-type- A00();
+ -unspecified-return-type- A01();
+ ...
+ -unspecified-return-type- A09();
+ -unspecified-return-type- A10();
+ ...
+ ...
+ -unspecified-return-type- A99();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">matrix/A</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_assign_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_assign_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_assign.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_assign.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_assign.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">assign</span>( A & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">assign(matrix,matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_determinant_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_determinant_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_determinant.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_determinant.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_determinant.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>
+ template <class A>
+ <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span>
+ <span class="RenoLink">determinant</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">determinant</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_div_eq_scalar_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_div_eq_scalar_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_div_eq_scalar.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_div_eq_scalar.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_div_eq_scalar.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator/=</span>( A & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator/=(matrix,scalar)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_div_scalar_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_div_scalar_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_div_scalar.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_div_scalar.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_div_scalar.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">operator/</span>( A const & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator/(matrix,scalar)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_eq_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_eq_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_eq_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_eq_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_eq_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator==</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator==(matrix,matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_inverse_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_inverse_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,62 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_inverse.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_inverse.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_inverse.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>
+
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">inverse</span>( A const & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> det );
+
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">inverse</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">inverse</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_make_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_make_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_make.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_make.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_make.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><R>::value && <span class="RenoLink">is_matrix</span><A>::value &&
+ // <span class="RenoLink">matrix_traits</span><R>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><R>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>
+ template <class R,class A>
+ R
+ <span class="RenoLink">make</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">make(matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_minus_eq_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_minus_eq_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_minus_eq_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_minus_eq_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_minus_eq_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator-=</span>( A & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator-=(matrix,matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_minus_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_minus_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_minus.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_minus.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_minus.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">operator-</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator-(matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_minus_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_minus_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_minus_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_minus_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_minus_matrix.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_matrix2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator-</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator-(matrix,matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_mul_eq_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_mul_eq_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_mul_eq_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_mul_eq_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_mul_eq_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator*=</span>( A & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator*=(matrix,matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_mul_eq_scalar_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_mul_eq_scalar_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_mul_eq_scalar.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_mul_eq_scalar.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_mul_eq_scalar.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator*=</span>( A & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator*=(matrix,scalar)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_mul_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_mul_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_mul_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_mul_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_mul_matrix.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_matrix2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>,<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator*</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator*(matrix,matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_mul_scalar_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_mul_scalar_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_mul_scalar.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_mul_scalar.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_mul_scalar.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">operator*</span>( A const & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator*(matrix,scalar)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_mul_vector_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_mul_vector_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_mul_vector.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_mul_vector.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_mul_vector.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>>::type
+ <span class="RenoLink">operator*</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator*(matrix,vector)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_neq_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_neq_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_neq_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_neq_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_neq_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator!=</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator!=(matrix,matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_plus_eq_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_plus_eq_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_plus_eq_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_plus_eq_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_plus_eq_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator+=</span>( A & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator+=(matrix,matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_plus_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_plus_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_plus_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_plus_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_plus_matrix.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_matrix2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator+</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator+(matrix,matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_scalar_cast_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_scalar_cast_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_scalar_cast.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_scalar_cast.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_scalar_cast.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class Scalar,class A>
+ -unspecified-return_type- <span class="RenoLink">scalar_cast</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">scalar_cast(matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_matrix_traits_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_matrix_traits_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/matrix_traits.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/matrix_traits.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_traits.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T>
+ struct
+ <span class="RenoLink">is_matrix</span>
+ {
+ static bool const value=/*unspecified*/;
+ };</span>
+
+ <span class="RenoIncludeSPAN">template <class M>
+ struct
+ <span class="RenoLink">matrix_traits</span>
+ {
+ /*main template members unspecified*/
+ };
+
+ /*
+ User-defined (partial) specializations:
+
+ template <>
+ struct
+ <span class="RenoLink">matrix_traits</span>< Matrix >
+ {
+ <span class="RenoIncludeSPAN"> static int const <span class="RenoLink">rows</span> = /*user-defined*/;</span>
+ <span class="RenoIncludeSPAN"> static int const <span class="RenoLink">cols</span> = /*user-defined*/;</span>
+ <span class="RenoIncludeSPAN"> typedef /*user-defined*/ <span class="RenoLink">scalar_type</span>;</span>
+
+ <span class="RenoIncludeSPAN"> template <int R,int C> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">r</span>( Matrix const & m );</span>
+ <span class="RenoIncludeSPAN"> template <int R,int C> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">w</span>( Matrix & m );</span>
+
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">ir</span>( int r, int c, Matrix const & m );</span>
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">iw</span>( int r, int c, Matrix & m );</span>
+ };
+ */</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">is_matrix | matrix_traits</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_mref_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_mref_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/mref.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/mref.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/mref.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ -unspecified-return-type- <span class="RenoLink">mref</span>( A & a );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">mref</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_rotx_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_rotx_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/rotx_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/rotx_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/rotx_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int Dim,class T>
+ -unspecified-return-type-
+ <span class="RenoLink">rotx_matrix</span>( T angle );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">rotx_matrix</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_roty_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_roty_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/roty_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/roty_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/roty_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int Dim,class T>
+ -unspecified-return-type-
+ <span class="RenoLink">roty_matrix</span>( T angle );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">roty_matrix</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_rotz_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_rotz_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/rotz_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/rotz_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/rotz_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int Dim,class T>
+ -unspecified-return-type-
+ <span class="RenoLink">rotz_matrix</span>( T angle );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">rotz_matrix</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_row_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_row_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/row.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/row.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/row.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int R>
+ -unspecified-return-type- <span class="RenoLink">row</span>();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">row</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_row_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_row_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/row_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/row_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/row_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">row_matrix</span>();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">row_matrix</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_scalar_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_scalar_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/scalar.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/scalar.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/scalar.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T>
+ struct
+ <span class="RenoLink">scalar</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">scalar</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_scalar_traits_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_scalar_traits_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/scalar_traits.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/scalar_traits.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/scalar_traits.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class Scalar>
+ struct
+ <span class="RenoLink">scalar_traits</span>
+ {
+ static Scalar zero() { return Scalar(0); }
+ static Scalar one() { return Scalar(1); }
+ };</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">scalar_traits</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_sw_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_sw_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/sw.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/sw.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/sw.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">struct _x_;
+ struct _y_;
+ struct _z_;
+ struct _w_;
+ struct _0_;
+ struct _1_;
+
+ template <int I1,int I2,...int IN>
+ -unspecified-return-type- <span class="RenoLink">sw</span>();
+
+ template <class A1,class A2,...class AN>
+ -unspecified-return-type- <span class="RenoLink">sw</span>();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">sw</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_swizzle_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_swizzle_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/swizzle.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/swizzle.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/swizzle.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//2D <span class="RenoLink">view proxies</span>:
+ -unspecified-return-type- XX();
+ -unspecified-return-type- XY();
+ -unspecified-return-type- XZ();
+ -unspecified-return-type- XW();
+ -unspecified-return-type- X0();
+ -unspecified-return-type- X1();
+ -unspecified-return-type- YX();
+ -unspecified-return-type- YY();
+ -unspecified-return-type- YZ();
+ -unspecified-return-type- YW();
+ -unspecified-return-type- Y0();
+ -unspecified-return-type- Y1();
+ -unspecified-return-type- ZX();
+ -unspecified-return-type- ZY();
+ -unspecified-return-type- ZZ();
+ -unspecified-return-type- ZW();
+ -unspecified-return-type- Z0();
+ -unspecified-return-type- Z1();
+ -unspecified-return-type- WX();
+ -unspecified-return-type- WY();
+ -unspecified-return-type- WZ();
+ -unspecified-return-type- WW();
+ -unspecified-return-type- W0();
+ -unspecified-return-type- W1();
+
+ //3D <span class="RenoLink">view proxies</span>:
+ -unspecified-return-type- XXX();
+ ...
+ -unspecified-return-type- XXW();
+ -unspecified-return-type- XX0();
+ -unspecified-return-type- XX1();
+ -unspecified-return-type- XYX();
+ ...
+ -unspecified-return-type- XY1();
+ ...
+ -unspecified-return-type- WW1();
+
+ //4D <span class="RenoLink">view proxies</span>:
+ -unspecified-return-type- XXXX();
+ ...
+ -unspecified-return-type- XXXW();
+ -unspecified-return-type- XXX0();
+ -unspecified-return-type- XXX1();
+ -unspecified-return-type- XXYX();
+ ...
+ -unspecified-return-type- XXY1();
+ ...
+ -unspecified-return-type- WWW1();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Swizzling Support</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_trans_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_trans_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/trans_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/trans_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/trans_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">trans_matrix</span>();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">trans_matrix</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_transpose_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_transpose_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/transpose.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/transpose.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/transpose.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">transpose</span>();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">transpose</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vec_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vec_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vec.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vec.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vec.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T,int Dim>
+ struct
+ <span class="RenoLink">vec</span>
+ {
+ T a[Dim];
+
+ template <class R>
+ operator R() const
+ {
+ R r;
+ <span class="RenoLink">assign</span>(r,*this);
+ return r;
+ }
+ };</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vec_traits.hpp | vec</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vec_traits_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vec_traits_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vec_traits.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vec_traits.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vec_traits.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/vec.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class Vector>
+ struct <span class="RenoLink">vector_traits</span>;
+
+ template <class T,int Dim>
+ struct
+ <span class="RenoLink">vector_traits</span>< <span class="RenoLink">vec</span><T,Dim> >
+ {
+ typedef T scalar_type;
+ static int const dim=Dim;
+
+ template <int I>
+ static
+ scalar_type
+ <span class="RenoLink">r</span>( <span class="RenoLink">vec</span><T,Dim> const & x )
+ {
+ return x.a[I];
+ }
+
+ template <int I>
+ static
+ scalar_type &
+ <span class="RenoLink">w</span>( <span class="RenoLink">vec</span><T,Dim> & x )
+ {
+ return x.a[I];
+ }
+
+ static
+ scalar_type
+ <span class="RenoLink">ir</span>( int i, <span class="RenoLink">vec</span><T,Dim> const & x )
+ {
+ return x.a[i];
+ }
+
+ static
+ scalar_type &
+ <span class="RenoLink">iw</span>( int i, <span class="RenoLink">vec</span><T,Dim> & x )
+ {
+ return x.a[i];
+ }
+ };</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">vector_traits<vec<T,Dim>></span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_access_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_access_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_access.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_access.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_access.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int I>
+ -unspecified-return-type- <span class="RenoLink">A</span>();
+
+ -unspecified-return-type- A0();
+ -unspecified-return-type- A1();
+ ...
+ -unspecified-return-type- A9();
+
+ -unspecified-return-type- X();
+ -unspecified-return-type- Y();
+ -unspecified-return-type- Z();
+ -unspecified-return-type- W();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">vector/A</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_assign_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_assign_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_assign.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_assign.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_assign.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">assign</span>( A & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">assign(vector,vector)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_cross_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_cross_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_cross.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_cross.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_cross.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==3 && <span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>==3
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,3>::type
+ <span class="RenoLink">cross</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">cross</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_div_eq_scalar_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_div_eq_scalar_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_div_eq_scalar.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_div_eq_scalar.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_div_eq_scalar.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator/=</span>( A & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator/=(vector,scalar)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_div_scalar_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_div_scalar_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_div_scalar.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_div_scalar.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_div_scalar.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_vector</span><A>::type
+ <span class="RenoLink">operator/</span>( A const & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator/(vector,scalar)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_dot_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_dot_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_dot.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_dot.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_dot.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_scalar</span><A,B>::type
+ <span class="RenoLink">dot</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">dot</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_eq_vector_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_eq_vector_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_eq_vector.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_eq_vector.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_eq_vector.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator==</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator==(vector,vector)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_magnitude2_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_magnitude2_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_magnitude2.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_magnitude2.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_magnitude2.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span>
+ <span class="RenoLink">magnitude2</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">magnitude2</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_magnitude_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_magnitude_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_magnitude.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_magnitude.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_magnitude.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span>
+ <span class="RenoLink">magnitude</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">magnitude</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_make_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_make_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_make.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_make.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_make.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><R>::value && <span class="RenoLink">is_vector</span><A>::value &&
+ // <span class="RenoLink">vector_traits</span><R>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>
+ template <class R,class A>
+ R
+ <span class="RenoLink">make</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">make(vector)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_minus_eq_vector_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_minus_eq_vector_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_minus_eq_vector.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_minus_eq_vector.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_minus_eq_vector.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator-=</span>( A & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator-=(vector,vector)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_minus_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_minus_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_minus.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_minus.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_minus.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_vector</span><A>::type
+ <span class="RenoLink">operator-</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator-(vector)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_minus_vector_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_minus_vector_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_minus_vector.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_minus_vector.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_minus_vector.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>>::type
+ <span class="RenoLink">operator-</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator-(vector,vector)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_mul_eq_scalar_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_mul_eq_scalar_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_mul_eq_scalar.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_mul_eq_scalar.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_mul_eq_scalar.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator*=</span>( A & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator*=(vector,scalar)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_mul_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_mul_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_mul_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_mul_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_mul_matrix.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator*</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator*(vector,matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_mul_scalar_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_mul_scalar_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_mul_scalar.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_mul_scalar.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_mul_scalar.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_vector</span><A>::type
+ <span class="RenoLink">operator*</span>( A const & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator*(vector,scalar)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_neq_vector_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_neq_vector_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_neq_vector.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_neq_vector.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_neq_vector.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator!=</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator!=(vector,vector)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_plus_eq_vector_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_plus_eq_vector_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_plus_eq_vector.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_plus_eq_vector.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_plus_eq_vector.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator+=</span>( A & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator+=(vector,vector)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_plus_vector_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_plus_vector_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_plus_vector.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_plus_vector.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_plus_vector.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>>::type
+ <span class="RenoLink">operator+</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator+(vector,vector)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_scalar_cast_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_scalar_cast_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_scalar_cast.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_scalar_cast.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_scalar_cast.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class Scalar,class A>
+ -unspecified-return_type- <span class="RenoLink">scalar_cast</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">scalar_cast(vector)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vector_traits_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vector_traits_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vector_traits.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vector_traits.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_traits.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T>
+ struct
+ <span class="RenoLink">is_vector</span>
+ {
+ static bool const value=/*unspecified*/;
+ };</span>
+
+ <span class="RenoIncludeSPAN">template <class V>
+ struct
+ <span class="RenoLink">vector_traits</span>
+ {
+ /*main template members unspecified*/
+ };
+
+ /*
+ User-defined (partial) specializations:
+
+ template <>
+ struct
+ <span class="RenoLink">vector_traits</span>< Vector >
+ {
+ <span class="RenoIncludeSPAN"> static int const <span class="RenoLink">dim</span> = /*user-defined*/;</span>
+ <span class="RenoIncludeSPAN"> typedef /*user-defined*/ <span class="RenoLink">scalar_type</span>;</span>
+
+ <span class="RenoIncludeSPAN"> template <int I> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">r</span>( Vector const & v );</span>
+ <span class="RenoIncludeSPAN"> template <int I> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">w</span>( Vector & v );</span>
+
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">ir</span>( int i, Vector const & v );</span>
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">iw</span>( int i, Vector & v );</span>
+ };
+ */</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">is_vector | vector_traits</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_vref_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_vref_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/vref.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/vref.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vref.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ -unspecified-return-type- <span class="RenoLink">vref</span>( A & a );</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">vref</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_zero_determinant_error_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_zero_determinant_error_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/zero_determinant_error.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/zero_determinant_error.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/zero_determinant_error.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/error.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">struct <span class="RenoLink">zero_determinant_error</span>: virtual <span class="RenoLink">error</span> { };</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">zero_determinant_error</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_zero_matrix_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_zero_matrix_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/zero_matrix.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/zero_matrix.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/zero_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T,int R,int C>
+ -unspecified-return-type-
+ <span class="RenoLink">zero_matrix</span>();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">zero_matrix</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/boost_la_zero_vector_hpp.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/boost_la_zero_vector_hpp.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>boost/la/zero_vector.hpp</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>boost/la/zero_vector.hpp</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/zero_vector.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T,int S>
+ -unspecified-return-type-
+ <span class="RenoLink">zero_vector</span>();</span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">zero_vector</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/c_arrays.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/c_arrays.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>c arrays</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>C Arrays</h3>
+</div>
+<p>In <span class="RenoLink">boost/la/array_matrix_traits.hpp</span> and <span class="RenoLink">boost/la/array_vector_traits.hpp</span> Boost LA defines appropriate <span class="RenoLink">vector_traits</span> and <span class="RenoLink">matrix_traits</span> specializations that allow Boost LA functions to operate directly on plain old C arrays:</p>
+<pre>float v[3] = {0,0,7};
+float3 vrot = <span class="RenoLink">rotx_matrix</span><3>(3.14159f) <span class="RenoLink">*</span> v;</pre>
+<p>Naturally, operator overloads cannot kick in if all elements of an expression are of built-in types. The following is illegal:</p>
+<pre>float v[3] = {0,0,7};
+v *= 42;</pre>
+<p>The <span class="RenoLink">vref</span> and <span class="RenoLink">mref</span> function templates can be used to work around this issue:</p>
+<pre>float v[3] = {0,0,7};
+<span class="RenoLink">vref</span>(v) <span class="RenoLink">*=</span> 42;</pre>
+</div><div class="RenoIncludeDIV"><div class="RenoHR"><hr/></div>
+<p><b>Tutorial:</b> <span class="RenoLink">Vector and Matrix Types</span> | <span class="RenoLink">C Arrays</span> | <span class="RenoLink">Views</span> | <span class="RenoLink">Swizzling</span> | <span class="RenoLink">Interoperability</span> | Back to <span class="RenoLink">Boost LA</span></p>
+</div><!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/col.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/col.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>col</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>col</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/col.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int C>
+ -unspecified-return-type- <span class="RenoLink">col</span>();</span></span>
+ }
+ }</pre>
+</div></div><p>The expression m|<span class="RenoLink">col</span><C> returns a <span class="RenoLink">view proxy</span> that accesses column C of the matrix m as a vector.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/col.hpp | MSVC View Proxy Bug</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/col_matrix.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/col_matrix.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>col_matrix</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>col_matrix</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/col_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">col_matrix</span>();</span></span>
+ }
+ }</pre>
+</div></div><p>The expression v|<span class="RenoLink">col_matrix</span> returns a <span class="RenoLink">view proxy</span> that accesses the vector v as a column matrix.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/col_matrix.hpp | View Proxy</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/configuration_macro.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/configuration_macro.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,76 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>configuration macro</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Configuration Macros</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/config.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Configuration macros ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_FORCE_INLINE</span>
+ #define <span class="RenoLink">BOOST_LA_FORCE_INLINE</span> /*platform-specific*/
+ #endif</span>
+
+ <span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_INLINE</span>
+ #define <span class="RenoLink">BOOST_LA_INLINE</span> inline
+ #endif</span>
+
+ <span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_INLINE_TRIVIAL</span>
+ #define <span class="RenoLink">BOOST_LA_INLINE_TRIVIAL</span> <span class="RenoLink">BOOST_LA_FORCE_INLINE</span>
+ #endif</span>
+
+ <span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_INLINE_CRITICAL</span>
+ #define <span class="RenoLink">BOOST_LA_INLINE_CRITICAL</span> <span class="RenoLink">BOOST_LA_FORCE_INLINE</span>
+ #endif</span>
+
+ <span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_INLINE_OPERATIONS</span>
+ #define <span class="RenoLink">BOOST_LA_INLINE_OPERATIONS</span> <span class="RenoLink">BOOST_LA_INLINE</span>
+ #endif</span>
+
+ <span class="RenoIncludeSPAN">#ifndef <span class="RenoLink">BOOST_LA_INLINE_RECURSION</span>
+ #define <span class="RenoLink">BOOST_LA_INLINE_RECURSION</span> <span class="RenoLink">BOOST_LA_INLINE_OPERATIONS</span>
+ #endif</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/conversion_functions.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/conversion_functions.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>conversion functions</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Conversion Functions</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_make.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_make.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_assign.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_assign.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Conversion functions ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><R>::value && <span class="RenoLink">is_matrix</span><A>::value &&
+ // <span class="RenoLink">matrix_traits</span><R>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><R>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>
+ template <class R,class A>
+ R
+ <span class="RenoLink">make</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><R>::value && <span class="RenoLink">is_vector</span><A>::value &&
+ // <span class="RenoLink">vector_traits</span><R>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>
+ template <class R,class A>
+ R
+ <span class="RenoLink">make</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">assign</span>( A & a, B const & b );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">assign</span>( A & a, B const & b );</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/creating_matrix_objects.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/creating_matrix_objects.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,71 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>creating matrix objects</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Creating Matrix Objects</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/zero_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/identity_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/rotx_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/roty_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_la_rot
z_matrix_hpp.html">boost/la/rotz_matrix.hpp</a></span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Creating matrix objects ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T,int R,int C>
+ -unspecified-return-type-
+ <span class="RenoLink">zero_matrix</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class S,int D>
+ -unspecified-return-type- <span class="RenoLink">identity_matrix</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int Dim,class T>
+ -unspecified-return-type-
+ <span class="RenoLink">rotx_matrix</span>( T angle );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int Dim,class T>
+ -unspecified-return-type-
+ <span class="RenoLink">roty_matrix</span>( T angle );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int Dim,class T>
+ -unspecified-return-type-
+ <span class="RenoLink">rotz_matrix</span>( T angle );</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/creating_vector_objects.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/creating_vector_objects.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>creating vector objects</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Creating Vector Objects</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/zero_vector.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Creating vector objects ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T,int S>
+ -unspecified-return-type-
+ <span class="RenoLink">zero_vector</span>();</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/cross.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/cross.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>cross</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>cross</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_cross.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==3 && <span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>==3
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,3>::type
+ <span class="RenoLink">cross</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>The <span class="RenoLink">cross product</span> of the vectors a and b.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_cross.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/deduce_matrix.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/deduce_matrix.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>deduce_matrix</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>deduce_matrix</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> template <
+ class Matrix,
+ int Rows=<span class="RenoLink">matrix_traits<Matrix>::rows</span>,
+ int Cols=<span class="RenoLink">matrix_traits<Matrix>::cols</span>,
+ class Scalar=typename <span class="RenoLink">matrix_traits<Matrix>::scalar_type</span>>
+ struct
+ <span class="RenoLink">deduce_matrix</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span>
+ }
+ }</pre>
+</div><h4>Requirements:</h4>
+<p>This template is used by Boost LA whenever it needs to deduce a matrix type of certain dimensions and scalar type from a <i>single</i> user-supplied function parameter of matrix type. The returned type must have accessible copy constructor (the Matrix type itself could be non-copyable.)</p>
+<h4>Returns:</h4>
+<p>The main template definition returns an unspecified matrix type that satisfies the requirements above. Boost LA also defines (partial) specializations for some of the matrix types it produces. Users can define other (partial) specializations for their own types.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/array_matrix_traits.hpp | boost/la/deduce_matrix.hpp | inverse | operator*(matrix,scalar) | operator-(matrix) | operator/(matrix,scalar)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/deduce_matrix2.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/deduce_matrix2.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>deduce_matrix2</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>deduce_matrix2</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> template <class A,class B,int Rows,int Cols>
+ struct
+ <span class="RenoLink">deduce_matrix2</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span>
+ }
+ }</pre>
+</div><h4>Assumptions:</h4>
+<p>Both <span class="RenoLink">scalar</span><A>::type and <span class="RenoLink">scalar</span><B>::type are well defined.</p>
+<h4>Requirements:</h4>
+<p>This template is used by Boost LA whenever it needs to deduce a matrix type of certain dimensions from the types of <i>two</i> user-supplied function parameters. The returned type must have accessible copy constructor (the A and B types themselves could be non-copyable.)</p>
+<h4>Returns:</h4>
+<p>The main template definition returns an unspecified matrix type of the requested dimensions with <span class="RenoLink">scalar_type</span> obtained by <span class="RenoLink">deduce_scalar</span><A,B>::type. Boost LA also defines (partial) specializations for some of the vector/matrix types it produces. Users can define other (partial) specializations for their own types.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/array_matrix_traits.hpp | boost/la/deduce_matrix.hpp | operator*(matrix,matrix) | operator+(matrix,matrix) | operator-(matrix,matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/deduce_scalar.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/deduce_scalar.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>deduce_scalar</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>deduce_scalar</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/deduce_scalar.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class A,class B>
+ struct
+ <span class="RenoLink">deduce_scalar</span>
+ {
+ typedef typename impl<A,B>::type type;
+ };</span></span>
+ }
+ }</pre>
+</div></div><h4>Assumptions:</h4>
+<p>A and B satisfy the <span class="RenoLink">scalar requirements</span>.</p>
+<h4>Returns:</h4>
+<p>If A and B are the same type, impl<A,B>::type returns that type. Otherwise, impl<A,B>::type is well defined for the following types only: signed/unsigned char, signed/unsigned short, signed/unsigned int, signed/unsigned long, float and double. The deduction logic is as follows:</p>
+<div><ul><li>if either of A and B is double, the result is double;</li>
+<li>else, if one of A and B is an integer type and the other is float, the result is float;</li>
+<li>else, if A or B is a signed integer and the other type is unsigned integer, the signed type is changed to unsigned, and then the lesser of the two integers is promoted to the other.</li>
+</ul></div>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/deduce_scalar.hpp | deduce_matrix2 | deduce_vector2 | dot</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/deduce_vector.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/deduce_vector.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,64 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>deduce_vector</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>deduce_vector</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> template <
+ class Vector,
+ int Dim=<span class="RenoLink">vector_traits<Vector>::dim</span>,
+ class Scalar=typename <span class="RenoLink">vector_traits<Vector>::scalar_type</span>>
+ struct
+ <span class="RenoLink">deduce_vector</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span>
+ }
+ }</pre>
+</div><h4>Requirements:</h4>
+<p>This template is used by Boost LA whenever it needs to deduce a vector type of certain size and scalar type from a <i>single</i> user-supplied function parameter of vector type. The returned type must have accessible copy constructor (the Vector type itself could be non-copyable.)</p>
+<h4>Returns:</h4>
+<p>The main template definition returns an unspecified vector type that satisfies the requirements above. Boost LA also defines (partial) specializations for some of the vector types it produces. Users can define other (partial) specializations for their own types.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/array_vector_traits.hpp | boost/la/deduce_vector.hpp | operator*(vector,scalar) | operator-(vector) | operator/(vector,scalar)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/deduce_vector2.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/deduce_vector2.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>deduce_vector2</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>deduce_vector2</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> template <class A,class B,int Dim>
+ struct
+ <span class="RenoLink">deduce_vector2</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span>
+ }
+ }</pre>
+</div><h4>Assumptions:</h4>
+<p>Both scalar<A>::type and scalar<B>::type are well defined.</p>
+<h4>Requirements:</h4>
+<p>This template is used by Boost LA whenever it needs to deduce a vector type of certain size from the types of <i>two</i> user-supplied function parameters. The returned type must have accessible copy constructor (the A and B types themselves could be non-copyable.)</p>
+<h4>Returns:</h4>
+<p>The main template definition returns an unspecified vector type of the requested size with <span class="RenoLink">scalar_type</span> obtained by <span class="RenoLink">deduce_scalar</span><A,B>::type. Boost LA also defines (partial) specializations for some of the vector/matrix types it produces. Users can define other (partial) specializations for their own types.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/array_vector_traits.hpp | boost/la/deduce_vector.hpp | cross | operator*(matrix,vector) | operator*(vector,matrix) | operator+(vector,vector) | operator-(vector,vector)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/delc.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/delc.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>delc</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>delc</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/delc.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int C>
+ -unspecified-return-type- <span class="RenoLink">delc</span>();</span></span>
+ }
+ }</pre>
+</div></div><p>The expression m|<span class="RenoLink">delc</span><C> returns a <span class="RenoLink">view proxy</span> that looks like the matrix m with column C removed.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/delc.hpp | MSVC View Proxy Bug</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/delr.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/delr.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>delr</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>delr</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/delr.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int R>
+ -unspecified-return-type- <span class="RenoLink">delr</span>();</span></span>
+ }
+ }</pre>
+</div></div><p>The expression m|<span class="RenoLink">delr</span><R> returns a <span class="RenoLink">view proxy</span> that looks like the matrix m with row R removed.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/delr.hpp | MSVC View Proxy Bug</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/delrc.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/delrc.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>delrc</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>delrc</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/delrc.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int R,int C>
+ -unspecified-return-type- <span class="RenoLink">delrc</span>();</span></span>
+ }
+ }</pre>
+</div></div><p>The expression m|<span class="RenoLink">delrc</span><R,C> returns a <span class="RenoLink">view proxy</span> that looks like the matrix m with row R and column C removed.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/delrc.hpp | MSVC View Proxy Bug</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/determinant.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/determinant.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>determinant</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>determinant</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_determinant.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>
+ template <class A>
+ <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span>
+ <span class="RenoLink">determinant</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><p>This function computes the determinant of the matrix a.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_determinant.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/diag.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/diag.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>diag</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>diag</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/diag.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">diag</span>();</span></span>
+ }
+ }</pre>
+</div></div><p>The expression m|<span class="RenoLink">diag</span> returns a <span class="RenoLink">view proxy</span> that accesses the main diagonal of the matrix m as a vector.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/diag.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/diag_matrix.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/diag_matrix.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>diag_matrix</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>diag_matrix</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/diag_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">diag_matrix</span>();</span></span>
+ }
+ }</pre>
+</div></div><p>The expression v|<span class="RenoLink">diag_matrix</span> returns a <span class="RenoLink">view proxy</span> that accesses the vector v as a square matrix of the same dimensions in which the elements of v appear as the main diagonal and all other elements are zero.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/diag_matrix.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/dot.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/dot.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>dot</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>dot</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_dot.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_scalar</span><A,B>::type
+ <span class="RenoLink">dot</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>The <span class="RenoLink">dot product</span> of the vectors a and b.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_dot.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/error.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/error.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>error</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>error</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/error.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">struct
+ <span class="RenoLink">error</span>:
+ virtual boost::exception,
+ virtual std::exception
+ {
+ };</span></span>
+ }
+ }</pre>
+</div></div><p>This is the virtual base type of all exceptions originating within Boost LA.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/error.hpp | zero_determinant_error</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/exception_types.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/exception_types.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>exception types</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Exception Types</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/error.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/zero_determinant_error.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Exception types ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">struct
+ <span class="RenoLink">error</span>:
+ virtual boost::exception,
+ virtual std::exception
+ {
+ };</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">struct <span class="RenoLink">zero_determinant_error</span>: virtual <span class="RenoLink">error</span> { };</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/generic_programming_utilities.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/generic_programming_utilities.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>generic programming utilities</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Generic Programming Utilities</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/deduce_scalar.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/scalar.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Generic programming utilities ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <
+ class Matrix,
+ int Rows=<span class="RenoLink">matrix_traits<Matrix>::rows</span>,
+ int Cols=<span class="RenoLink">matrix_traits<Matrix>::cols</span>,
+ class Scalar=typename <span class="RenoLink">matrix_traits<Matrix>::scalar_type</span>>
+ struct
+ <span class="RenoLink">deduce_matrix</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span>
+
+ <span class="RenoIncludeSPAN">template <class A,class B,int Rows,int Cols>
+ struct
+ <span class="RenoLink">deduce_matrix2</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <
+ class Vector,
+ int Dim=<span class="RenoLink">vector_traits<Vector>::dim</span>,
+ class Scalar=typename <span class="RenoLink">vector_traits<Vector>::scalar_type</span>>
+ struct
+ <span class="RenoLink">deduce_vector</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span>
+
+ <span class="RenoIncludeSPAN">template <class A,class B,int Dim>
+ struct
+ <span class="RenoLink">deduce_vector2</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class A,class B>
+ struct
+ <span class="RenoLink">deduce_scalar</span>
+ {
+ typedef typename impl<A,B>::type type;
+ };</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T>
+ struct
+ <span class="RenoLink">scalar</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/identity_matrix.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/identity_matrix.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>identity_matrix</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>identity_matrix</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/identity_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class S,int D>
+ -unspecified-return-type- <span class="RenoLink">identity_matrix</span>();</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>An identity matrix of size DxD and scalar type S.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/identity_matrix.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/index.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/index.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>Boost LA</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><p>Boost LA provides a set of generic linear algebra algorithms, primarily for working with vectors and matrices of static size. The library also defines vector and matrix data types, however it allows users to introduce their own types by specializing the <span class="RenoLink">vector_traits</span> and <span class="RenoLink">matrix_traits</span> templates.</p>
+<p>Note that Boost LA is not part of <span class="RenoLink">Boost</span>. Please post questions and suggestions on the <span class="RenoLink">Boost Developers Mailing List</span>.</p>
+<p>Click <span class="RenoLink">here</span> to download the source code and this documentation.</p>
+<h3>Contents</h3>
+<div><ol><li>Tutorial<div><ol><li><span class="RenoLink">Vector and Matrix Types</span></li>
+<li><span class="RenoLink">C Arrays</span></li>
+<li><span class="RenoLink">Views</span></li>
+<li><span class="RenoLink">Swizzling</span></li>
+<li><span class="RenoLink">Interoperability</span></li>
+</ol></div>
+</li>
+<li>Reference<div><ol><li><span class="RenoLink">Type traits</span></li>
+<li><span class="RenoLink">Binary matrix,scalar operations</span></li>
+<li><span class="RenoLink">Binary vector,scalar operations</span></li>
+<li><span class="RenoLink">Binary matrix,matrix operations</span></li>
+<li><span class="RenoLink">Binary vector,vector operations</span></li>
+<li><span class="RenoLink">Binary vector/matrix operations</span></li>
+<li><span class="RenoLink">Unary matrix operations</span></li>
+<li><span class="RenoLink">Unary vector operations</span></li>
+<li><span class="RenoLink">Conversion functions</span></li>
+<li><span class="RenoLink">Creating matrix objects</span></li>
+<li><span class="RenoLink">Creating vector objects</span></li>
+<li><span class="RenoLink">View proxies of matrix type</span></li>
+<li><span class="RenoLink">View proxies of vector type</span></li>
+<li><span class="RenoLink">Accessing matrix elements</span></li>
+<li><span class="RenoLink">Accessing vector elements, swizzling</span></li>
+<li><span class="RenoLink">Matrix and vector types</span></li>
+<li><span class="RenoLink">Generic programming utilities</span></li>
+<li><span class="RenoLink">Exception types</span></li>
+</ol></div>
+</li>
+<li><span class="RenoLink">Synopsis</span></li>
+<li><span class="RenoLink">Operator| rationale</span></li>
+<li>Indexes<div><ol><li><span class="RenoLink">Index of Headers</span></li>
+<li><span class="RenoLink">Index of Functions</span></li>
+<li><span class="RenoLink">Index of View Proxies</span></li>
+<li><span class="RenoLink">Index of Types</span></li>
+</ol></div>
+</li>
+</ol></div>
+</div><div class="RenoAutoDIV"></div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/inverse.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/inverse.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,68 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>inverse</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>inverse</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_inverse.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>
+
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">inverse</span>( A const & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> det );
+
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">inverse</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><h4>Preconditions:</h4>
+<p>det!=<span class="RenoLink">scalar_traits</span><typename <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span>>::zero()</p>
+<h4>Returns:</h4>
+<p>Both overloads compute the inverse of a. The first overload takes the pre-computed determinant of a. The second overload computes the determinant automatically and throws <span class="RenoLink">zero_determinant_error</span> if the computed determinant is zero.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_inverse.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/is_matrix.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/is_matrix.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>is_matrix</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>is_matrix</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_traits.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> template <class T>
+ struct
+ <span class="RenoLink">is_matrix</span>
+ {
+ static bool const value=/*unspecified*/;
+ };</span>
+ }
+ }</pre>
+</div><p>This type template defines a compile-time boolean constant value which can be used to determine whether a type T is a matrix type. For matrix types, the <span class="RenoLink">matrix_traits</span> template can be used to access their elements generically, or to obtain their dimensions and scalar type.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">assign(matrix,matrix) | boost/la/matrix_traits.hpp | determinant | inverse | make(matrix) | matrix_traits | mref | operator!=(matrix,matrix) | operator*(matrix,matrix) | operator*(matrix,scalar) | operator*(matrix,vector) | operator*(vector,matrix) | operator*=(matrix,matrix) | operator*=(matrix,scalar) | <a href="operator_plus_matri
x_matrix_.html">operator+(matrix,matrix)</a> | operator+=(matrix,matrix) | operator-(matrix) | operator-(matrix,matrix) | operator-=(matrix,matrix) | operator/(matrix,scalar) | operator/=(matrix,scalar) | operator==(matrix,matrix) | SFINAE | scalar | scalar_cast(matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/is_vector.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/is_vector.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>is_vector</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>is_vector</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_traits.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> template <class T>
+ struct
+ <span class="RenoLink">is_vector</span>
+ {
+ static bool const value=/*unspecified*/;
+ };</span>
+ }
+ }</pre>
+</div><p>This type template defines a compile-time boolean constant value which can be used to determine whether a type T is a vector type. For vector types, the <span class="RenoLink">vector_traits</span> template can be used to access their elements generically, or to obtain their dimension and scalar type.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">assign(vector,vector) | boost/la/vector_traits.hpp | cross | dot | magnitude | magnitude2 | make(vector) | operator!=(vector,vector) | operator*(matrix,vector) | operator*(vector,matrix) | operator*(vector,scalar) | operator*=(vector,scalar) | operator+(vector,vector) | operator+=(vector,vector) | <a href="operator_minus_vector_.html">operator-(
vector)</a> | operator-(vector,vector) | operator-=(vector,vector) | operator/(vector,scalar) | operator/=(vector,scalar) | operator==(vector,vector) | SFINAE | scalar | scalar_cast(vector) | vector_traits | vref</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/magnitude.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/magnitude.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>magnitude</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>magnitude</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_magnitude.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span>
+ <span class="RenoLink">magnitude</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>The magnitude of the vector a.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_magnitude.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/magnitude2.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/magnitude2.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>magnitude2</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>magnitude2</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_magnitude2.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span>
+ <span class="RenoLink">magnitude2</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>The squared magnitude of the vector a.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_magnitude2.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/make_matrix_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/make_matrix_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,64 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>make(matrix)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>make(matrix)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_make.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><R>::value && <span class="RenoLink">is_matrix</span><A>::value &&
+ // <span class="RenoLink">matrix_traits</span><R>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><R>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>
+ template <class R,class A>
+ R
+ <span class="RenoLink">make</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><h4>Requirements:</h4>
+<p>R must be copyable.</p>
+<h4>Effects:</h4>
+<p>As if: { R r; <span class="RenoLink">assign</span>(r,a); return r; }</p>
+<h4>Required access:</h4>
+<p>result:<span class="RenoLink">w</span>, a:<span class="RenoLink">r</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_make.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/make_vector_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/make_vector_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>make(vector)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>make(vector)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_make.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><R>::value && <span class="RenoLink">is_vector</span><A>::value &&
+ // <span class="RenoLink">vector_traits</span><R>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>
+ template <class R,class A>
+ R
+ <span class="RenoLink">make</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><h4>Requirements:</h4>
+<p>R must be copyable.</p>
+<h4>Effects:</h4>
+<p>As if: { R r; <span class="RenoLink">assign</span>(r,a); return r; }</p>
+<h4>Required access:</h4>
+<p>result:<span class="RenoLink">w</span>, a:<span class="RenoLink">r</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_make.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/mat.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/mat.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>mat</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>mat</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/mat.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T,int Rows,int Cols>
+ struct
+ <span class="RenoLink">mat</span>
+ {
+ T a[Rows][Cols];
+
+ template <class R>
+ operator R() const
+ {
+ R r;
+ <span class="RenoLink">assign</span>(r,*this);
+ return r;
+ }
+ };</span></span>
+ }
+ }</pre>
+</div></div><p>This is a simple matrix type. It converts to any other matrix type of compatible size.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/mat.hpp | matrix_traits<mat<T,Rows,Cols>></span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/matrix_A.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/matrix_A.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>matrix/A</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>matrix/A</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_access.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int R,int C>
+ -unspecified-return-type- <span class="RenoLink">A</span>();
+
+ -unspecified-return-type- A00();
+ -unspecified-return-type- A01();
+ ...
+ -unspecified-return-type- A09();
+ -unspecified-return-type- A10();
+ ...
+ ...
+ -unspecified-return-type- A99();</span></span>
+ }
+ }</pre>
+</div></div><p>An expression of the form of m|<span class="RenoLink">A</span><R,C> can be used to access the element at row R and column C of a matrix object m. For example, the expression:</p>
+<pre>m|<span class="RenoLink">A</span><4,2> *= 42;</pre>
+<p>can be used to multiply the element at row 4 and column 2 of a matrix m by 2.</p>
+<p>For convenience, there are also non-template overloads for R from 0 to 9 and C from 0 to 9; an alternative way to write the above expression is:</p>
+<pre>m|A42 *= 42;</pre>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_access.hpp | MSVC View Proxy Bug</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/matrix_and_vector_types.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/matrix_and_vector_types.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>matrix and vector types</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Matrix and Vector Types</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/mat.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/mat_traits.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vec.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vec_traits.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Matrix and vector types ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T,int Rows,int Cols>
+ struct
+ <span class="RenoLink">mat</span>
+ {
+ T a[Rows][Cols];
+
+ template <class R>
+ operator R() const
+ {
+ R r;
+ <span class="RenoLink">assign</span>(r,*this);
+ return r;
+ }
+ };</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class Matrix>
+ struct <span class="RenoLink">matrix_traits</span>;
+
+ template <class T,int Rows,int Cols>
+ struct
+ <span class="RenoLink">matrix_traits</span>< <span class="RenoLink">mat</span><T,Rows,Cols> >
+ {
+ typedef T scalar_type;
+ static int const rows=Rows;
+ static int const cols=Cols;
+
+ template <int Row,int Col>
+ static
+ scalar_type
+ <span class="RenoLink">r</span>( <span class="RenoLink">mat</span><T,Rows,Cols> const & x )
+ {
+ return x.a[Row][Col];
+ }
+
+ template <int Row,int Col>
+ static
+ scalar_type &
+ <span class="RenoLink">w</span>( <span class="RenoLink">mat</span><T,Rows,Cols> & x )
+ {
+ return x.a[Row][Col];
+ }
+
+ static
+ scalar_type
+ <span class="RenoLink">ir</span>( int row, int col, <span class="RenoLink">mat</span><T,Rows,Cols> const & x )
+ {
+ return x.a[row][col];
+ }
+
+ static
+ scalar_type &
+ <span class="RenoLink">iw</span>( int row, int col, <span class="RenoLink">mat</span><T,Rows,Cols> & x )
+ {
+ return x.a[row][col];
+ }
+ };</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T,int Dim>
+ struct
+ <span class="RenoLink">vec</span>
+ {
+ T a[Dim];
+
+ template <class R>
+ operator R() const
+ {
+ R r;
+ <span class="RenoLink">assign</span>(r,*this);
+ return r;
+ }
+ };</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class Vector>
+ struct <span class="RenoLink">vector_traits</span>;
+
+ template <class T,int Dim>
+ struct
+ <span class="RenoLink">vector_traits</span>< <span class="RenoLink">vec</span><T,Dim> >
+ {
+ typedef T scalar_type;
+ static int const dim=Dim;
+
+ template <int I>
+ static
+ scalar_type
+ <span class="RenoLink">r</span>( <span class="RenoLink">vec</span><T,Dim> const & x )
+ {
+ return x.a[I];
+ }
+
+ template <int I>
+ static
+ scalar_type &
+ <span class="RenoLink">w</span>( <span class="RenoLink">vec</span><T,Dim> & x )
+ {
+ return x.a[I];
+ }
+
+ static
+ scalar_type
+ <span class="RenoLink">ir</span>( int i, <span class="RenoLink">vec</span><T,Dim> const & x )
+ {
+ return x.a[i];
+ }
+
+ static
+ scalar_type &
+ <span class="RenoLink">iw</span>( int i, <span class="RenoLink">vec</span><T,Dim> & x )
+ {
+ return x.a[i];
+ }
+ };</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/matrix_traits.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/matrix_traits.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>matrix_traits</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>matrix_traits</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_traits.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> template <class M>
+ struct
+ <span class="RenoLink">matrix_traits</span>
+ {
+ /*main template members unspecified*/
+ };
+
+ /*
+ User-defined (partial) specializations:
+
+ template <>
+ struct
+ <span class="RenoLink">matrix_traits</span>< Matrix >
+ {
+ <span class="RenoIncludeSPAN"> static int const <span class="RenoLink">rows</span> = /*user-defined*/;</span>
+ <span class="RenoIncludeSPAN"> static int const <span class="RenoLink">cols</span> = /*user-defined*/;</span>
+ <span class="RenoIncludeSPAN"> typedef /*user-defined*/ <span class="RenoLink">scalar_type</span>;</span>
+
+ <span class="RenoIncludeSPAN"> template <int R,int C> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">r</span>( Matrix const & m );</span>
+ <span class="RenoIncludeSPAN"> template <int R,int C> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">w</span>( Matrix & m );</span>
+
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">ir</span>( int r, int c, Matrix const & m );</span>
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">iw</span>( int r, int c, Matrix & m );</span>
+ };
+ */</span>
+ }
+ }</pre>
+</div><p>The <span class="RenoLink">matrix_traits</span> template must be specialized for (user-defined) matrix types in order to enable vector and matrix operations defined in Boost LA headers for objects of those types.</p>
+<p><i>Note: matrix types are not required to be copyable.</i></p>
+<p>The main <span class="RenoLink">matrix_traits</span> template members are not specified. Valid specializations are required to define the following members:</p>
+<div><ul><li> <span class="RenoLink">rows</span>: the expression <span class="RenoLink">matrix_traits</span><Matrix>::<span class="RenoLink">rows</span> must evaluate to a compile-time integer constant greater than 0 that specifies the number of rows in a matrix.</li>
+<li> <span class="RenoLink">cols</span> must evaluate to a compile-time integer constant greater than 0 that specifies the number of columns in a matrix.</li>
+<li> <span class="RenoLink">scalar_type</span>: the expression <span class="RenoLink">matrix_traits</span><Matrix>::<span class="RenoLink">scalar_type</span> must be a value type which satisfies the <span class="RenoLink">scalar requirements</span>.</li>
+</ul></div>
+<p>In addition, valid specializations of the <span class="RenoLink">matrix_traits</span> template must define the following access functions as static members, where m is an object of type Matrix, R and C are compile-time integer constants, and r and c are variables of type int:</p>
+<div><ul><li> <span class="RenoLink">r</span>: the expression <span class="RenoLink">matrix_traits</span><Matrix>::<span class="RenoLink">r</span><R,C>(m) returns either a copy or a const reference to the element at row R and column C of m.</li>
+<li> <span class="RenoLink">w</span>: the expression <span class="RenoLink">matrix_traits</span><Matrix>::<span class="RenoLink">w</span><R,C>(m) returns mutable reference to the element at row R and column C of m.</li>
+<li> <span class="RenoLink">ir</span>: the expression <span class="RenoLink">matrix_traits</span><Matrix>::<span class="RenoLink">ir</span>(r,c,m) returns either a copy or a const reference to the element at row r and column c of m.</li>
+<li> <span class="RenoLink">iw</span>: the expression <span class="RenoLink">matrix_traits</span><Matrix>::<span class="RenoLink">iw</span>(r,c,m) returns mutable reference to the element at row r and column c of m.</li>
+</ul></div>
+<p>It is illegal to call any of the above functions unless <span class="RenoLink">is_matrix</span><Matrix>::value is true. Even then, matrix types are allowed to define only a subset of the access functions. The general requirements are:</p>
+<div><ul><li> if <span class="RenoLink">ir</span> is defined, <span class="RenoLink">r</span> must also be defined;</li>
+<li> if <span class="RenoLink">iw</span> is defined, <span class="RenoLink">w</span> must also be defined.</li>
+</ul></div>
+<p>In addition, every Boost LA function that takes matrix type parameter(s) specifies whether it requires read-only, write-only or read-and-write access.</p>
+<p>Below is an example of a user-defined 3x3 matrix type, and its corresponding specialization of the <span class="RenoLink">matrix_traits</span> template:</p>
+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink">boost/la/matrix_traits.hpp</span>>
+
+struct float33 { float a[3][3]; };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <>
+ struct
+ <span class="RenoLink">matrix_traits</span><float33>
+ {
+ static int const <span class="RenoLink">rows</span>=3;
+ static int const <span class="RenoLink">cols</span>=3;
+ typedef float <span class="RenoLink">scalar_type</span>;
+
+ template <int R,int C> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">w</span>( float33 & m ) { return m.a[R][C]; }
+ template <int R,int C> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">r</span>( float33 const & m ) { return v.a[R][C]; }
+
+ static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">iw</span>( int r, int c, float33 & m ) { return m.a[r][c]; }
+ static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">ir</span>( int r, int c, float33 const & m ) { return m.a[r][c]; }
+ };
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">assign(matrix,matrix) | Boost LA | boost/la/array_matrix_traits.hpp | boost/la/matrix_traits.hpp | determinant | inverse | is_matrix | make(matrix) | matrix_traits<Matrix>::cols | matrix_traits<Matrix>::ir | matrix_traits<Matrix>::iw | matrix_traits<Matrix>::r | matrix_traits<Matrix>::rows | matrix_traits<Matrix>::scalar_type&nbs
p;| matrix_traits<Matrix>::w | matrix_traits<mat<T,Rows,Cols>> | operator!=(matrix,matrix) | operator*(matrix,matrix) | operator*(matrix,scalar) | operator*(matrix,vector) | operator*(vector,matrix) | operator*=(matrix,matrix) | operator*=(matrix,scalar) | operator+(matrix,matrix) | operator+=(matrix,matrix) | operator-(matrix,matrix) | <a href="operator_sub_eq
_matrix_matrix_.html">operator-=(matrix,matrix)</a> | operator/(matrix,scalar) | operator/=(matrix,scalar) | operator==(matrix,matrix) | SFINAE | scalar | View Proxy</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/matrix_traits_Matrix_cols.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/matrix_traits_Matrix_cols.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>matrix_traits<Matrix>::cols</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>matrix_traits<Matrix>::cols</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>static int const <span class="RenoLink">cols</span> = /*user-defined*/;</pre>
+</div></div><p>This member of user-defined (partial) specializations of the <span class="RenoLink">matrix_traits</span> template must be a compile-time integer constant greater than zero that defines the number of columns of a user-defined matrix type.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">assign(matrix,matrix) | deduce_matrix | determinant | inverse | make(matrix) | matrix_traits | operator!=(matrix,matrix) | operator*(matrix,matrix) | operator*(matrix,vector) | operator*(vector,matrix) | operator*=(matrix,matrix) | operator+(matrix,matrix) | operator+=(matrix,matrix) | operator-(matrix,matrix) | <a href="oper
ator_sub_eq_matrix_matrix_.html">operator-=(matrix,matrix)</a> | operator==(matrix,matrix) | SFINAE</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/matrix_traits_Matrix_ir.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/matrix_traits_Matrix_ir.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>matrix_traits<Matrix>::ir</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>matrix_traits<Matrix>::ir</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">ir</span>( int r, int c, Matrix const & m );</pre>
+</div></div><p>This function is expected to be static member of user-defined specializations of the <span class="RenoLink">matrix_traits</span> template. It returns the element at row r and column c of m, by value or by const reference.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">determinant | inverse | matrix_traits | matrix_traits<mat<T,Rows,Cols>> | operator!=(matrix,matrix) | operator*(matrix,matrix) | operator*(matrix,scalar) | operator*(matrix,vector) | operator*(vector,matrix) | operator*=(matrix,matrix) | operator*=(matrix,scalar) | operator+(matrix,matrix) | operator+=(matrix,matrix) | <a hr
ef="operator_minus_matrix_matrix_.html">operator-(matrix,matrix)</a> | operator-=(matrix,matrix) | operator/(matrix,scalar) | operator/=(matrix,scalar) | operator==(matrix,matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/matrix_traits_Matrix_iw.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/matrix_traits_Matrix_iw.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>matrix_traits<Matrix>::iw</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>matrix_traits<Matrix>::iw</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">iw</span>( int r, int c, Matrix & m );</pre>
+</div></div><p>This function is expected to be static member of user-defined specializations of the <span class="RenoLink">matrix_traits</span> template. It returns mutable reference to the element at row r and column c of m.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">matrix_traits | matrix_traits<mat<T,Rows,Cols>> | operator*(matrix,matrix) | operator*(matrix,scalar) | operator*=(matrix,matrix) | operator*=(matrix,scalar) | operator+(matrix,matrix) | operator+=(matrix,matrix) | operator-(matrix,matrix) | operator-=(matrix,matrix) | operator/(matrix,scalar) | operator/=(matrix,scalar)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/matrix_traits_Matrix_r.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/matrix_traits_Matrix_r.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>matrix_traits<Matrix>::r</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>matrix_traits<Matrix>::r</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>template <int R,int C> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">r</span>( Matrix const & m );</pre>
+</div></div><p>This function template is expected to be static member of user-defined specializations of the <span class="RenoLink">matrix_traits</span> template. It returns the element at row R and column C of m, by value or by const reference.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">assign(matrix,matrix) | make(matrix) | matrix_traits | matrix_traits<mat<T,Rows,Cols>></span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/matrix_traits_Matrix_rows.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/matrix_traits_Matrix_rows.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>matrix_traits<Matrix>::rows</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>matrix_traits<Matrix>::rows</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>static int const <span class="RenoLink">rows</span> = /*user-defined*/;</pre>
+</div></div><p>This member of user-defined (partial) specializations of the <span class="RenoLink">matrix_traits</span> template must be a compile-time integer constant greater than zero that defines the number of rows of a user-defined matrix type.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">assign(matrix,matrix) | deduce_matrix | determinant | inverse | make(matrix) | matrix_traits | operator!=(matrix,matrix) | operator*(matrix,matrix) | operator*(matrix,vector) | operator*(vector,matrix) | operator*=(matrix,matrix) | operator+(matrix,matrix) | operator+=(matrix,matrix) | operator-(matrix,matrix) | <a href="oper
ator_sub_eq_matrix_matrix_.html">operator-=(matrix,matrix)</a> | operator==(matrix,matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/matrix_traits_Matrix_scalar_type.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/matrix_traits_Matrix_scalar_type.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>matrix_traits<Matrix>::scalar_type</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>matrix_traits<Matrix>::scalar_type</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>typedef /*user-defined*/ <span class="RenoLink">scalar_type</span>;</pre>
+</div></div><p>This is the member type that user-defined (partial) specializations of the <span class="RenoLink">matrix_traits</span> template define to specify the scalar type of a matrix type. Valid scalar types are value types that satisfy the <span class="RenoLink">scalar requirements</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">deduce_matrix | deduce_matrix2 | determinant | inverse | matrix_traits | matrix_traits<Matrix>::ir | matrix_traits<Matrix>::iw | matrix_traits<Matrix>::r | matrix_traits<Matrix>::w | operator*(matrix,scalar) | operator*=(matrix,scalar) | operator/(matrix,scalar) | operator/=(matrix,scalar) | rotx_matrix | <a href="roty_matrix.html">r
oty_matrix</a> | rotz_matrix | scalar | scalar_cast(matrix) | zero_matrix</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/matrix_traits_Matrix_w.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/matrix_traits_Matrix_w.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>matrix_traits<Matrix>::w</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>matrix_traits<Matrix>::w</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>template <int R,int C> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">w</span>( Matrix & m );</pre>
+</div></div><p>This function template is expected to be static member of user-defined specializations of the <span class="RenoLink">matrix_traits</span> template. It returns mutable reference to the element at row R and column C of m.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">assign(matrix,matrix) | make(matrix) | matrix_traits | matrix_traits<mat<T,Rows,Cols>></span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/matrix_traits_mat_T_Rows_Cols_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/matrix_traits_mat_T_Rows_Cols_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>matrix_traits<mat<T,Rows,Cols>></title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>matrix_traits<mat<T,Rows,Cols>></h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/mat_traits.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/mat.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class Matrix>
+ struct <span class="RenoLink">matrix_traits</span>;
+
+ template <class T,int Rows,int Cols>
+ struct
+ <span class="RenoLink">matrix_traits</span>< <span class="RenoLink">mat</span><T,Rows,Cols> >
+ {
+ typedef T scalar_type;
+ static int const rows=Rows;
+ static int const cols=Cols;
+
+ template <int Row,int Col>
+ static
+ scalar_type
+ <span class="RenoLink">r</span>( <span class="RenoLink">mat</span><T,Rows,Cols> const & x )
+ {
+ return x.a[Row][Col];
+ }
+
+ template <int Row,int Col>
+ static
+ scalar_type &
+ <span class="RenoLink">w</span>( <span class="RenoLink">mat</span><T,Rows,Cols> & x )
+ {
+ return x.a[Row][Col];
+ }
+
+ static
+ scalar_type
+ <span class="RenoLink">ir</span>( int row, int col, <span class="RenoLink">mat</span><T,Rows,Cols> const & x )
+ {
+ return x.a[row][col];
+ }
+
+ static
+ scalar_type &
+ <span class="RenoLink">iw</span>( int row, int col, <span class="RenoLink">mat</span><T,Rows,Cols> & x )
+ {
+ return x.a[row][col];
+ }
+ };</span></span>
+ }
+ }</pre>
+</div></div><p>This partial specialization of the <span class="RenoLink">matrix_traits</span> template makes the <span class="RenoLink">mat</span> template compatible with the generic linear algebra algorithms defined by Boost LA.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/mat_traits.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/mref.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/mref.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>mref</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>mref</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/mref.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ -unspecified-return-type- <span class="RenoLink">mref</span>( A & a );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>An identity <span class="RenoLink">view proxy</span> of a; that is, it simply accesses the elements of a.</p>
+<p>This allows calling overloaded operators when a is of built-in type, for example a plain old C array.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/mref.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_add_matrix_matrix_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_add_matrix_matrix_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,64 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator+=(matrix,matrix)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator+=(matrix,matrix)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_plus_eq_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator+=</span>( A & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Effects:</h4>
+<p>Adds the elements of b to the corresponding elements of a.</p>
+<h4>Returns:</h4>
+<p>a.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>/<span class="RenoLink">iw</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_plus_eq_matrix.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_add_vector_vector_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_add_vector_vector_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator+=(vector,vector)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator+=(vector,vector)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_plus_eq_vector.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator+=</span>( A & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Effects:</h4>
+<p>Adds the elements of b to the corresponding elements of a.</p>
+<h4>Returns:</h4>
+<p>a.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>/<span class="RenoLink">iw</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_plus_eq_vector.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_bitor_rationale.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_bitor_rationale.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator| rationale</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Operator| Rationale</h3>
+</div>
+<p>Boost LA defines many operator| overloads that return various <span class="RenoLink">view proxy</span> references to vector and matrix objects. For example, to work with the transposed view of a matrix m, you could simply use m|<span class="RenoLink">transpose</span>.</p>
+<p>The convenience of operator overloading for this purpose, and the reasons for selecting operator| in particular (and its drawbacks) are explained below.</p>
+<h3>The need: easy composition</h3>
+<p>Boost LA implements <span class="RenoLink">view proxies</span> very efficiently. The effect of using a <span class="RenoLink">view proxy</span> is that it chains up an additional level of <span class="RenoLink">matrix_traits</span>/<span class="RenoLink">vector_traits</span> access functions.</p>
+<p>While it is possible that the compiler might not inline this additional function call, even without using <span class="RenoLink">view proxies</span> reliable inlining of simple access functions is already critical for the performance of Boost LA (for targeted control, all such functions invoke the <span class="RenoLink">BOOST_LA_INLINE_CRITICAL</span> <span class="RenoLink">configuration macro</span>.)</p>
+<h3>'Pipe', not 'bitwise-OR'</h3>
+<p>Assuming inlining works, <span class="RenoLink">view proxies</span> should have negligible or no overhead because they do not create temporary objects. This makes it practical to use composition to get accumulative effects. For example:</p>
+<pre>//Store the 3D vector v transformed by the matrix m1
+//into column 1 of m2, swapping its X and Y coordinates.
+m2|<span class="RenoLink">col</span><1>|<span class="RenoLink">YXZ</span> = m1 <span class="RenoLink">*</span> v;</pre>
+<h3>Downsides</h3>
+<p>Making a small change to the example above, we get:</p>
+<pre>m2|<span class="RenoLink">col</span><1> = m1 <span class="RenoLink">*</span> v|<span class="RenoLink">YXZ</span>;</pre>
+<p>This expression swaps the X and Y coordinates not of v, but of the result from transforming v by m1 (which of course is also a 3D vector.)</p>
+<p>So the downside of operator| is that its precedence is lower than the precedence of most other operators and this often requires parentheses.</p>
+<h3>Alternatives</h3>
+<p>We could use regular function call composition instead of operator overloading, which would make our last example completely unambiguous:</p>
+<pre>col<1>(m2) = m1 <span class="RenoLink">*</span> YXZ(v);</pre>
+<p>However additional levels of composition become uglier:</p>
+<pre>YXZ(col<1>(m2)) = m1 <span class="RenoLink">*</span> v;</pre>
+<p>Another possibility would be to use operator/ instead, which has much better precedence for this purpose, but this choice has no semantic justification whatsoever.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_div_eq_matrix_scalar_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_div_eq_matrix_scalar_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator/=(matrix,scalar)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator/=(matrix,scalar)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_div_eq_scalar.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator/=</span>( A & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><h4>Effects:</h4>
+<p>This operation divides a matrix by a scalar.</p>
+<h4>Returns:</h4>
+<p>a.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>/<span class="RenoLink">iw</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_div_eq_scalar.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_div_eq_vector_scalar_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_div_eq_vector_scalar_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator/=(vector,scalar)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator/=(vector,scalar)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_div_eq_scalar.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator/=</span>( A & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><h4>Effects:</h4>
+<p>This operation divides a vector by a scalar.</p>
+<h4>Returns:</h4>
+<p>a.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>/<span class="RenoLink">iw</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_div_eq_scalar.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_eq_matrix_matrix_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_eq_matrix_matrix_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,62 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator==(matrix,matrix)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator==(matrix,matrix)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_eq_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator==</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>true if each element of a compares equal to its corresponding element of b, false otherwise.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_eq_matrix.hpp | operator!=(matrix,matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_eq_vector_vector_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_eq_vector_vector_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator==(vector,vector)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator==(vector,vector)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_eq_vector.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator==</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>true if each element of a compares equal to its corresponding element of b, false otherwise.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_eq_vector.hpp | operator!=(vector,vector)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_minus_matrix_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_minus_matrix_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator-(matrix)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator-(matrix)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_minus.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">operator-</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>A matrix of the negated elements of a.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_minus.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_minus_matrix_matrix_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_minus_matrix_matrix_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,64 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator-(matrix,matrix)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator-(matrix,matrix)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_minus_matrix.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_matrix2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator-</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>A matrix of the same size as a and b, with elements the elements of b subtracted from the corresponding elements of a.</p>
+<h4>Required access:</h4>
+<p>result:<span class="RenoLink">iw</span>, a:<span class="RenoLink">ir</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_minus_matrix.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_minus_vector_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_minus_vector_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator-(vector)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator-(vector)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_minus.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_vector</span><A>::type
+ <span class="RenoLink">operator-</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>A vector of the negated elements of a.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_minus.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_minus_vector_vector_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_minus_vector_vector_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator-(vector,vector)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator-(vector,vector)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_minus_vector.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>>::type
+ <span class="RenoLink">operator-</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>A vector of the same size as a and b, with elements the elements of b subtracted from the corresponding elements of a.</p>
+<h4>Required access:</h4>
+<p>result:<span class="RenoLink">iw</span>, a:<span class="RenoLink">ir</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_minus_vector.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_mul_eq_matrix_matrix_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_mul_eq_matrix_matrix_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator*=(matrix,matrix)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator*=(matrix,matrix)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_mul_eq_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator*=</span>( A & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Effects:</h4>
+<p>As if:</p>
+<pre>A tmp(a);
+a = tmp <span class="RenoLink">*</span> b;
+return a;</pre>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>/<span class="RenoLink">iw</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_mul_eq_matrix.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_mul_eq_matrix_scalar_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_mul_eq_matrix_scalar_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator*=(matrix,scalar)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator*=(matrix,scalar)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_mul_eq_scalar.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator*=</span>( A & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><h4>Effects:</h4>
+<p>This operation multiplies a matrix by a scalar.</p>
+<h4>Returns:</h4>
+<p>a.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>/<span class="RenoLink">iw</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_mul_eq_scalar.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_mul_eq_vector_scalar_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_mul_eq_vector_scalar_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator*=(vector,scalar)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator*=(vector,scalar)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_mul_eq_scalar.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ A &
+ <span class="RenoLink">operator*=</span>( A & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><h4>Effects:</h4>
+<p>This operation multiplies a vector by a scalar.</p>
+<h4>Returns:</h4>
+<p>a.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>/<span class="RenoLink">iw</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_mul_eq_scalar.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_not_eq_matrix_matrix_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_not_eq_matrix_matrix_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,62 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator!=(matrix,matrix)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator!=(matrix,matrix)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_neq_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator!=</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p><span class="RenoEscape">!<!--<wiki>`!</wiki>--></span>(a <span class="RenoLink">==</span> b).</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_neq_matrix.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_not_eq_vector_vector_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_not_eq_vector_vector_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator!=(vector,vector)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator!=(vector,vector)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_neq_vector.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ bool
+ <span class="RenoLink">operator!=</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p><span class="RenoEscape">!<!--<wiki>`!</wiki>--></span>(a <span class="RenoLink">==</span> b).</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_neq_vector.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_over_matrix_scalar_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_over_matrix_scalar_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator/(matrix,scalar)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator/(matrix,scalar)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_div_scalar.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">operator/</span>( A const & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>A matrix that is the result of dividing the matrix a by the scalar s.</p>
+<h4>Required access:</h4>
+<p>result:<span class="RenoLink">iw</span>, a:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_div_scalar.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_over_vector_scalar_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_over_vector_scalar_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator/(vector,scalar)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator/(vector,scalar)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_div_scalar.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_vector</span><A>::type
+ <span class="RenoLink">operator/</span>( A const & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>A vector that is the result of dividing the vector a by the scalar s.</p>
+<h4>Required access:</h4>
+<p>result:<span class="RenoLink">iw</span>, a:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_div_scalar.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_plus_matrix_matrix_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_plus_matrix_matrix_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,64 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator+(matrix,matrix)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator+(matrix,matrix)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_plus_matrix.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_matrix2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator+</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>A matrix of the same size as a and b, with elements the elements of b added to the corresponding elements of a.</p>
+<h4>Required access:</h4>
+<p>result:<span class="RenoLink">iw</span>, a:<span class="RenoLink">ir</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_plus_matrix.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_plus_vector_vector_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_plus_vector_vector_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator+(vector,vector)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator+(vector,vector)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_plus_vector.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>>::type
+ <span class="RenoLink">operator+</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>A vector of the same size as a and b, with elements the elements of b added to the corresponding elements of a.</p>
+<h4>Required access:</h4>
+<p>result:<span class="RenoLink">iw</span>, a:<span class="RenoLink">ir</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_plus_vector.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_sub_eq_matrix_matrix_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_sub_eq_matrix_matrix_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,64 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator-=(matrix,matrix)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator-=(matrix,matrix)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_minus_eq_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span> &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator-=</span>( A & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Effects:</h4>
+<p>Subtracts the elements of b from the corresponding elements of a.</p>
+<h4>Returns:</h4>
+<p>a.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>/<span class="RenoLink">iw</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_minus_eq_matrix.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_sub_eq_vector_vector_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_sub_eq_vector_vector_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator-=(vector,vector)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator-=(vector,vector)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_minus_eq_vector.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ A &
+ <span class="RenoLink">operator-=</span>( A & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Effects:</h4>
+<p>Subtracts the elements of b to the corresponding elements of a.</p>
+<h4>Returns:</h4>
+<p>a.</p>
+<h4>Required access:</h4>
+<p>a:<span class="RenoLink">ir</span>/<span class="RenoLink">iw</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_minus_eq_vector.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_times_matrix_matrix_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_times_matrix_matrix_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator*(matrix,matrix)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator*(matrix,matrix)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_mul_matrix.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_matrix2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>,<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator*</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>The result of <span class="RenoLink">multiplying</span> the matrices a and b.</p>
+<h4>Required access:</h4>
+<p>result:<span class="RenoLink">iw</span>, a:<span class="RenoLink">ir</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_mul_matrix.hpp | operator*=(matrix,matrix)</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_times_matrix_scalar_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_times_matrix_scalar_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator*(matrix,scalar)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator*(matrix,scalar)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_mul_scalar.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_matrix.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">operator*</span>( A const & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>A matrix that is the result of multiplying the matrix a by the scalar s.</p>
+<h4>Required access:</h4>
+<p>result:<span class="RenoLink">iw</span>, a:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_mul_scalar.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_times_matrix_vector_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_times_matrix_vector_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator*(matrix,vector)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator*(matrix,vector)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_mul_vector.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">is_vector</span><B>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>==<span class="RenoLink">vector_traits</span><B>::<span class="RenoLink">dim</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>>::type
+ <span class="RenoLink">operator*</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>The result of multiplying the matrix a and the vector b, where b is interpreted as a matrix-column. The resulting matrix-row is returned as a vector type.</p>
+<h4>Required access:</h4>
+<p>result:<span class="RenoLink">iw</span> a:<span class="RenoLink">ir</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_mul_vector.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_times_vector_matrix_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_times_vector_matrix_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator*(vector,matrix)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator*(vector,matrix)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_mul_matrix.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value && <span class="RenoLink">is_matrix</span><B>::value &&
+ // <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">dim</span>==<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">rows</span>
+ template <class A,class B>
+ typename <span class="RenoLink">deduce_vector2</span><A,B,<span class="RenoLink">matrix_traits</span><B>::<span class="RenoLink">cols</span>>::type
+ <span class="RenoLink">operator*</span>( A const & a, B const & b );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>The result of multiplying the vector a and the matrix b, where a is interpreted as a matrix-row. The resulting matrix-column is returned as a vector type.</p>
+<h4>Required access:</h4>
+<p>result:<span class="RenoLink">iw</span>, a:<span class="RenoLink">ir</span>, b:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_mul_matrix.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/operator_times_vector_scalar_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/operator_times_vector_scalar_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,61 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>operator*(vector,scalar)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>operator*(vector,scalar)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_mul_scalar.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/deduce_vector.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_vector</span><A>::type
+ <span class="RenoLink">operator*</span>( A const & a, <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span> s );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>A vector that is the result of multiplying the vector a by the scalar s.</p>
+<h4>Required access:</h4>
+<p>result:<span class="RenoLink">iw</span>, a:<span class="RenoLink">ir</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_mul_scalar.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/reno.css
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/reno.css 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,227 @@
+/*
+ * Copyright (c) 2006-2008 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)
+ */
+
+body
+{
+ font-family: Trebuchet, Verdana, Arial, Helvetica, Sans;
+ font-size: 10pt;
+ margin: 0;
+ padding: 0;
+ background-color: #E5E5E5;
+}
+
+.RenoPageList,
+ol,
+ul
+{
+ clear: both;
+}
+
+.RenoPageList
+{
+ margin:0;
+}
+
+h1
+{
+ font-size: 24pt;
+ clear: left;
+ padding-top: 5pt;
+ padding-bottom: 5pt;
+ margin-top: 0;
+ margin-bottom: 10pt;
+}
+
+h2
+{
+ font-size: 18pt;
+ clear: left;
+ padding-top: 20pt;
+ padding-bottom: 5pt;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+h3
+{
+ font-size: 14pt;
+ clear: left;
+ padding-top: 15pt;
+ padding-bottom: 5pt;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+h4
+{
+ font-size: 10pt;
+ float: left;
+ clear: left;
+ padding-top: 5pt;
+ padding-bottom: 0;
+ margin-top: 0;
+ margin-bottom: 0;
+ margin-right: 4pt;
+}
+
+p
+{
+ font-size: 10pt;
+ padding-top: 5pt;
+ padding-bottom: 5pt;
+ margin-top: 0;
+ margin-bottom: 0;
+ clear:right;
+}
+
+pre
+{
+ border-top: 1px solid #C5C5C5;
+ border-bottom: 1px solid #C5C5C5;
+ border-left: 1px solid #C5C5C5;
+ border-right: 1px solid #C5C5C5;
+ font-size: 10pt;
+ padding-top: 5pt;
+ padding-bottom: 5pt;
+ padding-left: 5pt;
+ padding-right: 5pt;
+ margin-left: 18pt;
+ margin-right: 18pt;
+ margin-top: 10pt;
+ margin-bottom: 10pt;
+ clear: both;
+}
+
+ol,ul
+{
+ padding-top: 0;
+ padding-bottom: 0;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+ul li
+{
+ padding-top: 5pt;
+ padding-bottom: 5pt;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+.RenoIndex h3
+{
+ margin: 20pt 0 5pt 0;
+ padding: 2pt;
+ display: inline;
+ border: 1.5pt solid #A0A0A0;
+ float: left;
+ clear: both;
+ width: 15pt;
+ text-align: center;
+ background-color: #EAEAEA;
+}
+
+.RenoIndex p
+{
+ clear: both;
+ margin: 0;
+ padding: 0;
+}
+
+.RenoHookUnbound,
+.RenoHookBound
+{
+ background-position: left center;
+ background-image: url('link.gif');
+ background-repeat: no-repeat;
+ padding-left: 10pt;
+}
+
+.RenoIncludeDIV
+{
+ padding: 0;
+ margin: 0;
+}
+
+.RenoError
+{
+ background-color: red;
+ color: white;
+ display: inline;
+}
+
+a
+{
+ text-decoration: underline;
+ color: #0000AA;
+}
+
+tt
+{
+ font-size: 10pt;
+}
+
+hr
+{
+ border: 0;
+ color: black;
+ background-color: black;
+ height: 1px;
+ margin-top: 20pt;
+}
+
+blockquote
+{
+ padding-top: 0;
+ padding-bottom: 0;
+ padding-right: 0;
+ padding-left: 20pt;
+ margin: 0;
+}
+
+#reverge_logo
+{
+ float:right;
+ margin-top:10pt;
+}
+
+#footer
+{
+ margin-top:20pt;
+}
+
+.logo_pic
+{
+ border:0;
+}
+
+.logo
+{
+ float:right;
+ margin-left: 6pt;
+ margin-right: -4pt;
+}
+
+.body-0
+{
+ min-width: 40em;
+ padding-left: 30px;
+ background: url(shade-l.png) repeat-y left;
+}
+.body-1
+{
+ padding-right: 30px;
+ background: url(shade-r.png) repeat-y right;
+}
+.body-2
+{
+ background-color: white;
+ padding: 0 8pt 0 8pt;
+ margin-left: 0;
+ border-top: solid 2.5pt #717171;
+ border-bottom: solid 3pt #717171;
+}
Added: sandbox/la/libs/la/doc/reverge.png
==============================================================================
Binary file. No diff available.
Added: sandbox/la/libs/la/doc/rotx_matrix.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/rotx_matrix.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>rotx_matrix</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>rotx_matrix</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/rotx_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int Dim,class T>
+ -unspecified-return-type-
+ <span class="RenoLink">rotx_matrix</span>( T angle );</span></span>
+ }
+ }</pre>
+</div></div><h4>Requirements:</h4>
+<p>Dim>=3</p>
+<h4>Returns:</h4>
+<p>A <span class="RenoLink">matrix</span> with Dim rows and Dim columns and <span class="RenoLink">scalar_type</span> T which performs a rotation around the X axis at angle radians.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/rotx_matrix.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/roty_matrix.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/roty_matrix.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>roty_matrix</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>roty_matrix</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/roty_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int Dim,class T>
+ -unspecified-return-type-
+ <span class="RenoLink">roty_matrix</span>( T angle );</span></span>
+ }
+ }</pre>
+</div></div><h4>Requirements:</h4>
+<p>Dim>=3</p>
+<h4>Returns:</h4>
+<p>A <span class="RenoLink">matrix</span> with Dim rows and Dim columns and <span class="RenoLink">scalar_type</span> T which performs a rotation around the Y axis at angle radians.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/roty_matrix.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/rotz_matrix.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/rotz_matrix.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>rotz_matrix</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>rotz_matrix</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/rotz_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int Dim,class T>
+ -unspecified-return-type-
+ <span class="RenoLink">rotz_matrix</span>( T angle );</span></span>
+ }
+ }</pre>
+</div></div><h4>Requirements:</h4>
+<p>Dim>=2</p>
+<h4>Returns:</h4>
+<p>A <span class="RenoLink">matrix</span> with Dim rows and Dim columns and <span class="RenoLink">scalar_type</span> T which performs a rotation around the Z axis at angle radians.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/rotz_matrix.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/row.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/row.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>row</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>row</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/row.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int R>
+ -unspecified-return-type- <span class="RenoLink">row</span>();</span></span>
+ }
+ }</pre>
+</div></div><p>The expression m|<span class="RenoLink">row</span><R> returns a <span class="RenoLink">view proxy</span> that accesses row R of the matrix m as a vector.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/row.hpp | MSVC View Proxy Bug</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/row_matrix.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/row_matrix.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>row_matrix</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>row_matrix</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/row_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">row_matrix</span>();</span></span>
+ }
+ }</pre>
+</div></div><p>The expression v|<span class="RenoLink">row_matrix</span> returns a <span class="RenoLink">view proxy</span> that accesses the vector v as a row matrix.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/row_matrix.hpp | View Proxy</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/scalar.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/scalar.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>scalar</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>scalar</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/scalar.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T>
+ struct
+ <span class="RenoLink">scalar</span>
+ {
+ typedef /*unspecified*/ type;
+ };</span></span>
+ }
+ }</pre>
+</div></div><p>The expression <span class="RenoLink">vector_traits</span><T>::<span class="RenoLink">scalar_type</span> evaluates to the scalar type of a vector type T (if <span class="RenoLink">is_vector</span><T>::value is true).</p>
+<p>The expression <span class="RenoLink">matrix_traits</span><T>::<span class="RenoLink">scalar_type</span> evaluates to the scalar type of a matrix type T (if <span class="RenoLink">is_matrix</span><T>::value is true).</p>
+<p>The expression <span class="RenoLink">scalar</span><T>::scalar_type is similar, except that it automatically detects whether T is a vector or a matrix type.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/scalar.hpp | deduce_matrix2</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/scalar_cast_matrix_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/scalar_cast_matrix_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>scalar_cast(matrix)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>scalar_cast(matrix)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_scalar_cast.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class Scalar,class A>
+ -unspecified-return_type- <span class="RenoLink">scalar_cast</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>A read-only <span class="RenoLink">view proxy</span> of a that looks like a matrix of the same dimensions as a, but with <span class="RenoLink">scalar_type</span> Scalar and elements constructed from the corresponding elements of a.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/matrix_scalar_cast.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/scalar_cast_vector_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/scalar_cast_vector_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>scalar_cast(vector)</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>scalar_cast(vector)</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_scalar_cast.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class Scalar,class A>
+ -unspecified-return_type- <span class="RenoLink">scalar_cast</span>( A const & a );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>A read-only <span class="RenoLink">view proxy</span> of a that looks like a vector of the same dimensions as a, but with <span class="RenoLink">scalar_type</span> Scalar and elements constructed from the corresponding elements of a.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_scalar_cast.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/scalar_requirements.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/scalar_requirements.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>scalar requirements</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Scalar Requirements</h3>
+</div>
+<p>A valid scalar type S must have accessible destructor, default constructor, copy constructor and assignment operator, and must support the following operations:</p>
+<pre>S operator*( S, S );
+S operator/( S, S );
+S operator+( S, S );
+S operator-( S, S );
+
+S & operator*=( S &, S );
+S & operator/=( S &, S );
+S & operator+=( S &, S );
+S & operator-=( S &, S );
+
+bool operator==( S, S );
+bool operator!=( S, S );</pre>
+<p>In addition, the expression S(0) should construct a scalar of value zero, and S(1) should construct a scalar of value one -or- the <span class="RenoLink">scalar_traits</span> template must be specialized appropriately.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">deduce_scalar | matrix_traits | matrix_traits<Matrix>::scalar_type | vector_traits | vector_traits<Vector>::scalar_type</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/scalar_traits.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/scalar_traits.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>scalar_traits</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>scalar_traits</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/scalar_traits.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class Scalar>
+ struct
+ <span class="RenoLink">scalar_traits</span>
+ {
+ static Scalar zero() { return Scalar(0); }
+ static Scalar one() { return Scalar(1); }
+ };</span></span>
+ }
+ }</pre>
+</div></div><p>This template can be specialized for user-defined scalar types to define the appropriate values to use as zero and one.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/scalar_traits.hpp | inverse | Scalar Requirements | sw | zero_matrix | zero_vector</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/shade-l.png
==============================================================================
Binary file. No diff available.
Added: sandbox/la/libs/la/doc/shade-r.png
==============================================================================
Binary file. No diff available.
Added: sandbox/la/libs/la/doc/source/Jamfile
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/source/Jamfile 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,15 @@
+# Copyright (c) 2008-2009 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)
+
+project
+ : requirements
+ <include>$(boost-location)
+ <include>../../../..
+ ;
+
+compile tutorial.cpp ;
+compile interoperability.cpp ;
+compile array_vector_traits.cpp ;
+compile array_matrix_traits.cpp ;
Added: sandbox/la/libs/la/doc/source/array_matrix_traits.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/source/array_matrix_traits.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,15 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/all.hpp>
+using namespace boost::la;
+
+void
+f()
+ {
+ float a[4][4];
+ float det = determinant(a);
+ mref(a) *= 42;
+ }
Added: sandbox/la/libs/la/doc/source/array_vector_traits.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/source/array_vector_traits.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,15 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/all.hpp>
+using namespace boost::la;
+
+void
+f()
+ {
+ float a[4], b[4];
+ float dp = dot(a,b);
+ vref(a) *= 42;
+ }
Added: sandbox/la/libs/la/doc/source/boost-la.reno
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/source/boost-la.reno 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44858 @@
+<shared_ptr>
+ <id>1</id>
+ <type>
+ <string>reno_project</string>
+ </type>
+ <object>
+ <reno_project>
+ <config>
+ <shared_ptr>
+ <id>2</id>
+ <type>
+ <string>reno_config</string>
+ </type>
+ <object>
+ <source>
+ <string>../..;../../../../boost</string>
+ </source>
+ <match>
+ <string>.*\.(cpp|hpp|h)$</string>
+ </match>
+ </object>
+ </shared_ptr>
+ </config>
+ <layers>
+ <shared_ptr>
+ <id>3</id>
+ <type>
+ <string>reno_layer_map</string>
+ </type>
+ <object>
+ <sorted>
+ <size>7</size>
+ <pair>
+ <string>default</string>
+ <shared_ptr>
+ <id>4</id>
+ <type>
+ <string>reno_layer</string>
+ </type>
+ <object>
+ <sorted>
+ <size>215</size>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>5</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>C3AC03BF5906F105E08E2702FEF8D87F205536DB1A6BF02B8158DE2A088EC7D0</strong>
+ <weak>1270688572</weak>
+ <size>121</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/zero_determinant_error.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/zero_determinant_error.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>6</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>39ED2FED225BE74CC82CC49DAC30F11C890EEF771287D628E50AE6C34C6037C2</strong>
+ <weak>673958478</weak>
+ <size>1496</size>
+ <position>388</position>
+ <strong>27FF793B50273663EE7DAB79353554E6E907B1395BCDB4283B12CD6816B1356D</strong>
+ <weak>2906440468</weak>
+ <size>1470</size>
+ <position>23</position>
+ <strong>C39F8479823A5F48AD734ACAC998E842D6E00071066C3C55240ED7CFFA2B871A</strong>
+ <weak>2003870586</weak>
+ <size>535</size>
+ <position>931</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>tutorial.cpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>matrix_traits example</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>7</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>D0ED77CBA96D64D7DB6590E033F0C626AE906AEEA7D1AFCA71E72CAE323D861C</strong>
+ <weak>2817641852</weak>
+ <size>1552</size>
+ <position>471</position>
+ <strong>F66A402B310E7D34C78E3604B207CEC1F752CF3D79677DF078280039638C9691</strong>
+ <weak>2918368834</weak>
+ <size>1526</size>
+ <position>23</position>
+ <strong>1E1AB9E89F9E2E76FEB6545C94242F3A1859C0FC8FBB1805782BE0992B780149</strong>
+ <weak>857661926</weak>
+ <size>784</size>
+ <position>738</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>deduce_matrix2</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>8</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>D40580037E1261BDE2D385A1C6EA53494044335A6AB5BD4104BB32940B42B206</strong>
+ <weak>3322993237</weak>
+ <size>743</size>
+ <position>227</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/config.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/config.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>9</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>C786F5A32FC14F3819819244DA4C8B4DAF51909BEA6859C761FBB8E4317D3058</strong>
+ <weak>3098785181</weak>
+ <size>2654</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/rotx_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/rotx_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>10</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>Boost LA</string>
+ </title>
+ <file_name>
+ <string>index</string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>11</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F4AB3C40DF9B945A8C6B87F111452B64AA8324C9597FC81BC0FD3962B4F415A2</strong>
+ <weak>467597092</weak>
+ <size>832</size>
+ <position>375</position>
+ <strong>728446999B6812DE6F024B35B20C88BA321BFD67B85047187EB80CDEA0C8BCB0</strong>
+ <weak>349171690</weak>
+ <size>806</size>
+ <position>23</position>
+ <strong>DF2B7346F8A7AA0C4975056B4947EB7AE49E2E9D6B3A9D0C4FA68AABA8D7B3C4</strong>
+ <weak>2082258542</weak>
+ <size>620</size>
+ <position>182</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_neq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator!=(matrix,matrix)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>12</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>A74E91CC374C953AFCD6CA3D2948181350DEEC0C553623A276DD83BBD9F67596</strong>
+ <weak>3201103460</weak>
+ <size>830</size>
+ <position>374</position>
+ <strong>B48F939E65174E6702CA9FA7EF59625DB13849158578D2106179C0EA347A70FA</strong>
+ <weak>3354914602</weak>
+ <size>804</size>
+ <position>23</position>
+ <strong>75A168F6C2FB9B27E4062E2DCCEC4BC5D6FF406A6FCDD742BE28E74322D159BA</strong>
+ <weak>2870656540</weak>
+ <size>619</size>
+ <position>181</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator==(matrix,matrix)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>13</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>7EE6EE22A8A76DC7FC605C099986E1B383113E7F34D39DDAFA1B2CAD6902A5A4</strong>
+ <weak>3520012411</weak>
+ <size>88</size>
+ <position>356</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/zero_determinant_error.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>zero_determinant_error</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>14</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F6EDE986E5CCD9290121C95265BC95371216AA216346C071C2D3A1FDDFB47032</strong>
+ <weak>3845142065</weak>
+ <size>1005</size>
+ <position>488</position>
+ <strong>9F655DC1782ECA77FAEE0614C25B80E396DAAEBC703EB4534DB0B34E7D6CF991</strong>
+ <weak>1775513335</weak>
+ <size>979</size>
+ <position>23</position>
+ <strong>B013B985B75FCE7B913E385A5EA601347F2EF7C3C31361635CC891EF07076F18</strong>
+ <weak>2863135891</weak>
+ <size>791</size>
+ <position>184</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_minus_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator-(matrix,matrix)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>15</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>69AA01EDBEA1154945D4840E660CACE544C2096BF9DFE525F26D5793B2F37206</strong>
+ <weak>1970782874</weak>
+ <size>671</size>
+ <position>380</position>
+ <strong>F87A643220C4105A2860465871D81F3CB7B2BEBA27997D2A03D2E3C613C1791B</strong>
+ <weak>1766701920</weak>
+ <size>645</size>
+ <position>23</position>
+ <strong>9E4775BF475AAA7BC57AEE5D39760D5044A67F70EC6952B9330715686A47994C</strong>
+ <weak>624265657</weak>
+ <size>460</size>
+ <position>181</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_minus_eq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator-=(vector,vector)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>16</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>E1FAF08B3887257EA4DCE1E226E0E885B664D79D221AE844B37C016F0378F9A7</strong>
+ <weak>1072378562</weak>
+ <size>3002</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/all.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/all.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>17</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>E07466C14A635A48B2CC2B49050E8D152A4639C450CE0C91B4187CAF00A78CB9</strong>
+ <weak>3074085578</weak>
+ <size>742</size>
+ <position>375</position>
+ <strong>0F22487AC119CAC6366BEF675AB4C4EB379283B0E28C054DB5778219046E6642</strong>
+ <weak>3890596514</weak>
+ <size>710</size>
+ <position>26</position>
+ <strong>118A9A1FFAF974B4999626C710FCA38CE42FA608F1C34B2AC58BDDFF1BDE7B6D</strong>
+ <weak>555194465</weak>
+ <size>512</size>
+ <position>188</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_mul_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator*(vector,scalar)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>18</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>Synopsis</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>19</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>7A78331C979A3E18D64A8B9DBEB195E4BED44B8066B9BFFF484EF26804FD261C</strong>
+ <weak>2978269615</weak>
+ <size>684</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/scalar.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>20</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>317A9906E30A86AE8DB53C092FB130476EDF2F9A45AC61C4C14CE47EFFA26B72</strong>
+ <weak>2321882212</weak>
+ <size>96</size>
+ <position>767</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/config.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>BOOST_LA_INLINE_OPERATIONS</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>21</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>D306D5E8403BC1309FD2E8B736AEB4964A1097B3E9081207F76835027575C26B</strong>
+ <weak>58954873</weak>
+ <size>2558</size>
+ <position>423</position>
+ <strong>3639F2AD3969A517D62007367CFF6E34A57216598E2EA1A6A7A43BEC6CCB8B99</strong>
+ <weak>4036660543</weak>
+ <size>2532</size>
+ <position>23</position>
+ <strong>4EC5C70E7A80400F5E89B1D16A19C692EA85DA08964CE1BF52413132097DFD93</strong>
+ <weak>1071461922</weak>
+ <size>179</size>
+ <position>2349</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/rotz_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>rotz_matrix</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>22</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>BBDF496FF77A73C42D32A276B5B195D1C2C57495AFC63B14D5C565B1432A7B6B</strong>
+ <weak>3178422295</weak>
+ <size>1511</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_inverse.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_inverse.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>23</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>731504DD24E2D2CAD4A4089EA45BBE0E1104FAE0E5E1E98DBB7584E0C17CB06E</strong>
+ <weak>3187881024</weak>
+ <size>1035</size>
+ <position>525</position>
+ <strong>18E8CAA1ADB8522E53BCECA9E46580EF13721A893B0261AD17B04BC24594A169</strong>
+ <weak>2214931718</weak>
+ <size>1009</size>
+ <position>23</position>
+ <strong>00754AFF1510352E6DC0AF2E0170F0AC0377DFF6963C085D7E85E64989BE4C90</strong>
+ <weak>3822779266</weak>
+ <size>823</size>
+ <position>182</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_mul_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator*(vector,matrix)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>24</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>8AD1F2B9725F5B71E616BEF01F3CC1652D5D2E05C11E2930E61E49BF71B430AF</strong>
+ <weak>2931179379</weak>
+ <size>1186</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vec_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vec_traits.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>25</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>3D62161612D7790EAED870F52243868DF78B5FD8B7E92330342118C63862F41B</strong>
+ <weak>173919190</weak>
+ <size>1646</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/array_vector_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/array_vector_traits.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>26</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>0BA746F40D18D4E3DCB25B6D0B7A9D082898DF206E9A6863B0D8318DF6379550</strong>
+ <weak>2010376549</weak>
+ <size>786</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_magnitude.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_magnitude.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>27</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>accessing vector elements, swizzling</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>28</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>matrix_traits<Matrix>::ir</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>29</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>B1329BD327AE4AFA1D27CB518E1EBE1153AD4FB9F222A5799CB0AB8841D47E08</strong>
+ <weak>403629892</weak>
+ <size>781</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_magnitude2.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_magnitude2.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>30</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>4848398A70848F0DC18F129A5140FC19F2927A0EA1543FCF3BFA71CFE2A9CAA0</strong>
+ <weak>2970784096</weak>
+ <size>4739</size>
+ <position>581</position>
+ <strong>8E85E4B5A3EE125CCFC9580BD06C2A99689ED461DC2C5CF25E597CB31E606734</strong>
+ <weak>1392282150</weak>
+ <size>4713</size>
+ <position>23</position>
+ <strong>2188B74B8385CE9DC9E7F6020016A4B0C74BB2AF343CCB7392A10E891325F6E6</strong>
+ <weak>549594977</weak>
+ <size>130</size>
+ <position>4579</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/trans_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>trans_matrix</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>31</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>A7CABB58891C1902879731611FDC460C50919E3E7AC2BF47A0C03A282DB84597</strong>
+ <weak>2377204677</weak>
+ <size>266</size>
+ <position>389</position>
+ <strong>F656D0C8948A0532B65A8F1909D3D6BAC069BCF1A4A7A71D603B6C46E32E0E51</strong>
+ <weak>4080811147</weak>
+ <size>240</size>
+ <position>23</position>
+ <strong>8428A2C68167450C95A2E271132C1742F42488FDA646CCE8F71F73CBFB6C69C6</strong>
+ <weak>75380359</weak>
+ <size>213</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/error.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>error</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>32</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>0CBC24B6476E0FD81E91CBA4E00082204583493239B8941B2B75AD70D06B7430</strong>
+ <weak>3301564699</weak>
+ <size>2432</size>
+ <position>500</position>
+ <strong>7C51E725BF00451B6E8BECFC561030CF5F352138D9382646664FF8FC1E0A975E</strong>
+ <weak>3231635937</weak>
+ <size>2406</size>
+ <position>23</position>
+ <strong>F43CDF3272B2A6A7D4B98FE55E951797260E3598DE69315A10C62A46C2ED39D3</strong>
+ <weak>3981993992</weak>
+ <size>314</size>
+ <position>2088</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_scalar_cast.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>scalar_cast(matrix)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>33</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>5063E1C790F8733DDCD80F8BB656048204F713FBCBEC4F73A679AA2D1EF078BA</strong>
+ <weak>329450763</weak>
+ <size>869</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_plus_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_plus_eq_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>34</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>C413174F929668BF389592D17A76EED7F517144D43B6EC44DA087CED67B11D7F</strong>
+ <weak>4161400492</weak>
+ <size>830</size>
+ <position>375</position>
+ <strong>C70645FB781E16839314290C321A862C0E14E50BBE405851BEE017D4B3EB5C31</strong>
+ <weak>4138133124</weak>
+ <size>798</size>
+ <position>26</position>
+ <strong>E103879C02E9C86213B88C9098225034AD7EA594115D11D8F81F50F7F32B42CF</strong>
+ <weak>3076239966</weak>
+ <size>594</size>
+ <position>194</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_div_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator/(matrix,scalar)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>35</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>74F0904F84D516ED25754208D6D9761809C18108A8E349F98D59D3190629EF85</strong>
+ <weak>1037181125</weak>
+ <size>1905</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/identity_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/identity_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>36</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>7938F8C266519E3814EF203B918C6C775D0C1D5AA5DC48F15EE60C39554E7707</strong>
+ <weak>726408935</weak>
+ <size>13668</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_access.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_access.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>37</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>24B044F4DF6552C656EA25AAA97996798D07F2AE5F5E05F7D6B5AF0EFF7A89A0</strong>
+ <weak>2462110398</weak>
+ <size>742</size>
+ <position>375</position>
+ <strong>A18F56B4E55BFD5907171FBDE744048A5BC85989E3AAD1C3B6D263403A78765C</strong>
+ <weak>3284126358</weak>
+ <size>710</size>
+ <position>26</position>
+ <strong>37A0F1690761F72E9D409DD19C49FBD2D6EF8FA61C5963AF71F035601D807A10</strong>
+ <weak>383948896</weak>
+ <size>512</size>
+ <position>188</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_div_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator/(vector,scalar)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>38</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>scalar requirements</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>39</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>SFINAE</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>40</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>matrix and vector types</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>41</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>0437885581578106E33E6A0C69258A39C5BD8BFA5A0C007A66CF0143012B78CB</strong>
+ <weak>2655282344</weak>
+ <size>1169</size>
+ <position>665</position>
+ <strong>A24CAE8EA62CC2CC2A10140D24C76C2E4CF07DBB30D3EFC66026CDCC9298B4FE</strong>
+ <weak>746085742</weak>
+ <size>1143</size>
+ <position>23</position>
+ <strong>E212D21729BB5D7A7A1173A53FE56683CD7A4302BC88B7285773B1A1C1C90BBE</strong>
+ <weak>1282420508</weak>
+ <size>966</size>
+ <position>173</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_inverse.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>inverse</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>42</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>FDECAFD22EC0AE889FD505D84E321483227C21736067068015F241389588BFEC</strong>
+ <weak>3489655892</weak>
+ <size>4997</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/trans_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/trans_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>43</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>2E3BF16AD5ED5A68B0B3AE26D5CFA3C9BB14622DF767A0E6C70DA548B4E11C4B</strong>
+ <weak>2685148979</weak>
+ <size>105</size>
+ <position>865</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/config.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>BOOST_LA_INLINE_RECURSION</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>44</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>8A3BD7866214E77B10AE2C87FAFF2DA9C7A81295B2D543BBBEE74F086904E750</strong>
+ <weak>2303455062</weak>
+ <size>2617</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/col.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/col.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>45</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>266988083405D56BE40F1955D05F8938DD3D988FB0CA59D513D4DEF76FB635D2</strong>
+ <weak>724585170</weak>
+ <size>261</size>
+ <position>357</position>
+ <strong>A9AA11764FD4015B4202C5D3400DAA435F73BBFF7991ADD17DAACCAEFBC82F8E</strong>
+ <weak>2509783960</weak>
+ <size>235</size>
+ <position>23</position>
+ <strong>380129AD88F66A49A1B4C1AE12ED586EE9A85D79C73EED8B6FDBC495DAEB95E2</strong>
+ <weak>2658090388</weak>
+ <size>208</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/scalar_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>scalar_traits</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>46</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>Index of Types</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>47</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>24A1CC3FF86A0F9E5E6BB196329AABEBF367B024A855069728963DF40C8D74B3</strong>
+ <weak>990215151</weak>
+ <size>1237</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_mul_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_mul_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>48</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>E127465075C2BF69D9BF77EB9E42DDE27FADAD694EE121D0C690B6130303D380</strong>
+ <weak>1972747643</weak>
+ <size>680</size>
+ <position>370</position>
+ <strong>EC194E5FFA4E55CCEE6B68BDDB2D4664388B9C4FB35B18393757BD8D707775C1</strong>
+ <weak>4064392531</weak>
+ <size>648</size>
+ <position>26</position>
+ <strong>8DF87365F562F53F99245716FD676090760CB5BEDFF38D90DDC581AE9199D02D</strong>
+ <weak>2327479561</weak>
+ <size>455</size>
+ <position>183</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_minus.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator-(vector)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>49</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>A7CC68ECF4184862C4A550A478FDF0A2E49EB4B9F61626172DF5195A5C1CE069</strong>
+ <weak>2841613827</weak>
+ <size>2190</size>
+ <position>500</position>
+ <strong>DAE701DA04EC750441599BC58A9E8F84A50418447FCBD2C8CEA944B542ACAD8B</strong>
+ <weak>301895369</weak>
+ <size>2164</size>
+ <position>23</position>
+ <strong>AA0AF8972D645D35E740E22D7BA7E3B259394A6FBCE4DE452784C93055472604</strong>
+ <weak>3917506560</weak>
+ <size>314</size>
+ <position>1846</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_scalar_cast.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>scalar_cast(vector)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>50</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>vector_traits<Vector>::iw</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>51</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>4</size>
+ <strong>08AEEABDEBF16EE91423B4C301DDE070A3FAF0641CC7EC22D8940603685F04F7</strong>
+ <weak>1751470979</weak>
+ <size>291</size>
+ <position>323</position>
+ <strong>04967A68687B8C0AF579B6D79773BBC091664756C465089AD8A15BCD96519592</strong>
+ <weak>3919793225</weak>
+ <size>265</size>
+ <position>23</position>
+ <strong>8E46E7AAD7063F31BDD7EF9913D0AA93A9B997A5161EB4A76A0A8190EFD43933</strong>
+ <weak>1743725876</weak>
+ <size>125</size>
+ <position>23</position>
+ <strong>CF584F3E03BD4F1B2EC62AE77E004F1BAD230EF6B3B328C0417AF2882400091E</strong>
+ <weak>2085423214</weak>
+ <size>28</size>
+ <position>61</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>vector_traits<Vector>::dim</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>52</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F5B5D59AD4D9033D62011A68E8647C50186C092136C0598C667BD44E4AB0CD48</strong>
+ <weak>3221861264</weak>
+ <size>658</size>
+ <position>378</position>
+ <strong>B577AD4D98E05409292A35782D04635870FE48F3B1C373E9FCFC4A06DB504ADE</strong>
+ <weak>500869992</weak>
+ <size>626</size>
+ <position>26</position>
+ <strong>0A43189F3AFD4CAA1E5F7350ACD58B42437D70671A1BA94AFB92A38845748434</strong>
+ <weak>2224715762</weak>
+ <size>425</size>
+ <position>191</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_mul_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator*=(vector,scalar)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>53</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F22A85242AF9994299028734C8B00C35154FE87874CD91530EB81C241C96FD0E</strong>
+ <weak>867832725</weak>
+ <size>1058</size>
+ <position>451</position>
+ <strong>70320E9FB008270D2723D4E6E01D640F06A9A8A190C1C3C48AF002FCB1A95086</strong>
+ <weak>3830254683</weak>
+ <size>1032</size>
+ <position>23</position>
+ <strong>C724636D736A88FB3631462F88062BBCBE96BE04F2C797D74CBAA64026B7A754</strong>
+ <weak>477623494</weak>
+ <size>951</size>
+ <position>77</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vec_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>vector_traits<vec<T,Dim>></string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>54</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>5FFF22B7914C93C3E3097211BE8EAE4A069A3A486575AF4CCF3896C248CBAF8C</strong>
+ <weak>85983536</weak>
+ <size>882</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_mul_scalar.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>55</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>BEEB050376740D5D3CDE8F5DAE3898F6E9DCAF3CD14747ABF7DF3A8A809C53E8</strong>
+ <weak>3639104308</weak>
+ <size>2528</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/sw.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/sw.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>56</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>2</size>
+ <strong>228EB56F60C0881C7C06F86C9DB387AB098AE6901E6C567873B7330598DFCFC1</strong>
+ <weak>832967549</weak>
+ <size>79</size>
+ <position>286</position>
+ <strong>C02E4F7651567DD507223CA92D585322A7B8FA0978D562464D24FAAC9CCD0851</strong>
+ <weak>76353454</weak>
+ <size>60</size>
+ <position>16</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>array_vector_traits.cpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>array vector_traits example</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>57</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>binary vector,vector operations</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>58</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>1436CB2DFD4EA22137C4843369FB3A68282B4C25E32075949CB0E939F22D4831</strong>
+ <weak>528760715</weak>
+ <size>1015</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_dot.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_dot.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>59</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>9DB2F0041171CDA1FC78FADE569C5DE1E4A214D61B35F44599E2888D90ADF794</strong>
+ <weak>289079545</weak>
+ <size>1700</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/deduce_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>60</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>view proxies of vector type</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>61</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>5990FBB0523A0EE24C6EF623F902FA6ECF8299487F58986EC9FF592EAD9D2D6D</strong>
+ <weak>2711925636</weak>
+ <size>658</size>
+ <position>378</position>
+ <strong>0EA73A67CDEA6BE0DEA14598253FF09E583AF27E36439248EEE3B086418A66EB</strong>
+ <weak>4291406684</weak>
+ <size>626</size>
+ <position>26</position>
+ <strong>EDD4E45A2CAAF8A38C8379105A37F354601C16DE5E42BD06E9EB3E7A58D8DF67</strong>
+ <weak>2907994501</weak>
+ <size>436</size>
+ <position>191</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_div_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator/=(vector,scalar)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>62</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>95747DCAEDD197036C643D8AC337A1D93F2D2C14AE15C99884AD9185EEA4E8B9</strong>
+ <weak>772345442</weak>
+ <size>40</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/swizzle.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/swizzle.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>63</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>MSVC view proxy bug</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>64</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>vector_traits<Vector>::ir</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>65</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>031CF9038CD8C4D15164ED85B46E4AB76EC651AD397F335F308B566E53D42478</strong>
+ <weak>3638491346</weak>
+ <size>13559</size>
+ <position>432</position>
+ <strong>FC0556556D529205D6E52BBD9ED8722673C7A10453BA2B4F0BF2DA57E5BC4AD8</strong>
+ <weak>2667442346</weak>
+ <size>13527</size>
+ <position>26</position>
+ <strong>AF36638E275F69FFF5CF16AB709B5CB9C088B864C3EC7D06507B826B383084BA</strong>
+ <weak>2611407288</weak>
+ <size>13494</size>
+ <position>29</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_access.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>matrix/A</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>66</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>65A26A1564713FF60C259B614BF5CA30FC1E5FF1F4D787901ACAE9B8E730C367</strong>
+ <weak>1711657131</weak>
+ <size>674</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_determinant.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_determinant.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>67</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>type traits</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>68</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>31299401963ADB6601F0924D75C60D36355E6F68D86D211D4262331FFCA49FAA</strong>
+ <weak>1828259971</weak>
+ <size>881</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_eq_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>69</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>Index of View Proxies</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>70</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>59ECCBA3F8513ADC909410A38B1EA12CE8EC735AE66237BA159250FCC376B012</strong>
+ <weak>906571485</weak>
+ <size>976</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_minus_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_minus_vector.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>71</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>4</size>
+ <strong>32DA59FB8F7DE580BFFA1377CCD82281090D0B20A978196B50FF13DA3221F76C</strong>
+ <weak>4239615754</weak>
+ <size>350</size>
+ <position>323</position>
+ <strong>39636BD1AA595D4FB8550BC343047446A76E749C77E425F2EC615AF1D2466FA5</strong>
+ <weak>2846253008</weak>
+ <size>324</size>
+ <position>23</position>
+ <strong>4DEA1F4F4BAE51CBF49447FA5DE6A8696A05F53199ED6CA5000E7E9A75B1DA9A</strong>
+ <weak>2037853870</weak>
+ <size>155</size>
+ <position>23</position>
+ <strong>FDA23A25EE02B488BFF1816B6A5CD764ABAB67DC039077D9A09099B3938EA3F4</strong>
+ <weak>2261649637</weak>
+ <size>29</size>
+ <position>90</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>matrix_traits<Matrix>::cols</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>72</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>E6D6423AEBD874FC365BC1D85235AD7C2C9175331E5E895B52BC8908CB4572D9</strong>
+ <weak>107475818</weak>
+ <size>809</size>
+ <position>487</position>
+ <strong>3B1B3C07FC273027991ED339F598425335C9F25EADC52507D6D605360EAD0206</strong>
+ <weak>2791042096</weak>
+ <size>783</size>
+ <position>23</position>
+ <strong>89D67BD3388A676FC353057FB446B890884DB1529F3FA366076CFD4E03063795</strong>
+ <weak>4125801510</weak>
+ <size>602</size>
+ <position>177</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_plus_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator+(vector,vector)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>73</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>27C5BC11FCBB6E30D9F58E8FAE7A9E63740B66D9A1C78155397CD46B1A306E7F</strong>
+ <weak>2143496001</weak>
+ <size>2762</size>
+ <position>542</position>
+ <strong>6F6341882993D30620CAFDAAD6D4CC7F317690A1081579A407044A4785006CC9</strong>
+ <weak>3701350407</weak>
+ <size>2736</size>
+ <position>23</position>
+ <strong>0EFA28AD1658F438A60B3F3BF900FED7B9C71BB94BC7A7B4C69922A6B3305803</strong>
+ <weak>2066687400</weak>
+ <size>127</size>
+ <position>2605</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/diag_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>diag_matrix</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>74</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>unary vector operations</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>75</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>4</size>
+ <strong>32DA59FB8F7DE580BFFA1377CCD82281090D0B20A978196B50FF13DA3221F76C</strong>
+ <weak>4239615754</weak>
+ <size>350</size>
+ <position>323</position>
+ <strong>39636BD1AA595D4FB8550BC343047446A76E749C77E425F2EC615AF1D2466FA5</strong>
+ <weak>2846253008</weak>
+ <size>324</size>
+ <position>23</position>
+ <strong>4DEA1F4F4BAE51CBF49447FA5DE6A8696A05F53199ED6CA5000E7E9A75B1DA9A</strong>
+ <weak>2037853870</weak>
+ <size>155</size>
+ <position>23</position>
+ <strong>790E0E6C507CD18E42A726B890F56EF26E4DD599E106DC02EA5D3CB23EA8A602</strong>
+ <weak>2517502439</weak>
+ <size>30</size>
+ <position>119</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>matrix_traits<Matrix>::scalar_type</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>76</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>79523599E546D2FA2088AEAB3DB8D8D4C41D2DEA71C84D907FA34EA703BAA580</strong>
+ <weak>3595941584</weak>
+ <size>1584</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/mat_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/mat_traits.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>77</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>32DA59FB8F7DE580BFFA1377CCD82281090D0B20A978196B50FF13DA3221F76C</strong>
+ <weak>4239615754</weak>
+ <size>350</size>
+ <position>323</position>
+ <strong>39636BD1AA595D4FB8550BC343047446A76E749C77E425F2EC615AF1D2466FA5</strong>
+ <weak>2846253008</weak>
+ <size>324</size>
+ <position>23</position>
+ <strong>4DEA1F4F4BAE51CBF49447FA5DE6A8696A05F53199ED6CA5000E7E9A75B1DA9A</strong>
+ <weak>2037853870</weak>
+ <size>155</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>matrix_traits</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>78</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>configuration macro</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>79</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>C6BF47A09D3141C2895FAE6B4273DB878CB5EA4CE244FD6EC5DF6D02880378D0</strong>
+ <weak>3082684984</weak>
+ <size>2732</size>
+ <position>503</position>
+ <strong>3FBE607E0BA7AECBC5F36A8F61DBA5182764DD8B33E7DCF18D8D94BF2E98C886</strong>
+ <weak>1327694590</weak>
+ <size>2706</size>
+ <position>23</position>
+ <strong>7168883187BFEFE10C4B6D53374F82AF21E9A49103FAADD3913811F5AF2EE43A</strong>
+ <weak>572464332</weak>
+ <size>106</size>
+ <position>2596</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/diag.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>diag</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>80</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>86175E3EF176C94E2029F2EE88D57CD71AD9F2E32B87A6CDC9B7B15EABE1204A</strong>
+ <weak>1751517617</weak>
+ <size>884</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_neq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_neq_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>81</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>5B598A202C109D408970E39E3A347CF013989351E18D18A470CC9C3667DBF7C5</strong>
+ <weak>432785432</weak>
+ <size>687</size>
+ <position>375</position>
+ <strong>76F35376B147550D2506E370A9A112E8D454AC2E3FA63869077D2D7E4C811E29</strong>
+ <weak>2379858142</weak>
+ <size>661</size>
+ <position>23</position>
+ <strong>121328B9E26A3FCECB265A5DA34EC78F12956B0FFB2EA04A88FFAA0323C1960F</strong>
+ <weak>1309053268</weak>
+ <size>481</size>
+ <position>176</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_neq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator!=(vector,vector)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>82</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>851A747BC3E9FB1248C6CA7053CBEC4FE211E6900E2A04146230E0F074F80834</strong>
+ <weak>1307975576</weak>
+ <size>2737</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/col_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/col_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>83</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>2AB29F542B1FA69704A922479FC3D18E2CAB02E1A0EB90DA599F8A7559612783</strong>
+ <weak>274696942</weak>
+ <size>1456</size>
+ <position>451</position>
+ <strong>59612611DAF3A59AAF9BEEF5DC1ED910EB6E9546E73B796888046D13AD3E6AD7</strong>
+ <weak>2608366516</weak>
+ <size>1430</size>
+ <position>23</position>
+ <strong>7B317B04E2A9F17DAF5376143FC3DEB66D491A97B05C10FAA14A55FE5DE0C01F</strong>
+ <weak>3255790619</weak>
+ <size>1349</size>
+ <position>77</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/mat_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>matrix_traits<mat<T,Rows,Cols>></string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>84</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>7BB4B890D2D5E241E168907BA7D029621688F5EC7D6FFBD9A6DB607AF8DD6E8E</strong>
+ <weak>74976497</weak>
+ <size>3298</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_access.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_access.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>85</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>Index of Functions</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>86</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>08AEEABDEBF16EE91423B4C301DDE070A3FAF0641CC7EC22D8940603685F04F7</strong>
+ <weak>1751470979</weak>
+ <size>291</size>
+ <position>323</position>
+ <strong>04967A68687B8C0AF579B6D79773BBC091664756C465089AD8A15BCD96519592</strong>
+ <weak>3919793225</weak>
+ <size>265</size>
+ <position>23</position>
+ <strong>8E46E7AAD7063F31BDD7EF9913D0AA93A9B997A5161EB4A76A0A8190EFD43933</strong>
+ <weak>1743725876</weak>
+ <size>125</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>vector_traits</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>87</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>636BB3CE896B251E6E807F49EF2CC28B14E85DB6E91EED03AD5BCE5AB1C9C2E7</strong>
+ <weak>441268064</weak>
+ <size>230</size>
+ <position>323</position>
+ <strong>141C85D89C3F295A40ABE111877B3426452D0AE9214F2B8C9CE929629CB1102B</strong>
+ <weak>2675978278</weak>
+ <size>204</size>
+ <position>23</position>
+ <strong>3CCB5B1401C0C9BF5AA2B9869AFEC3D71454DC41477793243F6AE3F8C2BEC294</strong>
+ <weak>2951948834</weak>
+ <size>177</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vec.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>vec</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>88</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>3461ECC18C7CAACB58C0FA590FCAA908280182BD881D98E47F8DA72D51F263FD</strong>
+ <weak>227098531</weak>
+ <size>251</size>
+ <position>323</position>
+ <strong>72AD752331C890FA32F72751D5505EA781AF1EA6226DC6481BCB3928D05E0CBE</strong>
+ <weak>3872340073</weak>
+ <size>225</size>
+ <position>23</position>
+ <strong>BAB294CA841124E270E4AE4E586E80AEFBD217E5D57DA80553E65F504FE3A660</strong>
+ <weak>1564291685</weak>
+ <size>198</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/mat.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>mat</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>89</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>37F82533D327D979DC8F5FAAC4458C76091EE2195FE6CF8C568C21CE49D96277</strong>
+ <weak>1289837182</weak>
+ <size>332</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/error.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/error.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>90</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>4253EEC587C554453CD7142C5E0D2C99FD78455C12E15D46B8889D2D14A5886A</strong>
+ <weak>139947930</weak>
+ <size>1167</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_plus_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_plus_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>91</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>tutorial bar</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>92</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>c arrays</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include include:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-91</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>93</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>7AC7B59B6D64AFEBEFA40EF80F1633E7CB471D0319BD91D41B6FA104F81C61F1</strong>
+ <weak>1842459597</weak>
+ <size>3092</size>
+ <position>286</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>interoperability.cpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>Interoperability</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include include:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-91</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>94</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>D3794CB76D76E473990C7F089D9D5E027B14B44E8E94E382333A7583E71A9844</strong>
+ <weak>2382481211</weak>
+ <size>713</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_mul_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_mul_eq_scalar.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>95</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>E5E3FD902762B543C705D74ECF264968B24D7BFD49291ECA67159F9E33112F8B</strong>
+ <weak>3837865377</weak>
+ <size>973</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_plus_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_plus_vector.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>96</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>216A4CA9AEF018D1438EC2BE1DB4D9746CED9EEBD9CBEB1584384485B2CCEA82</strong>
+ <weak>830575479</weak>
+ <size>2554</size>
+ <position>423</position>
+ <strong>3444BB2DA2A582573D02588283F9527770F1F8B95C0A00980874CB40BC3AB37E</strong>
+ <weak>1024756797</weak>
+ <size>2528</size>
+ <position>23</position>
+ <strong>F0B1A7075DA15B3B31E28510BA31C4BCABAB7FE492A9C10C23F83728FB79747F</strong>
+ <weak>1056978463</weak>
+ <size>179</size>
+ <position>2345</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/roty_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>roty_matrix</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>97</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>F361729C8F62AF34F839F97C9D485F06928ED907FE6C26D61243E5E97F15A478</strong>
+ <weak>2447709068</weak>
+ <size>65</size>
+ <position>504</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/config.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>BOOST_LA_INLINE</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>98</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>26FB4DD526A9DA96CBBC5F48E9948BB96B373D55296AE1688395982D935F7311</strong>
+ <weak>2855932998</weak>
+ <size>892</size>
+ <position>446</position>
+ <strong>03F510A66F67E1B8190E3D2916B3E521B81CC7A40AD335FE67CD5284B63E714B</strong>
+ <weak>2715225356</weak>
+ <size>866</size>
+ <position>23</position>
+ <strong>1DCCD51F2E4E40DEFFA0E2D1876F6626E9A85BFF26D294DCEF97168EB674FE6E</strong>
+ <weak>2447499377</weak>
+ <size>693</size>
+ <position>169</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_dot.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>dot</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>99</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>4</size>
+ <strong>32DA59FB8F7DE580BFFA1377CCD82281090D0B20A978196B50FF13DA3221F76C</strong>
+ <weak>4239615754</weak>
+ <size>350</size>
+ <position>323</position>
+ <strong>39636BD1AA595D4FB8550BC343047446A76E749C77E425F2EC615AF1D2466FA5</strong>
+ <weak>2846253008</weak>
+ <size>324</size>
+ <position>23</position>
+ <strong>4DEA1F4F4BAE51CBF49447FA5DE6A8696A05F53199ED6CA5000E7E9A75B1DA9A</strong>
+ <weak>2037853870</weak>
+ <size>155</size>
+ <position>23</position>
+ <strong>F6C43FD4AF8F8A046843A0E491514EE9BAC435BCA658B80561725D32E3EF7AEE</strong>
+ <weak>2275543295</weak>
+ <size>29</size>
+ <position>61</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>matrix_traits<Matrix>::rows</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>100</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>4528814168CA5EFA8A422BB7126B488E1F91E70289539BB1A35A2896308E6573</strong>
+ <weak>4181939720</weak>
+ <size>1098</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_cross.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_cross.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>101</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>D0ED77CBA96D64D7DB6590E033F0C626AE906AEEA7D1AFCA71E72CAE323D861C</strong>
+ <weak>2817641852</weak>
+ <size>1552</size>
+ <position>471</position>
+ <strong>F66A402B310E7D34C78E3604B207CEC1F752CF3D79677DF078280039638C9691</strong>
+ <weak>2918368834</weak>
+ <size>1526</size>
+ <position>23</position>
+ <strong>A87772A92CD373FDE0C8D724E690307F23F0EAEBA4F3713E669875117E9AE8EC</strong>
+ <weak>992599617</weak>
+ <size>713</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>deduce_matrix</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>102</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>636BB3CE896B251E6E807F49EF2CC28B14E85DB6E91EED03AD5BCE5AB1C9C2E7</strong>
+ <weak>441268064</weak>
+ <size>230</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vec.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vec.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>103</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>conversion functions</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>104</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>vector and matrix types</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include include:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-91</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>105</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>60C05A21AB26352E7EE0EE59940BFAA90B7A96B78A110A0BC66E79E98201B062</strong>
+ <weak>4091952104</weak>
+ <size>2861</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/delc.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/delc.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>106</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>3F993AFBBAE4409CF6C6D475F228F22DBE4113105A66DB630049DCDCED2A0503</strong>
+ <weak>1242596104</weak>
+ <size>1401</size>
+ <position>500</position>
+ <strong>3E130194588BBD2C05253EDFC9EFD31492099AC8AE58992EE835385103A9B550</strong>
+ <weak>1618770894</weak>
+ <size>1375</size>
+ <position>23</position>
+ <strong>B0093EABB308DF351E00DBE68C457B2172F0130993A7188589A76485583CF605</strong>
+ <weak>140261029</weak>
+ <size>183</size>
+ <position>1188</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/zero_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>zero_vector</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>107</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>0C49B6AEE621DE65DD6DFF33FE52F2E7CEC75CFDCD7479B68918C7265B2C979D</strong>
+ <weak>3310240237</weak>
+ <size>2479</size>
+ <position>372</position>
+ <strong>CB94061B6C4A9BA259DF55DDF8DB116A16568858D3209DE927C4E2BE3D5D6844</strong>
+ <weak>117979827</weak>
+ <size>2453</size>
+ <position>23</position>
+ <strong>CE2A7A2E5B83DB39E52C18ED86C7BE7AC022D4472E526C411B3DA74B642DD7C1</strong>
+ <weak>3152819375</weak>
+ <size>2426</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/sw.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>sw</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>108</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>0580D4996FC9B356FF15C03D4E8EDB02ECAE225019F4CAF7FE1B07F9167D89CC</strong>
+ <weak>4120306985</weak>
+ <size>794</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_div_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_div_scalar.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>109</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>F45A6298E07660A730599E1DB062878DDB48966A07597470B9F6996329DC85CC</strong>
+ <weak>1881016409</weak>
+ <size>2708</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vref.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vref.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>110</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>08AEEABDEBF16EE91423B4C301DDE070A3FAF0641CC7EC22D8940603685F04F7</strong>
+ <weak>1751470979</weak>
+ <size>291</size>
+ <position>323</position>
+ <strong>04967A68687B8C0AF579B6D79773BBC091664756C465089AD8A15BCD96519592</strong>
+ <weak>3919793225</weak>
+ <size>265</size>
+ <position>23</position>
+ <strong>BF0CB759B7B9E6D096F7E0EEFD5C6E94D7278A09D9B630BD22EA3A763CD38371</strong>
+ <weak>1208033530</weak>
+ <size>111</size>
+ <position>150</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>is_vector</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>111</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>1D161CDF7E82C3602B19A0A24620C664E0775F2F0AAEB30A0B079B4BA5CA4BA8</strong>
+ <weak>2129979880</weak>
+ <size>815</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_minus.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_minus.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>112</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>44A4C34BF54234D71FCDF690447D2AA436DAB4DFCE73B75A83B60CE389AD4895</strong>
+ <weak>1305411323</weak>
+ <size>2681</size>
+ <position>503</position>
+ <strong>36889224D0664FF06B38951694C463C4578D703A34EBAD3117333FF46A838638</strong>
+ <weak>1668216769</weak>
+ <size>2655</size>
+ <position>23</position>
+ <strong>CE99528477EEC3A86CC3B5441D853A1D7AB1E730155490A5D8AA2D848553F597</strong>
+ <weak>29695925</weak>
+ <size>96</size>
+ <position>2555</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/delr.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>delr</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>113</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>2FA18CDDAA15E1BFE4AAB35708504B60E719DD8CFCE8548E67703D0D89DF9CC7</strong>
+ <weak>1777657566</weak>
+ <size>3189</size>
+ <position>432</position>
+ <strong>3338BBE08EB9C0C4CD5FB7335A002EABF48EDD1E41CB5C46778C900F5E236CB3</strong>
+ <weak>1709694646</weak>
+ <size>3157</size>
+ <position>26</position>
+ <strong>EDDEC3820270A276A42F7014789234CCF377C9D1069D4D674EBDCA5ADEE2B15E</strong>
+ <weak>2968528714</weak>
+ <size>1687</size>
+ <position>1466</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_access.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>vector/A</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>114</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>838B77D683B59C58472181EAB28B3C9A66C282D5E5B628658950A51602FEA66A</strong>
+ <weak>2275128774</weak>
+ <size>620</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_make.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_make.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>115</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>Views</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include include:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-91</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>116</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>43F5A75BF8489CD815F25F5BB0D178C125BD2699D6AD5CFF3A8AE8D75B058534</strong>
+ <weak>749127512</weak>
+ <size>685</size>
+ <position>374</position>
+ <strong>3C0B06890B913ABA28C823BEAF42031F3992094C4518A4B9F6E9E4FCD21036FB</strong>
+ <weak>2968436766</weak>
+ <size>659</size>
+ <position>23</position>
+ <strong>CC12F02EF7EFD03D0D17D45EC141390F8D9B172680AB0FCF4DDAFBFED3C733D3</strong>
+ <weak>2908066050</weak>
+ <size>480</size>
+ <position>175</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_eq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator==(vector,vector)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>117</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>6DC8DD933DE7CE5DC53A087ED87580081FB186B74CE9F18B138883923EC4FD7E</strong>
+ <weak>1375580247</weak>
+ <size>2437</size>
+ <position>503</position>
+ <strong>90A15AD09B253394E6EB2096EF4BDC0972853DD2F47A0CF198889C233765BDA7</strong>
+ <weak>4023494941</weak>
+ <size>2411</size>
+ <position>23</position>
+ <strong>4B36155936AC41463498A56001F0BC83FEDF7940BAE8C01EAA8F26B041474187</strong>
+ <weak>723460878</weak>
+ <size>129</size>
+ <position>2278</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/col.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>col</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>118</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>43F64123A3A950446C36F33FB389533973BCE6B90FC3C267741F7F10AB4449A9</strong>
+ <weak>2308408373</weak>
+ <size>1357</size>
+ <position>371</position>
+ <strong>688B13FD49582B3AE105275BD9301A9A4B4E80F938B29972EA6A3CAB58C49FA0</strong>
+ <weak>3192618235</weak>
+ <size>1331</size>
+ <position>23</position>
+ <strong>BA3FF73AB41F3CBE9533DB109320216EAB62398468C6DC172BC99F0DAEF8B129</strong>
+ <weak>4079264013</weak>
+ <size>507</size>
+ <position>820</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_assign.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>assign(matrix,matrix)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>119</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>70E02CD14A1F15194DB038E7D98DE9900067BD9BCEA318307A63AFA89E9D34A1</strong>
+ <weak>25424456</weak>
+ <size>2617</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/row.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/row.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>120</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>D1B9280A5845BABE7D0745EF2C61B4088A8A6BC508F35204BD52DA8F82D93626</strong>
+ <weak>3011095533</weak>
+ <size>572</size>
+ <position>425</position>
+ <strong>AD0D21D3584AC847C353C03A21E4AEED772D8946501685A3E67AE3F24AB71C6B</strong>
+ <weak>2428150963</weak>
+ <size>546</size>
+ <position>23</position>
+ <strong>972672EB24485FD53110DA6F2776877EE73FA95B6E39D01F9B7B50B2D1B6BCE3</strong>
+ <weak>1352103106</weak>
+ <size>365</size>
+ <position>177</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_determinant.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>determinant</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>121</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>EA00C1554EE682AD120F6345A549DCBD235EA199DA273E64E0318D817EC93B63</strong>
+ <weak>3354718407</weak>
+ <size>1767</size>
+ <position>461</position>
+ <strong>2023B9C531D52785C3F55A18BD01B63FF0150E2257BE459E342C2C1F0B4F768F</strong>
+ <weak>3002001805</weak>
+ <size>1741</size>
+ <position>23</position>
+ <strong>F791516973A70DE5D200121E436EDC2E5C1E08E2D4E5D8BEFF08FC7A2F85FEEC</strong>
+ <weak>679361449</weak>
+ <size>195</size>
+ <position>1542</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/identity_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>identity_matrix</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>122</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>AC343DB8AE4D6D7C0A82466F7FE858DB409D9945DCB9232A8F9BDCB5CE0EBCEA</strong>
+ <weak>1798970369</weak>
+ <size>95</size>
+ <position>571</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/config.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>BOOST_LA_INLINE_TRIVIAL</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>123</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>BF1CA95D601462BB76FEF50BC40AC480665A8323E000C09DD52FFC7859BBF3E9</strong>
+ <weak>2751389851</weak>
+ <size>2557</size>
+ <position>503</position>
+ <strong>2369D9C7D88B8BF28AE2A2FA9E933B479BCBE7481137D2C8D2D0F1F16F8DA525</strong>
+ <weak>1730861409</weak>
+ <size>2531</size>
+ <position>23</position>
+ <strong>681B43A95C8000D2710613954882F7C0E473AE10E5585FE0E305EA64C3A07845</strong>
+ <weak>51455139</weak>
+ <size>124</size>
+ <position>2403</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/col_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>col_matrix</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>124</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>4</size>
+ <strong>08AEEABDEBF16EE91423B4C301DDE070A3FAF0641CC7EC22D8940603685F04F7</strong>
+ <weak>1751470979</weak>
+ <size>291</size>
+ <position>323</position>
+ <strong>04967A68687B8C0AF579B6D79773BBC091664756C465089AD8A15BCD96519592</strong>
+ <weak>3919793225</weak>
+ <size>265</size>
+ <position>23</position>
+ <strong>8E46E7AAD7063F31BDD7EF9913D0AA93A9B997A5161EB4A76A0A8190EFD43933</strong>
+ <weak>1743725876</weak>
+ <size>125</size>
+ <position>23</position>
+ <strong>790E0E6C507CD18E42A726B890F56EF26E4DD599E106DC02EA5D3CB23EA8A602</strong>
+ <weak>2517502439</weak>
+ <size>30</size>
+ <position>89</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>vector_traits<Vector>::scalar_type</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>125</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>31049A602A940FFCB8803D01376F2AD4BCEBFFA33B04AAD32AACE2240B545518</strong>
+ <weak>2755556668</weak>
+ <size>9057</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/deduce_scalar.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>126</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>794FEB8DA9FC5024D2791463CDFC08336EE8E69BC4A3BF27785AC79E0A3CD0BE</strong>
+ <weak>1523112295</weak>
+ <size>768</size>
+ <position>370</position>
+ <strong>1A71D9EC313642ACFC728E2E1306CBAA524D4FE12C8860DA88BD06A54B6396E7</strong>
+ <weak>2770391359</weak>
+ <size>736</size>
+ <position>26</position>
+ <strong>4290F76ADD043BACCAF59E2D5086B3F8A5E8AC941EF57313C12B65690B9BA67D</strong>
+ <weak>3237584645</weak>
+ <size>537</size>
+ <position>189</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_minus.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator-(matrix)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>127</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>3461ECC18C7CAACB58C0FA590FCAA908280182BD881D98E47F8DA72D51F263FD</strong>
+ <weak>227098531</weak>
+ <size>251</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/mat.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/mat.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>128</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F133EBFA4632A5D1A877B35D8AB4162BF15B59AEE21314B00D264C5A35631402</strong>
+ <weak>2974125027</weak>
+ <size>1350</size>
+ <position>471</position>
+ <strong>68A65502AD229D50D73CEA91BD9C6E038DF7F15F246A327D3780D57807807D8C</strong>
+ <weak>4119626921</weak>
+ <size>1324</size>
+ <position>23</position>
+ <strong>521308D95228CBCF737EFCDED2B1D740851EB05C6F8F8361CEA4F17B48A9CC8D</strong>
+ <weak>1458487953</weak>
+ <size>682</size>
+ <position>638</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>deduce_vector2</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>129</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>CA2CB006DE97C12ECE927C1E6BB46E3B56F820002C9A164C63C52BBCD490AD38</strong>
+ <weak>2326177533</weak>
+ <size>1366</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_mul_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>130</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>B7A34C6DD89D7F572E0E4E3ADB1326B2283CA75EFE3FCE1863586191C175D96B</strong>
+ <weak>1109946582</weak>
+ <size>1170</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_minus_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_minus_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>131</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>2</size>
+ <strong>9D5AF6D5211F4CEFD97E659BD0EC274DE3FCD8A86FB3A0C49170818F5FE7ACA6</strong>
+ <weak>3147830773</weak>
+ <size>83</size>
+ <position>286</position>
+ <strong>CB00FDDF2F39F82A33941362E06DEAA6AF71DB1B0E681A6044F9D0259E0A88D3</strong>
+ <weak>2011107878</weak>
+ <size>64</size>
+ <position>16</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>array_matrix_traits.cpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>array matrix_traits example</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>132</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>D4244E9EB02DE1CBF80D77B4B1B18A2044300287D9ABB015CEC315C8B97A9CBF</strong>
+ <weak>1696985289</weak>
+ <size>813</size>
+ <position>379</position>
+ <strong>5371BE1792871C0B89BB2149F828003CFAE6518592BCA9A2363B4611F202F099</strong>
+ <weak>4113164687</weak>
+ <size>787</size>
+ <position>23</position>
+ <strong>9A4AD52AAF8EC8A28E85611F20C07646673BD3806BC23E768E20474E384F512E</strong>
+ <weak>3956455006</weak>
+ <size>597</size>
+ <position>186</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_plus_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator+=(matrix,matrix)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>133</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>A4613132E99A7F300B4C5910B53DB50020F6C96F529FD1D810F40DDDD1390F68</strong>
+ <weak>59496256</weak>
+ <size>728</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_minus_eq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_minus_eq_vector.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>134</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>BDF96E70F3232AECF6443916A332AD45E6BBFCB147DC3897AF8170A9F1C6B511</strong>
+ <weak>2646905705</weak>
+ <size>2554</size>
+ <position>423</position>
+ <strong>4A30E35679400C0A8D1C9BB80F7C4B46D885BA7C854681A70A8A92221BC9AC1B</strong>
+ <weak>2844757039</weak>
+ <size>2528</size>
+ <position>23</position>
+ <strong>3F82843BC1CEA379E263B6782B50C7D8863CE0ABBDD7B830493EC8E36797BFAA</strong>
+ <weak>1042495004</weak>
+ <size>179</size>
+ <position>2345</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/rotx_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>rotx_matrix</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>135</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>A777E983100C6000480EDFFCECCC6E268BFB9856DFB612855C2857EF8045E71F</strong>
+ <weak>447095211</weak>
+ <size>2792</size>
+ <position>503</position>
+ <strong>D10B038F01E57887D3974EB6C1CDE333D0B91DABCE610FB5B603E23B120CAD25</strong>
+ <weak>3346209393</weak>
+ <size>2766</size>
+ <position>23</position>
+ <strong>717C18355323CFA60E2C6E108F5711A79992EF7A8D23816F58FB9A06B99357B2</strong>
+ <weak>2882610727</weak>
+ <size>115</size>
+ <position>2647</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/delrc.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>delrc</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>136</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>matrix_traits<Matrix>::r</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>137</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>BDC50A6C63597478762E53162DBA209E9D46398203C8E16ACC7D85997D55E85B</strong>
+ <weak>2418556410</weak>
+ <size>2861</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/delr.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/delr.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>138</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>3E485FC75F93202B3E443A73650630BD624143B682B7A530AFFF5A3E5BF27CB3</strong>
+ <weak>1422076569</weak>
+ <size>8431</size>
+ <position>540</position>
+ <strong>939305AC90C3AA4304CABBDAFFE596E4023404F895891FF21DE0A7629DD491DF</strong>
+ <weak>831333215</weak>
+ <size>8405</size>
+ <position>23</position>
+ <strong>F620A207B0FC552D17B212D22C85B5AE0BAC580A3CA98111224F10788F0B05BF</strong>
+ <weak>2740736819</weak>
+ <size>3398</size>
+ <position>5003</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/detail/swizzle_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>swizzling support</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>139</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>A277FF17C839B27046C6FEB51AED6D762AA615B7C7AF2EBDAF428111F0308540</strong>
+ <weak>3047110271</weak>
+ <size>1113</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_assign.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_assign.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>140</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>binary vector/matrix operations</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>141</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>binary vector,scalar operations</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>142</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>75D1AF19231F05B5A3B5D66C17CD12685EC70566795D1F00E635CC31AA40F038</strong>
+ <weak>3688615412</weak>
+ <size>738</size>
+ <position>378</position>
+ <strong>ABC912DC9054530C982056271DA35F3DEA98D0342BE95E546B4EAD538EC79EC2</strong>
+ <weak>1253098956</weak>
+ <size>706</size>
+ <position>26</position>
+ <strong>3622D25F139FA3FE4403221F35B8DAECA976E07F79D41500EEBACC0E1A7EE834</strong>
+ <weak>180392038</weak>
+ <size>499</size>
+ <position>197</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator*=(matrix,scalar)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>143</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>AC018BB96A3F72F0689FF46F79FCD29186F12DB51E0AF5E4040341A0DADBC974</strong>
+ <weak>2420479247</weak>
+ <size>1405</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_assign.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_assign.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>144</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>AC91CDF11F482BEF1F528822FCD990B189539BBB79649929FD264B34B95964AA</strong>
+ <weak>556100064</weak>
+ <size>1226</size>
+ <position>417</position>
+ <strong>F81B9ACFAB10AF9B2D6758F810174D0CD2D30983EE56B6EEDE1FEF89AF027605</strong>
+ <weak>562324134</weak>
+ <size>1200</size>
+ <position>23</position>
+ <strong>6EE328D7AEECC9F9C46AB7D731863FF7EA3837A63F0664D18F99BDB4152DB125</strong>
+ <weak>3589812697</weak>
+ <size>1017</size>
+ <position>179</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator*=(matrix,matrix)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>145</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>20B7DC43F995DAB3375F8D094846B6F66F11CD045F4D199B921126994F839F88</strong>
+ <weak>1117869535</weak>
+ <size>295</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/scalar_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/scalar_traits.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>146</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>binary matrix,scalar operations</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>147</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>unary matrix operations</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>148</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>1B51FF202CAE8A969D5602FED078D2C7C42AFE12289460DDA4BEF470682F19A7</strong>
+ <weak>4098831709</weak>
+ <size>1003</size>
+ <position>487</position>
+ <strong>AF6BE51C789BBBA879A7A0F8DA318AB45EC20F9D1695941B0745DDAED0B22315</strong>
+ <weak>2306682403</weak>
+ <size>977</size>
+ <position>23</position>
+ <strong>E6748D9A4097A52E0368E22254B51086B261A005FD6AB99EE695DA62D75F9519</strong>
+ <weak>2103573543</weak>
+ <size>790</size>
+ <position>183</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_plus_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator+(matrix,matrix)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>149</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>creating vector objects</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>150</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>37CA7596CEDA5F7084D6943EAA0B38622AFA0B1EDB6CA234E148571958E7944D</strong>
+ <weak>3159897562</weak>
+ <size>2840</size>
+ <position>542</position>
+ <strong>233725CB3C3C31EB0A0CDB76E7DBCBCA86DBAF2C91B8A377D38418DC78DFBF58</strong>
+ <weak>3673763488</weak>
+ <size>2814</size>
+ <position>23</position>
+ <strong>3DA096044C78050C3AF0551BEFA626FF6F53DB4901A90D813F248E843A95F26B</strong>
+ <weak>2438603690</weak>
+ <size>121</size>
+ <position>2689</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/transpose.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>transpose</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>151</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>37313A3F77365E60A2E38C3EB4E903DFEAF72D0033A62FD75C29456183138758</strong>
+ <weak>3801905822</weak>
+ <size>1228</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_mul_vector.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>152</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>6C309E655DC791D2C400E78AD47203534A5D3797FD7984C1A2D6A7804C318EBB</strong>
+ <weak>1381812004</weak>
+ <size>713</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_div_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_div_eq_scalar.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>153</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>96DB0FB5E2597301B357575320E3AEAE8ABB8867C58BDB2CF1E5FD1D833D3D61</strong>
+ <weak>328605672</weak>
+ <size>2737</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/row_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/row_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>154</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F6086067BCE191DC479BA7AACC2DA16727631A4AAACD2873F30176A37E885DB1</strong>
+ <weak>1395242514</weak>
+ <size>621</size>
+ <position>408</position>
+ <strong>91C63079B44100E5201B41809BF030FAB8132D4B974107365CC3BFC0D808B410</strong>
+ <weak>3284774616</weak>
+ <size>595</size>
+ <position>23</position>
+ <strong>21150DE980D7AB196500F34A295D593626EAD1C6DB0972059D48434F513872D1</strong>
+ <weak>767131638</weak>
+ <size>415</size>
+ <position>176</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_make.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>make(matrix)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>155</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>396980535FF036B9D99E87C6921AEB585F11BFB80E4F5FD320CF7C089A4B99B0</strong>
+ <weak>2827645994</weak>
+ <size>2981</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/diag_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/diag_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>156</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>C5F2BE57DD52EC4F7A757C4B8B73ED01AF740F5D6F965644AFFBCE0DD63B8BAC</strong>
+ <weak>4026082727</weak>
+ <size>1065</size>
+ <position>371</position>
+ <strong>492B9A6EBC4C421B8C7E353733CBC55DBEA5BBEAC6E3C4320A106817DB191163</strong>
+ <weak>704192109</weak>
+ <size>1039</size>
+ <position>23</position>
+ <strong>529FF101E84330F81B6D2121170B9C17E86A9587838FF27FD28EC1F451ED49C2</strong>
+ <weak>674133778</weak>
+ <size>386</size>
+ <position>649</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_assign.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>assign(vector,vector)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>157</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>E56D89B73DAFA337D8D7F8DDE23436D308578EB48DD2F1CA3B1D673CDD875F9E</strong>
+ <weak>3131109789</weak>
+ <size>815</size>
+ <position>380</position>
+ <strong>11A15EAC85F1A7AEFB3667D6E0A3677F8CDEFC7B8868EC70E7B0A49D787B86A3</strong>
+ <weak>974842467</weak>
+ <size>789</size>
+ <position>23</position>
+ <strong>91890408BDEC72C866664C4930D9B43D13D8E4FCA3C53F824FD2DA27D0E3D1C5</strong>
+ <weak>3383604938</weak>
+ <size>598</size>
+ <position>187</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_minus_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator-=(matrix,matrix)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>158</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>A6270032D98CB19523F5A29FAAAB9DDD94F34AA1301D60089CB19F5EB130F733</strong>
+ <weak>3528311024</weak>
+ <size>1578</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/zero_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/zero_vector.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>159</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>777011A9C8EDBD1F7989F3A3872A9ED00A874708D0172BB8385A2BF9AB9E978D</strong>
+ <weak>756514373</weak>
+ <size>3098</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/mref.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/mref.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>160</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>2AAB658787B6FA6FD90F9C3538023907D0AA27F8905F23FC3EF64B06E6594C16</strong>
+ <weak>1539557141</weak>
+ <size>690</size>
+ <position>414</position>
+ <strong>CE84FAD3FFD6F2D7FF36E4A13D156F7B5A95225AD7D3C9ECC503358B4293B1F8</strong>
+ <weak>3221667803</weak>
+ <size>664</size>
+ <position>23</position>
+ <strong>262540FDCBB7D83D081C172BA295FB4C7805C8F0C524DB5FE39FE2B76A3271FC</strong>
+ <weak>2418053271</weak>
+ <size>484</size>
+ <position>176</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_magnitude2.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>magnitude2</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>161</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>creating matrix objects</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>162</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>matrix_traits<Matrix>::iw</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>163</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>32DA59FB8F7DE580BFFA1377CCD82281090D0B20A978196B50FF13DA3221F76C</strong>
+ <weak>4239615754</weak>
+ <size>350</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_traits.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>164</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>08AEEABDEBF16EE91423B4C301DDE070A3FAF0641CC7EC22D8940603685F04F7</strong>
+ <weak>1751470979</weak>
+ <size>291</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_traits.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>165</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>ACE11C49AFBA1BF6D8AC33599A42A389535CAFC1B3F9F6D7094FAB2D18092D37</strong>
+ <weak>4075816519</weak>
+ <size>872</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_minus_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_minus_eq_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>166</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>8B5A9A28A1C50511978C310F18C798A7A5DAFA7A030C68930DBDF532563EC970</strong>
+ <weak>605802198</weak>
+ <size>744</size>
+ <position>378</position>
+ <strong>6630834DF027BAAEE9DA49764F18C2DB28748CBD76977F382FD68611B9127264</strong>
+ <weak>1649067694</weak>
+ <size>712</size>
+ <position>26</position>
+ <strong>C56E288F88F670E10FE8659D6155C73E7B2ABEFDAC16AC888BD52F67D44713AF</strong>
+ <weak>4210659667</weak>
+ <size>505</size>
+ <position>197</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_div_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator/=(matrix,scalar)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>167</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>Index of Headers</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>168</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F133EBFA4632A5D1A877B35D8AB4162BF15B59AEE21314B00D264C5A35631402</strong>
+ <weak>2974125027</weak>
+ <size>1350</size>
+ <position>471</position>
+ <strong>68A65502AD229D50D73CEA91BD9C6E038DF7F15F246A327D3780D57807807D8C</strong>
+ <weak>4119626921</weak>
+ <size>1324</size>
+ <position>23</position>
+ <strong>C93F5CF1C35CD7D9392883A216478A034F91463DA6A8FC62160A6AC3B423ED7B</strong>
+ <weak>131906557</weak>
+ <size>613</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>deduce_vector</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>169</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>D031F937EAF11D2989DDDEC6FD7533E7271D99C072C5872817E97421C90C1479</strong>
+ <weak>102421512</weak>
+ <size>2367</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_scalar_cast.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_scalar_cast.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>170</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>CB8961EDBA089E345964114D900BA401DAA1753D9FE98B3E3E028BCC555F7A3E</strong>
+ <weak>2607100384</weak>
+ <size>2881</size>
+ <position>540</position>
+ <strong>D6346B699455BBFE7117A3AD21932028E71E3EA274782D940BF7649C516DA12C</strong>
+ <weak>3133745830</weak>
+ <size>2855</size>
+ <position>23</position>
+ <strong>CC1EF9A9BDC784B98B2F7ABE0D2B0F0C22E76B299A9A66A9721925EAA30771CD</strong>
+ <weak>452872518</weak>
+ <size>241</size>
+ <position>2610</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/mref.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>mref</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>171</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>D198C43F65C5AA8FCEF9432986F8A226854A6757D3EE8907A568F68F51753B37</strong>
+ <weak>2429665734</weak>
+ <size>669</size>
+ <position>379</position>
+ <strong>65D0F01D54D627A51C1F11BE2D6BF58199410D95237B97D2271704CFD2278F6D</strong>
+ <weak>2503064204</weak>
+ <size>643</size>
+ <position>23</position>
+ <strong>C9F3100459B08541932F9CFA7D70A0AFEBDCF9954725B2BB0B9C0DE54ADFACAC</strong>
+ <weak>2084407629</weak>
+ <size>459</size>
+ <position>180</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_plus_eq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator+=(vector,vector)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>172</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>39ED2FED225BE74CC82CC49DAC30F11C890EEF771287D628E50AE6C34C6037C2</strong>
+ <weak>673958478</weak>
+ <size>1496</size>
+ <position>388</position>
+ <strong>27FF793B50273663EE7DAB79353554E6E907B1395BCDB4283B12CD6816B1356D</strong>
+ <weak>2906440468</weak>
+ <size>1470</size>
+ <position>23</position>
+ <strong>85A1D8631EAE179E2061005B5F1CFF6F286AC5DE695164BFA42FEA5611BC1ED8</strong>
+ <weak>1081969841</weak>
+ <size>452</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>tutorial.cpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>vector_traits example</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>173</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>C30FA56975BBCAC341B89F25224273FF3BE359448A28167B233DD5C1965E0250</strong>
+ <weak>2580683873</weak>
+ <size>97</size>
+ <position>668</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/config.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>BOOST_LA_INLINE_CRITICAL</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>174</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>770FFF430145C2E6140EF8EC6D2845611886AE65F7BB331DA0AC98A9F5685454</strong>
+ <weak>2911985834</weak>
+ <size>2972</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/delrc.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/delrc.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>175</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>330FB3AE4FEEBE327A3FA023A0B3D74055CBB7D4217472C8FD5264F68E64DE18</strong>
+ <weak>3937088239</weak>
+ <size>1026</size>
+ <position>525</position>
+ <strong>39D88ABF7D5D5CBBE760CF2313EE00206D23A3E1396EB5B0A1A7CF58CE487879</strong>
+ <weak>4051053493</weak>
+ <size>1000</size>
+ <position>23</position>
+ <strong>A513F3F0AECEB020ABB4BABC18125DEBF83F51FABD4978C0B8F64E11696BF440</strong>
+ <weak>261683761</weak>
+ <size>814</size>
+ <position>182</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator*(matrix,vector)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>176</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>exception types</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>177</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>CEBFB68C79C552AF2309904EED56EF9386CA9C1E2C6216D572C3AC85A6B3B157</strong>
+ <weak>3893218810</weak>
+ <size>727</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_minus.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_minus.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>178</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F8303BB994C099152C1B27BB606E7D5A1BF395DF17A06C1464DD42FCC9E0425F</strong>
+ <weak>3392516937</weak>
+ <size>2437</size>
+ <position>503</position>
+ <strong>C2EFC02132AE1F76F54F35310A0732006FD04F92707591952C9BF95BBFFC0344</strong>
+ <weak>1547807759</weak>
+ <size>2411</size>
+ <position>23</position>
+ <strong>E37169468B309605DE9CE5867ACE516E81D37ED7ABBF784698BDCE1B95C9291E</strong>
+ <weak>966206300</weak>
+ <size>129</size>
+ <position>2278</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/row.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>row</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>179</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>72987D93034F062FF967EE51A5211E4BE6BA27E650D52DEF0BF835AFD29BA52E</strong>
+ <weak>1200933377</weak>
+ <size>2530</size>
+ <position>501</position>
+ <strong>5649D222E4A03F8C81DDCCD6095C06817583862F39A0784592A8443D12DD463E</strong>
+ <weak>397918919</weak>
+ <size>2504</size>
+ <position>23</position>
+ <strong>FE809FAB99B0B9C7FE6D62611F119D537C17F9E30405C71E658D935CBE3F7296</strong>
+ <weak>507005269</weak>
+ <size>241</size>
+ <position>2259</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vref.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>vref</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>180</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>Swizzling</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include include:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-91</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>181</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>5CAC9E91DC6B4E09C1CA8FAC721B123671BA4C85244180D8B53DB988385C5338</strong>
+ <weak>986441024</weak>
+ <size>794</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_mul_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_mul_scalar.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>182</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>28D6DF662437AD2E118E6CE366393258B5C065C778EB38416AC6BE233AE8B7C0</strong>
+ <weak>2806167213</weak>
+ <size>2658</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/rotz_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/rotz_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>183</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>A7D57F00FA156B2EE8D3EDEC8CAF10B8DA87FAB98D9AF9D6CA247B1D4AE8EDD7</strong>
+ <weak>809174245</weak>
+ <size>1821</size>
+ <position>500</position>
+ <strong>DFA6011FA99BF1DFCDBB1D47B024F7DB884C96F42D5F220224E0AC43B5DE1E1E</strong>
+ <weak>1704983979</weak>
+ <size>1795</size>
+ <position>23</position>
+ <strong>EC23483B584AC05B62AE30568EDBB58CDAF793BFB01491DB051981A86B5E2F60</strong>
+ <weak>3857334016</weak>
+ <size>205</size>
+ <position>1586</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/zero_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>zero_matrix</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>184</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>85EC5A6FB118B2EE28093A628AEE0327A9EB884073FDE60C62EC5BD5C1FD1032</strong>
+ <weak>1478640335</weak>
+ <size>1998</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/zero_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/zero_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>185</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>157F98AFBC74DFA397AB261119FF078D4F75475AA7E317889DE1AAFD871D4904</strong>
+ <weak>3677314890</weak>
+ <size>1164</size>
+ <position>525</position>
+ <strong>2D7D5B6D41222065666943B6CE9CF0C988492AC9895EC2484171280EEC1E064F</strong>
+ <weak>2683066384</weak>
+ <size>1138</size>
+ <position>23</position>
+ <strong>F2D5D0F5B3A4244152C42F057E2DE35185D664E1D3D55271100CFCC57BCC2020</strong>
+ <weak>1427448995</weak>
+ <size>946</size>
+ <position>188</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator*(matrix,matrix)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>186</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>binary matrix,matrix operations</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>187</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator| rationale</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>188</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>98ACF74CFC7903C4A9B24FFD9117AD89DDCB04E53687A64176B5A193230DF237</strong>
+ <weak>1570763838</weak>
+ <size>811</size>
+ <position>488</position>
+ <strong>9CE268FE64F92DA80AEE191C4ADF3ECE5165109456DCC01069693BFB52ACD75E</strong>
+ <weak>3976850692</weak>
+ <size>785</size>
+ <position>23</position>
+ <strong>B027409C7E652E9F62D84F1B5A6F47B32C1682FA8D89F39683A053375844A1E0</strong>
+ <weak>3653876882</weak>
+ <size>603</size>
+ <position>178</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_minus_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator-(vector,vector)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>189</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>6FA35A10B96A2B83D0089B3F1B033CC973A17698B08943ABAEA72109EB5ABE72</strong>
+ <weak>2263173431</weak>
+ <size>2912</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/diag.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/diag.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>190</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>0471BD16FF4830C973EE42FE1D01AFD0EF3B1D6B7EE5CE6E60563BEBB95CBEDF</strong>
+ <weak>3057189145</weak>
+ <size>882</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_div_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_div_scalar.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>191</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>view proxies of matrix type</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>192</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>generic programming utilities</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>193</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>vector_traits<Vector>::w</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>194</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>3A351CA4C5F8845907DEB1706ED3C4BE9E76AF4BA1217EACF32BE161E85E3CDE</strong>
+ <weak>3483227652</weak>
+ <size>725</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_plus_eq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_plus_eq_vector.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>195</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>D353AD89A6F14EF7C1EAD40A5F4C5B3E30B21E61927ECD8610EE2A634D70F549</strong>
+ <weak>459002878</weak>
+ <size>706</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_make.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_make.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>196</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>2AC1BE685374C05E9D61E7308F15A204E61CC91AE4181EC80EE7377F63BED23A</strong>
+ <weak>3374875319</weak>
+ <size>3059</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/transpose.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/transpose.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>197</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>31049A602A940FFCB8803D01376F2AD4BCEBFFA33B04AAD32AACE2240B545518</strong>
+ <weak>2755556668</weak>
+ <size>9057</size>
+ <position>323</position>
+ <strong>B897C37C483490382A83985DD795A1929DEFE8483EB71D6D799E6D21F46982FE</strong>
+ <weak>714239490</weak>
+ <size>9031</size>
+ <position>23</position>
+ <strong>55D2389F48FFE75C5399325257EC3C44033CE3CA7E2E5F8D3331DACAD8A2DCE7</strong>
+ <weak>4119816190</weak>
+ <size>9004</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>deduce_scalar</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>198</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>4CC47641894834A7F35960184C150219EBC544C8F8384F124C1677A6DDD106FB</strong>
+ <weak>518405045</weak>
+ <size>1996</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/array_matrix_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/array_matrix_traits.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>199</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>vector_traits<Vector>::r</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>200</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>6C7014896E920715E655124193878C51BABE4A769642511EACB556617E67B23C</strong>
+ <weak>3770691267</weak>
+ <size>985</size>
+ <position>436</position>
+ <strong>72B472925C830A61E59A1D93A936FAD727AFA94FF0800D0A137DEF357C29C894</strong>
+ <weak>123742089</weak>
+ <size>959</size>
+ <position>23</position>
+ <strong>420D687F901AAF4416690602F620BF5824896EE66E1190676999B7450A87AE7A</strong>
+ <weak>1856643461</weak>
+ <size>932</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_cross.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>cross</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>201</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>matrix_traits<Matrix>::w</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>202</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>526B6ABAB3CC978D10DAF19A80CB2349155691058F5FFB03036858A2832BD46D</strong>
+ <weak>3581122526</weak>
+ <size>535</size>
+ <position>408</position>
+ <strong>51262ED20BAD39605336BA71CB8E562698FEDD5D868E849A74AB27AEAF9B2EAD</strong>
+ <weak>4154560676</weak>
+ <size>509</size>
+ <position>23</position>
+ <strong>E847E47ED7000F02C59CA5658E7FF2AAB6A9A89A20E915759D70CCC84E2E32DA</strong>
+ <weak>705520562</weak>
+ <size>335</size>
+ <position>170</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_make.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>make(vector)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>203</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>BC596D4F66A933F5A61E834EF321126489C030B1C699F8CB9AB36E076D6C5787</strong>
+ <weak>2699013508</weak>
+ <size>604</size>
+ <position>403</position>
+ <strong>9180308AE279A9ECC810DA94F87EFCD6BC789CCF65A23B5DBB037CE5D24975CE</strong>
+ <weak>2753865290</weak>
+ <size>578</size>
+ <position>23</position>
+ <strong>E4262690A53EC3DDF8419E53AF9B86AA24272A55B0D55E0DDCDF7CE856A2FC9E</strong>
+ <weak>2553225736</weak>
+ <size>114</size>
+ <position>460</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>scalar</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>204</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>57C198F38067344C74B25CC3110B1181C076C7F74BBF14634E8451EB3768A633</strong>
+ <weak>577629880</weak>
+ <size>830</size>
+ <position>375</position>
+ <strong>AC26878E61F38AA613AE2C0D5CB39752EE8CF4A676D39DF2E9000E3B4D5BF935</strong>
+ <weak>548857488</weak>
+ <size>798</size>
+ <position>26</position>
+ <strong>035A94E32BB1FAC8E50A8C85F5F38929DB6593366712C98CCD90B23A70136BA4</strong>
+ <weak>3287593567</weak>
+ <size>594</size>
+ <position>194</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>operator*(matrix,scalar)</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>205</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>A401F29D771DC8D7773E7693BB7600C67F9FAF04684E4322669B44B02C8C1982</strong>
+ <weak>2978807017</weak>
+ <size>2681</size>
+ <position>503</position>
+ <strong>F93B88E7938D5BEB9D49F0CF465B691B5629B4AA2F7A2FCBBAB581D1AEB98B12</strong>
+ <weak>3480548783</weak>
+ <size>2655</size>
+ <position>23</position>
+ <strong>2639FD6D9DF983499ADC5E0B321B33B03E9378AF1B439E2999318D8DA7869CBB</strong>
+ <weak>3968343866</weak>
+ <size>96</size>
+ <position>2555</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/delc.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>delc</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>206</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>F9CBFE92967471750243B9659CE8614357930337548122A5EB65E39776E9B5A3</strong>
+ <weak>2356992371</weak>
+ <size>736</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_eq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_eq_vector.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>207</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>32DA59FB8F7DE580BFFA1377CCD82281090D0B20A978196B50FF13DA3221F76C</strong>
+ <weak>4239615754</weak>
+ <size>350</size>
+ <position>323</position>
+ <strong>39636BD1AA595D4FB8550BC343047446A76E749C77E425F2EC615AF1D2466FA5</strong>
+ <weak>2846253008</weak>
+ <size>324</size>
+ <position>23</position>
+ <strong>F7C71D92DD0F33ECC22ABE4C8E57FE679469A0CCD73F341C05D30B81F5789420</strong>
+ <weak>3708037895</weak>
+ <size>140</size>
+ <position>180</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>is_matrix</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>208</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>accessing matrix elements</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>209</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>1744FA39AB5702022E2C4F941668C80CF09E153D459EF8BB36511D90AC4276BE</strong>
+ <weak>1482014554</weak>
+ <size>1498</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/deduce_vector.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>210</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>63BD087395ADEDDB77AD2BD1EFFFCBBA466212D06EF6CF514EC7F4F296B84593</strong>
+ <weak>1920983672</weak>
+ <size>799</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_div_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_div_eq_scalar.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>211</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>929ADEE9B1B1FFA56D757E3A3DD23FEAAF3811C4C2C93BE07A44A1E0A66E52F1</strong>
+ <weak>3575898529</weak>
+ <size>793</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_mul_eq_scalar.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>212</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>7CACB43BAFCCD9E6A62450B27D26151A1BE92C8DDD09EC19604A5DE8653FBFBE</strong>
+ <weak>408193944</weak>
+ <size>1320</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_mul_eq_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>213</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>912D38F119351477FAC1066FA09133165B527D219A343326FEE35AA6C540BAC2</strong>
+ <weak>1987859037</weak>
+ <size>275</size>
+ <position>227</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/config.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>BOOST_LA_FORCE_INLINE</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>214</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>987CD412DE7E9CCC2BE14E75FFB1B701C15DC2BEF3AE87D6026422E4A31A08C2</strong>
+ <weak>3919453988</weak>
+ <size>2609</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_scalar_cast.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/matrix_scalar_cast.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>215</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>6FEF75EEDAF1CA8369EEF1A4C25466A3514C021BCA5B6FB06D4909BC1098EAD6</strong>
+ <weak>2619328872</weak>
+ <size>696</size>
+ <position>413</position>
+ <strong>FD95FB074F50D46B4E294E7F95B6D36363CCAD5969FF1B95AC03A88C4D6EEF5A</strong>
+ <weak>3479749166</weak>
+ <size>670</size>
+ <position>23</position>
+ <strong>65EC2708086D4F62BEAD2784B37998B8F7C9975838B82FA46727AD813E8A0ACC</strong>
+ <weak>3628438300</weak>
+ <size>491</size>
+ <position>175</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_magnitude.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>magnitude</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>216</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>D70C48281978C3B51019E36F811283D499C21BF937A0A0CCC094C0A5377D7AEB</strong>
+ <weak>3651459745</weak>
+ <size>739</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_neq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/vector_neq_vector.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>217</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>6DCC9DB7A91AA9D959AA8DB0C639F3B0247D6DD7944C95CAE9950A7A7EBBE3B2</strong>
+ <weak>1772019947</weak>
+ <size>2557</size>
+ <position>503</position>
+ <strong>0397CBE2435B975EC5BA4A527241645EB47D7579F6BE98252CEBB3286D17975F</strong>
+ <weak>730519985</weak>
+ <size>2531</size>
+ <position>23</position>
+ <strong>DF28BE3D67C17AF4969756981FF022CCBC1AB421485AB5DEB65CE92343025726</strong>
+ <weak>345318641</weak>
+ <size>124</size>
+ <position>2403</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/row_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>row_matrix</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>218</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>view proxy</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>219</id>
+ <type>
+ <string>reno_context</string>
+ </type>
+ <object>
+ <hook>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>FC320AB1F3DBEF493D9CBA30398FF4B4ACECB2D5CC9E7BD5E5ABD8B2DC08B7A9</strong>
+ <weak>1282454955</weak>
+ <size>2654</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/roty_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ </hook>
+ <title>
+ <string>boost/la/roty_matrix.hpp</string>
+ </title>
+ <file_name>
+ <string></string>
+ </file_name>
+ </object>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include include:) (:auto also:) </string>
+ </container>
+ </pair>
+ </sorted>
+ </object>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <string>def</string>
+ <shared_ptr>
+ <id>220</id>
+ <type>
+ <string>reno_layer</string>
+ </type>
+ <object>
+ <sorted>
+ <size>215</size>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-5</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-6</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <class A,class B,int Rows,int Cols> struct </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> { typedef /*unspecified*/ type; };@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-10</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-11</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-12</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@struct </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>: virtual </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-31</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> { };@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-14</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-15</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-16</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-17</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-18</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-19</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-20</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>[@#ifndef </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-20</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> #define </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-20</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-97</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> #endif@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-22</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-23</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-24</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-25</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-26</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-27</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-30</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-31</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@struct </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-31</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>: virtual boost::exception, virtual std::exception { };@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-32</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-33</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-36</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-40</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-42</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-43</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>[@#ifndef </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-43</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> #define </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-43</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-20</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> #endif@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <class Scalar> struct </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> { static Scalar zero() { return Scalar(0); } static Scalar one() { return Scalar(1); } };@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-46</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-47</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-48</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-49</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@static int const (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) = /*user-defined*/;@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-53</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>23</size>
+ <variant>2</variant>
+ <string>[@template <class Vector> struct </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>; template <class T,int Dim> struct </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>< </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><T,Dim> > { typedef T scalar_type; static int const dim=Dim; template <int I> static scalar_type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><T,Dim> const & x ) { return x.a[I]; } template <int I> static scalar_type & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><T,Dim> & x ) { return x.a[I]; } static scalar_type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( int i, </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><T,Dim> const & x ) { return x.a[i]; } static scalar_type & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( int i, </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><T,Dim> & x ) { return x.a[i]; } };@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-54</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-55</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-56</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-57</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-58</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-60</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-61</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-62</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-63</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-65</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-66</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-67</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-68</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-69</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-70</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@static int const (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) = /*user-defined*/;@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-72</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-73</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-74</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@typedef /*user-defined*/ (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":);@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-76</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>19</size>
+ <variant>2</variant>
+ <string>[@template <class M> struct (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) { /*main template members unspecified*/ }; /* User-defined (partial) specializations: template <> struct (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)< Matrix > { (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def pre_indent="4":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def pre_indent="4":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def pre_indent="4":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl pre_indent="4":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl pre_indent="4":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl pre_indent="4":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl pre_indent="4":) }; */@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-78</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-79</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-80</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-81</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-82</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-83</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>23</size>
+ <variant>2</variant>
+ <string>[@template <class Matrix> struct </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>; template <class T,int Rows,int Cols> struct </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>< </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><T,Rows,Cols> > { typedef T scalar_type; static int const rows=Rows; static int const cols=Cols; template <int Row,int Col> static scalar_type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><T,Rows,Cols> const & x ) { return x.a[Row][Col]; } template <int Row,int Col> static scalar_type & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><T,Rows,Cols> & x ) { return x.a[Row][Col]; } static scalar_type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( int row, int col, </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><T,Rows,Cols> const & x ) { return x.a[row][col]; } static scalar_type & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( int row, int col, </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><T,Rows,Cols> & x ) { return x.a[row][col]; } };@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-84</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-85</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>17</size>
+ <variant>2</variant>
+ <string>[@template <class V> struct (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) { /*main template members unspecified*/ }; /* User-defined (partial) specializations: template <> struct (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)< Vector > { (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def pre_indent="4":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def pre_indent="4":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl pre_indent="4":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl pre_indent="4":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl pre_indent="4":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl pre_indent="4":) }; */@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@template <class T,int Dim> struct (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) { T a[Dim]; template <class R> operator R() const { R r; (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-156</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)(r,*this); return r; } };@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@template <class T,int Rows,int Cols> struct (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) { T a[Rows][Cols]; template <class R> operator R() const { R r; (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-118</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)(r,*this); return r; } };@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-89</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-90</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-91</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-92</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-93</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-94</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-95</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-96</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-97</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@#ifndef </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-97</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> #define </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-97</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> inline #endif@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-98</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@static int const (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) = /*user-defined*/;@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-100</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>[@template < class Matrix, int Rows=</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>, int Cols=</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>, class Scalar=typename </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> struct </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> { typedef /*unspecified*/ type; };@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-102</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-103</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-104</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-105</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-106</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-108</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-109</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <class T> struct </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> { static bool const value=/*unspecified*/; };@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-111</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-112</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-114</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-115</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-116</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-118</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-119</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-120</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-121</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-122</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>[@#ifndef </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-122</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> #define </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-122</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-213</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> #endif@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-123</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@typedef /*user-defined*/ (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":);@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-125</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-126</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-127</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <class A,class B,int Dim> struct </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> { typedef /*unspecified*/ type; };@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-129</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-130</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-131</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-132</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-133</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-134</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-135</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-137</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-139</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-140</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-141</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-142</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-143</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-144</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-145</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-146</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-147</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-148</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-149</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-150</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-151</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-152</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-153</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-154</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-155</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-156</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-157</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-158</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-159</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-160</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-161</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-163</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-164</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-165</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-166</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-167</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-168</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>[@template < class Vector, int Dim=</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>, class Scalar=typename </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> struct </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-168</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> { typedef /*unspecified*/ type; };@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-169</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-170</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-171</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-172</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-173</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>[@#ifndef </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-173</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> #define </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-173</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-213</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> #endif@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-174</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-176</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-177</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-178</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-179</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-180</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-181</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-182</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-183</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-184</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-185</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-186</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-187</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-188</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-189</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-190</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-191</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-192</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-194</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-195</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-196</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-197</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <class A,class B> struct </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-197</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> { typedef typename impl<A,B>::type type; };@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-198</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-200</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-202</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-203</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <class T> struct </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-203</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> { typedef /*unspecified*/ type; };@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-204</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-205</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-206</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <class T> struct </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> { static bool const value=/*unspecified*/; };@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-208</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-210</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-211</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-212</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-213</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@#ifndef </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-213</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> #define </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-213</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> /*platform-specific*/ #endif@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-214</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-215</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-216</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-217</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-219</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ </sorted>
+ </object>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <string>api</string>
+ <shared_ptr>
+ <id>221</id>
+ <type>
+ <string>reno_layer</string>
+ </type>
+ <object>
+ <sorted>
+ <size>215</size>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-5</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-6</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>13</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-213</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-97</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-122</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-173</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-20</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-43</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-134</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-10</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-11</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-12</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-14</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-15</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-16</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-17</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-18</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-19</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-203</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-20</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-22</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-23</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-24</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-53</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-25</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-26</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-215</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-27</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>[@//*** Accessing vector elements, swizzling *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-84</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-55</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-62</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-160</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-30</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-31</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-32</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-33</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-132</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-121</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-36</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-65</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-40</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>[@//*** Matrix and vector types *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-127</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-76</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-102</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-24</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-42</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-30</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-43</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-46</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-47</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-23</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-48</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-49</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-53</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-54</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-204</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-55</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-56</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-57</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>17</size>
+ <variant>2</variant>
+ <string>[@//*** Binary vector,vector operations *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-58</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-100</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-95</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-70</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-194</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-133</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-206</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-216</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-58</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-98</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-60</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>13</size>
+ <variant>2</variant>
+ <string>[@//*** (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="pc":) of vector type *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-119</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-189</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-169</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-109</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-61</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-62</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-63</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-65</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-66</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-120</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-67</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>[@//*** Type traits *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-163</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-164</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-145</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-68</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-12</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-69</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-70</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-188</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-72</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-73</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-74</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>[@//*** Unary vector operations *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-177</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-26</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-76</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-83</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-78</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@//*** Configuration macros *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-79</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-80</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-11</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-81</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-82</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-123</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-83</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-84</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-85</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-89</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-31</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-90</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-148</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-91</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-92</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-93</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-94</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-95</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-72</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-96</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-97</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-98</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-100</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-200</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-102</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-103</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>[@//*** Conversion functions *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-195</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-114</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-143</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-139</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-104</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-105</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-205</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-106</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-108</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-109</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-179</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-111</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-126</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-112</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-114</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-202</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-115</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-116</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-118</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-119</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-178</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-120</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-121</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-122</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-123</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-125</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-197</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-126</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-127</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-129</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-185</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-130</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-14</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-131</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-132</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-133</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-15</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-134</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-135</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-137</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-112</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-139</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-156</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-140</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@//*** Binary vector/matrix operations *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-151</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-47</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-141</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>[@//*** Binary vector,scalar operations *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-181</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-108</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-94</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-152</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-142</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-143</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-118</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-144</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-145</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-146</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>[@//*** Binary matrix,scalar operations *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-54</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-190</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-211</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-210</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-147</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>[@//*** Unary matrix operations *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-111</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-66</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-22</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-148</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-149</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@//*** Creating vector objects *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-158</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-150</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-151</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-152</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-61</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-153</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-217</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-154</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-155</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-73</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-156</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-157</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-158</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-106</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-159</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-170</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-160</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-161</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>11</size>
+ <variant>2</variant>
+ <string>[@//*** Creating matrix objects *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-184</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-219</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-182</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-163</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-164</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-165</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-157</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-166</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-167</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-168</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-169</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-49</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-170</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-171</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-172</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-173</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-174</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-135</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-176</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@//*** Exception types *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-89</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-5</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-177</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-48</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-178</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-179</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-180</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-181</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-17</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-182</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-183</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-184</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-183</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-185</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-186</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>17</size>
+ <variant>2</variant>
+ <string>[@//*** Binary matrix,matrix operations *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-129</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-212</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-90</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-130</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-33</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-165</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-68</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-80</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-187</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-188</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-189</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-79</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-190</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-191</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>23</size>
+ <variant>2</variant>
+ <string>[@//*** (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="pc":) of matrix type *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-153</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-82</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-155</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-42</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-196</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-137</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-105</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-174</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-214</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-159</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-192</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>[@//*** Generic programming utilities *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-125</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-19</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-194</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-171</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-195</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-154</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-196</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-150</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-197</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-198</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-200</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-202</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-203</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-204</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-205</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-206</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-116</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-208</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@//*** Accessing matrix elements *** (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-36</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-168</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> def:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-210</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-166</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-211</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-142</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-212</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-144</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-213</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-214</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-32</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-215</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-216</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-81</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-217</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-219</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-96</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> decl:)@] </string>
+ </container>
+ </pair>
+ </sorted>
+ </object>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <string>decl</string>
+ <shared_ptr>
+ <id>222</id>
+ <type>
+ <string>reno_layer</string>
+ </type>
+ <object>
+ <sorted>
+ <size>215</size>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-5</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-6</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-10</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-11</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>25</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> bool (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-11</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-12</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>25</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> bool (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-12</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-14</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>35</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> typename </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><A,B,(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":),(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-14</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-15</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>17</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> A & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-15</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-16</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-17</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>13</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class A> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-168</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-17</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) s );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-18</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-19</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-20</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <int Dim,class T> -unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)( T angle );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-22</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-23</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>23</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A,B,(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-23</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-24</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-25</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-26</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-27</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( int r, int c, Matrix const & m );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-30</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@-unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-30</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-31</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-32</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class Scalar,class A> -unspecified-return_type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-32</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-33</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>13</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class A> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) s );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-36</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>13</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class A> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-168</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) s );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-40</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>25</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)( A const & a, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) det ); template <class A> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)( A const & a );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-42</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-43</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-46</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-47</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-48</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class A> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-168</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-48</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-49</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class Scalar,class A> -unspecified-return_type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-49</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( int i, Vector & v );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>11</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class A> A & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A & a, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) s );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-53</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-54</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-55</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-56</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-57</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-58</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-60</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-61</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>11</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class A> A & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-61</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A & a, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) s );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-62</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-63</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( int i, Vector const & v );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-65</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <int R,int C> -unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-65</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="/":)(); -unspecified-return-type- A00(); -unspecified-return-type- A01(); ... -unspecified-return-type- A09(); -unspecified-return-type- A10(); ... ... -unspecified-return-type- A99();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-66</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-67</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-68</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-69</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-70</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-72</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>23</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A,B,(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-72</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-73</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@-unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-73</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-74</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-76</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-78</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-79</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@-unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-79</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-80</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-81</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>17</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> bool (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-81</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-82</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-83</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-84</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-85</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-89</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-90</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-91</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-92</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-93</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-94</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-95</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-96</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <int Dim,class T> -unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-96</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)( T angle );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-97</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-98</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>19</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-197</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A,B>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-98</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)( A const & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-100</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-102</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-103</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-104</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-105</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-106</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <class T,int S> -unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-106</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@struct _x_; struct _y_; struct _z_; struct _w_; struct _0_; struct _1_; template <int I1,int I2,...int IN> -unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)(); template <class A1,class A2,...class AN> -unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-108</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-109</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-111</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-112</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <int R> -unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-112</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <int I> -unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="/":)(); -unspecified-return-type- A0(); -unspecified-return-type- A1(); ... -unspecified-return-type- A9(); -unspecified-return-type- X(); -unspecified-return-type- Y(); -unspecified-return-type- Z(); -unspecified-return-type- W();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-114</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-115</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-116</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>17</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> bool (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-116</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <int C> -unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-118</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>25</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> A & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-118</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-119</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-120</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>19</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A> (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-120</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)( A const & a );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-121</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <class S,int D> -unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-121</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-122</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-123</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@-unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-123</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-125</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-126</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class A> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-126</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-127</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-129</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-130</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-131</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-132</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>25</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> A & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-132</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-133</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-134</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <int Dim,class T> -unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-134</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)( T angle );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-135</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <int R,int C> -unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-135</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@template <int R,int C> static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( Matrix const & m );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-137</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>[@//2D (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="p":): -unspecified-return-type- XX(); -unspecified-return-type- XY(); -unspecified-return-type- XZ(); -unspecified-return-type- XW(); -unspecified-return-type- X0(); -unspecified-return-type- X1(); -unspecified-return-type- YX(); -unspecified-return-type- YY(); -unspecified-return-type- YZ(); -unspecified-return-type- YW(); -unspecified-return-type- Y0(); -unspecified-return-type- Y1(); -unspecified-return-type- ZX(); -unspecified-return-type- ZY(); -unspecified-return-type- ZZ(); -unspecified-return-type- ZW(); -unspecified-return-type- Z0(); -unspecified-return-type- Z1(); -unspecified-return-type- WX(); -unspecified-return-type- WY(); -unspecified-return-type- WZ(); -unspecified-return-type- WW(); -unspecified-return-type- W0(); -unspecified-return-type- W1(); //3D (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="p":): -unspecified-return-type- XXX(); ... -unspecified-return-type- XXW(); -unspecified-return-type- XX0(); -unspecified-return-type- XX1(); -unspecified-return-type- XYX(); ... -unspecified-return-type- XY1(); ... -unspecified-return-type- WW1(); //4D (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="p":): -unspecified-return-type- XXXX(); ... -unspecified-return-type- XXXW(); -unspecified-return-type- XXX0(); -unspecified-return-type- XXX1(); -unspecified-return-type- XXYX(); ... -unspecified-return-type- XXY1(); ... -unspecified-return-type- WWW1();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-139</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-140</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-141</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-142</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>11</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class A> A & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-142</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A & a, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) s );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-143</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-144</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>33</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> A & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-144</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-145</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-146</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-147</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-148</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>35</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A,B,(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":),(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-148</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-149</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-150</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@-unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-150</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-151</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-152</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-153</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-154</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>25</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<R>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<R>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<R>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class R,class A> R (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-154</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-155</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-156</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>17</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> A & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-156</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-157</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>25</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> A & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-157</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-158</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-159</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-160</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>11</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class A> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-160</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)( A const & a );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-161</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( int r, int c, Matrix & m );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-163</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-164</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-165</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-166</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>11</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class A> A & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-166</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A & a, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) s );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-167</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-168</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-169</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-170</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class A> -unspecified-return-type- </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-170</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>( A & a );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-171</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>17</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> A & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-171</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-172</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-173</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-174</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>23</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A,B,(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-176</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-177</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-178</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <int R> -unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-178</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-179</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class A> -unspecified-return-type- </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-179</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>( A & a );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-180</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-181</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-182</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-183</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <class T,int R,int C> -unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-183</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-184</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-185</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>27</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A,B,(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":),(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-185</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-186</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-187</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-188</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>23</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class A,class B> typename </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><A,B,(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-188</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-189</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-190</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-191</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-192</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@template <int I> static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( Vector & v );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-194</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-195</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-196</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-197</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-198</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@template <int I> static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( Vector const & v );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-200</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>19</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==3 && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==3 template <class A,class B> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A,B,3>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-200</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)( A const & a, B const & b );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>[@template <int R,int C> static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( Matrix & m );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-202</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>17</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<R>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<R>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) template <class R,class A> R (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-202</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-203</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-204</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>13</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class A> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::type (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-204</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)( A const & a, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) s );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-205</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@template <int C> -unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-205</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-206</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-208</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-210</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-211</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-212</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-213</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-214</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-215</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>11</size>
+ <variant>2</variant>
+ <string>[@//Only (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|enabled if:): // (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value template <class A> typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-215</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)( A const & a );@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-216</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-217</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>[@-unspecified-return-type- (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-217</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)();@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-219</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ </sorted>
+ </object>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <string>include</string>
+ <shared_ptr>
+ <id>223</id>
+ <type>
+ <string>reno_layer</string>
+ </type>
+ <object>
+ <sorted>
+ <size>215</size>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-5</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-6</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>27</size>
+ <variant>2</variant>
+ <string>[@#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-163</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> struct float33 { float a[3][3]; }; namespace boost { namespace la { template <> struct (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<float33> { static int const (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)=3; static int const (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)=3; typedef float (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":); template <int R,int C> static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( float33 & m ) { return m.a[R][C]; } template <int R,int C> static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( float33 const & m ) { return v.a[R][C]; } static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( int r, int c, float33 & m ) { return m.a[r][c]; } static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( int r, int c, float33 const & m ) { return m.a[r][c]; } }; } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Assumptions: Both </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-203</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><A>::type and </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-203</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><B>::type are well defined. !!!!Requirements: This template is used by Boost LA whenever it needs to deduce a matrix type of certain dimensions from the types of ''two'' user-supplied function parameters. The returned type must have accessible copy constructor (the A and B types themselves could be non-copyable.) !!!!Returns: The main template definition returns an unspecified matrix type of the requested dimensions with (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) obtained by </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-197</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><A,B>::type. Boost LA also defines (partial) specializations for some of the vector/matrix types it produces. Users can define other (partial) specializations for their own types.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-10</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>63</size>
+ <variant>2</variant>
+ <string>Boost LA provides a set of generic linear algebra algorithms, primarily for working with vectors and matrices of static size. The library also defines vector and matrix data types, however it allows users to introduce their own types by specializing the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) and (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) templates. Note that Boost LA is not part of (:link http://www.boost.org|Boost:). Please post questions and suggestions on the (:link http://www.boost.org/community/groups.html#main|Boost Developers Mailing List:). Click (:link http://www.revergestudios.com/boost-la/boost-la.zip|here:) to download the source code and this documentation. !!!Contents #Tutorial ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-104</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="w":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-92</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="w":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-115</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="w":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-180</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="w":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-93</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) #Reference ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-67</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-146</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-141</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-186</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-57</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-140</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-147</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-74</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-103</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-161</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-149</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-191</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-60</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-208</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-27</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-40</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-192</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-176</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) #(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-18</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) #(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-187</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="c":) #Indexes ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-167</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-85</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-69</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) ##(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-46</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-11</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: `!(a (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-12</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|==:) b). !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-12</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: true if each element of a compares equal to its corresponding element of b, false otherwise. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This exception indicates that an operation requires a matrix with non-zero determinant, but the computed determinant is zero.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-14</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: A matrix of the same size as a and b, with elements the elements of b subtracted from the corresponding elements of a. !!!!Required access: result:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-15</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Effects: Subtracts the elements of b to the corresponding elements of a. !!!!Returns: a. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)/(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-16</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-17</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: A vector that is the result of multiplying the vector a by the scalar s. !!!!Required access: result:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-18</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>41</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) `#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-16</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-67</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-146</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-141</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-186</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-57</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-140</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-147</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-74</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-103</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-161</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-149</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-191</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-60</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-208</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-27</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-40</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-192</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-176</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api pre_indent="8":) } //namespace la } //namespace boost (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-78</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> api:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-19</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-20</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) Boost LA uses (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-20</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) in definitions of functions that implement various high-level linear algebra operations, such as matrix multiplication, computing the magnitude of a vector, etc. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Requirements: Dim>=2 !!!!Returns: A (:link http://en.wikipedia.org/wiki/Rotation_matrix|matrix:) with Dim rows and Dim columns and (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) T which performs a rotation around the Z axis at angle radians. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-22</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-23</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: The result of multiplying the vector a and the matrix b, where a is interpreted as a matrix-row. The resulting matrix-column is returned as a vector type. !!!!Required access: result:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-24</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-25</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) This header introduces specializations of the </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>, </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-168</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> and </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> templates that make it possible to pass C arrays to any Boost LA function that takes a vector of matching size. (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-56</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-26</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-27</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This function is expected to be static member of user-defined specializations of the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template. It returns the element at row r and column c of m, by value or by const reference. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-30</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) The expression v|</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-30</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> returns a (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) that accesses the vector v as translation matrix of size v's dimension plus one. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-31</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This is the virtual base type of all exceptions originating within Boost LA.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-32</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: A read-only </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> of a that looks like a matrix of the same dimensions as a, but with (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) Scalar and elements constructed from the corresponding elements of a. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-33</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: A matrix that is the result of dividing the matrix a by the scalar s. !!!!Required access: result:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-36</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: A vector that is the result of dividing the vector a by the scalar s. !!!!Required access: result:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) A valid scalar type S must have accessible destructor, default constructor, copy constructor and assignment operator, and must support the following operations: [@S operator*( S, S ); S operator/( S, S ); S operator+( S, S ); S operator-( S, S ); S & operator*=( S &, S ); S & operator/=( S &, S ); S & operator+=( S &, S ); S & operator-=( S &, S ); bool operator==( S, S ); bool operator!=( S, S );@] In addition, the expression S(0) should construct a scalar of value zero, and S(1) should construct a scalar of value one -or- the </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> template must be specialized appropriately.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>13</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) SFINAE stands for Substitution Failure Is Not An Error. This refers to a situation in C++ where an invalid substitution of template parameters (including when those parameters are deduced implicitly as a result of an unqualified call) is not in itself an error. In absence of concepts support, SFINAE can be used to disable function template overloads that would otherwise present a signature that is too generic. More formally, this is supported by the (:link http://www.boost.org/doc/libs/release/libs/utility/enable_if.html|Boost enable_if library:). For example, Boost LA defines operator* overload which works with any user-defined matrix and vector types. The naive approach would be to declare this overload as follows: [@template <class Matrix,class Vector> Vector operator*( Matrix const & m, Vector const & v );@] Even if the function definition might contain code that would compile only for Matrix and Vector type
s, because the function declaration itself is valid, it will participate in overload rezolutions when multiplying objects of any two types whatsoever. This typically renders overload resolutions ambiguous and the compiler (correctly) issues an error. Using enable_if, Boost LA declares such overloads in a way that they retain their generic signature but only appear (in overload resolutions) if the passed parameters make sense depending on the semantics of the operation being defined: [@template <class A,class B> typename enable_if_c< (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::value && (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)==(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<B>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), //Condition B>::type //Return type operator*( A const & a, B const & b );@] For brevity, function declarations throughout this documentation specify the condition which controls whether they are enabled or not without specifying exactly what enable_if construct is used to achieve this effect. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-40</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>11</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Preconditions: det!=(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<typename (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<A>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)>::zero() !!!!Returns: Both overloads compute the inverse of a. The first overload takes the pre-computed determinant of a. The second overload computes the determinant automatically and throws (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) if the computed determinant is zero. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-42</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-43</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) Boost LA uses </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-43</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> in definitions of recursive functions that are not critical for the overall performance of the library (definitions of all critical functions, including critical recursive functions, use </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-173</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>.)</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This template can be specialized for user-defined scalar types to define the appropriate values to use as zero and one.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-46</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:pagelist tags="type" except_tags="noindex" fmt="index":) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-47</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-48</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: A vector of the negated elements of a. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-49</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: A read-only </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> of a that looks like a vector of the same dimensions as a, but with (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) Scalar and elements constructed from the corresponding elements of a. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This function is expected to be static member of user-defined specializations of the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template. It returns mutable reference to the i-th element of v. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This member of user-defined (partial) specializations of the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template must be a compile-time integer constant greater than zero that defines the size (number of elements, or dimension) of a user-defined vector type. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Effects: This operation multiplies a vector by a scalar. !!!!Returns: a. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)/(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-53</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This partial specialization of the </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> template makes the </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> template compatible with the generic linear algebra algorithms defined by Boost LA. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-54</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-55</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-56</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>11</size>
+ <variant>2</variant>
+ <string>For example, to compute the dot product of two C arrays, you could use: [@float a[4], b[4]; float dp = </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-98</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>(a,b);@] To use Boost LA operator overloads, at least one of the arguments must not be of a built-in type; for example you can't multiply a C array vector by a scalar by using (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":) directly. Use </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-179</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> to work around this issue: [@float a[4]; </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-179</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>(a) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*=:) 42;@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-57</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-58</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-60</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-61</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Effects: This operation divides a vector by a scalar. !!!!Returns: a. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)/(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-62</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-63</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>27</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) Microsoft Visual C++ prior to and including version 9.0 erroneously issues compile errors in ''template'' (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) operator| overloads (non-template operator| overloads are OK.) An alternative syntax is supported to work around this issue. For example, instead of m|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<C> you can use m|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<C>(). The alternative syntax is valid on all compilers, not only on MSVC. Note however that this issue affects only template (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="p":). Here is a complete list the affected (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="p":): (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:), (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-178</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:), (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-205</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:), (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-112</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:), (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-135</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:), (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:), (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-65</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:), </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This function is expected to be static member of user-defined specializations of the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template. It returns the i-th element of v, by value or by const reference. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-65</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) An expression of the form of m|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-65</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="/":)<R,C> can be used to access the element at row R and column C of a matrix object m. For example, the expression: [@m|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-65</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="/":)<4,2> *= 42;@] can be used to multiply the element at row 4 and column 2 of a matrix m by 2. For convenience, there are also non-template overloads for R from 0 to 9 and C from 0 to 9; an alternative way to write the above expression is: [@m|A42 *= 42;@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-66</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-67</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-68</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-69</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:pagelist tags="view" except_tags="noindex" fmt="index" mod="m":) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-70</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This member of user-defined (partial) specializations of the </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> template must be a compile-time integer constant greater than zero that defines the number of columns of a user-defined matrix type. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-72</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: A vector of the same size as a and b, with elements the elements of b added to the corresponding elements of a. !!!!Required access: result:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-73</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) The expression v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-73</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) returns a (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) that accesses the vector v as a square matrix of the same dimensions in which the elements of v appear as the main diagonal and all other elements are zero. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-74</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This is the member type that user-defined (partial) specializations of the </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> template define to specify the scalar type of a matrix type. Valid scalar types are value types that satisfy the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-76</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>61</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) The (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template must be specialized for (user-defined) matrix types in order to enable vector and matrix operations defined in Boost LA headers for objects of those types. ''Note: matrix types are not required to be copyable.'' The main (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template members are not specified. Valid specializations are required to define the following members: * (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":): the expression (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<Matrix>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) must evaluate to a compile-time integer constant greater than 0 that specifies the number of rows in a matrix. * (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) must evaluate to a compile-time integer constant greater than 0 that specifies the number of columns in a matrix. * (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":): the expression (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<Matrix>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) must be a value type which satisfies the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:). In addition, valid specializations of the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template must define the following access functions as static members, where m is an object of type Matrix, R and C are compile-time integer constants, and r and c are variables of type int: * (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":): the expression (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<Matrix>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)<R,C>(m) returns either a copy or a const reference to the element at row R and column C of m. * (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":): the expression (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<Matrix>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)<R,C>(m) returns mutable reference to the element at row R and column C of m. * (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":): the expression (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<Matrix>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)(r,c,m) returns either a copy or a const reference to the element at row r and column c of m. * (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":): the expression (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<Matrix>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)(r,c,m) returns mutable reference to the element at row r and column c of m. It is illegal to call any of the above functions unless (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<Matrix>::value is true. Even then, matrix types are allowed to define only a subset of the access functions. The general requirements are: * if (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) is defined, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) must also be defined; * if (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) is defined, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) must also be defined. In addition, every Boost LA function that takes matrix type parameter(s) specifies whether it requires read-only, write-only or read-and-write access. Below is an example of a user-defined 3x3 matrix type, and its corresponding specialization of the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template: (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-6</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-78</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!! mod="pw":) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-79</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) The expression m|</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-79</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> returns a (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) that accesses the main diagonal of the matrix m as a vector. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-80</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-81</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: `!(a (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-116</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|==:) b). !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-82</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-83</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This partial specialization of the </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> template makes the </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> template compatible with the generic linear algebra algorithms defined by Boost LA.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-84</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-85</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:pagelist tags="function" except_tags="noindex" fmt="index":) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>59</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) The (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template must be specialized for (user-defined) vector types in order to enable vector and matrix operations defined in Boost LA headers for objects of those types. ''Note: vector types are not required to be copyable.'' The main (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template members are not specified. Valid specializations are required to define the following members: * (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":): the expression (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<Vector>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) must evaluate to a compile-time integer constant greater than 0 that specifies the vector size. * (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":): the expression (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<Vector>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) must be a value type which satisfies the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:). In addition, valid specializations of the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template must define the following access functions as static members, where v is an object of type Vector, I is a compile-time integer constant, and i is a variable of type int: * (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":): the expression (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<Vector>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)<I>(v) returns either a copy or a const reference to the I-th element of v. * (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":): the expression (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<Vector>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)<I>(v) returns mutable reference to the I-th element of v. * (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":): the expression (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<Vector>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)(i,v) returns either a copy or a const reference to the i-th element of v. * (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":): the expression (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<Vector>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)(i,v) returns mutable reference to the i-th element of v. It is illegal to call any of the above functions unless (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<Vector>::value is true. Even then, vector types are allowed to define only a subset of the access functions. The general requirements are: * if (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) is defined, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) must also be defined; * if (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) is defined, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) must also be defined. In addition, every Boost LA function that takes vector type parameter(s) specifies whether it requires read-only, write-only or read-and-write access. Below is an example of a user-defined 3D vector type, and its corresponding specialization of the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template: (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-172</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This is a simple vector type. It converts to any other vector type of compatible size. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This is a simple matrix type. It converts to any other matrix type of compatible size.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-89</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-90</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-91</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>13</size>
+ <variant>2</variant>
+ <string>---- '''Tutorial:''' (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-104</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="w":) | (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-92</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="w":) | (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-115</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="w":) | (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-180</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="w":) | (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-93</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) | Back to (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-10</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-92</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>21</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) In (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-198</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) and (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-25</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) Boost LA defines appropriate (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) and (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) specializations that allow Boost LA functions to operate directly on plain old C arrays: [@float v[3] = {0,0,7}; float3 vrot = (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-134</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<3>(3.14159f) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*:) v;@] Naturally, operator overloads cannot kick in if all elements of an expression are of built-in types. The following is illegal: [@float v[3] = {0,0,7}; v *= 42;@] The (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-179</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) and (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-170</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) function templates can be used to work around this issue: [@float v[3] = {0,0,7}; (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-179</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)(v) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*=:) 42;@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-93</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>25</size>
+ <variant>2</variant>
+ <string>!!!Interoperability An important design goal of Boost LA is that it works seamlessly with 3rd-party matrix and vector types and libraries. Even when such libraries overload the same C++ operators as Boost LA, it is safe to bring the entire boost::la namespace in scope by specifying: [@using namespace boost::la;@] This does not cause interference with 3rd-party overloads because: *All boost::la function and operator overloads use (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:), which makes them disappear unless an expression uses types that have the appropriate Boost LA-specific (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-67</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) defined; *Whenever Boost LA function or operator overloads are compatible with a given expression, their signature is extremely generic, which means that virtually any other compatible overload will be a better match in any overload resolution. Bringing the boost::la namespace in scope lets you mix vector and matrix types that come from different APIs into a common, type-safe framework. In this case however, it should be considered what types should be returned by binary operations that return an object by value. For example, if you multiply a 3x3 matrix m1 of type user_matrix1 by a 3x3 matrix m2 of type user_matrix2, what type should that operation return? The answer is that by default, Boost LA returns some kind of compatible matrix type, so (in C++0x terms) it is always safe to write: [@auto m = m1 (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-185</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*:) m2;@] However, the type deduced by default converts implicitly to any compatible matrix type, so the following is also valid, at the cost of a temporary: [@user_matrix1 m = m1 (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-185</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*:) m2;@] While the temporary object can be optimized away by most compilers, it can be avoided altogether by specializing the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template. For example, to specify that multiplying user_matrix1 by user_matrix2 should always produce a user_matrix1 object, you could specify: [@namespace boost { namespace la { template <> struct (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<user_matrix1,user_matrix2,3,3> { typedef user_matrix1 type; }; template <> struct (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<user_matrix2,user_matrix1,3,3> { typedef user_matrix1 type; }; } }@] Finally, any time you need to create a matrix of a particular C++ type from any other compatible matrix type, you can use the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-154</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":) function: [@user_matrix2 m=(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-154</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)<user_matrix2>(m1 (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-185</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*:) m2);@] Perhaps surprisingly, unary operations that return an object by value have a similar, though simpler issue. That's because the argument they're called with may not be copyable, as in: [@float m[3][3]; auto inv = (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)(m);@] Again, Boost LA "just works", returning an object of suitable matrix type that is copyable. This deduction process can also be controlled, by specializing the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-94</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-95</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-96</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Requirements: Dim>=3 !!!!Returns: A (:link http://en.wikipedia.org/wiki/Rotation_matrix|matrix:) with Dim rows and Dim columns and (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) T which performs a rotation around the Y axis at angle radians. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-97</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This macro is not used directly by Boost LA, except as the default value of other macros from </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>. A user-defined </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-97</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> should expand to a value that is valid substitution of the inline keyword in function definitions.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-98</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: The (:link http://en.wikipedia.org/wiki/Dot_product|dot product:) of the vectors a and b. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This member of user-defined (partial) specializations of the </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> template must be a compile-time integer constant greater than zero that defines the number of rows of a user-defined matrix type. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-100</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Requirements: This template is used by Boost LA whenever it needs to deduce a matrix type of certain dimensions and scalar type from a ''single'' user-supplied function parameter of matrix type. The returned type must have accessible copy constructor (the Matrix type itself could be non-copyable.) !!!!Returns: The main template definition returns an unspecified matrix type that satisfies the requirements above. Boost LA also defines (partial) specializations for some of the matrix types it produces. Users can define other (partial) specializations for their own types.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-102</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-103</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-104</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>25</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) Boost LA does define generic yet simple (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|vector:) and (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|matrix:) types, however it has been specifically designed to work with ''user-defined'' vectors and matrices. A ''user-defined'' 3D vector type float3 can be introduced to Boost LA as follows: (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-172</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) After a similar specialization of the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template for a ''user-defined'' 3x3 matrix type float33, a full range of vector and matrix operations defined in Boost LA headers become available automatically: [@float3 v; v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|X:) = 0; v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|Y:) = 0; v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|Z:) = 7; float vmag = (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-215</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)(v); float33 m = (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-134</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<3>(3.14159f); float3 vrot = m (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*:) v;@] !!!!Note: The use of operator| to access vector elements is perhaps surprising, however it is a logical part of a more general system of (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="p":) in Boost LA. See </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-187</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-105</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-106</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: A read-only vector of unspecified type with (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) T and size S, with all elements equal to </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><T>::zero().</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>13</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) The expression v|</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><I1,I2...>, where I1, I2... are compile-time integer constants, returns a (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) that accesses the vector v as if the view's element 0 is the I1-th element of v, the view's element 1 is the I2-th element of v, and so on. The expression v|</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><A1,A2,...>, where A1, A2... are from the set [_x_,_y_,_z_,_w_,_0_,_1_], is similar except that v's elements are specified by name, such that _x_/_y_/_z_/_w_ refer to v's element with index 0/1/2/3. If _0_/_1_ is specified at some position, the value </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><>::zero()/</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><>::one() (depending on v's (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)) is subsituted. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-108</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-109</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This type template defines a compile-time boolean constant value which can be used to determine whether a type T is a vector type. For vector types, the </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> template can be used to access their elements generically, or to obtain their dimension and scalar type.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-111</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-112</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) The expression m|</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-112</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><R> returns a (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) that looks like the matrix m with row R removed. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) An expression of the form of v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="/":)<I> can be used to access the I-th element a vector object v. For example, the expression: [@v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="/":)<1> *= 42;@] can be used to multiply the element at index 1 (indexing in Boost LA is always zero-based) of a vector v by 2. For convenience, there are also non-template overloads for I from 0 to 9; an alternative way to write the above expression is: [@v|A1 *= 42;@] The X, Y, Z and W functions act the same as A0/A1/A2/A3; yet another alternative way to write the above expression is: [@v|Y *= 42;@]</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-114</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-115</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>17</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) Overloads of operator| are used to access vector and matrix elements, as well as to provide different views of matrix and vector types. The example below multiplies column 1 (Boost LA indexes are always zero-based) of the matrix m by a scalar: [@void multiply_column1( float33 & m, float scalar ) { m|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<1> (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*=:) scalar; }@] The expression m|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<1> returns a reference of an unspecified 3D vector type that accessses column 1 of m. Note however that this does not create any temporary objects; instead (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|operator*=:) above works directly with a reference to m. Here is another example, multiplying a transposed view of a matrix by a vector of the user-defined type float3: [@float3 v = {0,0,7}; float3 vrot = ((:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-134</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<3>(3.14159f) | (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-150</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*:) v;@] In general, the various view functions return references of unspecified, non-copyable types that refer to the original object. They can be assigned from or converted to any compatible vector or matrix type. For more details, see (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="wp":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-116</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: true if each element of a compares equal to its corresponding element of b, false otherwise. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) The expression m|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<C> returns a (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) that accesses column C of the matrix m as a vector. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-118</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!! mod="/":) (:include synopsis:) !!!!Effects: Copies all elements of the matrix b to the matrix a. !!!!Returns: a. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-119</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-120</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This function computes the determinant of the matrix a. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-121</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: An identity matrix of size DxD and scalar type S.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-122</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) Boost LA uses (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-122</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) in definitions of functions that are not critical for the overall performance of the library but are extremely simple (such as one-liners) and therefore should always be inlined. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-123</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) The expression v|</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-123</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> returns a (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) that accesses the vector v as a column matrix. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This is the member type that user-defined (partial) specializations of the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template define to specify the scalar type of a vector type. Valid scalar types are value types that satisfy the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-125</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-126</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: A matrix of the negated elements of a. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-127</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Assumptions: Both scalar<A>::type and scalar<B>::type are well defined. !!!!Requirements: This template is used by Boost LA whenever it needs to deduce a vector type of certain size from the types of ''two'' user-supplied function parameters. The returned type must have accessible copy constructor (the A and B types themselves could be non-copyable.) !!!!Returns: The main template definition returns an unspecified vector type of the requested size with (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) obtained by </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-197</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><A,B>::type. Boost LA also defines (partial) specializations for some of the vector/matrix types it produces. Users can define other (partial) specializations for their own types. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-129</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-130</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-131</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>11</size>
+ <variant>2</variant>
+ <string>For example, to compute the determinant of a square 2D C array matrix, you can use: [@float a[4][4]; float det = </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-120</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>(a);@] To use Boost LA operator overloads, at least one of the arguments must not be of a built-in type; for example, you can't multiply a C array matrix by a scalar by using (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-142</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":) directly. Use </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-170</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> to work around this issue: [@float a[4][4]; </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-170</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>(a) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-142</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*=:) 42;@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-132</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Effects: Adds the elements of b to the corresponding elements of a. !!!!Returns: a. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)/(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-133</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-134</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Requirements: Dim>=3 !!!!Returns: A (:link http://en.wikipedia.org/wiki/Rotation_matrix|matrix:) with Dim rows and Dim columns and (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) T which performs a rotation around the X axis at angle radians. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-135</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) The expression m|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-135</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<R,C> returns a (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) that looks like the matrix m with row R and column C removed. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This function template is expected to be static member of user-defined specializations of the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template. It returns the element at row R and column C of m, by value or by const reference. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-137</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>17</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) For vectors, besides (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|simple element access:), Boost LA supports arbitrary element swizzling for 2D, 3D and 4D vectors. (:include synopsis:) These functions can be used to create 2D, 3D, and 4D (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="p":) to any vector object. The expression v|XX is equivalent to v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<_x_,_x_>, v|XY is equivalent to v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<_x_,_y_> and so on. Similarly, v|XXX is equivalent to v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<_x_,_x_,_x_>, v|XXY is equivalent to v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<_x_,_x_,_y_>, and so on. Finally, v|XXXX is equivalent to v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<_x_,_x_,_x_,_x_>, v|XXXY is equivalent to v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<_x_,_x_,_x_,_y_>, and so on. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-139</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-140</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-141</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-142</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Effects: This operation multiplies a matrix by a scalar. !!!!Returns: a. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)/(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-143</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-144</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Effects: As if: [@A tmp(a); a = tmp (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-185</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*:) b; return a;@] !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)/(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-145</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-146</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-147</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-148</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: A matrix of the same size as a and b, with elements the elements of b added to the corresponding elements of a. !!!!Required access: result:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-149</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-150</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) The expression m|</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-150</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> returns a (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) that transposes the matrix m. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-151</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-152</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-153</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-154</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!! mod="/":) (:include synopsis:) !!!!Requirements: R must be copyable. !!!!Effects: As if: { R r; (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-118</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)(r,a); return r; } !!!!Required access: result:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-155</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-156</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!! mod="/":) (:include synopsis:) !!!!Effects: Copies all elements of the vector b to the vector a. !!!!Returns: a. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-157</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Effects: Subtracts the elements of b from the corresponding elements of a. !!!!Returns: a. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)/(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-158</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-159</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-160</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: The squared magnitude of the vector a. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-161</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This function is expected to be static member of user-defined specializations of the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template. It returns mutable reference to the element at row r and column c of m. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-163</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-164</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-165</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-166</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Effects: This operation divides a matrix by a scalar. !!!!Returns: a. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)/(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-167</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:pagelist tags="hpp" except_tags="noindex" fmt="index" sort_prefix="9":) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-168</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Requirements: This template is used by Boost LA whenever it needs to deduce a vector type of certain size and scalar type from a ''single'' user-supplied function parameter of vector type. The returned type must have accessible copy constructor (the Vector type itself could be non-copyable.) !!!!Returns: The main template definition returns an unspecified vector type that satisfies the requirements above. Boost LA also defines (partial) specializations for some of the vector types it produces. Users can define other (partial) specializations for their own types.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-169</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-170</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: An identity </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> of a; that is, it simply accesses the elements of a. This allows calling overloaded operators when a is of built-in type, for example a plain old C array.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-171</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Effects: Adds the elements of b to the corresponding elements of a. !!!!Returns: a. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)/(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-172</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>25</size>
+ <variant>2</variant>
+ <string>[@#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-164</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> struct float3 { float a[3]; }; namespace boost { namespace la { template <> struct (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<float3> { static int const (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)=3; typedef float (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":); template <int I> static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( float3 & v ) { return v.a[I]; } template <int I> static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( float3 const & v ) { return v.a[I]; } static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) & (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( int i, float3 & v ) { return v.a[i]; } static inline (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":)( int i, float3 const & v ) { return v.a[i]; } }; } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-173</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) Boost LA uses (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-173</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) in definitions of functions that are critical for the overall performance of the library, such as functions that access individual vector and matrix elements. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-174</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: The result of multiplying the matrix a and the vector b, where b is interpreted as a matrix-column. The resulting matrix-row is returned as a vector type. !!!!Required access: result:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-176</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-177</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-178</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) The expression m|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-178</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<R> returns a (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) that accesses row R of the matrix m as a vector. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-179</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: An identity </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> of a; that is, it simply accesses the elements of a. This allows calling overloaded operators when a is of built-in type, for example a plain old C array.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-180</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>29</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) Boost LA provides arbitrary (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) for vector types, exposing vector views of different dimentions, and/or views with reordered elements. The example below rotates v around the X axis, and stores the resulting vector back in v but with the X and Y elements swapped: [@float3 v = {0,0,7}; v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|YXZ:) = (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-134</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<3>(3.14159f) (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*:) v;@] A special case of swizzling provides next-dimension-view to a vector object, adding either 0 or 1 as its last component. Assuming float3 is a 3D vector type, and float4 is a 4D vector type, the following statements are valid: [@float3 v = {0,0,7}; float4 point = v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|XYZ1:); //{0,0,7,1} float4 vector = v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|XYZ0:); //{0,0,7,0}@] It is also valid for swizzling to address vector elements more than once: [@float3 v = {0,0,7}; float4 v1 = v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|ZZZZ:); //{7,7,7,7}@] More generic swizzling is supported by the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) function template. It provides overloads that can be instantiated either by a list of vector element indexes or by a list of vector element names, for example: [@float3 v1, v2; v1 = v2|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<1,0,2>; //swaps elements with index 0 and 1 v1 = v2|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|_y_:),(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|_x_:),(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|_z_:)>; //same as v2|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|YXZ:);@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-181</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-182</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-183</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: A read-only matrix of unspecified type with (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) T, R rows and C columns, with all elements equal to </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><T>::zero().</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-184</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-185</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: The result of (:link http://en.wikipedia.org/wiki/Matrix_multiplication|multiplying:) the matrices a and b. !!!!Required access: result:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-186</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-187</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>37</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) Boost LA defines many operator| overloads that return various </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> references to vector and matrix objects. For example, to work with the transposed view of a matrix m, you could simply use m|</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-150</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>. The convenience of operator overloading for this purpose, and the reasons for selecting operator| in particular (and its drawbacks) are explained below. !!!The need: easy composition Boost LA implements (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="p":) very efficiently. The effect of using a </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> is that it chains up an additional level of </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>/</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> access functions. While it is possible that the compiler might not inline this additional function call, even without using (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="p":) reliable inlining of simple access functions is already critical for the performance of Boost LA (for targeted control, all such functions invoke the </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-173</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-78</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>.) !!!'Pipe', not 'bitwise-OR' Assuming inlining works, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="p":) should have negligible or no overhead because they do not create temporary objects. This makes it practical to use composition to get accumulative effects. For example: [@//Store the 3D vector v transformed by the matrix m1 //into column 1 of m2, swapping its X and Y coordinates. m2|</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><1>|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|YXZ:) = m1 (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*:) v;@] !!!Downsides Making a small change to the example above, we get: [@m2|</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><1> = m1 (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*:) v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|YXZ:);@] This expression swaps the X and Y coordinates not of v, but of the result from transforming v by m1 (which of course is also a 3D vector.) So the downside of operator| is that its precedence is lower than the precedence of most other operators and this often requires parentheses. !!!Alternatives We could use regular function call composition instead of operator overloading, which would make our last example completely unambiguous: [@col<1>(m2) = m1 (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*:) YXZ(v);@] However additional levels of composition become uglier: [@YXZ(col<1>(m2)) = m1 (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>|*:) v;@] Another possibility would be to use operator/ instead, which has much better precedence for this purpose, but this choice has no semantic justification whatsoever. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-188</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: A vector of the same size as a and b, with elements the elements of b subtracted from the corresponding elements of a. !!!!Required access: result:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-189</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-190</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-191</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-192</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This function template is expected to be static member of user-defined specializations of the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template. It returns mutable reference to the I-th element of v. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-194</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-195</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-196</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-197</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Assumptions: A and B satisfy the </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>. !!!!Returns: If A and B are the same type, impl<A,B>::type returns that type. Otherwise, impl<A,B>::type is well defined for the following types only: signed/unsigned char, signed/unsigned short, signed/unsigned int, signed/unsigned long, float and double. The deduction logic is as follows: *if either of A and B is double, the result is double; *else, if one of A and B is an integer type and the other is float, the result is float; *else, if A or B is a signed integer and the other type is unsigned integer, the signed type is changed to unsigned, and then the lesser of the two integers is promoted to the other.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-198</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) This header introduces specializations of the </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>, </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> and </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> templates that make it possible to pass 2D C arrays to any Boost LA function that takes a matrix of matching size. (:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-131</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This function template is expected to be static member of user-defined specializations of the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template. It returns the I-th element of v, by value or by const reference. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-200</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: The (:link http://en.wikipedia.org/wiki/Cross_product|cross product:) of the vectors a and b. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), b:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This function template is expected to be static member of user-defined specializations of the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template. It returns mutable reference to the element at row R and column C of m. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-202</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>(:auto !!! mod="/":) (:include synopsis:) !!!!Requirements: R must be copyable. !!!!Effects: As if: { R r; (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-156</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="(":)(r,a); return r; } !!!!Required access: result:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-203</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>15</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) The expression (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<T>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) evaluates to the scalar type of a vector type T (if (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<T>::value is true). The expression (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<T>::(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":) evaluates to the scalar type of a matrix type T (if (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<T>::value is true). The expression (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-203</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)<T>::scalar_type is similar, except that it automatically detects whether T is a vector or a matrix type. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-204</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: A matrix that is the result of multiplying the matrix a by the scalar s. !!!!Required access: result:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":), a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-205</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) The expression m|</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-205</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string><C> returns a (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) that looks like the matrix m with column C removed. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-206</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This type template defines a compile-time boolean constant value which can be used to determine whether a type T is a matrix type. For matrix types, the </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> template can be used to access their elements generically, or to obtain their dimensions and scalar type.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-208</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-210</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-211</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-212</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-213</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) This macro is not used directly by Boost LA, except as the default value of other macros from </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>. A user-defined </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-213</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> should expand to a value that is valid substitution of the inline keyword in function definitions, to indicate that the compiler ''must'' inline the function. Of course, actual inlining may not occur.</string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-214</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-215</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) !!!!Returns: The magnitude of the vector a. !!!!Required access: a:(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="m":). </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-216</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-217</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) The expression v|</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-217</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> returns a (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) that accesses the vector v as a row matrix. </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>21</size>
+ <variant>2</variant>
+ <string>(:auto !!! mod="wp":) Boost LA defines some functions which take a reference to a vector/matrix object on the left, a tag (in the form of function pointer) on the right, and return an object of unspecified vector/matrix type for which the (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)/(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) template is specialized to provide a different view to the original vector/matrix object. Usually, (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="p":) are invoked using operator|. For example, given a vector v, the expression v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-123</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) returns a (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) that makes v look and feel like a matrix-column. More complex views are created by simple composition, for example v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-123</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-150</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:) is equivalent to v|(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-217</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:). ->''Note: typically, the returned (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="p":) are simply the original object reference reinterpret_casted to an internal non-copyable vector/matrix type. This technique avoids creating a temporary object. Below is a list of all (:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> mod="p":) supported by Boost LA: (:pagelist tags="view" except_tags="category noindex":) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-219</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:auto !!!:) (:include synopsis:) </string>
+ </container>
+ </pair>
+ </sorted>
+ </object>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <string>throws</string>
+ <shared_ptr>
+ <id>224</id>
+ <type>
+ <string>reno_layer</string>
+ </type>
+ <object>
+ <sorted>
+ <size>215</size>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-5</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-6</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-10</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-11</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-12</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-14</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-15</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-16</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-17</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-18</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-19</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-20</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-22</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-23</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-24</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-25</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-26</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-27</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-30</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-31</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-32</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-33</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-36</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-40</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-42</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-43</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-46</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-47</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-48</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-49</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-53</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-54</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-55</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-56</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-57</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-58</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-60</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-61</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-62</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-63</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-65</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-66</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-67</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-68</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-69</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-70</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-72</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-73</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-74</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-76</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-78</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-79</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-80</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-81</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-82</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-83</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-84</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-85</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-89</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-90</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-91</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-92</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-93</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-94</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-95</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-96</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-97</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-98</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-100</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-102</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-103</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-104</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-105</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-106</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-108</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-109</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-111</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-112</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-114</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-115</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-116</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-118</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-119</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-120</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-121</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-122</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-123</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-125</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-126</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-127</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-129</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-130</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-131</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-132</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-133</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-134</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-135</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-137</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-139</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-140</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-141</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-142</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-143</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-144</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-145</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-146</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-147</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-148</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-149</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-150</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-151</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-152</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-153</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-154</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-155</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-156</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-157</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-158</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-159</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-160</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-161</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-163</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-164</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-165</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-166</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-167</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-168</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-169</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-170</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-171</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-172</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-173</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-174</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-176</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-177</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-178</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-179</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-180</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-181</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-182</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-183</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-184</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-185</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-186</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-187</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-188</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-189</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-190</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-191</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-192</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-194</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-195</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-196</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-197</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-198</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-200</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-202</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-203</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-204</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-205</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-206</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-208</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-210</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-211</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-212</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-213</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-214</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-215</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-216</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-217</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-219</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ </sorted>
+ </object>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <string>synopsis</string>
+ <shared_ptr>
+ <id>225</id>
+ <type>
+ <string>reno_layer</string>
+ </type>
+ <object>
+ <sorted>
+ <size>215</size>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-5</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-5</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-89</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-6</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include def pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> (:include api:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-10</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-11</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-80</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-12</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-68</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-5</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-14</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-130</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-15</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-133</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-16</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-16</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> !!!!As if: `#include <boost/la/*.hpp> </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-17</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-181</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-18</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-19</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-19</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-20</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include def:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-182</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-22</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-22</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-23</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-47</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-24</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-24</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-102</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-25</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-26</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-26</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-27</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-84</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-55</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-62</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include decl:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-30</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-42</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-31</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-89</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-32</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-214</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-33</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-33</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-190</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-36</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-36</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-108</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-40</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-127</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-76</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-102</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-24</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-22</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-42</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-42</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-43</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include def:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-145</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-46</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-47</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-47</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-48</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-177</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-49</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-169</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include decl:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include def:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-94</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-53</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-24</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-54</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-54</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-55</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-55</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-56</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-57</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>17</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-58</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-100</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-95</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-70</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-194</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-133</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-206</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-216</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-58</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-58</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-125</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-60</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>11</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-119</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-189</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-169</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-109</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-61</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-152</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-62</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-62</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-63</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include decl:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-65</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-36</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-66</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-66</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-67</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-163</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-164</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-145</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-68</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-68</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-69</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-70</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-70</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include def:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-72</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-95</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-73</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-155</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-74</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-177</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-26</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include def:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-76</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-76</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-127</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-163</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include def pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-78</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-79</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-189</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-80</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-80</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-81</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-216</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-82</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-82</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-83</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-76</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-84</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-84</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-85</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-164</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include def pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-102</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-127</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-89</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-89</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-90</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-90</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-91</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-92</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-93</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-94</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-94</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-95</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-95</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-96</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-219</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-97</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include def:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-98</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-58</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include def:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-100</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-100</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include def pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-102</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-102</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-103</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-195</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-114</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-143</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-139</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-104</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-105</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-105</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-106</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-158</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-55</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-108</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-108</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-109</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-109</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-164</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include def pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-111</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-111</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-112</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-137</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-84</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-114</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-114</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-115</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-116</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-206</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-118</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-143</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-119</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-119</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-120</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-66</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-121</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-122</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include def:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-123</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-82</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include def:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-125</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-125</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-126</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-111</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-127</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-127</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include def pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-129</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-129</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-130</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-130</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-131</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-132</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-33</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-133</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-133</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-134</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-135</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-174</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include decl:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-137</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-137</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-62</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-139</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-139</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-140</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-151</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-47</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-141</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-181</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-108</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-94</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-152</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-142</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-211</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-143</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-143</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-144</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-212</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-145</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-145</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-146</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-54</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-190</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-211</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-210</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-147</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>7</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-111</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-66</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-22</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-148</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-90</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-149</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-158</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-150</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-196</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-151</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-151</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-152</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-152</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-153</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-153</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-154</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-195</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-155</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-155</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-156</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-139</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-157</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-165</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-158</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-158</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-159</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-159</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-160</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-161</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>11</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-184</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-219</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-182</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include decl:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-163</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-163</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-164</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-164</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-165</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-165</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-166</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-210</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-167</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-168</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include def pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-169</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-169</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-170</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-159</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-171</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-194</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-172</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-173</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include def:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-174</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-174</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-151</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-176</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-89</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-5</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-177</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-177</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-178</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-119</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-179</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-109</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-180</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-181</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-181</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-182</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-182</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-183</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-184</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-184</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-184</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-185</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-129</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-186</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>17</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-129</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-212</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-90</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-130</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-33</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-165</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-68</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-80</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-187</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-188</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-70</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-189</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-189</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-190</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-190</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-191</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>21</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-153</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-82</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-155</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-42</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-196</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-137</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-105</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-174</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-214</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-159</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-192</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>9</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-125</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>>\\ `#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-19</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include decl:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-194</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-194</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-195</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-195</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-196</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-196</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-197</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-125</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-198</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include decl:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-200</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-100</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include decl:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-202</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-114</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-203</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-19</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-204</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-54</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-205</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-105</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-206</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-206</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-163</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include def pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-208</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-36</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>5</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-125</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-210</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <(:link </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-210</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>:)> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-211</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-211</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-212</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-212</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-213</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>1</size>
+ <variant>2</variant>
+ <string>(:include def:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-214</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-214</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-215</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-26</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-216</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-216</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-217</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>(:include </string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-153</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string> synopsis:) </string>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>0</size>
+ </container>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-219</id>
+ </shared_ptr>
+ </weak_ptr>
+ <container>
+ <size>3</size>
+ <variant>2</variant>
+ <string>`#include <</string>
+ <variant>1</variant>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-219</id>
+ </shared_ptr>
+ </weak_ptr>
+ <variant>2</variant>
+ <string>> [@namespace boost { namespace la { (:include api pre_indent="8":) } }@] </string>
+ </container>
+ </pair>
+ </sorted>
+ </object>
+ </shared_ptr>
+ </pair>
+ </sorted>
+ </object>
+ </shared_ptr>
+ </layers>
+ <contexts>
+ <shared_ptr>
+ <id>226</id>
+ <type>
+ <string>reno_context_map</string>
+ </type>
+ <object>
+ <contexts>
+ <sorted>
+ <size>215</size>
+ <shared_ptr>
+ <id>-5</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-6</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-10</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-11</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-12</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-14</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-15</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-16</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-17</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-18</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-19</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-20</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-22</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-23</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-24</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-25</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-26</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-27</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-30</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-31</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-32</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-33</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-36</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-40</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-42</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-43</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-46</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-47</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-48</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-49</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-53</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-54</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-55</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-56</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-57</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-58</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-60</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-61</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-62</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-63</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-65</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-66</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-67</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-68</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-69</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-70</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-72</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-73</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-74</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-76</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-78</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-79</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-80</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-81</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-82</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-83</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-84</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-85</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-89</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-90</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-91</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-92</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-93</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-94</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-95</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-96</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-97</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-98</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-100</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-102</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-103</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-104</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-105</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-106</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-108</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-109</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-111</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-112</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-114</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-115</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-116</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-118</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-119</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-120</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-121</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-122</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-123</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-125</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-126</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-127</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-129</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-130</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-131</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-132</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-133</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-134</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-135</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-137</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-139</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-140</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-141</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-142</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-143</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-144</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-145</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-146</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-147</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-148</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-149</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-150</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-151</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-152</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-153</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-154</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-155</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-156</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-157</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-158</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-159</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-160</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-161</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-163</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-164</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-165</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-166</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-167</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-168</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-169</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-170</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-171</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-172</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-173</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-174</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-176</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-177</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-178</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-179</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-180</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-181</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-182</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-183</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-184</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-185</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-186</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-187</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-188</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-189</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-190</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-191</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-192</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-194</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-195</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-196</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-197</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-198</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-200</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-202</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-203</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-204</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-205</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-206</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-208</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-210</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-211</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-212</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-213</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-214</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-215</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-216</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-217</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ <shared_ptr>
+ <id>-219</id>
+ </shared_ptr>
+ </sorted>
+ </contexts>
+ <index>
+ <sorted>
+ <size>215</size>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-38</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-63</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-39</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-10</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-18</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-85</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-46</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-69</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-167</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-146</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-141</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-186</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-57</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-140</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-147</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-74</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-103</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-161</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-149</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-191</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-60</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-208</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-27</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-40</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-192</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-176</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-78</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-67</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-104</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-92</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-115</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-180</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-91</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>0</size>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>1</empty>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-187</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F133EBFA4632A5D1A877B35D8AB4162BF15B59AEE21314B00D264C5A35631402</strong>
+ <weak>2974125027</weak>
+ <size>1350</size>
+ <position>471</position>
+ <strong>68A65502AD229D50D73CEA91BD9C6E038DF7F15F246A327D3780D57807807D8C</strong>
+ <weak>4119626921</weak>
+ <size>1324</size>
+ <position>23</position>
+ <strong>C93F5CF1C35CD7D9392883A216478A034F91463DA6A8FC62160A6AC3B423ED7B</strong>
+ <weak>131906557</weak>
+ <size>613</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-168</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F133EBFA4632A5D1A877B35D8AB4162BF15B59AEE21314B00D264C5A35631402</strong>
+ <weak>2974125027</weak>
+ <size>1350</size>
+ <position>471</position>
+ <strong>68A65502AD229D50D73CEA91BD9C6E038DF7F15F246A327D3780D57807807D8C</strong>
+ <weak>4119626921</weak>
+ <size>1324</size>
+ <position>23</position>
+ <strong>521308D95228CBCF737EFCDED2B1D740851EB05C6F8F8361CEA4F17B48A9CC8D</strong>
+ <weak>1458487953</weak>
+ <size>682</size>
+ <position>638</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>3F993AFBBAE4409CF6C6D475F228F22DBE4113105A66DB630049DCDCED2A0503</strong>
+ <weak>1242596104</weak>
+ <size>1401</size>
+ <position>500</position>
+ <strong>3E130194588BBD2C05253EDFC9EFD31492099AC8AE58992EE835385103A9B550</strong>
+ <weak>1618770894</weak>
+ <size>1375</size>
+ <position>23</position>
+ <strong>B0093EABB308DF351E00DBE68C457B2172F0130993A7188589A76485583CF605</strong>
+ <weak>140261029</weak>
+ <size>183</size>
+ <position>1188</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/zero_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-106</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>157F98AFBC74DFA397AB261119FF078D4F75475AA7E317889DE1AAFD871D4904</strong>
+ <weak>3677314890</weak>
+ <size>1164</size>
+ <position>525</position>
+ <strong>2D7D5B6D41222065666943B6CE9CF0C988492AC9895EC2484171280EEC1E064F</strong>
+ <weak>2683066384</weak>
+ <size>1138</size>
+ <position>23</position>
+ <strong>F2D5D0F5B3A4244152C42F057E2DE35185D664E1D3D55271100CFCC57BCC2020</strong>
+ <weak>1427448995</weak>
+ <size>946</size>
+ <position>188</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-185</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>69AA01EDBEA1154945D4840E660CACE544C2096BF9DFE525F26D5793B2F37206</strong>
+ <weak>1970782874</weak>
+ <size>671</size>
+ <position>380</position>
+ <strong>F87A643220C4105A2860465871D81F3CB7B2BEBA27997D2A03D2E3C613C1791B</strong>
+ <weak>1766701920</weak>
+ <size>645</size>
+ <position>23</position>
+ <strong>9E4775BF475AAA7BC57AEE5D39760D5044A67F70EC6952B9330715686A47994C</strong>
+ <weak>624265657</weak>
+ <size>460</size>
+ <position>181</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_minus_eq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-15</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>D40580037E1261BDE2D385A1C6EA53494044335A6AB5BD4104BB32940B42B206</strong>
+ <weak>3322993237</weak>
+ <size>743</size>
+ <position>227</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/config.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-8</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>7938F8C266519E3814EF203B918C6C775D0C1D5AA5DC48F15EE60C39554E7707</strong>
+ <weak>726408935</weak>
+ <size>13668</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_access.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-36</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>B1329BD327AE4AFA1D27CB518E1EBE1153AD4FB9F222A5799CB0AB8841D47E08</strong>
+ <weak>403629892</weak>
+ <size>781</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_magnitude2.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-29</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F22A85242AF9994299028734C8B00C35154FE87874CD91530EB81C241C96FD0E</strong>
+ <weak>867832725</weak>
+ <size>1058</size>
+ <position>451</position>
+ <strong>70320E9FB008270D2723D4E6E01D640F06A9A8A190C1C3C48AF002FCB1A95086</strong>
+ <weak>3830254683</weak>
+ <size>1032</size>
+ <position>23</position>
+ <strong>C724636D736A88FB3631462F88062BBCBE96BE04F2C797D74CBAA64026B7A754</strong>
+ <weak>477623494</weak>
+ <size>951</size>
+ <position>77</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vec_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-53</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>26FB4DD526A9DA96CBBC5F48E9948BB96B373D55296AE1688395982D935F7311</strong>
+ <weak>2855932998</weak>
+ <size>892</size>
+ <position>446</position>
+ <strong>03F510A66F67E1B8190E3D2916B3E521B81CC7A40AD335FE67CD5284B63E714B</strong>
+ <weak>2715225356</weak>
+ <size>866</size>
+ <position>23</position>
+ <strong>1DCCD51F2E4E40DEFFA0E2D1876F6626E9A85BFF26D294DCEF97168EB674FE6E</strong>
+ <weak>2447499377</weak>
+ <size>693</size>
+ <position>169</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_dot.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-98</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>BDF96E70F3232AECF6443916A332AD45E6BBFCB147DC3897AF8170A9F1C6B511</strong>
+ <weak>2646905705</weak>
+ <size>2554</size>
+ <position>423</position>
+ <strong>4A30E35679400C0A8D1C9BB80F7C4B46D885BA7C854681A70A8A92221BC9AC1B</strong>
+ <weak>2844757039</weak>
+ <size>2528</size>
+ <position>23</position>
+ <strong>3F82843BC1CEA379E263B6782B50C7D8863CE0ABBDD7B830493EC8E36797BFAA</strong>
+ <weak>1042495004</weak>
+ <size>179</size>
+ <position>2345</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/rotx_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-134</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>59ECCBA3F8513ADC909410A38B1EA12CE8EC735AE66237BA159250FCC376B012</strong>
+ <weak>906571485</weak>
+ <size>976</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_minus_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-70</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>2AAB658787B6FA6FD90F9C3538023907D0AA27F8905F23FC3EF64B06E6594C16</strong>
+ <weak>1539557141</weak>
+ <size>690</size>
+ <position>414</position>
+ <strong>CE84FAD3FFD6F2D7FF36E4A13D156F7B5A95225AD7D3C9ECC503358B4293B1F8</strong>
+ <weak>3221667803</weak>
+ <size>664</size>
+ <position>23</position>
+ <strong>262540FDCBB7D83D081C172BA295FB4C7805C8F0C524DB5FE39FE2B76A3271FC</strong>
+ <weak>2418053271</weak>
+ <size>484</size>
+ <position>176</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_magnitude2.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-160</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>31049A602A940FFCB8803D01376F2AD4BCEBFFA33B04AAD32AACE2240B545518</strong>
+ <weak>2755556668</weak>
+ <size>9057</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-125</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>31049A602A940FFCB8803D01376F2AD4BCEBFFA33B04AAD32AACE2240B545518</strong>
+ <weak>2755556668</weak>
+ <size>9057</size>
+ <position>323</position>
+ <strong>B897C37C483490382A83985DD795A1929DEFE8483EB71D6D799E6D21F46982FE</strong>
+ <weak>714239490</weak>
+ <size>9031</size>
+ <position>23</position>
+ <strong>55D2389F48FFE75C5399325257EC3C44033CE3CA7E2E5F8D3331DACAD8A2DCE7</strong>
+ <weak>4119816190</weak>
+ <size>9004</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-197</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>330FB3AE4FEEBE327A3FA023A0B3D74055CBB7D4217472C8FD5264F68E64DE18</strong>
+ <weak>3937088239</weak>
+ <size>1026</size>
+ <position>525</position>
+ <strong>39D88ABF7D5D5CBBE760CF2313EE00206D23A3E1396EB5B0A1A7CF58CE487879</strong>
+ <weak>4051053493</weak>
+ <size>1000</size>
+ <position>23</position>
+ <strong>A513F3F0AECEB020ABB4BABC18125DEBF83F51FABD4978C0B8F64E11696BF440</strong>
+ <weak>261683761</weak>
+ <size>814</size>
+ <position>182</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>3D62161612D7790EAED870F52243868DF78B5FD8B7E92330342118C63862F41B</strong>
+ <weak>173919190</weak>
+ <size>1646</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/array_vector_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-25</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>7A78331C979A3E18D64A8B9DBEB195E4BED44B8066B9BFFF484EF26804FD261C</strong>
+ <weak>2978269615</weak>
+ <size>684</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-19</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>D0ED77CBA96D64D7DB6590E033F0C626AE906AEEA7D1AFCA71E72CAE323D861C</strong>
+ <weak>2817641852</weak>
+ <size>1552</size>
+ <position>471</position>
+ <strong>F66A402B310E7D34C78E3604B207CEC1F752CF3D79677DF078280039638C9691</strong>
+ <weak>2918368834</weak>
+ <size>1526</size>
+ <position>23</position>
+ <strong>1E1AB9E89F9E2E76FEB6545C94242F3A1859C0FC8FBB1805782BE0992B780149</strong>
+ <weak>857661926</weak>
+ <size>784</size>
+ <position>738</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>D0ED77CBA96D64D7DB6590E033F0C626AE906AEEA7D1AFCA71E72CAE323D861C</strong>
+ <weak>2817641852</weak>
+ <size>1552</size>
+ <position>471</position>
+ <strong>F66A402B310E7D34C78E3604B207CEC1F752CF3D79677DF078280039638C9691</strong>
+ <weak>2918368834</weak>
+ <size>1526</size>
+ <position>23</position>
+ <strong>A87772A92CD373FDE0C8D724E690307F23F0EAEBA4F3713E669875117E9AE8EC</strong>
+ <weak>992599617</weak>
+ <size>713</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>A777E983100C6000480EDFFCECCC6E268BFB9856DFB612855C2857EF8045E71F</strong>
+ <weak>447095211</weak>
+ <size>2792</size>
+ <position>503</position>
+ <strong>D10B038F01E57887D3974EB6C1CDE333D0B91DABCE610FB5B603E23B120CAD25</strong>
+ <weak>3346209393</weak>
+ <size>2766</size>
+ <position>23</position>
+ <strong>717C18355323CFA60E2C6E108F5711A79992EF7A8D23816F58FB9A06B99357B2</strong>
+ <weak>2882610727</weak>
+ <size>115</size>
+ <position>2647</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/delrc.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-135</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>D1B9280A5845BABE7D0745EF2C61B4088A8A6BC508F35204BD52DA8F82D93626</strong>
+ <weak>3011095533</weak>
+ <size>572</size>
+ <position>425</position>
+ <strong>AD0D21D3584AC847C353C03A21E4AEED772D8946501685A3E67AE3F24AB71C6B</strong>
+ <weak>2428150963</weak>
+ <size>546</size>
+ <position>23</position>
+ <strong>972672EB24485FD53110DA6F2776877EE73FA95B6E39D01F9B7B50B2D1B6BCE3</strong>
+ <weak>1352103106</weak>
+ <size>365</size>
+ <position>177</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_determinant.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-120</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>72987D93034F062FF967EE51A5211E4BE6BA27E650D52DEF0BF835AFD29BA52E</strong>
+ <weak>1200933377</weak>
+ <size>2530</size>
+ <position>501</position>
+ <strong>5649D222E4A03F8C81DDCCD6095C06817583862F39A0784592A8443D12DD463E</strong>
+ <weak>397918919</weak>
+ <size>2504</size>
+ <position>23</position>
+ <strong>FE809FAB99B0B9C7FE6D62611F119D537C17F9E30405C71E658D935CBE3F7296</strong>
+ <weak>507005269</weak>
+ <size>241</size>
+ <position>2259</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vref.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-179</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>0CBC24B6476E0FD81E91CBA4E00082204583493239B8941B2B75AD70D06B7430</strong>
+ <weak>3301564699</weak>
+ <size>2432</size>
+ <position>500</position>
+ <strong>7C51E725BF00451B6E8BECFC561030CF5F352138D9382646664FF8FC1E0A975E</strong>
+ <weak>3231635937</weak>
+ <size>2406</size>
+ <position>23</position>
+ <strong>F43CDF3272B2A6A7D4B98FE55E951797260E3598DE69315A10C62A46C2ED39D3</strong>
+ <weak>3981993992</weak>
+ <size>314</size>
+ <position>2088</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_scalar_cast.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-32</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>1436CB2DFD4EA22137C4843369FB3A68282B4C25E32075949CB0E939F22D4831</strong>
+ <weak>528760715</weak>
+ <size>1015</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_dot.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-58</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>85EC5A6FB118B2EE28093A628AEE0327A9EB884073FDE60C62EC5BD5C1FD1032</strong>
+ <weak>1478640335</weak>
+ <size>1998</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/zero_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-184</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F6EDE986E5CCD9290121C95265BC95371216AA216346C071C2D3A1FDDFB47032</strong>
+ <weak>3845142065</weak>
+ <size>1005</size>
+ <position>488</position>
+ <strong>9F655DC1782ECA77FAEE0614C25B80E396DAAEBC703EB4534DB0B34E7D6CF991</strong>
+ <weak>1775513335</weak>
+ <size>979</size>
+ <position>23</position>
+ <strong>B013B985B75FCE7B913E385A5EA601347F2EF7C3C31361635CC891EF07076F18</strong>
+ <weak>2863135891</weak>
+ <size>791</size>
+ <position>184</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_minus_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-14</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>57C198F38067344C74B25CC3110B1181C076C7F74BBF14634E8451EB3768A633</strong>
+ <weak>577629880</weak>
+ <size>830</size>
+ <position>375</position>
+ <strong>AC26878E61F38AA613AE2C0D5CB39752EE8CF4A676D39DF2E9000E3B4D5BF935</strong>
+ <weak>548857488</weak>
+ <size>798</size>
+ <position>26</position>
+ <strong>035A94E32BB1FAC8E50A8C85F5F38929DB6593366712C98CCD90B23A70136BA4</strong>
+ <weak>3287593567</weak>
+ <size>594</size>
+ <position>194</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-204</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>A6270032D98CB19523F5A29FAAAB9DDD94F34AA1301D60089CB19F5EB130F733</strong>
+ <weak>3528311024</weak>
+ <size>1578</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/zero_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-158</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>851A747BC3E9FB1248C6CA7053CBEC4FE211E6900E2A04146230E0F074F80834</strong>
+ <weak>1307975576</weak>
+ <size>2737</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/col_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-82</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>43F5A75BF8489CD815F25F5BB0D178C125BD2699D6AD5CFF3A8AE8D75B058534</strong>
+ <weak>749127512</weak>
+ <size>685</size>
+ <position>374</position>
+ <strong>3C0B06890B913ABA28C823BEAF42031F3992094C4518A4B9F6E9E4FCD21036FB</strong>
+ <weak>2968436766</weak>
+ <size>659</size>
+ <position>23</position>
+ <strong>CC12F02EF7EFD03D0D17D45EC141390F8D9B172680AB0FCF4DDAFBFED3C733D3</strong>
+ <weak>2908066050</weak>
+ <size>480</size>
+ <position>175</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_eq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-116</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>ACE11C49AFBA1BF6D8AC33599A42A389535CAFC1B3F9F6D7094FAB2D18092D37</strong>
+ <weak>4075816519</weak>
+ <size>872</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_minus_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-165</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>D198C43F65C5AA8FCEF9432986F8A226854A6757D3EE8907A568F68F51753B37</strong>
+ <weak>2429665734</weak>
+ <size>669</size>
+ <position>379</position>
+ <strong>65D0F01D54D627A51C1F11BE2D6BF58199410D95237B97D2271704CFD2278F6D</strong>
+ <weak>2503064204</weak>
+ <size>643</size>
+ <position>23</position>
+ <strong>C9F3100459B08541932F9CFA7D70A0AFEBDCF9954725B2BB0B9C0DE54ADFACAC</strong>
+ <weak>2084407629</weak>
+ <size>459</size>
+ <position>180</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_plus_eq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-171</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>98ACF74CFC7903C4A9B24FFD9117AD89DDCB04E53687A64176B5A193230DF237</strong>
+ <weak>1570763838</weak>
+ <size>811</size>
+ <position>488</position>
+ <strong>9CE268FE64F92DA80AEE191C4ADF3ECE5165109456DCC01069693BFB52ACD75E</strong>
+ <weak>3976850692</weak>
+ <size>785</size>
+ <position>23</position>
+ <strong>B027409C7E652E9F62D84F1B5A6F47B32C1682FA8D89F39683A053375844A1E0</strong>
+ <weak>3653876882</weak>
+ <size>603</size>
+ <position>178</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_minus_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-188</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>5CAC9E91DC6B4E09C1CA8FAC721B123671BA4C85244180D8B53DB988385C5338</strong>
+ <weak>986441024</weak>
+ <size>794</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_mul_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-181</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>CA2CB006DE97C12ECE927C1E6BB46E3B56F820002C9A164C63C52BBCD490AD38</strong>
+ <weak>2326177533</weak>
+ <size>1366</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-129</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>75D1AF19231F05B5A3B5D66C17CD12685EC70566795D1F00E635CC31AA40F038</strong>
+ <weak>3688615412</weak>
+ <size>738</size>
+ <position>378</position>
+ <strong>ABC912DC9054530C982056271DA35F3DEA98D0342BE95E546B4EAD538EC79EC2</strong>
+ <weak>1253098956</weak>
+ <size>706</size>
+ <position>26</position>
+ <strong>3622D25F139FA3FE4403221F35B8DAECA976E07F79D41500EEBACC0E1A7EE834</strong>
+ <weak>180392038</weak>
+ <size>499</size>
+ <position>197</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-142</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>2AC1BE685374C05E9D61E7308F15A204E61CC91AE4181EC80EE7377F63BED23A</strong>
+ <weak>3374875319</weak>
+ <size>3059</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/transpose.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-196</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>6C7014896E920715E655124193878C51BABE4A769642511EACB556617E67B23C</strong>
+ <weak>3770691267</weak>
+ <size>985</size>
+ <position>436</position>
+ <strong>72B472925C830A61E59A1D93A936FAD727AFA94FF0800D0A137DEF357C29C894</strong>
+ <weak>123742089</weak>
+ <size>959</size>
+ <position>23</position>
+ <strong>420D687F901AAF4416690602F620BF5824896EE66E1190676999B7450A87AE7A</strong>
+ <weak>1856643461</weak>
+ <size>932</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_cross.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-200</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>CB8961EDBA089E345964114D900BA401DAA1753D9FE98B3E3E028BCC555F7A3E</strong>
+ <weak>2607100384</weak>
+ <size>2881</size>
+ <position>540</position>
+ <strong>D6346B699455BBFE7117A3AD21932028E71E3EA274782D940BF7649C516DA12C</strong>
+ <weak>3133745830</weak>
+ <size>2855</size>
+ <position>23</position>
+ <strong>CC1EF9A9BDC784B98B2F7ABE0D2B0F0C22E76B299A9A66A9721925EAA30771CD</strong>
+ <weak>452872518</weak>
+ <size>241</size>
+ <position>2610</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/mref.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-170</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>A277FF17C839B27046C6FEB51AED6D762AA615B7C7AF2EBDAF428111F0308540</strong>
+ <weak>3047110271</weak>
+ <size>1113</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_assign.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-139</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>D3794CB76D76E473990C7F089D9D5E027B14B44E8E94E382333A7583E71A9844</strong>
+ <weak>2382481211</weak>
+ <size>713</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_mul_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-94</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F5B5D59AD4D9033D62011A68E8647C50186C092136C0598C667BD44E4AB0CD48</strong>
+ <weak>3221861264</weak>
+ <size>658</size>
+ <position>378</position>
+ <strong>B577AD4D98E05409292A35782D04635870FE48F3B1C373E9FCFC4A06DB504ADE</strong>
+ <weak>500869992</weak>
+ <size>626</size>
+ <position>26</position>
+ <strong>0A43189F3AFD4CAA1E5F7350ACD58B42437D70671A1BA94AFB92A38845748434</strong>
+ <weak>2224715762</weak>
+ <size>425</size>
+ <position>191</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_mul_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>D353AD89A6F14EF7C1EAD40A5F4C5B3E30B21E61927ECD8610EE2A634D70F549</strong>
+ <weak>459002878</weak>
+ <size>706</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_make.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-195</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>86175E3EF176C94E2029F2EE88D57CD71AD9F2E32B87A6CDC9B7B15EABE1204A</strong>
+ <weak>1751517617</weak>
+ <size>884</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_neq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-80</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>2E3BF16AD5ED5A68B0B3AE26D5CFA3C9BB14622DF767A0E6C70DA548B4E11C4B</strong>
+ <weak>2685148979</weak>
+ <size>105</size>
+ <position>865</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/config.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-43</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>37CA7596CEDA5F7084D6943EAA0B38622AFA0B1EDB6CA234E148571958E7944D</strong>
+ <weak>3159897562</weak>
+ <size>2840</size>
+ <position>542</position>
+ <strong>233725CB3C3C31EB0A0CDB76E7DBCBCA86DBAF2C91B8A377D38418DC78DFBF58</strong>
+ <weak>3673763488</weak>
+ <size>2814</size>
+ <position>23</position>
+ <strong>3DA096044C78050C3AF0551BEFA626FF6F53DB4901A90D813F248E843A95F26B</strong>
+ <weak>2438603690</weak>
+ <size>121</size>
+ <position>2689</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/transpose.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-150</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>C30FA56975BBCAC341B89F25224273FF3BE359448A28167B233DD5C1965E0250</strong>
+ <weak>2580683873</weak>
+ <size>97</size>
+ <position>668</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/config.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-173</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>0BA746F40D18D4E3DCB25B6D0B7A9D082898DF206E9A6863B0D8318DF6379550</strong>
+ <weak>2010376549</weak>
+ <size>786</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_magnitude.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-26</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>8A3BD7866214E77B10AE2C87FAFF2DA9C7A81295B2D543BBBEE74F086904E750</strong>
+ <weak>2303455062</weak>
+ <size>2617</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/col.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-44</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>770FFF430145C2E6140EF8EC6D2845611886AE65F7BB331DA0AC98A9F5685454</strong>
+ <weak>2911985834</weak>
+ <size>2972</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/delrc.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-174</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>CEBFB68C79C552AF2309904EED56EF9386CA9C1E2C6216D572C3AC85A6B3B157</strong>
+ <weak>3893218810</weak>
+ <size>727</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_minus.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-177</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>C786F5A32FC14F3819819244DA4C8B4DAF51909BEA6859C761FBB8E4317D3058</strong>
+ <weak>3098785181</weak>
+ <size>2654</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/rotx_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-9</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>37313A3F77365E60A2E38C3EB4E903DFEAF72D0033A62FD75C29456183138758</strong>
+ <weak>3801905822</weak>
+ <size>1228</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-151</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>BDC50A6C63597478762E53162DBA209E9D46398203C8E16ACC7D85997D55E85B</strong>
+ <weak>2418556410</weak>
+ <size>2861</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/delr.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-137</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F8303BB994C099152C1B27BB606E7D5A1BF395DF17A06C1464DD42FCC9E0425F</strong>
+ <weak>3392516937</weak>
+ <size>2437</size>
+ <position>503</position>
+ <strong>C2EFC02132AE1F76F54F35310A0732006FD04F92707591952C9BF95BBFFC0344</strong>
+ <weak>1547807759</weak>
+ <size>2411</size>
+ <position>23</position>
+ <strong>E37169468B309605DE9CE5867ACE516E81D37ED7ABBF784698BDCE1B95C9291E</strong>
+ <weak>966206300</weak>
+ <size>129</size>
+ <position>2278</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/row.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-178</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>96DB0FB5E2597301B357575320E3AEAE8ABB8867C58BDB2CF1E5FD1D833D3D61</strong>
+ <weak>328605672</weak>
+ <size>2737</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/row_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-153</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>60C05A21AB26352E7EE0EE59940BFAA90B7A96B78A110A0BC66E79E98201B062</strong>
+ <weak>4091952104</weak>
+ <size>2861</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/delc.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-105</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>EA00C1554EE682AD120F6345A549DCBD235EA199DA273E64E0318D817EC93B63</strong>
+ <weak>3354718407</weak>
+ <size>1767</size>
+ <position>461</position>
+ <strong>2023B9C531D52785C3F55A18BD01B63FF0150E2257BE459E342C2C1F0B4F768F</strong>
+ <weak>3002001805</weak>
+ <size>1741</size>
+ <position>23</position>
+ <strong>F791516973A70DE5D200121E436EDC2E5C1E08E2D4E5D8BEFF08FC7A2F85FEEC</strong>
+ <weak>679361449</weak>
+ <size>195</size>
+ <position>1542</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/identity_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-121</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>65A26A1564713FF60C259B614BF5CA30FC1E5FF1F4D787901ACAE9B8E730C367</strong>
+ <weak>1711657131</weak>
+ <size>674</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_determinant.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-66</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>A4613132E99A7F300B4C5910B53DB50020F6C96F529FD1D810F40DDDD1390F68</strong>
+ <weak>59496256</weak>
+ <size>728</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_minus_eq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-133</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>A7CC68ECF4184862C4A550A478FDF0A2E49EB4B9F61626172DF5195A5C1CE069</strong>
+ <weak>2841613827</weak>
+ <size>2190</size>
+ <position>500</position>
+ <strong>DAE701DA04EC750441599BC58A9E8F84A50418447FCBD2C8CEA944B542ACAD8B</strong>
+ <weak>301895369</weak>
+ <size>2164</size>
+ <position>23</position>
+ <strong>AA0AF8972D645D35E740E22D7BA7E3B259394A6FBCE4DE452784C93055472604</strong>
+ <weak>3917506560</weak>
+ <size>314</size>
+ <position>1846</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_scalar_cast.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-49</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>4253EEC587C554453CD7142C5E0D2C99FD78455C12E15D46B8889D2D14A5886A</strong>
+ <weak>139947930</weak>
+ <size>1167</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_plus_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-90</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>838B77D683B59C58472181EAB28B3C9A66C282D5E5B628658950A51602FEA66A</strong>
+ <weak>2275128774</weak>
+ <size>620</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_make.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-114</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>BBDF496FF77A73C42D32A276B5B195D1C2C57495AFC63B14D5C565B1432A7B6B</strong>
+ <weak>3178422295</weak>
+ <size>1511</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_inverse.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-22</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>D306D5E8403BC1309FD2E8B736AEB4964A1097B3E9081207F76835027575C26B</strong>
+ <weak>58954873</weak>
+ <size>2558</size>
+ <position>423</position>
+ <strong>3639F2AD3969A517D62007367CFF6E34A57216598E2EA1A6A7A43BEC6CCB8B99</strong>
+ <weak>4036660543</weak>
+ <size>2532</size>
+ <position>23</position>
+ <strong>4EC5C70E7A80400F5E89B1D16A19C692EA85DA08964CE1BF52413132097DFD93</strong>
+ <weak>1071461922</weak>
+ <size>179</size>
+ <position>2349</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/rotz_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>B7A34C6DD89D7F572E0E4E3ADB1326B2283CA75EFE3FCE1863586191C175D96B</strong>
+ <weak>1109946582</weak>
+ <size>1170</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_minus_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-130</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>32DA59FB8F7DE580BFFA1377CCD82281090D0B20A978196B50FF13DA3221F76C</strong>
+ <weak>4239615754</weak>
+ <size>350</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-163</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>32DA59FB8F7DE580BFFA1377CCD82281090D0B20A978196B50FF13DA3221F76C</strong>
+ <weak>4239615754</weak>
+ <size>350</size>
+ <position>323</position>
+ <strong>39636BD1AA595D4FB8550BC343047446A76E749C77E425F2EC615AF1D2466FA5</strong>
+ <weak>2846253008</weak>
+ <size>324</size>
+ <position>23</position>
+ <strong>F7C71D92DD0F33ECC22ABE4C8E57FE679469A0CCD73F341C05D30B81F5789420</strong>
+ <weak>3708037895</weak>
+ <size>140</size>
+ <position>180</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>32DA59FB8F7DE580BFFA1377CCD82281090D0B20A978196B50FF13DA3221F76C</strong>
+ <weak>4239615754</weak>
+ <size>350</size>
+ <position>323</position>
+ <strong>39636BD1AA595D4FB8550BC343047446A76E749C77E425F2EC615AF1D2466FA5</strong>
+ <weak>2846253008</weak>
+ <size>324</size>
+ <position>23</position>
+ <strong>4DEA1F4F4BAE51CBF49447FA5DE6A8696A05F53199ED6CA5000E7E9A75B1DA9A</strong>
+ <weak>2037853870</weak>
+ <size>155</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>4</size>
+ <strong>32DA59FB8F7DE580BFFA1377CCD82281090D0B20A978196B50FF13DA3221F76C</strong>
+ <weak>4239615754</weak>
+ <size>350</size>
+ <position>323</position>
+ <strong>39636BD1AA595D4FB8550BC343047446A76E749C77E425F2EC615AF1D2466FA5</strong>
+ <weak>2846253008</weak>
+ <size>324</size>
+ <position>23</position>
+ <strong>4DEA1F4F4BAE51CBF49447FA5DE6A8696A05F53199ED6CA5000E7E9A75B1DA9A</strong>
+ <weak>2037853870</weak>
+ <size>155</size>
+ <position>23</position>
+ <strong>790E0E6C507CD18E42A726B890F56EF26E4DD599E106DC02EA5D3CB23EA8A602</strong>
+ <weak>2517502439</weak>
+ <size>30</size>
+ <position>119</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>4</size>
+ <strong>32DA59FB8F7DE580BFFA1377CCD82281090D0B20A978196B50FF13DA3221F76C</strong>
+ <weak>4239615754</weak>
+ <size>350</size>
+ <position>323</position>
+ <strong>39636BD1AA595D4FB8550BC343047446A76E749C77E425F2EC615AF1D2466FA5</strong>
+ <weak>2846253008</weak>
+ <size>324</size>
+ <position>23</position>
+ <strong>4DEA1F4F4BAE51CBF49447FA5DE6A8696A05F53199ED6CA5000E7E9A75B1DA9A</strong>
+ <weak>2037853870</weak>
+ <size>155</size>
+ <position>23</position>
+ <strong>F6C43FD4AF8F8A046843A0E491514EE9BAC435BCA658B80561725D32E3EF7AEE</strong>
+ <weak>2275543295</weak>
+ <size>29</size>
+ <position>61</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>4</size>
+ <strong>32DA59FB8F7DE580BFFA1377CCD82281090D0B20A978196B50FF13DA3221F76C</strong>
+ <weak>4239615754</weak>
+ <size>350</size>
+ <position>323</position>
+ <strong>39636BD1AA595D4FB8550BC343047446A76E749C77E425F2EC615AF1D2466FA5</strong>
+ <weak>2846253008</weak>
+ <size>324</size>
+ <position>23</position>
+ <strong>4DEA1F4F4BAE51CBF49447FA5DE6A8696A05F53199ED6CA5000E7E9A75B1DA9A</strong>
+ <weak>2037853870</weak>
+ <size>155</size>
+ <position>23</position>
+ <strong>FDA23A25EE02B488BFF1816B6A5CD764ABAB67DC039077D9A09099B3938EA3F4</strong>
+ <weak>2261649637</weak>
+ <size>29</size>
+ <position>90</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>5990FBB0523A0EE24C6EF623F902FA6ECF8299487F58986EC9FF592EAD9D2D6D</strong>
+ <weak>2711925636</weak>
+ <size>658</size>
+ <position>378</position>
+ <strong>0EA73A67CDEA6BE0DEA14598253FF09E583AF27E36439248EEE3B086418A66EB</strong>
+ <weak>4291406684</weak>
+ <size>626</size>
+ <position>26</position>
+ <strong>EDD4E45A2CAAF8A38C8379105A37F354601C16DE5E42BD06E9EB3E7A58D8DF67</strong>
+ <weak>2907994501</weak>
+ <size>436</size>
+ <position>191</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_div_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-61</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>526B6ABAB3CC978D10DAF19A80CB2349155691058F5FFB03036858A2832BD46D</strong>
+ <weak>3581122526</weak>
+ <size>535</size>
+ <position>408</position>
+ <strong>51262ED20BAD39605336BA71CB8E562698FEDD5D868E849A74AB27AEAF9B2EAD</strong>
+ <weak>4154560676</weak>
+ <size>509</size>
+ <position>23</position>
+ <strong>E847E47ED7000F02C59CA5658E7FF2AAB6A9A89A20E915759D70CCC84E2E32DA</strong>
+ <weak>705520562</weak>
+ <size>335</size>
+ <position>170</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_make.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-202</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>731504DD24E2D2CAD4A4089EA45BBE0E1104FAE0E5E1E98DBB7584E0C17CB06E</strong>
+ <weak>3187881024</weak>
+ <size>1035</size>
+ <position>525</position>
+ <strong>18E8CAA1ADB8522E53BCECA9E46580EF13721A893B0261AD17B04BC24594A169</strong>
+ <weak>2214931718</weak>
+ <size>1009</size>
+ <position>23</position>
+ <strong>00754AFF1510352E6DC0AF2E0170F0AC0377DFF6963C085D7E85E64989BE4C90</strong>
+ <weak>3822779266</weak>
+ <size>823</size>
+ <position>182</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_mul_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-23</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>8B5A9A28A1C50511978C310F18C798A7A5DAFA7A030C68930DBDF532563EC970</strong>
+ <weak>605802198</weak>
+ <size>744</size>
+ <position>378</position>
+ <strong>6630834DF027BAAEE9DA49764F18C2DB28748CBD76977F382FD68611B9127264</strong>
+ <weak>1649067694</weak>
+ <size>712</size>
+ <position>26</position>
+ <strong>C56E288F88F670E10FE8659D6155C73E7B2ABEFDAC16AC888BD52F67D44713AF</strong>
+ <weak>4210659667</weak>
+ <size>505</size>
+ <position>197</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_div_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-166</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>317A9906E30A86AE8DB53C092FB130476EDF2F9A45AC61C4C14CE47EFFA26B72</strong>
+ <weak>2321882212</weak>
+ <size>96</size>
+ <position>767</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/config.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-20</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>6FA35A10B96A2B83D0089B3F1B033CC973A17698B08943ABAEA72109EB5ABE72</strong>
+ <weak>2263173431</weak>
+ <size>2912</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/diag.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-189</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>4528814168CA5EFA8A422BB7126B488E1F91E70289539BB1A35A2896308E6573</strong>
+ <weak>4181939720</weak>
+ <size>1098</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_cross.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-100</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>AC018BB96A3F72F0689FF46F79FCD29186F12DB51E0AF5E4040341A0DADBC974</strong>
+ <weak>2420479247</weak>
+ <size>1405</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_assign.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-143</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>37F82533D327D979DC8F5FAAC4458C76091EE2195FE6CF8C568C21CE49D96277</strong>
+ <weak>1289837182</weak>
+ <size>332</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/error.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-89</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>031CF9038CD8C4D15164ED85B46E4AB76EC651AD397F335F308B566E53D42478</strong>
+ <weak>3638491346</weak>
+ <size>13559</size>
+ <position>432</position>
+ <strong>FC0556556D529205D6E52BBD9ED8722673C7A10453BA2B4F0BF2DA57E5BC4AD8</strong>
+ <weak>2667442346</weak>
+ <size>13527</size>
+ <position>26</position>
+ <strong>AF36638E275F69FFF5CF16AB709B5CB9C088B864C3EC7D06507B826B383084BA</strong>
+ <weak>2611407288</weak>
+ <size>13494</size>
+ <position>29</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_access.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-65</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>F361729C8F62AF34F839F97C9D485F06928ED907FE6C26D61243E5E97F15A478</strong>
+ <weak>2447709068</weak>
+ <size>65</size>
+ <position>504</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/config.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-97</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>D031F937EAF11D2989DDDEC6FD7533E7271D99C072C5872817E97421C90C1479</strong>
+ <weak>102421512</weak>
+ <size>2367</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_scalar_cast.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-169</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>6DC8DD933DE7CE5DC53A087ED87580081FB186B74CE9F18B138883923EC4FD7E</strong>
+ <weak>1375580247</weak>
+ <size>2437</size>
+ <position>503</position>
+ <strong>90A15AD09B253394E6EB2096EF4BDC0972853DD2F47A0CF198889C233765BDA7</strong>
+ <weak>4023494941</weak>
+ <size>2411</size>
+ <position>23</position>
+ <strong>4B36155936AC41463498A56001F0BC83FEDF7940BAE8C01EAA8F26B041474187</strong>
+ <weak>723460878</weak>
+ <size>129</size>
+ <position>2278</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/col.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>C413174F929668BF389592D17A76EED7F517144D43B6EC44DA087CED67B11D7F</strong>
+ <weak>4161400492</weak>
+ <size>830</size>
+ <position>375</position>
+ <strong>C70645FB781E16839314290C321A862C0E14E50BBE405851BEE017D4B3EB5C31</strong>
+ <weak>4138133124</weak>
+ <size>798</size>
+ <position>26</position>
+ <strong>E103879C02E9C86213B88C9098225034AD7EA594115D11D8F81F50F7F32B42CF</strong>
+ <weak>3076239966</weak>
+ <size>594</size>
+ <position>194</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_div_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>27C5BC11FCBB6E30D9F58E8FAE7A9E63740B66D9A1C78155397CD46B1A306E7F</strong>
+ <weak>2143496001</weak>
+ <size>2762</size>
+ <position>542</position>
+ <strong>6F6341882993D30620CAFDAAD6D4CC7F317690A1081579A407044A4785006CC9</strong>
+ <weak>3701350407</weak>
+ <size>2736</size>
+ <position>23</position>
+ <strong>0EFA28AD1658F438A60B3F3BF900FED7B9C71BB94BC7A7B4C69922A6B3305803</strong>
+ <weak>2066687400</weak>
+ <size>127</size>
+ <position>2605</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/diag_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-73</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>79523599E546D2FA2088AEAB3DB8D8D4C41D2DEA71C84D907FA34EA703BAA580</strong>
+ <weak>3595941584</weak>
+ <size>1584</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/mat_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-76</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>E127465075C2BF69D9BF77EB9E42DDE27FADAD694EE121D0C690B6130303D380</strong>
+ <weak>1972747643</weak>
+ <size>680</size>
+ <position>370</position>
+ <strong>EC194E5FFA4E55CCEE6B68BDDB2D4664388B9C4FB35B18393757BD8D707775C1</strong>
+ <weak>4064392531</weak>
+ <size>648</size>
+ <position>26</position>
+ <strong>8DF87365F562F53F99245716FD676090760CB5BEDFF38D90DDC581AE9199D02D</strong>
+ <weak>2327479561</weak>
+ <size>455</size>
+ <position>183</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_minus.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-48</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>A401F29D771DC8D7773E7693BB7600C67F9FAF04684E4322669B44B02C8C1982</strong>
+ <weak>2978807017</weak>
+ <size>2681</size>
+ <position>503</position>
+ <strong>F93B88E7938D5BEB9D49F0CF465B691B5629B4AA2F7A2FCBBAB581D1AEB98B12</strong>
+ <weak>3480548783</weak>
+ <size>2655</size>
+ <position>23</position>
+ <strong>2639FD6D9DF983499ADC5E0B321B33B03E9378AF1B439E2999318D8DA7869CBB</strong>
+ <weak>3968343866</weak>
+ <size>96</size>
+ <position>2555</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/delc.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-205</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>216A4CA9AEF018D1438EC2BE1DB4D9746CED9EEBD9CBEB1584384485B2CCEA82</strong>
+ <weak>830575479</weak>
+ <size>2554</size>
+ <position>423</position>
+ <strong>3444BB2DA2A582573D02588283F9527770F1F8B95C0A00980874CB40BC3AB37E</strong>
+ <weak>1024756797</weak>
+ <size>2528</size>
+ <position>23</position>
+ <strong>F0B1A7075DA15B3B31E28510BA31C4BCABAB7FE492A9C10C23F83728FB79747F</strong>
+ <weak>1056978463</weak>
+ <size>179</size>
+ <position>2345</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/roty_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-96</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>2AB29F542B1FA69704A922479FC3D18E2CAB02E1A0EB90DA599F8A7559612783</strong>
+ <weak>274696942</weak>
+ <size>1456</size>
+ <position>451</position>
+ <strong>59612611DAF3A59AAF9BEEF5DC1ED910EB6E9546E73B796888046D13AD3E6AD7</strong>
+ <weak>2608366516</weak>
+ <size>1430</size>
+ <position>23</position>
+ <strong>7B317B04E2A9F17DAF5376143FC3DEB66D491A97B05C10FAA14A55FE5DE0C01F</strong>
+ <weak>3255790619</weak>
+ <size>1349</size>
+ <position>77</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/mat_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-83</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>74F0904F84D516ED25754208D6D9761809C18108A8E349F98D59D3190629EF85</strong>
+ <weak>1037181125</weak>
+ <size>1905</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/identity_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-35</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>BC596D4F66A933F5A61E834EF321126489C030B1C699F8CB9AB36E076D6C5787</strong>
+ <weak>2699013508</weak>
+ <size>604</size>
+ <position>403</position>
+ <strong>9180308AE279A9ECC810DA94F87EFCD6BC789CCF65A23B5DBB037CE5D24975CE</strong>
+ <weak>2753865290</weak>
+ <size>578</size>
+ <position>23</position>
+ <strong>E4262690A53EC3DDF8419E53AF9B86AA24272A55B0D55E0DDCDF7CE856A2FC9E</strong>
+ <weak>2553225736</weak>
+ <size>114</size>
+ <position>460</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-203</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>20B7DC43F995DAB3375F8D094846B6F66F11CD045F4D199B921126994F839F88</strong>
+ <weak>1117869535</weak>
+ <size>295</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/scalar_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-145</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>E5E3FD902762B543C705D74ECF264968B24D7BFD49291ECA67159F9E33112F8B</strong>
+ <weak>3837865377</weak>
+ <size>973</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_plus_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-95</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>5FFF22B7914C93C3E3097211BE8EAE4A069A3A486575AF4CCF3896C248CBAF8C</strong>
+ <weak>85983536</weak>
+ <size>882</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-54</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>777011A9C8EDBD1F7989F3A3872A9ED00A874708D0172BB8385A2BF9AB9E978D</strong>
+ <weak>756514373</weak>
+ <size>3098</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/mref.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-159</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>7BB4B890D2D5E241E168907BA7D029621688F5EC7D6FFBD9A6DB607AF8DD6E8E</strong>
+ <weak>74976497</weak>
+ <size>3298</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_access.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-84</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>63BD087395ADEDDB77AD2BD1EFFFCBBA466212D06EF6CF514EC7F4F296B84593</strong>
+ <weak>1920983672</weak>
+ <size>799</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_div_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-210</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>9DB2F0041171CDA1FC78FADE569C5DE1E4A214D61B35F44599E2888D90ADF794</strong>
+ <weak>289079545</weak>
+ <size>1700</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-59</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>44A4C34BF54234D71FCDF690447D2AA436DAB4DFCE73B75A83B60CE389AD4895</strong>
+ <weak>1305411323</weak>
+ <size>2681</size>
+ <position>503</position>
+ <strong>36889224D0664FF06B38951694C463C4578D703A34EBAD3117333FF46A838638</strong>
+ <weak>1668216769</weak>
+ <size>2655</size>
+ <position>23</position>
+ <strong>CE99528477EEC3A86CC3B5441D853A1D7AB1E730155490A5D8AA2D848553F597</strong>
+ <weak>29695925</weak>
+ <size>96</size>
+ <position>2555</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/delr.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-112</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>A74E91CC374C953AFCD6CA3D2948181350DEEC0C553623A276DD83BBD9F67596</strong>
+ <weak>3201103460</weak>
+ <size>830</size>
+ <position>374</position>
+ <strong>B48F939E65174E6702CA9FA7EF59625DB13849158578D2106179C0EA347A70FA</strong>
+ <weak>3354914602</weak>
+ <size>804</size>
+ <position>23</position>
+ <strong>75A168F6C2FB9B27E4062E2DCCEC4BC5D6FF406A6FCDD742BE28E74322D159BA</strong>
+ <weak>2870656540</weak>
+ <size>619</size>
+ <position>181</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-12</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>A7CABB58891C1902879731611FDC460C50919E3E7AC2BF47A0C03A282DB84597</strong>
+ <weak>2377204677</weak>
+ <size>266</size>
+ <position>389</position>
+ <strong>F656D0C8948A0532B65A8F1909D3D6BAC069BCF1A4A7A71D603B6C46E32E0E51</strong>
+ <weak>4080811147</weak>
+ <size>240</size>
+ <position>23</position>
+ <strong>8428A2C68167450C95A2E271132C1742F42488FDA646CCE8F71F73CBFB6C69C6</strong>
+ <weak>75380359</weak>
+ <size>213</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/error.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-31</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>0C49B6AEE621DE65DD6DFF33FE52F2E7CEC75CFDCD7479B68918C7265B2C979D</strong>
+ <weak>3310240237</weak>
+ <size>2479</size>
+ <position>372</position>
+ <strong>CB94061B6C4A9BA259DF55DDF8DB116A16568858D3209DE927C4E2BE3D5D6844</strong>
+ <weak>117979827</weak>
+ <size>2453</size>
+ <position>23</position>
+ <strong>CE2A7A2E5B83DB39E52C18ED86C7BE7AC022D4472E526C411B3DA74B642DD7C1</strong>
+ <weak>3152819375</weak>
+ <size>2426</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/sw.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>E56D89B73DAFA337D8D7F8DDE23436D308578EB48DD2F1CA3B1D673CDD875F9E</strong>
+ <weak>3131109789</weak>
+ <size>815</size>
+ <position>380</position>
+ <strong>11A15EAC85F1A7AEFB3667D6E0A3677F8CDEFC7B8868EC70E7B0A49D787B86A3</strong>
+ <weak>974842467</weak>
+ <size>789</size>
+ <position>23</position>
+ <strong>91890408BDEC72C866664C4930D9B43D13D8E4FCA3C53F824FD2DA27D0E3D1C5</strong>
+ <weak>3383604938</weak>
+ <size>598</size>
+ <position>187</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_minus_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-157</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>24B044F4DF6552C656EA25AAA97996798D07F2AE5F5E05F7D6B5AF0EFF7A89A0</strong>
+ <weak>2462110398</weak>
+ <size>742</size>
+ <position>375</position>
+ <strong>A18F56B4E55BFD5907171FBDE744048A5BC85989E3AAD1C3B6D263403A78765C</strong>
+ <weak>3284126358</weak>
+ <size>710</size>
+ <position>26</position>
+ <strong>37A0F1690761F72E9D409DD19C49FBD2D6EF8FA61C5963AF71F035601D807A10</strong>
+ <weak>383948896</weak>
+ <size>512</size>
+ <position>188</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_div_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>4848398A70848F0DC18F129A5140FC19F2927A0EA1543FCF3BFA71CFE2A9CAA0</strong>
+ <weak>2970784096</weak>
+ <size>4739</size>
+ <position>581</position>
+ <strong>8E85E4B5A3EE125CCFC9580BD06C2A99689ED461DC2C5CF25E597CB31E606734</strong>
+ <weak>1392282150</weak>
+ <size>4713</size>
+ <position>23</position>
+ <strong>2188B74B8385CE9DC9E7F6020016A4B0C74BB2AF343CCB7392A10E891325F6E6</strong>
+ <weak>549594977</weak>
+ <size>130</size>
+ <position>4579</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/trans_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-30</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>70E02CD14A1F15194DB038E7D98DE9900067BD9BCEA318307A63AFA89E9D34A1</strong>
+ <weak>25424456</weak>
+ <size>2617</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/row.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-119</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F4AB3C40DF9B945A8C6B87F111452B64AA8324C9597FC81BC0FD3962B4F415A2</strong>
+ <weak>467597092</weak>
+ <size>832</size>
+ <position>375</position>
+ <strong>728446999B6812DE6F024B35B20C88BA321BFD67B85047187EB80CDEA0C8BCB0</strong>
+ <weak>349171690</weak>
+ <size>806</size>
+ <position>23</position>
+ <strong>DF2B7346F8A7AA0C4975056B4947EB7AE49E2E9D6B3A9D0C4FA68AABA8D7B3C4</strong>
+ <weak>2082258542</weak>
+ <size>620</size>
+ <position>182</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_neq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-11</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>F9CBFE92967471750243B9659CE8614357930337548122A5EB65E39776E9B5A3</strong>
+ <weak>2356992371</weak>
+ <size>736</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_eq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-206</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>7EE6EE22A8A76DC7FC605C099986E1B383113E7F34D39DDAFA1B2CAD6902A5A4</strong>
+ <weak>3520012411</weak>
+ <size>88</size>
+ <position>356</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/zero_determinant_error.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>2</size>
+ <strong>9D5AF6D5211F4CEFD97E659BD0EC274DE3FCD8A86FB3A0C49170818F5FE7ACA6</strong>
+ <weak>3147830773</weak>
+ <size>83</size>
+ <position>286</position>
+ <strong>CB00FDDF2F39F82A33941362E06DEAA6AF71DB1B0E681A6044F9D0259E0A88D3</strong>
+ <weak>2011107878</weak>
+ <size>64</size>
+ <position>16</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>array_matrix_traits.cpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-131</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>1B51FF202CAE8A969D5602FED078D2C7C42AFE12289460DDA4BEF470682F19A7</strong>
+ <weak>4098831709</weak>
+ <size>1003</size>
+ <position>487</position>
+ <strong>AF6BE51C789BBBA879A7A0F8DA318AB45EC20F9D1695941B0745DDAED0B22315</strong>
+ <weak>2306682403</weak>
+ <size>977</size>
+ <position>23</position>
+ <strong>E6748D9A4097A52E0368E22254B51086B261A005FD6AB99EE695DA62D75F9519</strong>
+ <weak>2103573543</weak>
+ <size>790</size>
+ <position>183</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_plus_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-148</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>E1FAF08B3887257EA4DCE1E226E0E885B664D79D221AE844B37C016F0378F9A7</strong>
+ <weak>1072378562</weak>
+ <size>3002</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/all.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-16</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>1D161CDF7E82C3602B19A0A24620C664E0775F2F0AAEB30A0B079B4BA5CA4BA8</strong>
+ <weak>2129979880</weak>
+ <size>815</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_minus.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-111</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>43F64123A3A950446C36F33FB389533973BCE6B90FC3C267741F7F10AB4449A9</strong>
+ <weak>2308408373</weak>
+ <size>1357</size>
+ <position>371</position>
+ <strong>688B13FD49582B3AE105275BD9301A9A4B4E80F938B29972EA6A3CAB58C49FA0</strong>
+ <weak>3192618235</weak>
+ <size>1331</size>
+ <position>23</position>
+ <strong>BA3FF73AB41F3CBE9533DB109320216EAB62398468C6DC172BC99F0DAEF8B129</strong>
+ <weak>4079264013</weak>
+ <size>507</size>
+ <position>820</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_assign.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-118</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>FC320AB1F3DBEF493D9CBA30398FF4B4ACECB2D5CC9E7BD5E5ABD8B2DC08B7A9</strong>
+ <weak>1282454955</weak>
+ <size>2654</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/roty_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-219</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>AC91CDF11F482BEF1F528822FCD990B189539BBB79649929FD264B34B95964AA</strong>
+ <weak>556100064</weak>
+ <size>1226</size>
+ <position>417</position>
+ <strong>F81B9ACFAB10AF9B2D6758F810174D0CD2D30983EE56B6EEDE1FEF89AF027605</strong>
+ <weak>562324134</weak>
+ <size>1200</size>
+ <position>23</position>
+ <strong>6EE328D7AEECC9F9C46AB7D731863FF7EA3837A63F0664D18F99BDB4152DB125</strong>
+ <weak>3589812697</weak>
+ <size>1017</size>
+ <position>179</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-144</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>31299401963ADB6601F0924D75C60D36355E6F68D86D211D4262331FFCA49FAA</strong>
+ <weak>1828259971</weak>
+ <size>881</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-68</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>C5F2BE57DD52EC4F7A757C4B8B73ED01AF740F5D6F965644AFFBCE0DD63B8BAC</strong>
+ <weak>4026082727</weak>
+ <size>1065</size>
+ <position>371</position>
+ <strong>492B9A6EBC4C421B8C7E353733CBC55DBEA5BBEAC6E3C4320A106817DB191163</strong>
+ <weak>704192109</weak>
+ <size>1039</size>
+ <position>23</position>
+ <strong>529FF101E84330F81B6D2121170B9C17E86A9587838FF27FD28EC1F451ED49C2</strong>
+ <weak>674133778</weak>
+ <size>386</size>
+ <position>649</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_assign.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-156</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>8AD1F2B9725F5B71E616BEF01F3CC1652D5D2E05C11E2930E61E49BF71B430AF</strong>
+ <weak>2931179379</weak>
+ <size>1186</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vec_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-24</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>396980535FF036B9D99E87C6921AEB585F11BFB80E4F5FD320CF7C089A4B99B0</strong>
+ <weak>2827645994</weak>
+ <size>2981</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/diag_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-155</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>F6086067BCE191DC479BA7AACC2DA16727631A4AAACD2873F30176A37E885DB1</strong>
+ <weak>1395242514</weak>
+ <size>621</size>
+ <position>408</position>
+ <strong>91C63079B44100E5201B41809BF030FAB8132D4B974107365CC3BFC0D808B410</strong>
+ <weak>3284774616</weak>
+ <size>595</size>
+ <position>23</position>
+ <strong>21150DE980D7AB196500F34A295D593626EAD1C6DB0972059D48434F513872D1</strong>
+ <weak>767131638</weak>
+ <size>415</size>
+ <position>176</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_make.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-154</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>6DCC9DB7A91AA9D959AA8DB0C639F3B0247D6DD7944C95CAE9950A7A7EBBE3B2</strong>
+ <weak>1772019947</weak>
+ <size>2557</size>
+ <position>503</position>
+ <strong>0397CBE2435B975EC5BA4A527241645EB47D7579F6BE98252CEBB3286D17975F</strong>
+ <weak>730519985</weak>
+ <size>2531</size>
+ <position>23</position>
+ <strong>DF28BE3D67C17AF4969756981FF022CCBC1AB421485AB5DEB65CE92343025726</strong>
+ <weak>345318641</weak>
+ <size>124</size>
+ <position>2403</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/row_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-217</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>24A1CC3FF86A0F9E5E6BB196329AABEBF367B024A855069728963DF40C8D74B3</strong>
+ <weak>990215151</weak>
+ <size>1237</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_mul_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-47</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>3E485FC75F93202B3E443A73650630BD624143B682B7A530AFFF5A3E5BF27CB3</strong>
+ <weak>1422076569</weak>
+ <size>8431</size>
+ <position>540</position>
+ <strong>939305AC90C3AA4304CABBDAFFE596E4023404F895891FF21DE0A7629DD491DF</strong>
+ <weak>831333215</weak>
+ <size>8405</size>
+ <position>23</position>
+ <strong>F620A207B0FC552D17B212D22C85B5AE0BAC580A3CA98111224F10788F0B05BF</strong>
+ <weak>2740736819</weak>
+ <size>3398</size>
+ <position>5003</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/detail/swizzle_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>E07466C14A635A48B2CC2B49050E8D152A4639C450CE0C91B4187CAF00A78CB9</strong>
+ <weak>3074085578</weak>
+ <size>742</size>
+ <position>375</position>
+ <strong>0F22487AC119CAC6366BEF675AB4C4EB379283B0E28C054DB5778219046E6642</strong>
+ <weak>3890596514</weak>
+ <size>710</size>
+ <position>26</position>
+ <strong>118A9A1FFAF974B4999626C710FCA38CE42FA608F1C34B2AC58BDDFF1BDE7B6D</strong>
+ <weak>555194465</weak>
+ <size>512</size>
+ <position>188</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_mul_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-17</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>95747DCAEDD197036C643D8AC337A1D93F2D2C14AE15C99884AD9185EEA4E8B9</strong>
+ <weak>772345442</weak>
+ <size>40</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/swizzle.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-62</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>5063E1C790F8733DDCD80F8BB656048204F713FBCBEC4F73A679AA2D1EF078BA</strong>
+ <weak>329450763</weak>
+ <size>869</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_plus_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-33</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>6C309E655DC791D2C400E78AD47203534A5D3797FD7984C1A2D6A7804C318EBB</strong>
+ <weak>1381812004</weak>
+ <size>713</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_div_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-152</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>1744FA39AB5702022E2C4F941668C80CF09E153D459EF8BB36511D90AC4276BE</strong>
+ <weak>1482014554</weak>
+ <size>1498</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/deduce_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-209</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>7CACB43BAFCCD9E6A62450B27D26151A1BE92C8DDD09EC19604A5DE8653FBFBE</strong>
+ <weak>408193944</weak>
+ <size>1320</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-212</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>794FEB8DA9FC5024D2791463CDFC08336EE8E69BC4A3BF27785AC79E0A3CD0BE</strong>
+ <weak>1523112295</weak>
+ <size>768</size>
+ <position>370</position>
+ <strong>1A71D9EC313642ACFC728E2E1306CBAA524D4FE12C8860DA88BD06A54B6396E7</strong>
+ <weak>2770391359</weak>
+ <size>736</size>
+ <position>26</position>
+ <strong>4290F76ADD043BACCAF59E2D5086B3F8A5E8AC941EF57313C12B65690B9BA67D</strong>
+ <weak>3237584645</weak>
+ <size>537</size>
+ <position>189</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_minus.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-126</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>D4244E9EB02DE1CBF80D77B4B1B18A2044300287D9ABB015CEC315C8B97A9CBF</strong>
+ <weak>1696985289</weak>
+ <size>813</size>
+ <position>379</position>
+ <strong>5371BE1792871C0B89BB2149F828003CFAE6518592BCA9A2363B4611F202F099</strong>
+ <weak>4113164687</weak>
+ <size>787</size>
+ <position>23</position>
+ <strong>9A4AD52AAF8EC8A28E85611F20C07646673BD3806BC23E768E20474E384F512E</strong>
+ <weak>3956455006</weak>
+ <size>597</size>
+ <position>186</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_plus_eq_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-132</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>28D6DF662437AD2E118E6CE366393258B5C065C778EB38416AC6BE233AE8B7C0</strong>
+ <weak>2806167213</weak>
+ <size>2658</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/rotz_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-182</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>2</size>
+ <strong>228EB56F60C0881C7C06F86C9DB387AB098AE6901E6C567873B7330598DFCFC1</strong>
+ <weak>832967549</weak>
+ <size>79</size>
+ <position>286</position>
+ <strong>C02E4F7651567DD507223CA92D585322A7B8FA0978D562464D24FAAC9CCD0851</strong>
+ <weak>76353454</weak>
+ <size>60</size>
+ <position>16</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>array_vector_traits.cpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-56</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>987CD412DE7E9CCC2BE14E75FFB1B701C15DC2BEF3AE87D6026422E4A31A08C2</strong>
+ <weak>3919453988</weak>
+ <size>2609</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_scalar_cast.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-214</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>39ED2FED225BE74CC82CC49DAC30F11C890EEF771287D628E50AE6C34C6037C2</strong>
+ <weak>673958478</weak>
+ <size>1496</size>
+ <position>388</position>
+ <strong>27FF793B50273663EE7DAB79353554E6E907B1395BCDB4283B12CD6816B1356D</strong>
+ <weak>2906440468</weak>
+ <size>1470</size>
+ <position>23</position>
+ <strong>C39F8479823A5F48AD734ACAC998E842D6E00071066C3C55240ED7CFFA2B871A</strong>
+ <weak>2003870586</weak>
+ <size>535</size>
+ <position>931</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>tutorial.cpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-6</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>39ED2FED225BE74CC82CC49DAC30F11C890EEF771287D628E50AE6C34C6037C2</strong>
+ <weak>673958478</weak>
+ <size>1496</size>
+ <position>388</position>
+ <strong>27FF793B50273663EE7DAB79353554E6E907B1395BCDB4283B12CD6816B1356D</strong>
+ <weak>2906440468</weak>
+ <size>1470</size>
+ <position>23</position>
+ <strong>85A1D8631EAE179E2061005B5F1CFF6F286AC5DE695164BFA42FEA5611BC1ED8</strong>
+ <weak>1081969841</weak>
+ <size>452</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>tutorial.cpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-172</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>912D38F119351477FAC1066FA09133165B527D219A343326FEE35AA6C540BAC2</strong>
+ <weak>1987859037</weak>
+ <size>275</size>
+ <position>227</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/config.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-213</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>5B598A202C109D408970E39E3A347CF013989351E18D18A470CC9C3667DBF7C5</strong>
+ <weak>432785432</weak>
+ <size>687</size>
+ <position>375</position>
+ <strong>76F35376B147550D2506E370A9A112E8D454AC2E3FA63869077D2D7E4C811E29</strong>
+ <weak>2379858142</weak>
+ <size>661</size>
+ <position>23</position>
+ <strong>121328B9E26A3FCECB265A5DA34EC78F12956B0FFB2EA04A88FFAA0323C1960F</strong>
+ <weak>1309053268</weak>
+ <size>481</size>
+ <position>176</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_neq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-81</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>2FA18CDDAA15E1BFE4AAB35708504B60E719DD8CFCE8548E67703D0D89DF9CC7</strong>
+ <weak>1777657566</weak>
+ <size>3189</size>
+ <position>432</position>
+ <strong>3338BBE08EB9C0C4CD5FB7335A002EABF48EDD1E41CB5C46778C900F5E236CB3</strong>
+ <weak>1709694646</weak>
+ <size>3157</size>
+ <position>26</position>
+ <strong>EDDEC3820270A276A42F7014789234CCF377C9D1069D4D674EBDCA5ADEE2B15E</strong>
+ <weak>2968528714</weak>
+ <size>1687</size>
+ <position>1466</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_access.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>0437885581578106E33E6A0C69258A39C5BD8BFA5A0C007A66CF0143012B78CB</strong>
+ <weak>2655282344</weak>
+ <size>1169</size>
+ <position>665</position>
+ <strong>A24CAE8EA62CC2CC2A10140D24C76C2E4CF07DBB30D3EFC66026CDCC9298B4FE</strong>
+ <weak>746085742</weak>
+ <size>1143</size>
+ <position>23</position>
+ <strong>E212D21729BB5D7A7A1173A53FE56683CD7A4302BC88B7285773B1A1C1C90BBE</strong>
+ <weak>1282420508</weak>
+ <size>966</size>
+ <position>173</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_inverse.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>F45A6298E07660A730599E1DB062878DDB48966A07597470B9F6996329DC85CC</strong>
+ <weak>1881016409</weak>
+ <size>2708</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vref.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-109</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>0580D4996FC9B356FF15C03D4E8EDB02ECAE225019F4CAF7FE1B07F9167D89CC</strong>
+ <weak>4120306985</weak>
+ <size>794</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_div_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-108</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>C6BF47A09D3141C2895FAE6B4273DB878CB5EA4CE244FD6EC5DF6D02880378D0</strong>
+ <weak>3082684984</weak>
+ <size>2732</size>
+ <position>503</position>
+ <strong>3FBE607E0BA7AECBC5F36A8F61DBA5182764DD8B33E7DCF18D8D94BF2E98C886</strong>
+ <weak>1327694590</weak>
+ <size>2706</size>
+ <position>23</position>
+ <strong>7168883187BFEFE10C4B6D53374F82AF21E9A49103FAADD3913811F5AF2EE43A</strong>
+ <weak>572464332</weak>
+ <size>106</size>
+ <position>2596</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/diag.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-79</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>C3AC03BF5906F105E08E2702FEF8D87F205536DB1A6BF02B8158DE2A088EC7D0</strong>
+ <weak>1270688572</weak>
+ <size>121</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/zero_determinant_error.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-5</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>266988083405D56BE40F1955D05F8938DD3D988FB0CA59D513D4DEF76FB635D2</strong>
+ <weak>724585170</weak>
+ <size>261</size>
+ <position>357</position>
+ <strong>A9AA11764FD4015B4202C5D3400DAA435F73BBFF7991ADD17DAACCAEFBC82F8E</strong>
+ <weak>2509783960</weak>
+ <size>235</size>
+ <position>23</position>
+ <strong>380129AD88F66A49A1B4C1AE12ED586EE9A85D79C73EED8B6FDBC495DAEB95E2</strong>
+ <weak>2658090388</weak>
+ <size>208</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/scalar_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>6FEF75EEDAF1CA8369EEF1A4C25466A3514C021BCA5B6FB06D4909BC1098EAD6</strong>
+ <weak>2619328872</weak>
+ <size>696</size>
+ <position>413</position>
+ <strong>FD95FB074F50D46B4E294E7F95B6D36363CCAD5969FF1B95AC03A88C4D6EEF5A</strong>
+ <weak>3479749166</weak>
+ <size>670</size>
+ <position>23</position>
+ <strong>65EC2708086D4F62BEAD2784B37998B8F7C9975838B82FA46727AD813E8A0ACC</strong>
+ <weak>3628438300</weak>
+ <size>491</size>
+ <position>175</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_magnitude.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-215</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>A7D57F00FA156B2EE8D3EDEC8CAF10B8DA87FAB98D9AF9D6CA247B1D4AE8EDD7</strong>
+ <weak>809174245</weak>
+ <size>1821</size>
+ <position>500</position>
+ <strong>DFA6011FA99BF1DFCDBB1D47B024F7DB884C96F42D5F220224E0AC43B5DE1E1E</strong>
+ <weak>1704983979</weak>
+ <size>1795</size>
+ <position>23</position>
+ <strong>EC23483B584AC05B62AE30568EDBB58CDAF793BFB01491DB051981A86B5E2F60</strong>
+ <weak>3857334016</weak>
+ <size>205</size>
+ <position>1586</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/zero_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-183</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>E6D6423AEBD874FC365BC1D85235AD7C2C9175331E5E895B52BC8908CB4572D9</strong>
+ <weak>107475818</weak>
+ <size>809</size>
+ <position>487</position>
+ <strong>3B1B3C07FC273027991ED339F598425335C9F25EADC52507D6D605360EAD0206</strong>
+ <weak>2791042096</weak>
+ <size>783</size>
+ <position>23</position>
+ <strong>89D67BD3388A676FC353057FB446B890884DB1529F3FA366076CFD4E03063795</strong>
+ <weak>4125801510</weak>
+ <size>602</size>
+ <position>177</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_plus_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-72</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>3A351CA4C5F8845907DEB1706ED3C4BE9E76AF4BA1217EACF32BE161E85E3CDE</strong>
+ <weak>3483227652</weak>
+ <size>725</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_plus_eq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-194</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>0471BD16FF4830C973EE42FE1D01AFD0EF3B1D6B7EE5CE6E60563BEBB95CBEDF</strong>
+ <weak>3057189145</weak>
+ <size>882</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_div_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-190</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>636BB3CE896B251E6E807F49EF2CC28B14E85DB6E91EED03AD5BCE5AB1C9C2E7</strong>
+ <weak>441268064</weak>
+ <size>230</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vec.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-102</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>636BB3CE896B251E6E807F49EF2CC28B14E85DB6E91EED03AD5BCE5AB1C9C2E7</strong>
+ <weak>441268064</weak>
+ <size>230</size>
+ <position>323</position>
+ <strong>141C85D89C3F295A40ABE111877B3426452D0AE9214F2B8C9CE929629CB1102B</strong>
+ <weak>2675978278</weak>
+ <size>204</size>
+ <position>23</position>
+ <strong>3CCB5B1401C0C9BF5AA2B9869AFEC3D71454DC41477793243F6AE3F8C2BEC294</strong>
+ <weak>2951948834</weak>
+ <size>177</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vec.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>BEEB050376740D5D3CDE8F5DAE3898F6E9DCAF3CD14747ABF7DF3A8A809C53E8</strong>
+ <weak>3639104308</weak>
+ <size>2528</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/sw.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-55</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>BF1CA95D601462BB76FEF50BC40AC480665A8323E000C09DD52FFC7859BBF3E9</strong>
+ <weak>2751389851</weak>
+ <size>2557</size>
+ <position>503</position>
+ <strong>2369D9C7D88B8BF28AE2A2FA9E933B479BCBE7481137D2C8D2D0F1F16F8DA525</strong>
+ <weak>1730861409</weak>
+ <size>2531</size>
+ <position>23</position>
+ <strong>681B43A95C8000D2710613954882F7C0E473AE10E5585FE0E305EA64C3A07845</strong>
+ <weak>51455139</weak>
+ <size>124</size>
+ <position>2403</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/col_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-123</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>AC343DB8AE4D6D7C0A82466F7FE858DB409D9945DCB9232A8F9BDCB5CE0EBCEA</strong>
+ <weak>1798970369</weak>
+ <size>95</size>
+ <position>571</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/config.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-122</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>D70C48281978C3B51019E36F811283D499C21BF937A0A0CCC094C0A5377D7AEB</strong>
+ <weak>3651459745</weak>
+ <size>739</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_neq_vector.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-216</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>FDECAFD22EC0AE889FD505D84E321483227C21736067068015F241389588BFEC</strong>
+ <weak>3489655892</weak>
+ <size>4997</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/trans_matrix.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-42</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>929ADEE9B1B1FFA56D757E3A3DD23FEAAF3811C4C2C93BE07A44A1E0A66E52F1</strong>
+ <weak>3575898529</weak>
+ <size>793</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/matrix_mul_eq_scalar.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-211</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>7AC7B59B6D64AFEBEFA40EF80F1633E7CB471D0319BD91D41B6FA104F81C61F1</strong>
+ <weak>1842459597</weak>
+ <size>3092</size>
+ <position>286</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>interoperability.cpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-93</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>08AEEABDEBF16EE91423B4C301DDE070A3FAF0641CC7EC22D8940603685F04F7</strong>
+ <weak>1751470979</weak>
+ <size>291</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-164</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>08AEEABDEBF16EE91423B4C301DDE070A3FAF0641CC7EC22D8940603685F04F7</strong>
+ <weak>1751470979</weak>
+ <size>291</size>
+ <position>323</position>
+ <strong>04967A68687B8C0AF579B6D79773BBC091664756C465089AD8A15BCD96519592</strong>
+ <weak>3919793225</weak>
+ <size>265</size>
+ <position>23</position>
+ <strong>8E46E7AAD7063F31BDD7EF9913D0AA93A9B997A5161EB4A76A0A8190EFD43933</strong>
+ <weak>1743725876</weak>
+ <size>125</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>4</size>
+ <strong>08AEEABDEBF16EE91423B4C301DDE070A3FAF0641CC7EC22D8940603685F04F7</strong>
+ <weak>1751470979</weak>
+ <size>291</size>
+ <position>323</position>
+ <strong>04967A68687B8C0AF579B6D79773BBC091664756C465089AD8A15BCD96519592</strong>
+ <weak>3919793225</weak>
+ <size>265</size>
+ <position>23</position>
+ <strong>8E46E7AAD7063F31BDD7EF9913D0AA93A9B997A5161EB4A76A0A8190EFD43933</strong>
+ <weak>1743725876</weak>
+ <size>125</size>
+ <position>23</position>
+ <strong>790E0E6C507CD18E42A726B890F56EF26E4DD599E106DC02EA5D3CB23EA8A602</strong>
+ <weak>2517502439</weak>
+ <size>30</size>
+ <position>89</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>4</size>
+ <strong>08AEEABDEBF16EE91423B4C301DDE070A3FAF0641CC7EC22D8940603685F04F7</strong>
+ <weak>1751470979</weak>
+ <size>291</size>
+ <position>323</position>
+ <strong>04967A68687B8C0AF579B6D79773BBC091664756C465089AD8A15BCD96519592</strong>
+ <weak>3919793225</weak>
+ <size>265</size>
+ <position>23</position>
+ <strong>8E46E7AAD7063F31BDD7EF9913D0AA93A9B997A5161EB4A76A0A8190EFD43933</strong>
+ <weak>1743725876</weak>
+ <size>125</size>
+ <position>23</position>
+ <strong>CF584F3E03BD4F1B2EC62AE77E004F1BAD230EF6B3B328C0417AF2882400091E</strong>
+ <weak>2085423214</weak>
+ <size>28</size>
+ <position>61</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>08AEEABDEBF16EE91423B4C301DDE070A3FAF0641CC7EC22D8940603685F04F7</strong>
+ <weak>1751470979</weak>
+ <size>291</size>
+ <position>323</position>
+ <strong>04967A68687B8C0AF579B6D79773BBC091664756C465089AD8A15BCD96519592</strong>
+ <weak>3919793225</weak>
+ <size>265</size>
+ <position>23</position>
+ <strong>BF0CB759B7B9E6D096F7E0EEFD5C6E94D7278A09D9B630BD22EA3A763CD38371</strong>
+ <weak>1208033530</weak>
+ <size>111</size>
+ <position>150</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/vector_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>4CC47641894834A7F35960184C150219EBC544C8F8384F124C1677A6DDD106FB</strong>
+ <weak>518405045</weak>
+ <size>1996</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/array_matrix_traits.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-198</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>1</size>
+ <strong>3461ECC18C7CAACB58C0FA590FCAA908280182BD881D98E47F8DA72D51F263FD</strong>
+ <weak>227098531</weak>
+ <size>251</size>
+ <position>323</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/mat.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-127</id>
+ </shared_ptr>
+ </pair>
+ <pair>
+ <hook>
+ <stream_hook_path>
+ <container>
+ <size>3</size>
+ <strong>3461ECC18C7CAACB58C0FA590FCAA908280182BD881D98E47F8DA72D51F263FD</strong>
+ <weak>227098531</weak>
+ <size>251</size>
+ <position>323</position>
+ <strong>72AD752331C890FA32F72751D5505EA781AF1EA6226DC6481BCB3928D05E0CBE</strong>
+ <weak>3872340073</weak>
+ <size>225</size>
+ <position>23</position>
+ <strong>BAB294CA841124E270E4AE4E586E80AEFBD217E5D57DA80553E65F504FE3A660</strong>
+ <weak>1564291685</weak>
+ <size>198</size>
+ <position>23</position>
+ </container>
+ </stream_hook_path>
+ </hook>
+ <file>
+ <path>
+ <empty>0</empty>
+ <string>../../../../boost/la/mat.hpp</string>
+ <type>0</type>
+ <base>0</base>
+ </path>
+ </file>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </pair>
+ </sorted>
+ </index>
+ </object>
+ </shared_ptr>
+ </contexts>
+ <index>
+ <shared_ptr>
+ <id>227</id>
+ <type>
+ <string>tag_index</string>
+ </type>
+ <object>
+ <tag_index>
+ <sorted>
+ <size>128</size>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-7</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-11</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-12</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-13</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>exception</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-14</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-15</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-17</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-20</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>macro</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-21</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-23</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-27</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-28</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-30</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-31</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>exception</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-32</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-34</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-37</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-40</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-41</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-43</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>macro</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-45</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-46</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-48</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-49</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-50</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-51</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>constant</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-52</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-53</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-57</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-60</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-61</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-63</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-64</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-65</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-67</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-69</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-71</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>constant</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-72</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-73</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-74</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-75</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-77</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-78</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-79</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-81</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-83</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-85</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-86</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-87</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-88</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-92</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-93</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-96</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-97</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>macro</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-98</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-99</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>constant</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-101</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-103</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-104</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-106</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-107</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-110</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-112</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-113</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-115</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-116</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-117</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-118</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-120</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-121</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-122</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>macro</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-123</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-124</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-126</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-128</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-132</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-134</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-135</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-136</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-138</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-140</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-141</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-142</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-144</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-146</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-147</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-148</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-149</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-150</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-154</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-156</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-157</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-160</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-161</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-162</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-166</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-167</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-168</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-170</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-171</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-173</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>macro</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-175</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-176</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-178</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-179</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-180</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-183</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-185</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-186</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-187</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-188</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-191</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-192</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-193</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-197</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-199</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-200</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-201</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-202</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-203</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-204</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-205</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-207</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>type</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-208</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>category noalso noindex</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-213</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>macro</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-215</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>function</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-217</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>view</string>
+ </pair>
+ <pair>
+ <weak_ptr>
+ <expired>0</expired>
+ <shared_ptr>
+ <id>-218</id>
+ </shared_ptr>
+ </weak_ptr>
+ <string>noindex</string>
+ </pair>
+ </sorted>
+ </tag_index>
+ </object>
+ </shared_ptr>
+ </index>
+ </reno_project>
+ </object>
+</shared_ptr>
Added: sandbox/la/libs/la/doc/source/html_prefix.txt
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/source/html_prefix.txt 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>%s</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
Added: sandbox/la/libs/la/doc/source/html_prefix1.txt
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/source/html_prefix1.txt 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>%s</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div id="reverge_logo">
+<img style="border:0" src="reverge.png" alt="Reverge Logo" />
+</div>
+<h2>Boost LA</h2>
+<!-- Copyright (c) 2008-2009 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) -->
Added: sandbox/la/libs/la/doc/source/html_suffix.txt
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/source/html_suffix.txt 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,16 @@
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/source/html_suffix1.txt
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/source/html_suffix1.txt 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,13 @@
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/source/interoperability.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/source/interoperability.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,128 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/all.hpp>
+using namespace boost::la;
+
+namespace
+n1
+ {
+ struct user_matrix1 { float a[3][3]; };
+ struct user_matrix2 { float a[3][3]; };
+ }
+
+namespace
+n2
+ {
+ struct user_matrix1 { float a[3][3]; };
+ struct user_matrix2 { float a[3][3]; };
+ }
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <>
+ struct
+ matrix_traits<n1::user_matrix1>
+ {
+ typedef float scalar_type;
+ static int const rows=3;
+ static int const cols=3;
+
+ template <int R,int C>
+ static inline scalar_type & w( n1::user_matrix1 & m ) { return m.a[R][C]; }
+
+ template <int R,int C>
+ static inline scalar_type r( n1::user_matrix1 const & m ) { return m.a[R][C]; }
+
+ static inline scalar_type & iw( int r, int c, n1::user_matrix1 & m ) { return m.a[r][c]; }
+ static inline scalar_type ir( int r, int c, n1::user_matrix1 const & m ) { return m.a[r][c]; }
+ };
+
+ template <>
+ struct
+ matrix_traits<n1::user_matrix2>
+ {
+ typedef float scalar_type;
+ static int const rows=3;
+ static int const cols=3;
+
+ template <int R,int C>
+ static inline scalar_type & w( n1::user_matrix2 & m ) { return m.a[R][C]; }
+
+ template <int R,int C>
+ static inline scalar_type r( n1::user_matrix2 const & m ) { return m.a[R][C]; }
+
+ static inline scalar_type & iw( int r, int c, n1::user_matrix2 & m ) { return m.a[r][c]; }
+ static inline scalar_type ir( int r, int c, n1::user_matrix2 const & m ) { return m.a[r][c]; }
+ };
+
+ template <>
+ struct
+ matrix_traits<n2::user_matrix1>
+ {
+ typedef float scalar_type;
+ static int const rows=3;
+ static int const cols=3;
+
+ template <int R,int C>
+ static inline scalar_type & w( n2::user_matrix1 & m ) { return m.a[R][C]; }
+
+ template <int R,int C>
+ static inline scalar_type r( n2::user_matrix1 const & m ) { return m.a[R][C]; }
+
+ static inline scalar_type & iw( int r, int c, n2::user_matrix1 & m ) { return m.a[r][c]; }
+ static inline scalar_type ir( int r, int c, n2::user_matrix1 const & m ) { return m.a[r][c]; }
+ };
+
+ template <>
+ struct
+ matrix_traits<n2::user_matrix2>
+ {
+ typedef float scalar_type;
+ static int const rows=3;
+ static int const cols=3;
+
+ template <int R,int C>
+ static inline scalar_type & w( n2::user_matrix2 & m ) { return m.a[R][C]; }
+
+ template <int R,int C>
+ static inline scalar_type r( n2::user_matrix2 const & m ) { return m.a[R][C]; }
+
+ static inline scalar_type & iw( int r, int c, n2::user_matrix2 & m ) { return m.a[r][c]; }
+ static inline scalar_type ir( int r, int c, n2::user_matrix2 const & m ) { return m.a[r][c]; }
+ };
+
+ template <>
+ struct deduce_matrix2<n2::user_matrix1,n2::user_matrix2,3,3>
+ { typedef n2::user_matrix1 type; };
+
+ template <>
+ struct deduce_matrix2<n2::user_matrix2,n2::user_matrix1,3,3>
+ { typedef n2::user_matrix1 type; };
+ }
+ }
+
+void
+f()
+ {
+ {
+ n1::user_matrix1 m1;
+ n1::user_matrix2 m2;
+ n1::user_matrix1 m = m1 * m2;
+ }
+ {
+ n2::user_matrix1 m1;
+ n2::user_matrix2 m2;
+ n2::user_matrix1 m = m1 * m2;
+ }
+ {
+ float m[3][3];
+ (void) inverse(m);
+ }
+ }
Added: sandbox/la/libs/la/doc/source/tutorial.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/source/tutorial.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,122 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/all.hpp>
+using namespace boost::la;
+
+struct float3 { float a[3]; };
+struct float4 { float a[4]; };
+struct float33 { float a[3][3]; };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <>
+ struct
+ vector_traits<float3>
+ {
+ static int const dim=3;
+ typedef float scalar_type;
+
+ template <int I> static inline scalar_type & w( float3 & v ) { return v.a[I]; }
+ template <int I> static inline scalar_type r( float3 const & v ) { return v.a[I]; }
+
+ static inline scalar_type & iw( int i, float3 & v ) { return v.a[i]; }
+ static inline scalar_type ir( int i, float3 const & v ) { return v.a[i]; }
+ };
+
+ template <>
+ struct
+ vector_traits<float4>
+ {
+ static int const dim=4;
+ typedef float scalar_type;
+
+ template <int I> static inline scalar_type & w( float4 & v ) { return v.a[I]; }
+ template <int I> static inline scalar_type r( float4 const & v ) { return v.a[I]; }
+
+ static inline scalar_type & iw( int i, float4 & v ) { return v.a[i]; }
+ static inline scalar_type ir( int i, float4 const & v ) { return v.a[i]; }
+ };
+
+ template <>
+ struct
+ matrix_traits<float33>
+ {
+ typedef float scalar_type;
+ static int const rows=3;
+ static int const cols=3;
+
+ template <int R,int C>
+ static inline scalar_type & w( float33 & m ) { return m.a[R][C]; }
+
+ template <int R,int C>
+ static inline scalar_type r( float33 const & m ) { return m.a[R][C]; }
+
+ static inline scalar_type & iw( int r, int c, float33 & m ) { return m.a[r][c]; }
+ static inline scalar_type ir( int r, int c, float33 const & m ) { return m.a[r][c]; }
+ };
+ }
+ }
+
+void
+f()
+ {
+ {
+ float3 v;
+ v|X = 0;
+ v|Y = 0;
+ v|Z = 7;
+ float vmag = magnitude(v);
+ float33 m = rotx_matrix<3>(3.14159f);
+ float3 vrot = m * v;
+ }
+
+ {
+ float v[3] = {0,0,7};
+ float3 vrot = rotx_matrix<3>(3.14159f) * v;
+ }
+
+ {
+ float3 v = {0,0,7};
+ float3 vrot = (rotx_matrix<3>(3.14159f) | transpose) * v;
+ }
+
+ {
+ float3 v = {0,0,7};
+ v|YXZ = rotx_matrix<3>(3.14159f) * v;
+ }
+
+ {
+ float3 v = {0,0,7};
+ float4 point = v|XYZ1; //{0,0,7,1}
+ float4 vector = v|XYZ0; //{0,0,7,0}
+ }
+
+ {
+ float3 v = {0,0,7};
+ float4 v1 = v|ZZZZ; //{7,7,7,7}
+ }
+
+ {
+ float v[3] = {0,0,7};
+ vref(v) *= 42;
+ }
+
+ {
+ float3 v1, v2;
+ v1 = v2|sw<1,0,2>(); //swaps elements with index 0 and 1
+ v1 = v2|sw<_y_,_x_,_z_>(); //same as v2|YXZ;
+ }
+ }
+
+void
+multiply_column1( float33 & m, float scalar )
+ {
+ m|col<1>() *= scalar;
+ }
Added: sandbox/la/libs/la/doc/sw.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/sw.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>sw</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>sw</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/sw.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">struct _x_;
+ struct _y_;
+ struct _z_;
+ struct _w_;
+ struct _0_;
+ struct _1_;
+
+ template <int I1,int I2,...int IN>
+ -unspecified-return-type- <span class="RenoLink">sw</span>();
+
+ template <class A1,class A2,...class AN>
+ -unspecified-return-type- <span class="RenoLink">sw</span>();</span></span>
+ }
+ }</pre>
+</div></div><p>The expression v|<span class="RenoLink">sw</span><I1,I2...>, where I1, I2... are compile-time integer constants, returns a <span class="RenoLink">view proxy</span> that accesses the vector v as if the view's element 0 is the I1-th element of v, the view's element 1 is the I2-th element of v, and so on.</p>
+<p>The expression v|<span class="RenoLink">sw</span><A1,A2,...>, where A1, A2... are from the set [_x_,_y_,_z_,_w_,_0_,_1_], is similar except that v's elements are specified by name, such that _x_/_y_/_z_/_w_ refer to v's element with index 0/1/2/3. If _0_/_1_ is specified at some position, the value <span class="RenoLink">scalar_traits</span><>::zero()/<span class="RenoLink">scalar_traits</span><>::one() (depending on v's <span class="RenoLink">scalar_type</span>) is subsituted.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/sw.hpp | MSVC View Proxy Bug | Swizzling Support</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/swizzling_support.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/swizzling_support.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>swizzling support</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Swizzling Support</h3>
+</div>
+<p>For vectors, besides <span class="RenoLink">simple element access</span>, Boost LA supports arbitrary element swizzling for 2D, 3D and 4D vectors.</p>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/swizzle.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//2D <span class="RenoLink">view proxies</span>:
+ -unspecified-return-type- XX();
+ -unspecified-return-type- XY();
+ -unspecified-return-type- XZ();
+ -unspecified-return-type- XW();
+ -unspecified-return-type- X0();
+ -unspecified-return-type- X1();
+ -unspecified-return-type- YX();
+ -unspecified-return-type- YY();
+ -unspecified-return-type- YZ();
+ -unspecified-return-type- YW();
+ -unspecified-return-type- Y0();
+ -unspecified-return-type- Y1();
+ -unspecified-return-type- ZX();
+ -unspecified-return-type- ZY();
+ -unspecified-return-type- ZZ();
+ -unspecified-return-type- ZW();
+ -unspecified-return-type- Z0();
+ -unspecified-return-type- Z1();
+ -unspecified-return-type- WX();
+ -unspecified-return-type- WY();
+ -unspecified-return-type- WZ();
+ -unspecified-return-type- WW();
+ -unspecified-return-type- W0();
+ -unspecified-return-type- W1();
+
+ //3D <span class="RenoLink">view proxies</span>:
+ -unspecified-return-type- XXX();
+ ...
+ -unspecified-return-type- XXW();
+ -unspecified-return-type- XX0();
+ -unspecified-return-type- XX1();
+ -unspecified-return-type- XYX();
+ ...
+ -unspecified-return-type- XY1();
+ ...
+ -unspecified-return-type- WW1();
+
+ //4D <span class="RenoLink">view proxies</span>:
+ -unspecified-return-type- XXXX();
+ ...
+ -unspecified-return-type- XXXW();
+ -unspecified-return-type- XXX0();
+ -unspecified-return-type- XXX1();
+ -unspecified-return-type- XXYX();
+ ...
+ -unspecified-return-type- XXY1();
+ ...
+ -unspecified-return-type- WWW1();</span></span>
+ }
+ }</pre>
+</div></div><p>These functions can be used to create 2D, 3D, and 4D <span class="RenoLink">view proxies</span> to any vector object.</p>
+<p>The expression v|XX is equivalent to v|<span class="RenoLink">sw</span><_x_,_x_>, v|XY is equivalent to v|<span class="RenoLink">sw</span><_x_,_y_> and so on.</p>
+<p>Similarly, v|XXX is equivalent to v|<span class="RenoLink">sw</span><_x_,_x_,_x_>, v|XXY is equivalent to v|<span class="RenoLink">sw</span><_x_,_x_,_y_>, and so on.</p>
+<p>Finally, v|XXXX is equivalent to v|<span class="RenoLink">sw</span><_x_,_x_,_x_,_x_>, v|XXXY is equivalent to v|<span class="RenoLink">sw</span><_x_,_x_,_x_,_y_>, and so on.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/swizzle.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/trans_matrix.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/trans_matrix.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>trans_matrix</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>trans_matrix</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/trans_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">trans_matrix</span>();</span></span>
+ }
+ }</pre>
+</div></div><p>The expression v|<span class="RenoLink">trans_matrix</span> returns a <span class="RenoLink">view proxy</span> that accesses the vector v as translation matrix of size v's dimension plus one.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/trans_matrix.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/transpose.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/transpose.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>transpose</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>transpose</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/transpose.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">transpose</span>();</span></span>
+ }
+ }</pre>
+</div></div><p>The expression m|<span class="RenoLink">transpose</span> returns a <span class="RenoLink">view proxy</span> that transposes the matrix m.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/transpose.hpp | View Proxy</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/type_traits.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/type_traits.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>type traits</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Type Traits</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_traits.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_traits.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/scalar_traits.hpp</span></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Type traits ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T>
+ struct
+ <span class="RenoLink">is_matrix</span>
+ {
+ static bool const value=/*unspecified*/;
+ };</span>
+
+ <span class="RenoIncludeSPAN">template <class M>
+ struct
+ <span class="RenoLink">matrix_traits</span>
+ {
+ /*main template members unspecified*/
+ };
+
+ /*
+ User-defined (partial) specializations:
+
+ template <>
+ struct
+ <span class="RenoLink">matrix_traits</span>< Matrix >
+ {
+ <span class="RenoIncludeSPAN"> static int const <span class="RenoLink">rows</span> = /*user-defined*/;</span>
+ <span class="RenoIncludeSPAN"> static int const <span class="RenoLink">cols</span> = /*user-defined*/;</span>
+ <span class="RenoIncludeSPAN"> typedef /*user-defined*/ <span class="RenoLink">scalar_type</span>;</span>
+
+ <span class="RenoIncludeSPAN"> template <int R,int C> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">r</span>( Matrix const & m );</span>
+ <span class="RenoIncludeSPAN"> template <int R,int C> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">w</span>( Matrix & m );</span>
+
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">ir</span>( int r, int c, Matrix const & m );</span>
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">iw</span>( int r, int c, Matrix & m );</span>
+ };
+ */</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T>
+ struct
+ <span class="RenoLink">is_vector</span>
+ {
+ static bool const value=/*unspecified*/;
+ };</span>
+
+ <span class="RenoIncludeSPAN">template <class V>
+ struct
+ <span class="RenoLink">vector_traits</span>
+ {
+ /*main template members unspecified*/
+ };
+
+ /*
+ User-defined (partial) specializations:
+
+ template <>
+ struct
+ <span class="RenoLink">vector_traits</span>< Vector >
+ {
+ <span class="RenoIncludeSPAN"> static int const <span class="RenoLink">dim</span> = /*user-defined*/;</span>
+ <span class="RenoIncludeSPAN"> typedef /*user-defined*/ <span class="RenoLink">scalar_type</span>;</span>
+
+ <span class="RenoIncludeSPAN"> template <int I> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">r</span>( Vector const & v );</span>
+ <span class="RenoIncludeSPAN"> template <int I> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">w</span>( Vector & v );</span>
+
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">ir</span>( int i, Vector const & v );</span>
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">iw</span>( int i, Vector & v );</span>
+ };
+ */</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class Scalar>
+ struct
+ <span class="RenoLink">scalar_traits</span>
+ {
+ static Scalar zero() { return Scalar(0); }
+ static Scalar one() { return Scalar(1); }
+ };</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/unary_matrix_operations.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/unary_matrix_operations.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>unary matrix operations</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Unary Matrix Operations</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_minus.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_determinant.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_inverse.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Unary matrix operations ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">operator-</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value && <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>
+ template <class A>
+ <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span>
+ <span class="RenoLink">determinant</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_matrix</span><A>::value &&
+ // <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">rows</span>==<span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">cols</span>
+
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">inverse</span>( A const & a, <span class="RenoLink">matrix_traits</span><A>::<span class="RenoLink">scalar_type</span> det );
+
+ template <class A>
+ typename <span class="RenoLink">deduce_matrix</span><A>::type
+ <span class="RenoLink">inverse</span>( A const & a );</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/unary_vector_operations.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/unary_vector_operations.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,69 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>unary vector operations</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Unary Vector Operations</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_minus.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_magnitude.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_magnitude2.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** Unary vector operations ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">deduce_vector</span><A>::type
+ <span class="RenoLink">operator-</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span>
+ <span class="RenoLink">magnitude</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>:
+ // <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ typename <span class="RenoLink">vector_traits</span><A>::<span class="RenoLink">scalar_type</span>
+ <span class="RenoLink">magnitude2</span>( A const & a );</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/valid-css.png
==============================================================================
Binary file. No diff available.
Added: sandbox/la/libs/la/doc/valid-xhtml.png
==============================================================================
Binary file. No diff available.
Added: sandbox/la/libs/la/doc/vec.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/vec.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>vec</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>vec</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vec.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T,int Dim>
+ struct
+ <span class="RenoLink">vec</span>
+ {
+ T a[Dim];
+
+ template <class R>
+ operator R() const
+ {
+ R r;
+ <span class="RenoLink">assign</span>(r,*this);
+ return r;
+ }
+ };</span></span>
+ }
+ }</pre>
+</div></div><p>This is a simple vector type. It converts to any other vector type of compatible size.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vec.hpp | vector_traits<vec<T,Dim>></span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/vector_A.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/vector_A.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,70 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>vector/A</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>vector/A</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_access.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <int I>
+ -unspecified-return-type- <span class="RenoLink">A</span>();
+
+ -unspecified-return-type- A0();
+ -unspecified-return-type- A1();
+ ...
+ -unspecified-return-type- A9();
+
+ -unspecified-return-type- X();
+ -unspecified-return-type- Y();
+ -unspecified-return-type- Z();
+ -unspecified-return-type- W();</span></span>
+ }
+ }</pre>
+</div></div><p>An expression of the form of v|<span class="RenoLink">A</span><I> can be used to access the I-th element a vector object v. For example, the expression:</p>
+<pre>v|<span class="RenoLink">A</span><1> *= 42;</pre>
+<p>can be used to multiply the element at index 1 (indexing in Boost LA is always zero-based) of a vector v by 2.</p>
+<p>For convenience, there are also non-template overloads for I from 0 to 9; an alternative way to write the above expression is:</p>
+<pre>v|A1 *= 42;</pre>
+<p>The X, Y, Z and W functions act the same as A0/A1/A2/A3; yet another alternative way to write the above expression is:</p>
+<pre>v|Y *= 42;</pre>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vector_access.hpp | MSVC View Proxy Bug | Swizzling Support</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/vector_and_matrix_types.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/vector_and_matrix_types.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>vector and matrix types</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Vector and Matrix Types</h3>
+</div>
+<p>Boost LA does define generic yet simple <span class="RenoLink">vector</span> and <span class="RenoLink">matrix</span> types, however it has been specifically designed to work with <i>user-defined</i> vectors and matrices.</p>
+<p>A <i>user-defined</i> 3D vector type float3 can be introduced to Boost LA as follows:</p>
+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink">boost/la/vector_traits.hpp</span>>
+
+struct float3 { float a[3]; };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <>
+ struct
+ <span class="RenoLink">vector_traits</span><float3>
+ {
+ static int const <span class="RenoLink">dim</span>=3;
+ typedef float <span class="RenoLink">scalar_type</span>;
+
+ template <int I> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">w</span>( float3 & v ) { return v.a[I]; }
+ template <int I> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">r</span>( float3 const & v ) { return v.a[I]; }
+
+ static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">iw</span>( int i, float3 & v ) { return v.a[i]; }
+ static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">ir</span>( int i, float3 const & v ) { return v.a[i]; }
+ };
+ }
+ }</pre>
+</div><p>After a similar specialization of the <span class="RenoLink">matrix_traits</span> template for a <i>user-defined</i> 3x3 matrix type float33, a full range of vector and matrix operations defined in Boost LA headers become available automatically:</p>
+<pre>float3 v;
+v|<span class="RenoLink">X</span> = 0;
+v|<span class="RenoLink">Y</span> = 0;
+v|<span class="RenoLink">Z</span> = 7;
+float vmag = <span class="RenoLink">magnitude</span>(v);
+float33 m = <span class="RenoLink">rotx_matrix</span><3>(3.14159f);
+float3 vrot = m <span class="RenoLink">*</span> v;</pre>
+<h4>Note:</h4>
+<p>The use of operator| to access vector elements is perhaps surprising, however it is a logical part of a more general system of <span class="RenoLink">view proxies</span> in Boost LA. See <span class="RenoLink">operator| rationale</span>.</p>
+</div><div class="RenoIncludeDIV"><div class="RenoHR"><hr/></div>
+<p><b>Tutorial:</b> <span class="RenoLink">Vector and Matrix Types</span> | <span class="RenoLink">C Arrays</span> | <span class="RenoLink">Views</span> | <span class="RenoLink">Swizzling</span> | <span class="RenoLink">Interoperability</span> | Back to <span class="RenoLink">Boost LA</span></p>
+</div><!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/vector_traits.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/vector_traits.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>vector_traits</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>vector_traits</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_traits.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> template <class V>
+ struct
+ <span class="RenoLink">vector_traits</span>
+ {
+ /*main template members unspecified*/
+ };
+
+ /*
+ User-defined (partial) specializations:
+
+ template <>
+ struct
+ <span class="RenoLink">vector_traits</span>< Vector >
+ {
+ <span class="RenoIncludeSPAN"> static int const <span class="RenoLink">dim</span> = /*user-defined*/;</span>
+ <span class="RenoIncludeSPAN"> typedef /*user-defined*/ <span class="RenoLink">scalar_type</span>;</span>
+
+ <span class="RenoIncludeSPAN"> template <int I> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">r</span>( Vector const & v );</span>
+ <span class="RenoIncludeSPAN"> template <int I> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">w</span>( Vector & v );</span>
+
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">ir</span>( int i, Vector const & v );</span>
+ <span class="RenoIncludeSPAN"> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">iw</span>( int i, Vector & v );</span>
+ };
+ */</span>
+ }
+ }</pre>
+</div><p>The <span class="RenoLink">vector_traits</span> template must be specialized for (user-defined) vector types in order to enable vector and matrix operations defined in Boost LA headers for objects of those types.</p>
+<p><i>Note: vector types are not required to be copyable.</i></p>
+<p>The main <span class="RenoLink">vector_traits</span> template members are not specified. Valid specializations are required to define the following members:</p>
+<div><ul><li> <span class="RenoLink">dim</span>: the expression <span class="RenoLink">vector_traits</span><Vector>::<span class="RenoLink">dim</span> must evaluate to a compile-time integer constant greater than 0 that specifies the vector size.</li>
+<li> <span class="RenoLink">scalar_type</span>: the expression <span class="RenoLink">vector_traits</span><Vector>::<span class="RenoLink">scalar_type</span> must be a value type which satisfies the <span class="RenoLink">scalar requirements</span>.</li>
+</ul></div>
+<p>In addition, valid specializations of the <span class="RenoLink">vector_traits</span> template must define the following access functions as static members, where v is an object of type Vector, I is a compile-time integer constant, and i is a variable of type int:</p>
+<div><ul><li> <span class="RenoLink">r</span>: the expression <span class="RenoLink">vector_traits</span><Vector>::<span class="RenoLink">r</span><I>(v) returns either a copy or a const reference to the I-th element of v.</li>
+<li> <span class="RenoLink">w</span>: the expression <span class="RenoLink">vector_traits</span><Vector>::<span class="RenoLink">w</span><I>(v) returns mutable reference to the I-th element of v.</li>
+<li> <span class="RenoLink">ir</span>: the expression <span class="RenoLink">vector_traits</span><Vector>::<span class="RenoLink">ir</span>(i,v) returns either a copy or a const reference to the i-th element of v.</li>
+<li> <span class="RenoLink">iw</span>: the expression <span class="RenoLink">vector_traits</span><Vector>::<span class="RenoLink">iw</span>(i,v) returns mutable reference to the i-th element of v.</li>
+</ul></div>
+<p>It is illegal to call any of the above functions unless <span class="RenoLink">is_vector</span><Vector>::value is true. Even then, vector types are allowed to define only a subset of the access functions. The general requirements are:</p>
+<div><ul><li> if <span class="RenoLink">ir</span> is defined, <span class="RenoLink">r</span> must also be defined;</li>
+<li> if <span class="RenoLink">iw</span> is defined, <span class="RenoLink">w</span> must also be defined.</li>
+</ul></div>
+<p>In addition, every Boost LA function that takes vector type parameter(s) specifies whether it requires read-only, write-only or read-and-write access.</p>
+<p>Below is an example of a user-defined 3D vector type, and its corresponding specialization of the <span class="RenoLink">vector_traits</span> template:</p>
+<div class="RenoIncludeDIV"><pre>#include <<span class="RenoLink">boost/la/vector_traits.hpp</span>>
+
+struct float3 { float a[3]; };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <>
+ struct
+ <span class="RenoLink">vector_traits</span><float3>
+ {
+ static int const <span class="RenoLink">dim</span>=3;
+ typedef float <span class="RenoLink">scalar_type</span>;
+
+ template <int I> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">w</span>( float3 & v ) { return v.a[I]; }
+ template <int I> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">r</span>( float3 const & v ) { return v.a[I]; }
+
+ static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">iw</span>( int i, float3 & v ) { return v.a[i]; }
+ static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">ir</span>( int i, float3 const & v ) { return v.a[i]; }
+ };
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">assign(vector,vector) | Boost LA | boost/la/array_vector_traits.hpp | boost/la/vector_traits.hpp | cross | dot | is_vector | magnitude | magnitude2 | make(vector) | operator!=(vector,vector) | operator*(matrix,vector) | operator*(vector,matrix) | operator*(vector,scalar) | operator*=(vector,scalar) | <a href="operator_plus_vector
_vector_.html">operator+(vector,vector)</a> | operator+=(vector,vector) | operator-(vector,vector) | operator-=(vector,vector) | operator/(vector,scalar) | operator/=(vector,scalar) | operator==(vector,vector) | SFINAE | scalar | View Proxy | vector_traits<Vector>::dim | vector_traits<Vector>::ir | vector_traits<Vector>::iw | vector_traits<Vector>::r | <a href="vector_traits_Vector_
scalar_type.html">vector_traits<Vector>::scalar_type</a> | vector_traits<Vector>::w | vector_traits<vec<T,Dim>></span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/vector_traits_Vector_dim.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/vector_traits_Vector_dim.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>vector_traits<Vector>::dim</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>vector_traits<Vector>::dim</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>static int const <span class="RenoLink">dim</span> = /*user-defined*/;</pre>
+</div></div><p>This member of user-defined (partial) specializations of the <span class="RenoLink">vector_traits</span> template must be a compile-time integer constant greater than zero that defines the size (number of elements, or dimension) of a user-defined vector type.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">assign(vector,vector) | cross | deduce_vector | dot | make(vector) | operator!=(vector,vector) | operator*(matrix,vector) | operator*(vector,matrix) | operator+(vector,vector) | operator+=(vector,vector) | operator-(vector,vector) | operator-=(vector,vector) | operator==(vector,vector) | SFINAE | vector_traits</s
pan>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/vector_traits_Vector_ir.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/vector_traits_Vector_ir.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>vector_traits<Vector>::ir</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>vector_traits<Vector>::ir</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">ir</span>( int i, Vector const & v );</pre>
+</div></div><p>This function is expected to be static member of user-defined specializations of the <span class="RenoLink">vector_traits</span> template. It returns the i-th element of v, by value or by const reference.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">cross | dot | magnitude | magnitude2 | operator!=(vector,vector) | operator*(matrix,vector) | operator*(vector,matrix) | operator*(vector,scalar) | operator*=(vector,scalar) | operator+(vector,vector) | operator+=(vector,vector) | operator-(vector,vector) | operator-=(vector,vector) | operator/(vector,scalar) | <a hre
f="operator_div_eq_vector_scalar_.html">operator/=(vector,scalar)</a> | operator==(vector,vector) | vector_traits | vector_traits<vec<T,Dim>></span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/vector_traits_Vector_iw.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/vector_traits_Vector_iw.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>vector_traits<Vector>::iw</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>vector_traits<Vector>::iw</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">iw</span>( int i, Vector & v );</pre>
+</div></div><p>This function is expected to be static member of user-defined specializations of the <span class="RenoLink">vector_traits</span> template. It returns mutable reference to the i-th element of v.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">operator*(matrix,vector) | operator*(vector,matrix) | operator*(vector,scalar) | operator*=(vector,scalar) | operator+(vector,vector) | operator+=(vector,vector) | operator-(vector,vector) | operator-=(vector,vector) | operator/(vector,scalar) | operator/=(vector,scalar) | vector_traits | vector_traits<vec<T,Dim>></span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/vector_traits_Vector_r.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/vector_traits_Vector_r.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>vector_traits<Vector>::r</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>vector_traits<Vector>::r</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>template <int I> static inline <span class="RenoLink">scalar_type</span> <span class="RenoLink">r</span>( Vector const & v );</pre>
+</div></div><p>This function template is expected to be static member of user-defined specializations of the <span class="RenoLink">vector_traits</span> template. It returns the I-th element of v, by value or by const reference.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">assign(vector,vector) | make(vector) | vector_traits | vector_traits<vec<T,Dim>></span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/vector_traits_Vector_scalar_type.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/vector_traits_Vector_scalar_type.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>vector_traits<Vector>::scalar_type</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>vector_traits<Vector>::scalar_type</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>typedef /*user-defined*/ <span class="RenoLink">scalar_type</span>;</pre>
+</div></div><p>This is the member type that user-defined (partial) specializations of the <span class="RenoLink">vector_traits</span> template define to specify the scalar type of a vector type. Valid scalar types are value types that satisfy the <span class="RenoLink">scalar requirements</span>.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">deduce_vector | deduce_vector2 | magnitude | magnitude2 | matrix_traits<Matrix>::scalar_type | operator*(vector,scalar) | operator*=(vector,scalar) | operator/(vector,scalar) | operator/=(vector,scalar) | scalar | scalar_cast(vector) | sw | vector_traits | vector_traits<Vector>::ir | vector_traits<Vector>::iw
| vector_traits<Vector>::r | vector_traits<Vector>::w | zero_vector</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/vector_traits_Vector_w.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/vector_traits_Vector_w.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>vector_traits<Vector>::w</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>vector_traits<Vector>::w</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><pre>template <int I> static inline <span class="RenoLink">scalar_type</span> & <span class="RenoLink">w</span>( Vector & v );</pre>
+</div></div><p>This function template is expected to be static member of user-defined specializations of the <span class="RenoLink">vector_traits</span> template. It returns mutable reference to the I-th element of v.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">assign(vector,vector) | make(vector) | vector_traits | vector_traits<vec<T,Dim>></span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/vector_traits_vec_T_Dim_.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/vector_traits_vec_T_Dim_.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>vector_traits<vec<T,Dim>></title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>vector_traits<vec<T,Dim>></h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vec_traits.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/vec.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class Vector>
+ struct <span class="RenoLink">vector_traits</span>;
+
+ template <class T,int Dim>
+ struct
+ <span class="RenoLink">vector_traits</span>< <span class="RenoLink">vec</span><T,Dim> >
+ {
+ typedef T scalar_type;
+ static int const dim=Dim;
+
+ template <int I>
+ static
+ scalar_type
+ <span class="RenoLink">r</span>( <span class="RenoLink">vec</span><T,Dim> const & x )
+ {
+ return x.a[I];
+ }
+
+ template <int I>
+ static
+ scalar_type &
+ <span class="RenoLink">w</span>( <span class="RenoLink">vec</span><T,Dim> & x )
+ {
+ return x.a[I];
+ }
+
+ static
+ scalar_type
+ <span class="RenoLink">ir</span>( int i, <span class="RenoLink">vec</span><T,Dim> const & x )
+ {
+ return x.a[i];
+ }
+
+ static
+ scalar_type &
+ <span class="RenoLink">iw</span>( int i, <span class="RenoLink">vec</span><T,Dim> & x )
+ {
+ return x.a[i];
+ }
+ };</span></span>
+ }
+ }</pre>
+</div></div><p>This partial specialization of the <span class="RenoLink">vector_traits</span> template makes the <span class="RenoLink">vec</span> template compatible with the generic linear algebra algorithms defined by Boost LA.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vec_traits.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/view_proxies_of_matrix_type.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/view_proxies_of_matrix_type.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>view proxies of matrix type</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>View Proxies of Matrix Type</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/row_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/col_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/diag_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/trans_matrix.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_la_transpose_hpp
.html">boost/la/transpose.hpp</a></span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/delr.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/delc.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/delrc.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/matrix_scalar_cast.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a h
ref="boost_la_mref_hpp.html">boost/la/mref.hpp</a></span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** <span class="RenoLink">View proxies</span> of matrix type ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">row_matrix</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">col_matrix</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">diag_matrix</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">trans_matrix</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">transpose</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int R>
+ -unspecified-return-type- <span class="RenoLink">delr</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int C>
+ -unspecified-return-type- <span class="RenoLink">delc</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int R,int C>
+ -unspecified-return-type- <span class="RenoLink">delrc</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class Scalar,class A>
+ -unspecified-return_type- <span class="RenoLink">scalar_cast</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_matrix</span><A>::value
+ template <class A>
+ -unspecified-return-type- <span class="RenoLink">mref</span>( A & a );</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/view_proxies_of_vector_type.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/view_proxies_of_vector_type.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,68 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>view proxies of vector type</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>View Proxies of Vector Type</h3>
+</div>
+<div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/row.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/col.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/diag.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vector_scalar_cast.hpp</span>><span class="RenoBR"> </span><br/><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vref.hpp</span>
></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> //*** <span class="RenoLink">View proxies</span> of vector type ***
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int R>
+ -unspecified-return-type- <span class="RenoLink">row</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int C>
+ -unspecified-return-type- <span class="RenoLink">col</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink">diag</span>();</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class Scalar,class A>
+ -unspecified-return_type- <span class="RenoLink">scalar_cast</span>( A const & a );</span></span>
+
+ <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ -unspecified-return-type- <span class="RenoLink">vref</span>( A & a );</span></span></span>
+ }
+ }</pre>
+</div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">Boost LA | Synopsis</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/view_proxy.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/view_proxy.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,62 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>view proxy</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>View Proxies</h3>
+</div>
+<p>Boost LA defines some functions which take a reference to a vector/matrix object on the left, a tag (in the form of function pointer) on the right, and return an object of unspecified vector/matrix type for which the <span class="RenoLink">vector_traits</span>/<span class="RenoLink">matrix_traits</span> template is specialized to provide a different view to the original vector/matrix object.</p>
+<p>Usually, <span class="RenoLink">view proxies</span> are invoked using operator|. For example, given a vector v, the expression v|<span class="RenoLink">col_matrix</span> returns a <span class="RenoLink">view proxy</span> that makes v look and feel like a matrix-column. More complex views are created by simple composition, for example v|<span class="RenoLink">col_matrix</span>|<span class="RenoLink">transpose</span> is equivalent to v|<span class="RenoLink">row_matrix</span>.</p>
+<blockquote><p><i>Note: typically, the returned <span class="RenoLink">view proxies</span> are simply the original object reference reinterpret_casted to an internal non-copyable vector/matrix type. This technique avoids creating a temporary object.</i></p></blockquote>
+<p>Below is a list of all <span class="RenoLink">view proxies</span> supported by Boost LA:</p>
+<div class="RenoPageList">col<br/>
+col_matrix<br/>
+delc<br/>
+delr<br/>
+delrc<br/>
+diag<br/>
+diag_matrix<br/>
+matrix/A<br/>
+mref<br/>
+row<br/>
+row_matrix<br/>
+Swizzling Support<br/>
+scalar_cast(matrix)<br/>
+scalar_cast(vector)<br/>
+sw<br/>
+trans_matrix<br/>
+transpose<br/>
+vector/A<br/>
+vref</div>
+</div><!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/vref.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/vref.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>vref</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>vref</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/vref.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">//Only <span class="RenoLink">enabled if</span>: <span class="RenoLink">is_vector</span><A>::value
+ template <class A>
+ -unspecified-return-type- <span class="RenoLink">vref</span>( A & a );</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>An identity <span class="RenoLink">view proxy</span> of a; that is, it simply accesses the elements of a.</p>
+<p>This allows calling overloaded operators when a is of built-in type, for example a plain old C array.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/vref.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/zero_determinant_error.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/zero_determinant_error.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>zero_determinant_error</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>zero_determinant_error</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/zero_determinant_error.hpp</span>></p>
+<pre>#include <<span class="RenoLink">boost/la/error.hpp</span>>
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">struct <span class="RenoLink">zero_determinant_error</span>: virtual <span class="RenoLink">error</span> { };</span></span>
+ }
+ }</pre>
+</div></div><p>This exception indicates that an operation requires a matrix with non-zero determinant, but the computed determinant is zero.</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/zero_determinant_error.hpp | inverse</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/zero_matrix.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/zero_matrix.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>zero_matrix</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>zero_matrix</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/zero_matrix.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T,int R,int C>
+ -unspecified-return-type-
+ <span class="RenoLink">zero_matrix</span>();</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>A read-only matrix of unspecified type with <span class="RenoLink">scalar_type</span> T, R rows and C columns, with all elements equal to <span class="RenoLink">scalar_traits</span><T>::zero().</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/zero_matrix.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/doc/zero_vector.html
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/doc/zero_vector.html 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+ <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
+ <title>zero_vector</title>
+ <link href='reno.css' type='text/css' rel='stylesheet'/>
+</head>
+<body>
+<div class="body-0">
+<div class="body-1">
+<div class="body-2">
+<div>
+<div id="reverge_logo">
+
+</div>
+<h1>Boost LA</h1>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>zero_vector</h3>
+</div>
+<div class="RenoIncludeDIV"><div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink">boost/la/zero_vector.hpp</span>></p>
+<pre>namespace
+boost
+ {
+ namespace
+ la
+ {
+<span class="RenoIncludeSPAN"> <span class="RenoIncludeSPAN">template <class T,int S>
+ -unspecified-return-type-
+ <span class="RenoLink">zero_vector</span>();</span></span>
+ }
+ }</pre>
+</div></div><h4>Returns:</h4>
+<p>A read-only vector of unspecified type with <span class="RenoLink">scalar_type</span> T and size S, with all elements equal to <span class="RenoLink">scalar_traits</span><T>::zero().</p>
+</div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
+See also: <span class="RenoPageList">boost/la/zero_vector.hpp</span>
+</div>
+<!-- Copyright (c) 2008-2009 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) -->
+<div id="footer">
+<p>
+<a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a>
+<a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a>
+<small>Copyright (c) 2008-2009 by Emil Dotchevski and Reverge Studios, Inc.<br/>
+Distributed under the Boost Software License, Version 1.0.</small>
+</p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
Added: sandbox/la/libs/la/gen/Jamfile
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/gen/Jamfile 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,11 @@
+
+alias
+boost-headers
+ : # sources
+ : # requirements
+ : # default-build
+ : # usage-requirements
+ <include>$(boost-location)
+ ;
+
+run gen.cpp boost-headers : -od ../../../boost/la/custom ;
Added: sandbox/la/libs/la/gen/gen.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/gen/gen.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,1721 @@
+#include "boost/throw_exception.hpp"
+#include "boost/exception/info.hpp"
+#include "boost/bind.hpp"
+#include <string>
+#include <map>
+#include <vector>
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <algorithm>
+#include <limits>
+#include <assert.h>
+
+#define NL "\n"
+#define TAB " "
+#define TAB1 TAB
+#define TAB2 TAB TAB
+#define TAB3 TAB TAB TAB
+#define TAB4 TAB TAB TAB TAB
+#define NAMESPACE_BEGIN "namespace"NL"boost"NL TAB1"{"NL TAB"namespace"NL TAB1"la"NL TAB2"{"NL
+#define NAMESPACE_END TAB2"}"NL TAB1"}"NL
+#define INCLUDE_GUARD_END NL"#endif"NL
+#define INCLUDE_MATH\
+ "#include <boost/la/math.hpp>"NL
+#define INCLUDE_MATRIX_TRAITS\
+ "#include <boost/la/matrix_traits.hpp>"NL
+#define INCLUDE_VECTOR_TRAITS\
+ "#include <boost/la/vector_traits.hpp>"NL
+#define INCLUDE_QUATERNION_TRAITS\
+ "#include <boost/la/quaternion_traits.hpp>"NL
+#define INCLUDE_ENABLE_IF\
+ "#include <boost/utility/enable_if.hpp>"NL
+#define INCLUDE_STATIC_ASSERT\
+ "#include <boost/static_assert.hpp>"NL
+#define INCLUDE_DEDUCE_SCALAR\
+ "#include <boost/la/deduce_scalar.hpp>"NL
+#define INCLUDE_DEDUCE_VECTOR\
+ "#include <boost/la/deduce_vector.hpp>"NL
+#define INCLUDE_DEDUCE_MATRIX\
+ "#include <boost/la/deduce_matrix.hpp>"NL
+#define INCLUDE_SCALAR_TRAITS\
+ "#include <boost/la/scalar_traits.hpp>"NL
+#define INCLUDE_SWIZZLE_TRAITS\
+ "#include <boost/la/detail/swizzle_traits.hpp>"NL
+#define INCLUDE_ASSERT\
+ "#include <boost/assert.hpp>"NL
+#define FOOTER NAMESPACE_END INCLUDE_GUARD_END
+
+namespace
+ {
+ struct exception_base: virtual std::exception, virtual boost::exception { };
+ struct bad_command_line: virtual exception_base { };
+ typedef boost::error_info<struct cmd_arg_,std::string> cmd_arg;
+
+ struct
+ null_deleter
+ {
+ template <class T>
+ void
+ operator()( T * ) const
+ {
+ }
+ };
+
+ struct
+ include_guard_filter
+ {
+ void
+ operator()( char & x )
+ {
+ if( x>='a' && x<='z' )
+ x-='a'-'A';
+ if( x=='.' )
+ x='_';
+ }
+ };
+
+ template <class T>
+ std::ostream &
+ operator<<( boost::shared_ptr<std::ostream> const & out, T const & x )
+ {
+ return (*out)<<x;
+ }
+
+ template <class T>
+ std::string
+ to_string( T const & x )
+ {
+ std::ostringstream s;
+ s<<x;
+ return s.str();
+ }
+
+ struct
+ command_line_options
+ {
+ bool con;
+ std::string output_directory;
+ mutable std::map<std::string,std::vector<std::string> > gen;
+
+ command_line_options():
+ con(false)
+ {
+ }
+
+ boost::shared_ptr<std::ostream>
+ stream( std::string const & name, int m, int n=0, int p=0 ) const
+ {
+ assert(m>0);
+ assert(n>=0);
+ assert(p>=0);
+ std::string path=name;
+ path += '_';
+ path += to_string(m);
+ if( n )
+ {
+ path+='_';
+ path+=to_string(n);
+ }
+ if( p )
+ {
+ path+='_';
+ path+=to_string(p);
+ }
+ path += ".hpp";
+ std::vector<std::string> & generated_versions=gen[name];
+ assert( generated_versions.end()==std::find(generated_versions.begin(),generated_versions.end(),path) );
+ generated_versions.push_back(path);
+ return open(path);
+ }
+
+ void
+ out_gen_headers() const
+ {
+ std::for_each(gen.begin(),gen.end(),
+ boost::bind(&command_line_options::out_gen_header,this,_1));
+ }
+
+ void
+ out_gen_header( std::pair<std::string const,std::vector<std::string> > const & h ) const
+ {
+ boost::shared_ptr<std::ostream> s=open(h.first+".hpp");
+ std::for_each(h.second.begin(),h.second.end(),
+ boost::bind(out_include,s,_1));
+ s<<INCLUDE_GUARD_END;
+ }
+
+ static
+ void
+ out_include( boost::shared_ptr<std::ostream> const & s, std::string const & name )
+ {
+ s << "#include <boost/la/custom/"+name+">"NL;
+ }
+
+ boost::shared_ptr<std::ostream>
+ open( std::string const & name ) const
+ {
+ assert(!name.empty());
+ boost::shared_ptr<std::ostream> out;
+ if( con )
+ {
+ out=boost::shared_ptr<std::ostream>(&std::cout,null_deleter());
+ (*out) << "//*** " << name << " ***"NL NL;
+ }
+ else
+ {
+ std::string path;
+ if( !output_directory.empty() )
+ {
+ path+=output_directory;
+ path+='/';
+ path+=name;
+ }
+ out=boost::shared_ptr<std::ofstream>(new std::ofstream(path.c_str()));
+ std::cout << "Writing " << path << "..." << std::endl;
+ }
+ std::string include_guard_name="BOOST_LA_CUSTOM_";
+ include_guard_name+=name;
+ include_guard_name+="_INCLUDED"NL;
+ std::for_each(include_guard_name.begin(),include_guard_name.end(),include_guard_filter());
+ (*out) <<
+ "//Copyright (c) 2009 Emil Dotchevski and Reverge Studios, Inc."NL NL
+ "//Distributed under the Boost Software License, Version 1.0. (See accompanying"NL
+ "//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)"NL NL
+ "#ifndef " << include_guard_name <<
+ "#define " << include_guard_name <<
+ NL "//This file was generated by a program. Do not edit manually."NL NL
+ "#include <boost/la/config.hpp>"NL
+ ;
+ return out;
+ }
+ };
+
+ void
+ replace( std::string & s, char const * substr, char const * newstr )
+ {
+ assert(substr && *substr);
+ assert(newstr && *newstr);
+ std::string::size_type f=s.find(substr);
+ if( s.npos!=f )
+ s.replace(f,f+strlen(substr),newstr);
+ }
+
+ std::string
+ deduce_name( std::string const & fn, char const * left, char const * right )
+ {
+ assert(left!=0);
+ if( !right )
+ right=left;
+ std::string s=fn;
+ replace(s,"operator==","eq");
+ replace(s,"operator!=","neq");
+ replace(s,"operator+=","plus_eq");
+ replace(s,"operator-=","minus_eq");
+ replace(s,"operator*=","mul_eq");
+ replace(s,"operator/=","div_eq");
+ replace(s,"operator+","plus");
+ replace(s,"operator-","minus");
+ replace(s,"operator*","mul");
+ replace(s,"operator/","div");
+ std::string r=left;
+ if( !r.empty() )
+ r += '_';
+ r += s;
+ if( *right )
+ {
+ r += '_';
+ r += right;
+ }
+ return r;
+ }
+
+ void
+ header_mr_ma_mb_same_size( std::ostream & g, int r, int c, std::string const & name )
+ {
+ assert(r>0);
+ assert(c>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_DEDUCE_MATRIX
+ INCLUDE_ENABLE_IF
+ INCLUDE_STATIC_ASSERT
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A,class B>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename lazy_enable_if_c<"NL
+ TAB3"matrix_traits<A>::rows=="<<r<<" && matrix_traits<B>::rows=="<<r<<" &&"NL
+ TAB3"matrix_traits<A>::cols=="<<c<<" && matrix_traits<B>::cols=="<<c<<","NL
+ TAB3"deduce_matrix2<A,B,"<<r<<','<<c<<"> >::type"NL
+ TAB2<<name<<"( A const & a, B const & b )"NL
+ ;
+ }
+
+ void
+ header_mr_ma_mb_mult( std::ostream & g, int m, int n, int p, std::string const & name )
+ {
+ assert(m>0);
+ assert(n>0);
+ assert(p>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_DEDUCE_MATRIX
+ INCLUDE_ENABLE_IF
+ INCLUDE_STATIC_ASSERT
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A,class B>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename lazy_enable_if_c<"NL
+ TAB3"matrix_traits<A>::rows=="<<m<<" && matrix_traits<B>::rows=="<<n<<" &&"NL
+ TAB3"matrix_traits<A>::cols=="<<n<<" && matrix_traits<B>::cols=="<<p<<","NL
+ TAB3"deduce_matrix2<A,B,"<<m<<','<<p<<"> >::type"NL
+ TAB2<<name<<"( A const & a, B const & b )"NL
+ ;
+ }
+
+ void
+ header_vr_ma_vb_mult( std::ostream & g, int r, int c, std::string const & name )
+ {
+ assert(r>0);
+ assert(c>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_DEDUCE_VECTOR
+ INCLUDE_ENABLE_IF
+ INCLUDE_STATIC_ASSERT
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A,class B>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename lazy_enable_if_c<"NL
+ TAB3"matrix_traits<A>::rows=="<<r<<" && matrix_traits<A>::cols=="<<c<<" &&"NL
+ TAB3"vector_traits<B>::dim=="<<c<<","NL
+ TAB3"deduce_vector2<A,B,"<<c<<"> >::type"NL
+ TAB2<<name<<"( A const & a, B const & b )"NL
+ ;
+ }
+
+ void
+ header_vr_va_mb_mult( std::ostream & g, int r, int c, std::string const & name )
+ {
+ assert(r>0);
+ assert(c>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_DEDUCE_VECTOR
+ INCLUDE_ENABLE_IF
+ INCLUDE_STATIC_ASSERT
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A,class B>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename lazy_enable_if_c<"NL
+ TAB3"matrix_traits<B>::rows=="<<r<<" && matrix_traits<B>::cols=="<<c<<" &&"NL
+ TAB3"vector_traits<A>::dim=="<<c<<","NL
+ TAB3"deduce_vector2<A,B,"<<r<<"> >::type"NL
+ TAB2<<name<<"( A const & a, B const & b )"NL
+ ;
+ }
+
+ void
+ header_vr_va_vb_same_size( std::ostream & g, int d, std::string const & name )
+ {
+ assert(d>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_DEDUCE_VECTOR
+ INCLUDE_ENABLE_IF
+ INCLUDE_STATIC_ASSERT
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A,class B>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename lazy_enable_if_c<"NL
+ TAB3"vector_traits<A>::dim=="<<d<<" && vector_traits<B>::dim=="<<d<<","NL
+ TAB3"deduce_vector2<A,B,"<<d<<"> >::type"NL
+ TAB2<<name<<"( A const & a, B const & b )"NL
+ ;
+ }
+
+ void
+ header_bool_ma_mb_same_size( std::ostream & g, int r, int c, std::string const & name )
+ {
+ assert(r>0);
+ assert(c>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_MATRIX_TRAITS
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A,class B>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename enable_if_c<"NL
+ TAB3"matrix_traits<A>::rows=="<<r<<" && matrix_traits<B>::rows=="<<r<<" &&"NL
+ TAB3"matrix_traits<A>::cols=="<<c<<" && matrix_traits<B>::cols=="<<c<<","NL
+ TAB3"bool>::type"NL
+ TAB2<<name<<"( A const & a, B const & b )"NL
+ ;
+ }
+
+ void
+ header_bool_va_vb_same_size( std::ostream & g, int d, std::string const & name )
+ {
+ assert(d>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_VECTOR_TRAITS
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A,class B>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename enable_if_c<"NL
+ TAB3"vector_traits<A>::dim=="<<d<<" && vector_traits<B>::dim=="<<d<<","NL
+ TAB2"bool>::type"NL
+ TAB2<<name<<"( A const & a, B const & b )"NL
+ ;
+ }
+
+ void
+ header_ma_mb_same_size( std::ostream & g, int r, int c, std::string const & name )
+ {
+ assert(r>0);
+ assert(c>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_MATRIX_TRAITS
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A,class B>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename enable_if_c<"NL
+ TAB3"matrix_traits<A>::rows=="<<r<<" && matrix_traits<B>::rows=="<<r<<" &&"NL
+ TAB3"matrix_traits<A>::cols=="<<c<<" && matrix_traits<B>::cols=="<<c<<","NL
+ TAB3"A &>::type"NL
+ TAB2<<name<<"( A & a, B const & b )"NL
+ ;
+ }
+
+ void
+ header_va_vb_same_size( std::ostream & g, int d, std::string const & name )
+ {
+ assert(d>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_VECTOR_TRAITS
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A,class B>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename enable_if_c<"NL
+ TAB3"vector_traits<A>::dim=="<<d<<" && vector_traits<B>::dim=="<<d<<","NL
+ TAB3"A &>::type"NL
+ TAB2<<name<<"( A & a, B const & b )"NL
+ ;
+ }
+
+ void
+ header_sr_ma( std::ostream & g, int r, int c, std::string const & name )
+ {
+ assert(r>0);
+ assert(c>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_MATRIX_TRAITS
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename enable_if_c<"NL
+ TAB3"matrix_traits<A>::rows=="<<r<<" && matrix_traits<A>::cols=="<<c<<","NL
+ TAB3"typename matrix_traits<A>::scalar_type>::type"NL
+ TAB2<<name<<"( A const & a )"NL
+ ;
+ }
+
+ void
+ header_sr_va_vb( std::ostream & g, int d, std::string const & name )
+ {
+ assert(d>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_VECTOR_TRAITS
+ INCLUDE_DEDUCE_SCALAR
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A,class B>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename lazy_enable_if_c<"NL
+ TAB3"vector_traits<A>::dim=="<<d<<" && vector_traits<B>::dim=="<<d<<","NL
+ TAB3"deduce_scalar<typename vector_traits<A>::scalar_type,typename vector_traits<B>::scalar_type> >::type"NL
+ TAB2<<name<<"( A const & a, B const & b )"NL
+ ;
+ }
+
+ void
+ header_sr_va( std::ostream & g, int d, std::string const & name )
+ {
+ assert(d>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_VECTOR_TRAITS
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename enable_if_c<"NL
+ TAB3"is_vector<A>::value && vector_traits<A>::dim=="<<d<<","NL
+ TAB3"typename vector_traits<A>::scalar_type>::type"NL
+ TAB2<<name<<"( A const & a )"NL
+ ;
+ }
+
+ void
+ header_mr_ma( std::ostream & g, int r, int c, std::string const & name )
+ {
+ assert(r>0);
+ assert(c>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_DEDUCE_MATRIX
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename lazy_enable_if_c<"NL
+ TAB3"matrix_traits<A>::rows=="<<r<<" && matrix_traits<A>::cols=="<<c<<","NL
+ TAB3"deduce_matrix<A> >::type"NL
+ TAB2<<name<<"( A const & a )"NL
+ ;
+ }
+
+ void
+ header_ma_inverse( std::ostream & g, int d, std::string const & name )
+ {
+ assert(d>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_ENABLE_IF
+ INCLUDE_DEDUCE_MATRIX
+ INCLUDE_SCALAR_TRAITS
+ INCLUDE_ASSERT
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename lazy_enable_if_c<"NL
+ TAB3"matrix_traits<A>::rows=="<<d<<" && matrix_traits<A>::cols=="<<d<<","NL
+ TAB3"deduce_matrix<A> >::type"NL
+ TAB2<<name<<"( A const & a, typename matrix_traits<A>::scalar_type det )"NL
+ ;
+ }
+
+ void
+ header_vr_va( std::ostream & g, int d, std::string const & name )
+ {
+ assert(d>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_DEDUCE_VECTOR
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename lazy_enable_if_c<"NL
+ TAB3"vector_traits<A>::dim=="<<d<<","NL
+ TAB3"deduce_vector<A> >::type"NL
+ TAB2<<name<<"( A const & a )"NL
+ ;
+ }
+
+ void
+ header_mr_ma_same_size( std::ostream & g, int r, int c, std::string const & name )
+ {
+ assert(r>0);
+ assert(c>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_MATRIX_TRAITS
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class R,class A>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename enable_if_c<"NL
+ TAB3"matrix_traits<R>::rows=="<<r<<" && matrix_traits<A>::rows=="<<r<<" &&"NL
+ TAB3"matrix_traits<R>::cols=="<<c<<" && matrix_traits<A>::cols=="<<c<<","NL
+ TAB3"R>::type"NL
+ TAB2<<name<<"( A const & a )"NL
+ ;
+ }
+
+ void
+ header_vr_va_same_size( std::ostream & g, int d, std::string const & name )
+ {
+ assert(d>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_VECTOR_TRAITS
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class R,class A>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename enable_if_c<"NL
+ TAB3"is_vector<A>::value &&"NL
+ TAB3"vector_traits<R>::dim=="<<d<<" && vector_traits<A>::dim=="<<d<<","NL
+ TAB3"R>::type"NL
+ TAB2<<name<<"( A const & a )"NL
+ ;
+ }
+
+ void
+ header_mr( std::ostream & g, int r, int c, std::string const & name )
+ {
+ assert(r>0);
+ assert(c>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_MATRIX_TRAITS
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class R>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename enable_if_c<"NL
+ TAB3"is_matrix<R>::value,"NL
+ TAB3"R>::type"NL
+ TAB2<<name<<"()"NL
+ ;
+ }
+
+ void
+ header_vr( std::ostream & g, int d, std::string const & name )
+ {
+ assert(d>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_VECTOR_TRAITS
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class R>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename enable_if_c<"NL
+ TAB3"is_vector<R>::value,"NL
+ TAB3"R>::type"NL
+ TAB2<<name<<"()"NL
+ ;
+ }
+
+ void
+ header_mr_ma_sb( std::ostream & g, int r, int c, std::string const & name )
+ {
+ assert(r>0);
+ assert(c>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_DEDUCE_MATRIX
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename lazy_enable_if_c<"NL
+ TAB3"matrix_traits<A>::rows=="<<r<<" && matrix_traits<A>::cols=="<<c<<","NL
+ TAB3"deduce_matrix<A> >::type"NL
+ TAB2<<name<<"( A const & a, typename matrix_traits<A>::scalar_type b )"NL
+ ;
+ }
+
+ void
+ header_vr_va_sb( std::ostream & g, int d, std::string const & name )
+ {
+ assert(d>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_DEDUCE_VECTOR
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename lazy_enable_if_c<"NL
+ TAB3"vector_traits<A>::dim=="<<d<<","NL
+ TAB3"deduce_vector<A> >::type"NL
+ TAB2<<name<<"( A const & a, typename vector_traits<A>::scalar_type b )"NL
+ ;
+ }
+
+ void
+ header_ma_sb( std::ostream & g, int r, int c, std::string const & name )
+ {
+ assert(r>0);
+ assert(c>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_MATRIX_TRAITS
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename enable_if_c<"NL
+ TAB3"matrix_traits<A>::rows=="<<r<<" && matrix_traits<A>::cols=="<<c<<","NL
+ TAB3"A &>::type"NL
+ TAB2<<name<<"( A & a, typename matrix_traits<A>::scalar_type b )"NL
+ ;
+ }
+
+ void
+ header_va_sb( std::ostream & g, int d, std::string const & name )
+ {
+ assert(d>0);
+ assert(!name.empty());
+ g<<
+ INCLUDE_VECTOR_TRAITS
+ INCLUDE_ENABLE_IF
+ NL
+ NAMESPACE_BEGIN
+ TAB2"template <class A>"NL
+ TAB2"BOOST_LA_INLINE_OPERATIONS"NL
+ TAB2"typename enable_if_c<"NL
+ TAB3"vector_traits<A>::dim=="<<d<<","NL
+ TAB3"A &>::type"NL
+ TAB2<<name<<"( A & a, typename vector_traits<A>::scalar_type b )"NL
+ ;
+ }
+
+ void
+ defined( std::ostream & g, int m, int n, int p, std::string const & dn )
+ {
+ assert(m>0);
+ assert(n>0);
+ assert(p>0);
+ assert(!dn.empty());
+ std::string name=dn+"_defined";
+ g<<
+ NL
+ TAB2"namespace"NL
+ TAB2"la_detail"NL
+ TAB3"{"NL
+ TAB3"template <int M,int N,int P>"NL
+ TAB3"struct "<<name<<";"NL
+ NL
+ TAB3"template <>"NL
+ TAB3"struct"NL
+ TAB3<<name<<'<'<<m<<','<<n<<','<<p<<">"NL
+ TAB4"{"NL
+ TAB4"static bool const value=true;"NL
+ TAB4"};"NL
+ TAB3"}"NL
+ ;
+ }
+
+ void
+ defined( std::ostream & g, int r, int c, std::string const & dn )
+ {
+ assert(r>0);
+ assert(c>0);
+ assert(!dn.empty());
+ std::string name=dn+"_defined";
+ g<<
+ NL
+ TAB2"namespace"NL
+ TAB2"la_detail"NL
+ TAB3"{"NL
+ TAB3"template <int M,int N>"NL
+ TAB3"struct "<<name<<";"NL
+ NL
+ TAB3"template <>"NL
+ TAB3"struct"NL
+ TAB3<<name<<"<"<<r<<","<<c<<">"NL
+ TAB4"{"NL
+ TAB4"static bool const value=true;"NL
+ TAB4"};"NL
+ TAB3"}"NL
+ ;
+ }
+
+ void
+ defined( std::ostream & g, int d, std::string const & dn )
+ {
+ assert(d>0);
+ assert(!dn.empty());
+ std::string name=dn+"_defined";
+ g<<
+ NL
+ TAB2"namespace"NL
+ TAB2"la_detail"NL
+ TAB3"{"NL
+ TAB3"template <int D>"NL
+ TAB3"struct "<<name<<";"NL
+ NL
+ TAB3"template <>"NL
+ TAB3"struct"NL
+ TAB3<<name<<"<"<<d<<">"NL
+ TAB4"{"NL
+ TAB4"static bool const value=true;"NL
+ TAB4"};"NL
+ TAB3"}"NL
+ ;
+ }
+
+ void
+ mr_mult_ma_mb( command_line_options const & opt, int m, int n, int p )
+ {
+ assert(m>0);
+ assert(n>0);
+ assert(p>0);
+ std::string dn=deduce_name("operator*","matrix",0);
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,m,n,p);
+ header_mr_ma_mb_mult(*g,m,n,p,"operator*");
+ g<<
+ TAB3"{"NL
+ TAB3"typedef typename matrix_traits<A>::scalar_type Ta;"NL
+ TAB3"typedef typename matrix_traits<B>::scalar_type Tb;"NL
+ ;
+ for( int i=0; i!=m; ++i )
+ for( int j=0; j!=n; ++j )
+ g<<TAB3"Ta const a"<<i<<j<<" = matrix_traits<A>::template r<"<<i<<','<<j<<">(a);"NL;
+ for( int i=0; i!=n; ++i )
+ for( int j=0; j!=p; ++j )
+ g<<TAB3"Tb const b"<<i<<j<<" = matrix_traits<B>::template r<"<<i<<','<<j<<">(b);"NL;
+ g<<
+ TAB3"typedef typename deduce_matrix2<A,B,"<<m<<','<<p<<">::type R;"NL
+ TAB3"BOOST_STATIC_ASSERT(matrix_traits<R>::rows=="<<m<<");"NL
+ TAB3"BOOST_STATIC_ASSERT(matrix_traits<R>::cols=="<<p<<");"NL
+ TAB3"R r;"NL
+ ;
+ for( int i=0; i!=m; ++i )
+ for( int j=0; j!=p; ++j )
+ {
+ g<<TAB3"matrix_traits<R>::template w<"<<i<<","<<j<<">(r)=";
+ for( int k=0; k!=n; ++k )
+ {
+ if( k )
+ g<<'+';
+ g<<'a'<<i<<k<<"*b"<<k<<j;
+ }
+ g<<";"NL;
+ }
+ g<<
+ TAB3"return r;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,m,n,p,dn);
+ g<<FOOTER;
+ }
+
+ void
+ ma_mult_ma_mb( command_line_options const & opt, int d )
+ {
+ assert(d>0);
+ std::string dn=deduce_name("operator*=","matrix",0);
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,d);
+ header_ma_mb_same_size(*g,d,d,"operator*=");
+ g<<
+ TAB3"{"NL
+ TAB3"typedef typename matrix_traits<A>::scalar_type Ta;"NL
+ TAB3"typedef typename matrix_traits<B>::scalar_type Tb;"NL
+ ;
+ for( int i=0; i!=d; ++i )
+ for( int j=0; j!=d; ++j )
+ g<<TAB3"Ta const a"<<i<<j<<" = matrix_traits<A>::template r<"<<i<<','<<j<<">(a);"NL;
+ for( int i=0; i!=d; ++i )
+ for( int j=0; j!=d; ++j )
+ g<<TAB3"Tb const b"<<i<<j<<" = matrix_traits<B>::template r<"<<i<<','<<j<<">(b);"NL;
+ for( int i=0; i!=d; ++i )
+ for( int j=0; j!=d; ++j )
+ {
+ g<<TAB3"matrix_traits<A>::template w<"<<i<<","<<j<<">(a)=";
+ for( int k=0; k!=d; ++k )
+ {
+ if( k )
+ g<<'+';
+ g<<'a'<<i<<k<<"*b"<<k<<j;
+ }
+ g<<";"NL;
+ }
+ g<<
+ TAB3"return a;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,d,dn);
+ g<<FOOTER;
+ }
+
+ void
+ vr_mult_ma_vb( command_line_options const & opt, int r, int c )
+ {
+ assert(r>0);
+ assert(c>0);
+ std::string dn=deduce_name("operator*","matrix","vector");
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,r,c);
+ header_vr_ma_vb_mult(*g,r,c,"operator*");
+ g<<
+ TAB3"{"NL
+ TAB3"typedef typename matrix_traits<A>::scalar_type Ta;"NL
+ TAB3"typedef typename vector_traits<B>::scalar_type Tb;"NL
+ ;
+ for( int i=0; i!=r; ++i )
+ for( int j=0; j!=c; ++j )
+ g<<TAB3"Ta const a"<<i<<j<<" = matrix_traits<A>::template r<"<<i<<','<<j<<">(a);"NL;
+ for( int i=0; i!=c; ++i )
+ g<<TAB3"Tb const b"<<i<<" = vector_traits<B>::template r<"<<i<<">(b);"NL;
+ g<<
+ TAB3"typedef typename deduce_vector2<A,B,"<<c<<">::type R;"NL
+ TAB3"BOOST_STATIC_ASSERT(vector_traits<R>::dim=="<<c<<");"NL
+ TAB3"R r;"NL
+ ;
+ for( int i=0; i!=r; ++i )
+ {
+ g<<TAB3"vector_traits<R>::template w<"<<i<<">(r)=";
+ for( int j=0; j!=c; ++j )
+ {
+ if( j )
+ g<<'+';
+ g<<'a'<<i<<j<<"*b"<<j;
+ }
+ g<<";"NL;
+ }
+ g<<
+ TAB3"return r;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,r,c,dn);
+ g<<FOOTER;
+ }
+
+ void
+ vr_mult_va_mb( command_line_options const & opt, int r, int c )
+ {
+ assert(r>0);
+ assert(c>0);
+ std::string dn=deduce_name("operator*","vector","matrix");
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,r,c);
+ header_vr_va_mb_mult(*g,r,c,"operator*");
+ g<<
+ TAB3"{"NL
+ TAB3"typedef typename vector_traits<A>::scalar_type Ta;"NL
+ TAB3"typedef typename matrix_traits<B>::scalar_type Tb;"NL
+ ;
+ for( int i=0; i!=r; ++i )
+ g<<TAB3"Ta const a"<<i<<" = vector_traits<A>::template r<"<<i<<">(a);"NL;
+ for( int i=0; i!=r; ++i )
+ for( int j=0; j!=c; ++j )
+ g<<TAB3"Tb const b"<<i<<j<<" = matrix_traits<B>::template r<"<<i<<','<<j<<">(b);"NL;
+ g<<
+ TAB3"typedef typename deduce_vector2<A,B,"<<r<<">::type R;"NL
+ TAB3"BOOST_STATIC_ASSERT(vector_traits<R>::dim=="<<r<<");"NL
+ TAB3"R r;"NL
+ ;
+ for( int i=0; i!=c; ++i )
+ {
+ g<<TAB3"vector_traits<R>::template w<"<<i<<">(r)=";
+ for( int j=0; j!=r; ++j )
+ {
+ if( j )
+ g<<'+';
+ g<<'a'<<j<<"*b"<<j<<i;
+ }
+ g<<";"NL;
+ }
+ g<<
+ TAB3"return r;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,r,c,dn);
+ g<<FOOTER;
+ }
+
+ void
+ vr_op_va_vb_same_size( command_line_options const & opt, int d, std::string const & fn, std::string const & op )
+ {
+ assert(!op.empty());
+ std::string dn=deduce_name(fn,"vector",0);
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,d);
+ header_vr_va_vb_same_size(*g,d,fn);
+ g<<
+ TAB3"{"NL
+ TAB3"typedef typename deduce_vector2<A,B,"<<d<<">::type R;"NL
+ TAB3"BOOST_STATIC_ASSERT(vector_traits<R>::dim=="<<d<<");"NL
+ TAB3"R r;"NL
+ ;
+ for( int i=0; i!=d; ++i )
+ g<<TAB3"vector_traits<R>::template w<"<<i<<">(r)=vector_traits<A>::template r<"<<i<<">(a)"<<op<<"vector_traits<B>::template r<"<<i<<">(b);"NL;
+ g<<
+ TAB3"return r;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,d,dn);
+ g<<FOOTER;
+ }
+
+ void
+ bool_eq_ma_mb( command_line_options const & opt, int r, int c )
+ {
+ std::string dn=deduce_name("operator==","matrix",0);
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,r,c);
+ header_bool_ma_mb_same_size(*g,r,c,"operator==");
+ g<<
+ TAB3"{"NL
+ TAB3"return"NL
+ ;
+ for( int i=0; i!=r; ++i )
+ for( int j=0; j!=c; ++j )
+ g<<
+ TAB4"matrix_traits<A>::template r<"<<i<<','<<j<<">(a)==matrix_traits<B>::template r<"<<i<<','<<j<<">(b)"<<(i!=r-1||j!=c-1?" &&":";")<<NL;
+ ;
+ g<<
+ TAB3"}"NL
+ ;
+ defined(*g,r,c,dn);
+ g<<FOOTER;
+ }
+
+ void
+ bool_eq_va_vb( command_line_options const & opt, int d )
+ {
+ std::string dn=deduce_name("operator==","vector",0);
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,d);
+ header_bool_va_vb_same_size(*g,d,"operator==");
+ g<<
+ TAB3"{"NL
+ TAB3"return"NL
+ ;
+ for( int i=0; i!=d; ++i )
+ g<<
+ TAB4"vector_traits<A>::template r<"<<i<<">(a)==vector_traits<B>::template r<"<<i<<">(b)"<<(i!=d-1?" &&":";")<<NL;
+ ;
+ g<<
+ TAB3"}"NL
+ ;
+ defined(*g,d,dn);
+ g<<FOOTER;
+ }
+
+ void
+ bool_neq_ma_mb( command_line_options const & opt, int r, int c )
+ {
+ std::string dn=deduce_name("operator!=","matrix",0);
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,r,c);
+ header_bool_ma_mb_same_size(*g,r,c,"operator!=");
+ g<<
+ TAB3"{"NL
+ TAB3"return"NL
+ ;
+ for( int i=0; i!=r; ++i )
+ for( int j=0; j!=c; ++j )
+ g<<
+ TAB4"!(matrix_traits<A>::template r<"<<i<<','<<j<<">(a)==matrix_traits<B>::template r<"<<i<<','<<j<<">(b))"<<(i!=r-1||j!=c-1?" ||":";")<<NL;
+ ;
+ g<<
+ TAB3"}"NL
+ ;
+ defined(*g,r,c,dn);
+ g<<FOOTER;
+ }
+
+ void
+ bool_neq_va_vb( command_line_options const & opt, int d )
+ {
+ std::string dn=deduce_name("operator!=","vector",0);
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,d);
+ header_bool_va_vb_same_size(*g,d,"operator!=");
+ g<<
+ TAB3"{"NL
+ TAB3"return"NL
+ ;
+ for( int i=0; i!=d; ++i )
+ g<<
+ TAB4"!(vector_traits<A>::template r<"<<i<<">(a)==vector_traits<B>::template r<"<<i<<">(b))"<<(i!=d-1?" ||":";")<<NL;
+ ;
+ g<<
+ TAB3"}"NL
+ ;
+ defined(*g,d,dn);
+ g<<FOOTER;
+ }
+
+ void
+ mr_op_ma_mb_same_size( command_line_options const & opt, int r, int c, std::string const & fn, std::string const & op )
+ {
+ assert(r>0);
+ assert(c>0);
+ assert(!op.empty());
+ std::string dn=deduce_name(fn,"matrix",0);
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,r,c);
+ header_mr_ma_mb_same_size(*g,r,c,fn);
+ g<<
+ TAB3"{"NL
+ TAB3"typedef typename deduce_matrix2<A,B,"<<r<<','<<c<<">::type R;"NL
+ TAB3"BOOST_STATIC_ASSERT(matrix_traits<R>::rows=="<<r<<");"NL
+ TAB3"BOOST_STATIC_ASSERT(matrix_traits<R>::cols=="<<c<<");"NL
+ TAB3"R r;"NL
+ ;
+ for( int i=0; i!=r; ++i )
+ for( int j=0; j!=c; ++j )
+ g<<TAB3"matrix_traits<R>::template w<"<<i<<","<<j<<">(r)=matrix_traits<A>::template r<"<<i<<","<<j<<">(a)"<<op<<"matrix_traits<B>::template r<"<<i<<","<<j<<">(b);"NL;
+ g<<
+ TAB3"return r;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,r,c,dn);
+ g<<FOOTER;
+ }
+
+ void
+ ma_op_ma_mb_same_size( command_line_options const & opt, int r, int c, std::string const & fn, std::string const & op )
+ {
+ assert(!op.empty());
+ std::string dn=deduce_name(fn,"matrix",0);
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,r,c);
+ header_ma_mb_same_size(*g,r,c,fn);
+ g<<TAB3"{"NL;
+ for( int i=0; i!=r; ++i )
+ for( int j=0; j!=c; ++j )
+ g<<TAB3"matrix_traits<A>::template w<"<<i<<","<<j<<">(a)"<<op<<"matrix_traits<B>::template r<"<<i<<","<<j<<">(b);"NL;
+ g<<
+ TAB3"return a;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,r,c,dn);
+ g<<FOOTER;
+ }
+
+ void
+ va_op_va_vb_same_size( command_line_options const & opt, int d, std::string const & fn, std::string const & op )
+ {
+ assert(!op.empty());
+ std::string dn=deduce_name(fn,"vector",0);
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,d);
+ header_va_vb_same_size(*g,d,fn);
+ g<<TAB3"{"NL;
+ for( int i=0; i!=d; ++i )
+ g<<TAB3"vector_traits<A>::template w<"<<i<<">(a)"<<op<<"vector_traits<B>::template r<"<<i<<">(b);"NL;
+ g<<
+ TAB3"return a;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,d,dn);
+ g<<FOOTER;
+ }
+
+ void
+ mr_op_ma( command_line_options const & opt, int r, int c, std::string const & fn, std::string const & op )
+ {
+ assert(!op.empty());
+ std::string dn=deduce_name(fn,"matrix","");
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,r,c);
+ header_mr_ma(*g,r,c,fn);
+ g<<
+ TAB3"{"NL
+ TAB3"typedef typename deduce_matrix<A>::type R;"NL
+ TAB3"R r;"NL
+ ;
+ for( int i=0; i!=r; ++i )
+ for( int j=0; j!=c; ++j )
+ g<<TAB3"matrix_traits<R>::template w<"<<i<<","<<j<<">(r)="<<op<<"matrix_traits<A>::template r<"<<i<<","<<j<<">(a);"NL;
+ g<<
+ TAB3"return r;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,r,c,dn);
+ g<<FOOTER;
+ }
+
+ void
+ vr_op_va( command_line_options const & opt, int d, std::string const & fn, std::string const & op )
+ {
+ assert(!op.empty());
+ std::string dn=deduce_name(fn,"vector","");
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,d);
+ header_vr_va(*g,d,fn);
+ g<<
+ TAB3"{"NL
+ TAB3"typedef typename deduce_vector<A>::type R;"NL
+ TAB3"R r;"NL
+ ;
+ for( int i=0; i!=d; ++i )
+ g<<TAB3"vector_traits<R>::template w<"<<i<<">(r)="<<op<<"vector_traits<A>::template r<"<<i<<">(a);"NL;
+ g<<
+ TAB3"return r;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,d,dn);
+ g<<FOOTER;
+ }
+
+ void
+ mr_op_ma_sb( command_line_options const & opt, int r, int c, std::string const & fn, std::string const & op )
+ {
+ assert(!op.empty());
+ std::string dn=deduce_name(fn,"matrix","scalar");
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,r,c);
+ header_mr_ma_sb(*g,r,c,fn);
+ g<<
+ TAB3"{"NL
+ TAB3"typedef typename deduce_matrix<A>::type R;"NL
+ TAB3"R r;"NL
+ ;
+ for( int i=0; i!=r; ++i )
+ for( int j=0; j!=c; ++j )
+ g<<TAB3"matrix_traits<R>::template w<"<<i<<","<<j<<">(r)=matrix_traits<A>::template r<"<<i<<","<<j<<">(a)"<<op<<"b;"NL;
+ g<<
+ TAB3"return r;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,r,c,dn);
+ g<<FOOTER;
+ }
+
+ void
+ vr_op_va_sb( command_line_options const & opt, int d, std::string const & fn, std::string const & op )
+ {
+ assert(!op.empty());
+ std::string dn=deduce_name(fn,"vector","scalar");
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,d);
+ header_vr_va_sb(*g,d,fn);
+ g<<
+ TAB3"{"NL
+ TAB3"typedef typename deduce_vector<A>::type R;"NL
+ TAB3"R r;"NL
+ ;
+ for( int i=0; i!=d; ++i )
+ g<<TAB3"vector_traits<R>::template w<"<<i<<">(r)=vector_traits<A>::template r<"<<i<<">(a)"<<op<<"b;"NL;
+ g<<
+ TAB3"return r;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,d,dn);
+ g<<FOOTER;
+ }
+
+ void
+ ma_op_ma_sb( command_line_options const & opt, int r, int c, std::string const & fn, std::string const & op )
+ {
+ assert(!op.empty());
+ std::string dn=deduce_name(fn,"matrix","scalar");
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,r,c);
+ header_ma_sb(*g,r,c,fn);
+ g<<
+ TAB3"{"NL
+ ;
+ for( int i=0; i!=r; ++i )
+ for( int j=0; j!=c; ++j )
+ g<<TAB3"matrix_traits<A>::template w<"<<i<<","<<j<<">(a)"<<op<<"b;"NL;
+ g<<
+ TAB3"return a;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,r,c,dn);
+ g<<FOOTER;
+ }
+
+ void
+ va_op_va_sb( command_line_options const & opt, int d, std::string const & fn, std::string const & op )
+ {
+ assert(!op.empty());
+ std::string dn=deduce_name(fn,"vector","scalar");
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,d);
+ header_va_sb(*g,d,fn);
+ g<<
+ TAB3"{"NL
+ ;
+ for( int i=0; i!=d; ++i )
+ g<<TAB3"vector_traits<A>::template w<"<<i<<">(a)"<<op<<"b;"NL;
+ g<<
+ TAB3"return a;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,d,dn);
+ g<<FOOTER;
+ }
+
+ void
+ ma_assign_ma_mb( command_line_options const & opt, int r, int c )
+ {
+ std::string dn=deduce_name("assign","matrix","");
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,r,c);
+ header_ma_mb_same_size(*g,r,c,"assign");
+ g<<TAB3"{"NL;
+ for( int i=0; i!=r; ++i )
+ for( int j=0; j!=c; ++j )
+ g<<TAB3"matrix_traits<A>::template w<"<<i<<","<<j<<">(a)=matrix_traits<B>::template r<"<<i<<","<<j<<">(b);"NL;
+ g<<
+ TAB3"return a;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,r,c,dn);
+ g<<FOOTER;
+ }
+
+ void
+ va_assign_va_vb( command_line_options const & opt, int d )
+ {
+ boost::shared_ptr<std::ostream> g=opt.stream("vector_assign",d);
+ header_va_vb_same_size(*g,d,"assign");
+ g<<TAB3"{"NL;
+ for( int i=0; i!=d; ++i )
+ g<<TAB3"vector_traits<A>::template w<"<<i<<">(a)=vector_traits<B>::template r<"<<i<<">(b);"NL;
+ g<<
+ TAB3"return a;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,d,"vector_assign");
+ g<<FOOTER;
+ }
+
+ void
+ mr_make_ma( command_line_options const & opt, int r, int c )
+ {
+ boost::shared_ptr<std::ostream> g=opt.stream("matrix_make",r,c);
+ header_mr_ma_same_size(*g,r,c,"make");
+ g<<TAB3"{"NL<<
+ TAB3"R r;"NL
+ ;
+ for( int i=0; i!=r; ++i )
+ for( int j=0; j!=c; ++j )
+ g<<TAB3"matrix_traits<R>::template w<"<<i<<","<<j<<">(r)=matrix_traits<A>::template r<"<<i<<","<<j<<">(a);"NL;
+ g<<
+ TAB3"return r;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,r,c,"matrix_make");
+ g<<FOOTER;
+ }
+
+ void
+ vr_make_va( command_line_options const & opt, int d )
+ {
+ boost::shared_ptr<std::ostream> g=opt.stream("vector_make",d);
+ header_vr_va_same_size(*g,d,"make");
+ g<<TAB3"{"NL<<
+ TAB3"R r;"NL
+ ;
+ for( int i=0; i!=d; ++i )
+ g<<TAB3"vector_traits<R>::template w<"<<i<<">(r)=vector_traits<A>::template r<"<<i<<">(a);"NL;
+ g<<
+ TAB3"return r;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,d,"vector_make");
+ g<<FOOTER;
+ }
+
+ struct
+ delrc
+ {
+ delrc const * next;
+ int i, j;
+ char var;
+ explicit
+ delrc( char var ):
+ next(0),
+ i(std::numeric_limits<int>::max()),
+ j(std::numeric_limits<int>::max()),
+ var(var)
+ {
+ }
+ delrc( delrc const & next, int i, int j ):
+ next(&next),
+ i(i),
+ j(j),
+ var(next.var)
+ {
+ }
+ std::pair<int,int>
+ idx( std::pair<int,int> const & x ) const
+ {
+ std::pair<int,int> r(x.first+(x.first>=i),x.second+(x.second>=j));
+ if( next )
+ return next->idx(r);
+ else
+ return r;
+
+ }
+ void
+ operator()( std::ostream & g, int r, int c ) const
+ {
+ std::pair<int,int> p=idx(std::make_pair(r,c));
+ g << var << p.first << p.second;
+ }
+ };
+
+ void
+ determinant_impl( std::ostream & g, int n, delrc const & a )
+ {
+ if( n==1 )
+ return a(g,0,0);
+ g << "(";
+ char const * plus="";
+ for( int i=0; i!=n; ++i,plus="+" )
+ {
+ g<<((i&1)?"-":plus);
+ a(g,0,i);
+ g<<'*';
+ determinant_impl(g,n-1,delrc(a,0,i));
+ }
+ g << ")";
+ }
+
+ void
+ determinant( command_line_options const & opt, int d )
+ {
+ std::string dn=deduce_name("determinant","matrix","");
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,d);
+ header_sr_ma(*g,d,d,"determinant");
+ g<<
+ TAB3"{"NL
+ TAB3"typedef typename matrix_traits<A>::scalar_type T;"NL
+ ;
+ for( int i=0; i!=d; ++i )
+ for( int j=0; j!=d; ++j )
+ g<<TAB3<<"T const a"<<i<<j<<"=matrix_traits<A>::template r<"<<i<<','<<j<<">(a);"NL;
+ g<<TAB3"T det=";
+ determinant_impl(*g,d,delrc('a'));
+ g<<";"NL;
+ g<<
+ TAB3"return det;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,d,dn);
+ g<<FOOTER;
+ }
+
+ void
+ inverse_ma( command_line_options const & opt, int d )
+ {
+ assert(d>1);
+ std::string dn=deduce_name("inverse","matrix","");
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,d);
+ header_ma_inverse(*g,d,"inverse");
+ g<<
+ TAB3"{"NL
+ TAB3"typedef typename matrix_traits<A>::scalar_type T;"NL
+ TAB3"BOOST_ASSERT(det!=scalar_traits<T>::zero());"NL
+ ;
+ for( int i=0; i!=d; ++i )
+ for( int j=0; j!=d; ++j )
+ g<<TAB3"T const a"<<i<<j<<"=matrix_traits<A>::template r<"<<i<<','<<j<<">(a);"NL;
+ g<<
+ TAB3"T const f=scalar_traits<T>::one()/det;"NL
+ TAB3"typedef typename deduce_matrix<A>::type R;"NL
+ TAB3"R r;"NL
+ ;
+ for( int i=0; i!=d; ++i )
+ for( int j=0; j!=d; ++j )
+ {
+ g<<TAB3"matrix_traits<R>::template w<"<<i<<','<<j<<">(r)="<<(((i+j)&1)?'-':' ')<<"f*";
+ determinant_impl(*g,d-1,delrc(delrc('a'),j,i));
+ g<<";"NL;
+ }
+ g<<
+ TAB3"return r;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,d,dn);
+ g<<FOOTER;
+ }
+
+ void
+ magnitude2( command_line_options const & opt, int d )
+ {
+ std::string dn=deduce_name("magnitude2","vector","");
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,d);
+ g<<INCLUDE_MATH;
+ header_sr_va(*g,d,"magnitude2");
+ g<<
+ TAB3"{"NL
+ TAB3"typedef typename vector_traits<A>::scalar_type T;"NL
+ ;
+ for( int i=0; i!=d; ++i )
+ g<<TAB3"T const a"<<i<<"=vector_traits<A>::template r<"<<i<<">(a);"NL;
+ g<<TAB3"T const mag2=";
+ for( int i=0; i!=d; ++i )
+ {
+ if( i )
+ g<<'+';
+ g<<'a'<<i<<"*a"<<i;
+ }
+ g<<
+ ";"NL
+ TAB3"return mag2;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,d,dn);
+ g<<FOOTER;
+ }
+
+ void
+ magnitude( command_line_options const & opt, int d )
+ {
+ std::string dn=deduce_name("magnitude","vector","");
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,d);
+ g<<INCLUDE_MATH;
+ header_sr_va(*g,d,"magnitude");
+ g<<
+ TAB3"{"NL
+ TAB3"typedef typename vector_traits<A>::scalar_type T;"NL
+ ;
+ for( int i=0; i!=d; ++i )
+ g<<TAB3"T const a"<<i<<"=vector_traits<A>::template r<"<<i<<">(a);"NL;
+ g<<TAB3"T const mag2=";
+ for( int i=0; i!=d; ++i )
+ {
+ if( i )
+ g<<'+';
+ g<<'a'<<i<<"*a"<<i;
+ }
+ g<<
+ ";"NL
+ TAB3"T const mag=sqrt<T>(mag2);"NL
+ TAB3"return mag;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,d,dn);
+ g<<FOOTER;
+ }
+
+ void
+ dot( command_line_options const & opt, int d )
+ {
+ std::string dn=deduce_name("dot","vector","");
+ boost::shared_ptr<std::ostream> g=opt.stream(dn,d);
+ header_sr_va_vb(*g,d,"dot");
+ g<<
+ TAB3"{"NL
+ TAB3"typedef typename vector_traits<A>::scalar_type Ta;"NL
+ TAB3"typedef typename vector_traits<B>::scalar_type Tb;"NL
+ TAB3"typedef typename deduce_scalar<Ta,Tb>::type Tr;"NL
+ ;
+ for( int i=0; i!=d; ++i )
+ g<<TAB3"Ta const a"<<i<<"=vector_traits<A>::template r<"<<i<<">(a);"NL;
+ for( int i=0; i!=d; ++i )
+ g<<TAB3"Tb const b"<<i<<"=vector_traits<B>::template r<"<<i<<">(b);"NL;
+ g<<TAB3"Tr const dot=";
+ for( int i=0; i!=d; ++i )
+ {
+ if( i )
+ g<<'+';
+ g<<'a'<<i<<"*b"<<i;
+ }
+ g<<
+ ";"NL
+ TAB3"return dot;"NL
+ TAB3"}"NL
+ ;
+ defined(*g,d,dn);
+ g<<FOOTER;
+ }
+
+ template <int N>
+ void
+ swizzle_impl( std::ostream & g, int d, char const * (&ids)[N][2], std::vector<int> const & initial_count )
+ {
+ assert(d>=1);
+ std::vector<int> count(initial_count);
+ bool first=true;
+ for( ;; )
+ {
+ if( !first )
+ g<<NL;
+ first=false;
+ g<<TAB2"BOOST_LA_INLINE_TRIVIAL"NL TAB2;
+ for( int k=0; k!=d; ++k )
+ g<<(k?",":"")<<"la_detail::swizzle_idx<la_detail::swizzle_tag<"<<ids[count[k]-1][1]<<">::value";
+ for( int k=0; k!=d; ++k )
+ g<<" >";
+ g<<NL TAB2;
+ for( int k=0; k!=d; ++k )
+ {
+ char const * f=ids[count[k]-1][0];
+ if( !k && f[0]>='0' && f[0]<='9' )
+ g<<'_';
+ g<<f;
+ }
+ g<<"() { return ";
+ for( int k=0; k!=d; ++k )
+ g<<(k?",":"")<<"la_detail::swizzle_idx<la_detail::swizzle_tag<"<<ids[count[k]-1][1]<<">::value";
+ for( int k=0; k!=d; ++k )
+ g<<" >";
+ g<<"(); }"NL;
+ int j;
+ for( j=0; j!=d; ++j )
+ if( --count[j] )
+ break;
+ else
+ count[j]=initial_count[j];
+ if( j==d )
+ break;
+ }
+ }
+
+ void
+ swizzle( command_line_options const & opt, int d )
+ {
+ boost::shared_ptr<std::ostream> g=opt.stream("swizzle",d);
+ g<<
+ INCLUDE_SWIZZLE_TRAITS
+ NL
+ NAMESPACE_BEGIN
+ ;
+ char const * swizzle_ids[6][2] =
+ {
+ {"X","_x_"},
+ {"Y","_y_"},
+ {"Z","_z_"},
+ {"W","_w_"},
+ {"0","_0_"},
+ {"1","_1_"}
+ };
+ std::vector<int> initial_count(d,4);
+ if( d>1 )
+ initial_count[d-1]=6;
+ swizzle_impl(*g,d,swizzle_ids,initial_count);
+ g<<FOOTER;
+ }
+
+ command_line_options
+ parse_command_line( int argc, char const * argv[] )
+ {
+ class
+ next
+ {
+ char const * const * const argv;
+ public:
+ int const argc;
+ next( int argc, char const * argv[] ):
+ argc(argc),
+ argv(argv)
+ {
+ }
+ std::string
+ operator()( int & i ) const
+ {
+ assert(i<argc);
+ if( ++i==argc )
+ BOOST_THROW_EXCEPTION(bad_command_line() << cmd_arg(argv[i-1]));
+ return argv[i];
+ }
+ } next_token(argc,argv);
+ command_line_options r;
+ for( int i=1; i!=argc; ++i )
+ if( argv[i][0]=='-' )
+ {
+ char const * arg=argv[i];
+ if( arg==std::string("-od") )
+ r.output_directory=next_token(i);
+ else if( arg==std::string("-con") )
+ r.con=true;
+ else
+ BOOST_THROW_EXCEPTION(bad_command_line() << cmd_arg(arg));
+ }
+ return r;
+ }
+ }
+
+int
+main( int argc, char const * argv[] )
+ {
+ command_line_options opt=parse_command_line(argc,argv);
+ for( int d=2; d!=5; ++d )
+ {
+ mr_op_ma_mb_same_size(opt,d,d,"operator+","+");
+ mr_op_ma_mb_same_size(opt,d,1,"operator+","+");
+ mr_op_ma_mb_same_size(opt,1,d,"operator+","+");
+
+ mr_op_ma_mb_same_size(opt,d,d,"operator-","-");
+ mr_op_ma_mb_same_size(opt,d,1,"operator-","-");
+ mr_op_ma_mb_same_size(opt,1,d,"operator-","-");
+
+ ma_op_ma_mb_same_size(opt,d,d,"operator+=","+=");
+ ma_op_ma_mb_same_size(opt,d,1,"operator+=","+=");
+ ma_op_ma_mb_same_size(opt,1,d,"operator+=","+=");
+
+ ma_op_ma_mb_same_size(opt,d,d,"operator-=","-=");
+ ma_op_ma_mb_same_size(opt,d,1,"operator-=","-=");
+ ma_op_ma_mb_same_size(opt,1,d,"operator-=","-=");
+
+ mr_op_ma_sb(opt,d,d,"operator*","*");
+ mr_op_ma_sb(opt,d,1,"operator*","*");
+ mr_op_ma_sb(opt,1,d,"operator*","*");
+
+ ma_op_ma_sb(opt,d,d,"operator*=","*=");
+ ma_op_ma_sb(opt,d,1,"operator*=","*=");
+ ma_op_ma_sb(opt,1,d,"operator*=","*=");
+
+ mr_op_ma_sb(opt,d,d,"operator/","/");
+ mr_op_ma_sb(opt,d,1,"operator/","/");
+ mr_op_ma_sb(opt,1,d,"operator/","/");
+
+ ma_op_ma_sb(opt,d,d,"operator/=","/=");
+ ma_op_ma_sb(opt,d,1,"operator/=","/=");
+ ma_op_ma_sb(opt,1,d,"operator/=","/=");
+
+ ma_assign_ma_mb(opt,d,d);
+ ma_assign_ma_mb(opt,d,1);
+ ma_assign_ma_mb(opt,1,d);
+
+ mr_make_ma(opt,d,d);
+ mr_make_ma(opt,d,1);
+ mr_make_ma(opt,1,d);
+
+ bool_eq_ma_mb(opt,d,d);
+ bool_eq_ma_mb(opt,d,1);
+ bool_eq_ma_mb(opt,1,d);
+
+ bool_neq_ma_mb(opt,d,d);
+ bool_neq_ma_mb(opt,d,1);
+ bool_neq_ma_mb(opt,1,d);
+
+ mr_op_ma(opt,d,d,"operator-","-");
+ mr_op_ma(opt,d,1,"operator-","-");
+ mr_op_ma(opt,1,d,"operator-","-");
+
+ determinant(opt,d);
+
+ inverse_ma(opt,d);
+
+ mr_mult_ma_mb(opt,d,d,d);
+ mr_mult_ma_mb(opt,d,d,1);
+ mr_mult_ma_mb(opt,1,d,d);
+
+ ma_mult_ma_mb(opt,d);
+
+ vr_op_va_vb_same_size(opt,d,"operator+","+");
+ vr_op_va_vb_same_size(opt,d,"operator-","-");
+ va_op_va_vb_same_size(opt,d,"operator+=","+=");
+ va_op_va_vb_same_size(opt,d,"operator-=","-=");
+ vr_op_va_sb(opt,d,"operator*","*");
+ va_op_va_sb(opt,d,"operator*=","*=");
+ vr_op_va_sb(opt,d,"operator/","/");
+ va_op_va_sb(opt,d,"operator/=","/=");
+ va_assign_va_vb(opt,d);
+ vr_make_va(opt,d);
+ vr_mult_ma_vb(opt,d,d);
+ vr_mult_va_mb(opt,d,d);
+ bool_eq_va_vb(opt,d);
+ bool_neq_va_vb(opt,d);
+ vr_op_va(opt,d,"operator-","-");
+ magnitude(opt,d);
+ magnitude2(opt,d);
+ dot(opt,d);
+ }
+ swizzle(opt,2);
+ swizzle(opt,3);
+ swizzle(opt,4);
+ opt.out_gen_headers();
+ return 1;
+ }
Added: sandbox/la/libs/la/test/Jamfile
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/Jamfile 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,131 @@
+# Copyright (c) 2008-2009 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)
+
+project
+ : requirements
+ <include>$(boost-location)
+ <include>../../..
+ ;
+
+rule
+headers-compile-test ( headers * : requirements * : target-tag ? )
+ {
+ local test-names = ;
+ for local header in $(headers)
+ {
+ local native-path = [ path.native $(header) ] ;
+ local target = hdr$(target-tag)-$(header:D=) ;
+ compile header-test.cpp : $(requirements) <define>REVERGE_HEADER=\\\"$(native-path)\\\" <dependency>$(header) : $(target) ;
+ test-names += $(target) ;
+ }
+ alias hdrtest$(target-tag) : $(test-names) ;
+ }
+
+headers-compile-test [ glob ../../../boost/la/*.hpp ]
+ : # requirements
+ <include>$(boost-location)
+ : # target-tag
+ la
+ ;
+
+headers-compile-test [ glob ../../../boost/la/custom/*.hpp ]
+ : # requirements
+ <include>$(boost-location)
+ : # target-tag
+ custom
+ ;
+
+run vector_access_test.cpp ;
+compile-fail vector_access_fail1.cpp ;
+compile-fail vector_access_fail2.cpp ;
+compile-fail vector_access_fail3.cpp ;
+compile-fail vector_access_fail4.cpp ;
+
+run matrix_access_test.cpp ;
+compile-fail matrix_access_fail1.cpp ;
+compile-fail matrix_access_fail2.cpp ;
+compile-fail matrix_access_fail3.cpp ;
+compile-fail matrix_access_fail4.cpp ;
+
+run vector_assign_test.cpp ;
+run vector_cross_test.cpp ;
+run vector_div_eq_scalar_test.cpp ;
+run vector_div_scalar_test.cpp ;
+run vector_dot_test.cpp ;
+run vector_eq_vector_test.cpp ;
+run vector_magnitude_test.cpp ;
+run vector_magnitude2_test.cpp ;
+run vector_minus_test.cpp ;
+run vector_minus_eq_vector_test.cpp ;
+run vector_minus_vector_test.cpp ;
+run vector_mul_eq_scalar_test.cpp ;
+run vector_mul_scalar_test.cpp ;
+run vector_mul_matrix_test.cpp ;
+run vector_plus_eq_vector_test.cpp ;
+run vector_plus_vector_test.cpp ;
+run vector_scalar_cast_test.cpp ;
+
+run matrix_assign_test.cpp ;
+run matrix_determinant_test.cpp ;
+run matrix_div_eq_scalar_test.cpp ;
+run matrix_div_scalar_test.cpp ;
+run matrix_eq_matrix_test.cpp ;
+run matrix_minus_test.cpp ;
+run matrix_minus_eq_matrix_test.cpp ;
+run matrix_minus_matrix_test.cpp ;
+run matrix_mul_eq_matrix_test.cpp ;
+run matrix_mul_eq_scalar_test.cpp ;
+run matrix_mul_matrix_test.cpp ;
+run matrix_mul_scalar_test.cpp ;
+run matrix_mul_vector_test.cpp ;
+run matrix_inverse_test.cpp ;
+run matrix_plus_eq_matrix_test.cpp ;
+run matrix_plus_matrix_test.cpp ;
+run matrix_scalar_cast_test.cpp ;
+
+run make_test.cpp ;
+
+run rotx_matrix_test.cpp ;
+run roty_matrix_test.cpp ;
+run rotz_matrix_test.cpp ;
+
+run zero_vector_test.cpp ;
+run zero_matrix_test.cpp ;
+run identity_matrix_test.cpp ;
+
+run col_test.cpp ;
+run col_matrix_test.cpp ;
+run delc_test.cpp ;
+run delr_test.cpp ;
+run delrc_test.cpp ;
+run diag_test.cpp ;
+run diag_matrix_test.cpp ;
+run row_test.cpp ;
+run row_matrix_test.cpp ;
+run transpose_test.cpp ;
+run trans_matrix_test.cpp ;
+
+compile-fail swizzle2_fail2.cpp ;
+compile-fail swizzle2_fail3.cpp ;
+compile-fail swizzle2_fail4.cpp ;
+run swizzle2_test.cpp ;
+compile-fail swizzle3_fail2.cpp ;
+compile-fail swizzle3_fail3.cpp ;
+compile-fail swizzle3_fail4.cpp ;
+run swizzle3_test.cpp ;
+compile-fail swizzle4_fail2.cpp ;
+compile-fail swizzle4_fail3.cpp ;
+compile-fail swizzle4_fail4.cpp ;
+run swizzle4_test.cpp ;
+
+compile deduce_scalar_test.cpp ;
+compile-fail deduce_scalar_fail1.cpp ;
+compile-fail deduce_scalar_fail2.cpp ;
+compile-fail deduce_scalar_fail3.cpp ;
+
+compile deduce_matrix_test.cpp ;
+compile deduce_vector_test.cpp ;
+
+run interop_test.cpp ;
Added: sandbox/la/libs/la/test/col_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/col_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,41 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/col_matrix.hpp>
+#include <boost/la/col.hpp>
+#include <boost/la/transpose.hpp>
+#include <boost/la/vector_mul_eq_scalar.hpp>
+#include <boost/la/array_matrix_traits.hpp>
+#include <boost/la/array_vector_traits.hpp>
+#include <boost/la/matrix_assign.hpp>
+#include <boost/la/vector_assign.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> x(42,1);
+ float y[1][Dim]; assign(y,x|col_matrix|transpose);
+ BOOST_TEST_LA_EQ(x.a,y[0]);
+ test_la::scalar_multiply_v(x.b,x.a,2.0f);
+ x|col_matrix|col<0>() *= 2;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/col_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/col_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,117 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/col.hpp>
+#include <boost/la/vector_mul_eq_scalar.hpp>
+#include <boost/la/array_matrix_traits.hpp>
+#include <boost/la/array_vector_traits.hpp>
+#include <boost/la/matrix_assign.hpp>
+#include <boost/la/vector_assign.hpp>
+#include "test_la.hpp"
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Rows,int Cols,int Col>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> x(42,1);
+ float r1[Rows];
+ for( int i=0; i!=Rows; ++i )
+ r1[i]=x.a[i][Col];
+ float r2[Rows];
+ assign(r2,x|col<Col>());
+ BOOST_TEST_LA_EQ(r1,r2);
+ x|col<Col>() *= 2;
+ for( int i=0; i!=Rows; ++i )
+ r1[i]=x.a[i][Col];
+ assign(r2,x|col<Col>());
+ BOOST_TEST_LA_EQ(r1,r2);
+ }
+ }
+
+int
+main()
+ {
+ test<1,2,0>();
+ test<1,2,1>();
+ test<1,3,0>();
+ test<1,3,1>();
+ test<1,3,2>();
+ test<1,4,0>();
+ test<1,4,1>();
+ test<1,4,2>();
+ test<1,4,3>();
+ test<1,5,0>();
+ test<1,5,1>();
+ test<1,5,2>();
+ test<1,5,3>();
+ test<1,5,4>();
+
+ test<2,2,0>();
+ test<2,2,1>();
+ test<2,3,0>();
+ test<2,3,1>();
+ test<2,3,2>();
+ test<2,4,0>();
+ test<2,4,1>();
+ test<2,4,2>();
+ test<2,4,3>();
+ test<2,5,0>();
+ test<2,5,1>();
+ test<2,5,2>();
+ test<2,5,3>();
+ test<2,5,4>();
+
+ test<3,2,0>();
+ test<3,2,1>();
+ test<3,3,0>();
+ test<3,3,1>();
+ test<3,3,2>();
+ test<3,4,0>();
+ test<3,4,1>();
+ test<3,4,2>();
+ test<3,4,3>();
+ test<3,5,0>();
+ test<3,5,1>();
+ test<3,5,2>();
+ test<3,5,3>();
+ test<3,5,4>();
+
+ test<4,2,0>();
+ test<4,2,1>();
+ test<4,3,0>();
+ test<4,3,1>();
+ test<4,3,2>();
+ test<4,4,0>();
+ test<4,4,1>();
+ test<4,4,2>();
+ test<4,4,3>();
+ test<4,5,0>();
+ test<4,5,1>();
+ test<4,5,2>();
+ test<4,5,3>();
+ test<4,5,4>();
+
+ test<5,2,0>();
+ test<5,2,1>();
+ test<5,3,0>();
+ test<5,3,1>();
+ test<5,3,2>();
+ test<5,4,0>();
+ test<5,4,1>();
+ test<5,4,2>();
+ test<5,4,3>();
+ test<5,5,0>();
+ test<5,5,1>();
+ test<5,5,2>();
+ test<5,5,3>();
+ test<5,5,4>();
+
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/deduce_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/deduce_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,51 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/deduce_matrix.hpp>
+
+template <class T,class U>
+struct same_type;
+
+template <class T>
+struct
+same_type<T,T>
+ {
+ };
+
+template <class A,class B,int R,int C,class Result>
+struct
+check
+ {
+ same_type<typename boost::la::deduce_matrix2<A,B,R,C>::type,Result> a;
+ same_type<typename boost::la::deduce_matrix2<B,A,R,C>::type,Result> b;
+ };
+
+template <class T,int R,int C> struct m;
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class T,int R,int C>
+ struct
+ matrix_traits< m<T,R,C> >
+ {
+ typedef T scalar_type;
+ static int const rows=R;
+ static int const cols=C;
+ };
+ }
+ }
+
+int
+main()
+ {
+ same_type< boost::la::deduce_matrix< m<int,4,2> >::type, m<int,4,2> >();
+ same_type< boost::la::deduce_matrix< m<int,4,2>, 4, 4, float >::type, boost::la::mat<float,4,4> >();
+ check< m<int,4,2>, m<int,4,2>, 4, 2, m<int,4,2> >();
+ check< m<int,4,2>, m<float,4,2>, 4, 4, boost::la::mat<float,4,4> >();
+ }
Added: sandbox/la/libs/la/test/deduce_scalar_fail1.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/deduce_scalar_fail1.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,8 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/deduce_scalar.hpp>
+
+typedef boost::la::deduce_scalar<char,int>::type char_scalars_not_supported_use_signed_char_instead;
Added: sandbox/la/libs/la/test/deduce_scalar_fail2.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/deduce_scalar_fail2.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,9 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/deduce_scalar.hpp>
+
+struct foo;
+typedef boost::la::deduce_scalar<foo,int>::type user_defined_types_require_specialization;
Added: sandbox/la/libs/la/test/deduce_scalar_fail3.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/deduce_scalar_fail3.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,10 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/deduce_scalar.hpp>
+
+struct foo;
+struct bar;
+typedef boost::la::deduce_scalar<foo,bar>::type user_defined_types_require_specialization;
Added: sandbox/la/libs/la/test/deduce_scalar_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/deduce_scalar_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,77 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/deduce_scalar.hpp>
+
+template <class T,class U>
+struct same_type;
+
+template <class T>
+struct
+same_type<T,T>
+ {
+ };
+
+template <class A,class B,class R>
+struct
+check
+ {
+ same_type<typename boost::la::deduce_scalar<A,B>::type,R> a;
+ same_type<typename boost::la::deduce_scalar<B,A>::type,R> b;
+ };
+
+int
+main()
+ {
+ check<signed char,signed char,signed char>();
+ check<signed char,signed short,signed short>();
+ check<signed char,signed int,signed int>();
+ check<signed char,signed long,signed long>();
+ check<signed char,unsigned char,unsigned char>();
+ check<signed char,unsigned short,unsigned short>();
+ check<signed char,unsigned int,unsigned int>();
+ check<signed char,unsigned long,unsigned long>();
+ check<signed char,float,float>();
+ check<signed char,double,double>();
+ check<signed short,signed short,signed short>();
+ check<signed short,signed int,signed int>();
+ check<signed short,signed long,signed long>();
+ check<signed short,unsigned short,unsigned short>();
+ check<signed short,unsigned int,unsigned int>();
+ check<signed short,unsigned long,unsigned long>();
+ check<signed short,float,float>();
+ check<signed short,double,double>();
+ check<signed int,signed int,signed int>();
+ check<signed int,signed long,signed long>();
+ check<signed int,unsigned int,unsigned int>();
+ check<signed int,unsigned long,unsigned long>();
+ check<signed int,float,float>();
+ check<signed int,double,double>();
+ check<signed long,signed long,signed long>();
+ check<signed long,unsigned long,unsigned long>();
+ check<signed long,float,float>();
+ check<signed long,double,double>();
+ check<unsigned char,unsigned char,unsigned char>();
+ check<unsigned char,unsigned short,unsigned short>();
+ check<unsigned char,unsigned int,unsigned int>();
+ check<unsigned char,unsigned long,unsigned long>();
+ check<unsigned char,float,float>();
+ check<unsigned char,double,double>();
+ check<unsigned short,unsigned short,unsigned short>();
+ check<unsigned short,unsigned int,unsigned int>();
+ check<unsigned short,unsigned long,unsigned long>();
+ check<unsigned short,float,float>();
+ check<unsigned short,double,double>();
+ check<unsigned int,unsigned int,unsigned int>();
+ check<unsigned int,unsigned long,unsigned long>();
+ check<unsigned int,float,float>();
+ check<unsigned int,double,double>();
+ check<unsigned long,unsigned long,unsigned long>();
+ check<unsigned long,float,float>();
+ check<unsigned long,double,double>();
+ check<float,float,float>();
+ check<float,double,double>();
+ check<double,double,double>();
+ }
Added: sandbox/la/libs/la/test/deduce_vector_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/deduce_vector_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/deduce_vector.hpp>
+
+template <class T,class U>
+struct same_type;
+
+template <class T>
+struct
+same_type<T,T>
+ {
+ };
+
+template <class A,class B,int D,class Result>
+struct
+check
+ {
+ same_type<typename boost::la::deduce_vector2<A,B,D>::type,Result> a;
+ same_type<typename boost::la::deduce_vector2<B,A,D>::type,Result> b;
+ };
+
+template <class T,int D> struct v;
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class T,int D>
+ struct
+ vector_traits< v<T,D> >
+ {
+ typedef T scalar_type;
+ static int const dim=D;
+ };
+ }
+ }
+
+int
+main()
+ {
+ same_type< boost::la::deduce_vector< v<int,3> >::type, v<int,3> >();
+ same_type< boost::la::deduce_vector< v<int,3>, 4, float >::type, boost::la::vec<float,4> >();
+ check< v<int,3>, v<int,3>, 3, v<int,3> >();
+ check< v<int,3>, v<float,3>, 4, boost::la::vec<float,4> >();
+ }
Added: sandbox/la/libs/la/test/delc_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/delc_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,59 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/delc.hpp>
+#include <boost/la/matrix_mul_eq_scalar.hpp>
+#include <boost/la/array_matrix_traits.hpp>
+#include <boost/la/matrix_assign.hpp>
+#include "test_la.hpp"
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Rows,int Cols,int Col>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> x(42,1);
+ float r1[Rows][Cols-1];
+ for( int i=0; i!=Rows; ++i )
+ for( int j=0; j!=Cols-1; ++j )
+ r1[i][j]=x.a[i][j+(j>=Col)];
+ float r2[Rows][Cols-1];
+ assign(r2,x|delc<Col>());
+ BOOST_TEST_LA_EQ(r1,r2);
+ x|delc<Col>() *= 2;
+ for( int i=0; i!=Rows; ++i )
+ for( int j=0; j!=Cols-1; ++j )
+ r1[i][j]=x.a[i][j+(j>=Col)];
+ assign(r2,x|delc<Col>());
+ BOOST_TEST_LA_EQ(r1,r2);
+ }
+ }
+
+int
+main()
+ {
+ test<2,2,0>();
+ test<2,2,1>();
+
+ test<3,3,0>();
+ test<3,3,1>();
+ test<3,3,2>();
+
+ test<4,4,0>();
+ test<4,4,1>();
+ test<4,4,2>();
+ test<4,4,3>();
+
+ test<5,5,0>();
+ test<5,5,1>();
+ test<5,5,2>();
+ test<5,5,3>();
+ test<5,5,4>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/delr_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/delr_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,59 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/delr.hpp>
+#include <boost/la/matrix_mul_eq_scalar.hpp>
+#include <boost/la/array_matrix_traits.hpp>
+#include <boost/la/matrix_assign.hpp>
+#include "test_la.hpp"
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Rows,int Cols,int Row>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> x(42,1);
+ float r1[Rows-1][Cols];
+ for( int i=0; i!=Rows-1; ++i )
+ for( int j=0; j!=Cols; ++j )
+ r1[i][j]=x.a[i+(i>=Row)][j];
+ float r2[Rows-1][Cols];
+ assign(r2,x|delr<Row>());
+ BOOST_TEST_LA_EQ(r1,r2);
+ x|delr<Row>() *= 2;
+ for( int i=0; i!=Rows-1; ++i )
+ for( int j=0; j!=Cols; ++j )
+ r1[i][j]=x.a[i+(i>=Row)][j];
+ assign(r2,x|delr<Row>());
+ BOOST_TEST_LA_EQ(r1,r2);
+ }
+ }
+
+int
+main()
+ {
+ test<2,2,0>();
+ test<2,2,1>();
+
+ test<3,3,0>();
+ test<3,3,1>();
+ test<3,3,2>();
+
+ test<4,4,0>();
+ test<4,4,1>();
+ test<4,4,2>();
+ test<4,4,3>();
+
+ test<5,5,0>();
+ test<5,5,1>();
+ test<5,5,2>();
+ test<5,5,3>();
+ test<5,5,4>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/delrc_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/delrc_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,99 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/delrc.hpp>
+#include <boost/la/matrix_mul_eq_scalar.hpp>
+#include <boost/la/array_matrix_traits.hpp>
+#include <boost/la/matrix_assign.hpp>
+#include "test_la.hpp"
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Rows,int Cols,int Row,int Col>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> x(42,1);
+ float r1[Rows-1][Cols-1];
+ for( int i=0; i!=Rows-1; ++i )
+ for( int j=0; j!=Cols-1; ++j )
+ r1[i][j]=x.a[i+(i>=Row)][j+(j>=Col)];
+ float r2[Rows-1][Cols-1];
+ assign(r2,x|delrc<Row,Col>());
+ BOOST_TEST_LA_EQ(r1,r2);
+ x|delrc<Row,Col>() *= 2;
+ for( int i=0; i!=Rows-1; ++i )
+ for( int j=0; j!=Cols-1; ++j )
+ r1[i][j]=x.a[i+(i>=Row)][j+(j>=Col)];
+ assign(r2,x|delrc<Row,Col>());
+ BOOST_TEST_LA_EQ(r1,r2);
+ }
+ }
+
+int
+main()
+ {
+ test<2,2,0,0>();
+ test<2,2,0,1>();
+ test<2,2,1,0>();
+ test<2,2,1,1>();
+
+ test<3,3,0,0>();
+ test<3,3,0,1>();
+ test<3,3,0,2>();
+ test<3,3,1,0>();
+ test<3,3,1,1>();
+ test<3,3,1,2>();
+ test<3,3,2,0>();
+ test<3,3,2,1>();
+ test<3,3,2,2>();
+
+ test<4,4,0,0>();
+ test<4,4,0,1>();
+ test<4,4,0,2>();
+ test<4,4,0,3>();
+ test<4,4,1,0>();
+ test<4,4,1,1>();
+ test<4,4,1,2>();
+ test<4,4,1,3>();
+ test<4,4,2,0>();
+ test<4,4,2,1>();
+ test<4,4,2,2>();
+ test<4,4,2,3>();
+ test<4,4,3,0>();
+ test<4,4,3,1>();
+ test<4,4,3,2>();
+ test<4,4,3,3>();
+
+ test<5,5,0,0>();
+ test<5,5,0,1>();
+ test<5,5,0,2>();
+ test<5,5,0,3>();
+ test<5,5,0,4>();
+ test<5,5,1,0>();
+ test<5,5,1,1>();
+ test<5,5,1,2>();
+ test<5,5,1,3>();
+ test<5,5,1,4>();
+ test<5,5,2,0>();
+ test<5,5,2,1>();
+ test<5,5,2,2>();
+ test<5,5,2,3>();
+ test<5,5,2,4>();
+ test<5,5,3,0>();
+ test<5,5,3,1>();
+ test<5,5,3,2>();
+ test<5,5,3,3>();
+ test<5,5,3,4>();
+ test<5,5,4,0>();
+ test<5,5,4,1>();
+ test<5,5,4,2>();
+ test<5,5,4,3>();
+ test<5,5,4,4>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/diag_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/diag_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,40 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/diag_matrix.hpp>
+#include <boost/la/diag.hpp>
+#include <boost/la/vector_mul_eq_scalar.hpp>
+#include <boost/la/array_matrix_traits.hpp>
+#include <boost/la/matrix_assign.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> x(42,1);
+ float y[Dim][Dim]; assign(y,x|diag_matrix);
+ for( int i=0; i!=Dim; ++i )
+ x.b[i]=y[i][i];
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ test_la::scalar_multiply_v(x.b,x.a,2.0f);
+ x|diag_matrix|diag *= 2;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/diag_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/diag_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,62 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/diag.hpp>
+#include <boost/la/vector_mul_eq_scalar.hpp>
+#include "test_la_matrix.hpp"
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int A,int B,bool LessThan=(A<B)>
+ struct
+ get_min
+ {
+ static int const value=B;
+ };
+
+ template <int A,int B>
+ struct
+ get_min<A,B,true>
+ {
+ static int const value=A;
+ };
+
+ template <int Rows,int Cols>
+ void
+ test()
+ {
+ using namespace boost::la;
+ int const D=get_min<Rows,Cols>::value;
+ test_la::matrix<M1,Rows,Cols> x(42,1);
+ test_la::vector<V1,D> y=x|diag;
+ for( int i=0; i!=D; ++i )
+ y.b[i]=x.a[i][i];
+ BOOST_TEST_LA_EQ(y.a,y.b);
+ x|diag *= 2;
+ for( int i=0; i!=D; ++i )
+ x.b[i][i] *= 2;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<1,3>();
+ test<1,4>();
+ test<1,5>();
+ test<2,1>();
+ test<3,1>();
+ test<4,1>();
+ test<5,1>();
+ test<2,2>();
+ test<3,3>();
+ test<4,4>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/gold.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/gold.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,413 @@
+//Copyright (c) 2008-2009 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 UUID_907229FCB3A711DE83C152F855D89593
+#define UUID_907229FCB3A711DE83C152F855D89593
+
+#include <limits>
+#include <math.h>
+#include <assert.h>
+#include <memory.h>
+
+namespace
+test_la
+ {
+ namespace
+ detail
+ {
+ inline
+ float
+ sin( float a )
+ {
+ return ::sinf(a);
+ }
+
+ inline
+ double
+ sin( double a )
+ {
+ return ::sin(a);
+ }
+
+ inline
+ float
+ cos( float a )
+ {
+ return ::cosf(a);
+ }
+
+ inline
+ double
+ cos( double a )
+ {
+ return ::cos(a);
+ }
+
+ template <class T>
+ T
+ determinant( T * * a, int n )
+ {
+ int i,j,j1,j2;
+ T det = 0;
+ T * * m = 0;
+ assert(n>=1);
+ if( n==1 )
+ det = a[0][0];
+ else if( n==2 )
+ det = a[0][0] * a[1][1] - a[1][0] * a[0][1];
+ else
+ {
+ det = 0;
+ for( j1=0; j1<n; j1++ )
+ {
+ m = static_cast<T * *>(malloc((n-1)*sizeof(T *)));
+ for( i=0; i<n-1; i++ )
+ m[i] = static_cast<T *>(malloc((n-1)*sizeof(T)));
+ for( i=1; i<n; i++ )
+ {
+ j2 = 0;
+ for( j=0; j<n; j++ )
+ {
+ if( j==j1 )
+ continue;
+ m[i-1][j2] = a[i][j];
+ j2++;
+ }
+ }
+ det += T(pow(-1.0,1.0+j1+1.0)) * a[0][j1] * determinant(m,n-1);
+ for( i=0; i<n-1; i++ )
+ free(m[i]);
+ free(m);
+ }
+ }
+ return(det);
+ }
+
+ template <class T,int N>
+ void
+ cofactor( T * * a, T (&b)[N][N] )
+ {
+ int i,j,ii,jj,i1,j1;
+ T det;
+ T * * c;
+ c = static_cast<T * *>(malloc((N-1)*sizeof(T *)));
+ for( i=0; i<N-1; i++ )
+ c[i] = static_cast<T *>(malloc((N-1)*sizeof(T)));
+ for( j=0; j<N; j++ )
+ {
+ for( i=0; i<N; i++ )
+ {
+ i1 = 0;
+ for( ii=0; ii<N; ii++ )
+ {
+ if( ii==i )
+ continue;
+ j1 = 0;
+ for( jj=0; jj<N; jj++ )
+ {
+ if( jj==j )
+ continue;
+ c[i1][j1] = a[ii][jj];
+ j1++;
+ }
+ i1++;
+ }
+ det = determinant(c,N-1);
+ b[i][j] = T(pow(-1.0,i+j+2.0)) * det;
+ }
+ }
+ for( i=0; i<N-1; i++ )
+ free(c[i]);
+ free(c);
+ }
+ }
+
+ template <class T,int D>
+ T
+ determinant( T (&in)[D][D] )
+ {
+ T * * m = static_cast<T * *>(malloc(D*sizeof(T *)));
+ for( int i=0; i!=D; ++i )
+ {
+ m[i] = static_cast<T *>(malloc(D*sizeof(T)));
+ for( int j=0; j!=D; ++j )
+ m[i][j]=in[i][j];
+ }
+ T det=::test_la::detail::determinant(m,D);
+ for( int i=0; i<D; ++i )
+ free(m[i]);
+ free(m);
+ return det;
+ }
+
+ template <class T,int D>
+ void
+ inverse( T (&out)[D][D], T (&in)[D][D] )
+ {
+ T * * m = static_cast<T * *>(malloc(D*sizeof(T *)));
+ for( int i=0; i!=D; ++i )
+ {
+ m[i] = static_cast<T *>(malloc(D*sizeof(T)));
+ for( int j=0; j!=D; ++j )
+ m[i][j]=in[i][j];
+ }
+ T det=::test_la::detail::determinant(m,D);
+ assert(det!=T(0));
+ T f=T(1)/det;
+ T b[D][D];
+ ::test_la::detail::cofactor(m,b);
+ for( int i=0; i<D; ++i )
+ free(m[i]);
+ free(m);
+ for( int i=0; i!=D; ++i )
+ for( int j=0; j!=D; ++j )
+ out[j][i]=b[i][j]*f;
+ }
+
+ template <class T,int M,int N>
+ void
+ init_m( T (&r)[M][N], T start=T(0), T step=T(0) )
+ {
+ for( int i=0; i<M; ++i )
+ for( int j=0; j<N; ++j,start+=step )
+ r[i][j] = start;
+ }
+
+ template <class T,int D>
+ void
+ init_v( T (&r)[D], T start=T(0), T step=T(0) )
+ {
+ for( int i=0; i<D; ++i,start+=step )
+ r[i] = start;
+ }
+
+ template <class T,int M,int N>
+ void
+ zero_m( T (&r)[M][N] )
+ {
+ for( int i=0; i<M; ++i )
+ for( int j=0; j<N; ++j )
+ r[i][j] = T(0);
+ }
+
+ template <class T,int D>
+ void
+ zero_v( T (&r)[D] )
+ {
+ for( int i=0; i<D; ++i )
+ r[i] = T(0);
+ }
+
+ template <class T,int D>
+ void
+ identity( T (&r)[D][D] )
+ {
+ for( int i=0; i<D; ++i )
+ for( int j=0; j<D; ++j )
+ r[i][j] = (i==j) ? T(1) : T(0);
+ }
+
+ template <class T,class U,class V,int M,int N>
+ void
+ add_m( T (&r)[M][N], U (&a)[M][N], V (&b)[M][N] )
+ {
+ for( int i=0; i<M; ++i )
+ for( int j=0; j<N; ++j )
+ r[i][j] = a[i][j] + b[i][j];
+ }
+
+ template <class T,class U,class V,int D>
+ void
+ add_v( T (&r)[D], U (&a)[D], V (&b)[D] )
+ {
+ for( int i=0; i<D; ++i )
+ r[i] = a[i] + b[i];
+ }
+
+ template <class T,class U,class V,int M,int N>
+ void
+ subtract_m( T (&r)[M][N], U (&a)[M][N], V (&b)[M][N] )
+ {
+ for( int i=0; i<M; ++i )
+ for( int j=0; j<N; ++j )
+ r[i][j] = a[i][j] - b[i][j];
+ }
+
+ template <class T,class U,class V,int D>
+ void
+ subtract_v( T (&r)[D], U (&a)[D], V (&b)[D] )
+ {
+ for( int i=0; i<D; ++i )
+ r[i] = a[i] - b[i];
+ }
+
+ template <class T,int D,class U>
+ void
+ rotation_x( T (&r)[D][D], U angle )
+ {
+ identity(r);
+ T c=::test_la::detail::cos(angle);
+ T s=::test_la::detail::sin(angle);
+ r[1][1]=c;
+ r[1][2]=-s;
+ r[2][1]=s;
+ r[2][2]=c;
+ }
+
+ template <class T,int D,class U>
+ void
+ rotation_y( T (&r)[D][D], U angle )
+ {
+ identity(r);
+ T c=::test_la::detail::cos(angle);
+ T s=::test_la::detail::sin(angle);
+ r[0][0]=c;
+ r[0][2]=s;
+ r[2][0]=-s;
+ r[2][2]=c;
+ };
+
+ template <class T,int D,class U>
+ void
+ rotation_z( T (&r)[D][D], U angle )
+ {
+ identity(r);
+ T c=::test_la::detail::cos(angle);
+ T s=::test_la::detail::sin(angle);
+ r[0][0]=c;
+ r[0][1]=-s;
+ r[1][0]=s;
+ r[1][1]=c;
+ };
+
+ template <class T,int D>
+ void
+ translation( T (&r)[D][D], T (&t)[D-1] )
+ {
+ identity(r);
+ for( int i=0; i!=D-1; ++i )
+ r[i][D-1]=t[i];
+ }
+
+ template <class R,class T,class U,int M,int N,int P>
+ void
+ multiply_m( R (&r)[M][P], T (&a)[M][N], U (&b)[N][P] )
+ {
+ for( int i=0; i<M; ++i )
+ for( int j=0; j<P; ++j )
+ {
+ R x=0;
+ for( int k=0; k<N; ++k )
+ x += R(a[i][k])*R(b[k][j]);
+ r[i][j] = x;
+ }
+ }
+
+ template <class R,class T,class U,int M,int N>
+ void
+ multiply_mv( R (&r)[M], T (&a)[M][N], U (&b)[N] )
+ {
+ for( int i=0; i<M; ++i )
+ {
+ R x=0;
+ for( int k=0; k<N; ++k )
+ x += R(a[i][k])*R(b[k]);
+ r[i] = x;
+ }
+ }
+
+ template <class R,class T,class U,int N,int P>
+ void
+ multiply_vm( R (&r)[P], T (&a)[N], U (&b)[N][P] )
+ {
+ for( int j=0; j<P; ++j )
+ {
+ R x=0;
+ for( int k=0; k<N; ++k )
+ x += R(a[k])*R(b[k][j]);
+ r[j] = x;
+ }
+ }
+
+ template <class T,class U,int M,int N,class S>
+ void
+ scalar_multiply_m( T (&r)[M][N], U (&a)[M][N], S scalar )
+ {
+ for( int i=0; i<M; ++i )
+ for( int j=0; j<N; ++j )
+ r[i][j] = a[i][j]*scalar;
+ }
+
+ template <class T,class U,int D,class S>
+ void
+ scalar_multiply_v( T (&r)[D], U (&a)[D], S scalar )
+ {
+ for( int i=0; i<D; ++i )
+ r[i] = a[i]*scalar;
+ }
+
+ template <class T,int M,int N>
+ void
+ transpose( T (&r)[M][N], T (&a)[N][M] )
+ {
+ for( int i=0; i<M; ++i )
+ for( int j=0; j<N; ++j )
+ r[i][j] = a[j][i];
+ }
+
+ template <class R,class T,class U,int D>
+ R
+ dot( T (&a)[D], U (&b)[D] )
+ {
+ R r=R(0);
+ for( int i=0; i<D; ++i )
+ r+=a[i]*b[i];
+ return r;
+ }
+
+ template <class T,int M,int N>
+ T
+ norm_squared( T (&m)[M][N] )
+ {
+ T f=T(0);
+ for( int i=0; i<M; ++i )
+ for( int j=0; j<N; ++j )
+ {
+ T x=m[i][j];
+ f+=x*x;
+ }
+ return f;
+ }
+
+ inline
+ void
+ matrix_projection_fov_y( float (&r)[4][4], float fov_y, float aspect_ratio, float zn, float zf )
+ {
+ float ys=1/::tanf(fov_y/2);
+ float xs=ys/aspect_ratio;
+ zero_m(r);
+ r[0][0] = xs;
+ r[1][1] = ys;
+ r[2][2] = zf/(zf-zn);
+ r[2][3] = 1;
+ r[3][2] = -zn*zf/(zf-zn);
+ }
+
+ inline
+ void
+ matrix_projection_fov_y( double (&r)[4][4], double fov_y, double aspect_ratio, double zn, double zf )
+ {
+ double ys=1/::tan(fov_y/2);
+ double xs=ys/aspect_ratio;
+ zero_m(r);
+ r[0][0] = xs;
+ r[1][1] = ys;
+ r[2][2] = zf/(zf-zn);
+ r[2][3] = 1;
+ r[3][2] = -zn*zf/(zf-zn);
+ }
+ }
+
+#endif
Added: sandbox/la/libs/la/test/header-test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/header-test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,7 @@
+//Copyright (c) 2008-2009 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)
+
+#include REVERGE_HEADER
+#include REVERGE_HEADER
Added: sandbox/la/libs/la/test/identity_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/identity_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,31 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/identity_matrix.hpp>
+#include "test_la_matrix.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Dim,Dim> m=identity_matrix<float,Dim>();
+ for( int i=0; i!=Dim; ++i )
+ for( int j=0; j!=Dim; ++j )
+ BOOST_TEST(m.a[i][j]==float(i==j));
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/interop_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/interop_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,315 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/all.hpp>
+
+namespace
+my_stuff
+ {
+ struct
+ mat1
+ {
+ float a[3][3];
+ };
+
+ struct
+ vec1
+ {
+ float a[3];
+ };
+ }
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <>
+ struct
+ matrix_traits<my_stuff::mat1>
+ {
+ typedef float scalar_type;
+ static int const rows=3;
+ static int const cols=3;
+
+ template <int R,int C>
+ static
+ scalar_type &
+ w( my_stuff::mat1 & m )
+ {
+ BOOST_STATIC_ASSERT(R>=0);
+ BOOST_STATIC_ASSERT(R<rows);
+ BOOST_STATIC_ASSERT(C>=0);
+ BOOST_STATIC_ASSERT(C<cols);
+ return m.a[R][C];
+ }
+
+ template <int R,int C>
+ static
+ scalar_type
+ r( my_stuff::mat1 const & m )
+ {
+ BOOST_STATIC_ASSERT(R>=0);
+ BOOST_STATIC_ASSERT(R<rows);
+ BOOST_STATIC_ASSERT(C>=0);
+ BOOST_STATIC_ASSERT(C<cols);
+ return m.a[R][C];
+ }
+
+ static
+ inline
+ scalar_type &
+ iw( int r, int c, my_stuff::mat1 & m )
+ {
+ BOOST_ASSERT(r>=0);
+ BOOST_ASSERT(r<rows);
+ BOOST_ASSERT(c>=0);
+ BOOST_ASSERT(c<cols);
+ return m.a[r][c];
+ }
+
+ static
+ inline
+ scalar_type
+ ir( int r, int c, my_stuff::mat1 const & m )
+ {
+ BOOST_ASSERT(r>=0);
+ BOOST_ASSERT(r<rows);
+ BOOST_ASSERT(c>=0);
+ BOOST_ASSERT(c<cols);
+ return m.a[r][c];
+ }
+ };
+
+ template <>
+ struct
+ vector_traits<my_stuff::vec1>
+ {
+ static int const dim=3;
+ typedef float scalar_type;
+
+ template <int I>
+ static
+ scalar_type &
+ w( my_stuff::vec1 & m )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ return m.a[I];
+ }
+
+ template <int I>
+ static
+ scalar_type
+ r( my_stuff::vec1 const & m )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ return m.a[I];
+ }
+
+ static
+ inline
+ scalar_type &
+ iw( int i, my_stuff::vec1 & m )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<dim);
+ return m.a[i];
+ }
+
+ static
+ inline
+ scalar_type
+ ir( int i, my_stuff::vec1 const & m )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<dim);
+ return m.a[i];
+ }
+ };
+ }
+ }
+
+namespace
+my_stuff
+ {
+ mat1 &
+ operator/=( mat1 & x, float y )
+ {
+ return boost::la::operator/=(x,y);
+ }
+
+ vec1 &
+ operator/=( vec1 & x, float y )
+ {
+ return boost::la::operator/=(x,y);
+ }
+
+ mat1 &
+ operator*=( mat1 & x, float y )
+ {
+ return boost::la::operator*=(x,y);
+ }
+
+ vec1 &
+ operator*=( vec1 & x, float y )
+ {
+ return boost::la::operator*=(x,y);
+ }
+
+ mat1
+ operator/( mat1 const & x, float y )
+ {
+ return boost::la::operator/(x,y);
+ }
+
+ vec1
+ operator/( vec1 const & x, float y )
+ {
+ return boost::la::operator/(x,y);
+ }
+
+ mat1
+ operator*( mat1 const & x, float y )
+ {
+ return boost::la::operator*(x,y);
+ }
+
+ vec1
+ operator*( vec1 const & x, float y )
+ {
+ return boost::la::operator*(x,y);
+ }
+
+ mat1 &
+ operator*=( mat1 & x, mat1 const & y )
+ {
+ return boost::la::operator*=(x,y);
+ }
+
+ mat1
+ operator*=( mat1 const & x, mat1 const & y )
+ {
+ return boost::la::operator*(x,y);
+ }
+
+ vec1
+ operator*( mat1 const & x, vec1 const & y )
+ {
+ return boost::la::operator*(x,y);
+ }
+
+ vec1
+ operator*( vec1 const & x, mat1 const & y )
+ {
+ return boost::la::operator*(x,y);
+ }
+
+ bool
+ operator==( mat1 const & x, mat1 const & y )
+ {
+ return boost::la::operator==(x,y);
+ }
+
+ bool
+ operator!=( mat1 const & x, mat1 const & y )
+ {
+ return boost::la::operator!=(x,y);
+ }
+
+ bool
+ operator==( vec1 const & x, vec1 const & y )
+ {
+ return boost::la::operator==(x,y);
+ }
+
+ bool
+ operator!=( vec1 const & x, vec1 const & y )
+ {
+ return boost::la::operator!=(x,y);
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ using namespace my_stuff;
+ typedef mat<double,3,3> mat2;
+ typedef vec<double,3> vec2;
+
+ mat1 ma1,mb1;
+ vec1 va1, vb1;
+ mat2 ma2, mb2;
+ vec2 va2, vb2;
+
+ ma1/=2;
+ va1/=2;
+ ma2/=2;
+ va2/=2;
+
+ ma1*=2;
+ va1*=2;
+ ma2*=2;
+ va2*=2;
+
+ mb1=ma1/2;
+ vb1=va1/2;
+ mb2=make<mat2>(ma1/2);
+ vb2=make<vec2>(va1/2);
+ mb1=scalar_cast<float>(ma2/2);
+ vb1=scalar_cast<float>(va2/2);
+
+ mb1=ma1*2;
+ vb1=va1*2;
+ mb2=make<mat2>(ma1*2);
+ vb2=make<vec2>(va1*2);
+ mb1=scalar_cast<float>(ma2*2);
+ vb1=scalar_cast<float>(va2*2);
+
+ ma1*=mb1;
+ ma1*=scalar_cast<float>(ma2);
+ ma2*=ma1;
+
+ va1=ma1*va1;
+ va1=scalar_cast<float>(ma2*va1);
+ va1=scalar_cast<float>(ma1*va2);
+ va1=scalar_cast<float>(ma2*va2);
+
+ va2=make<vec2>(ma1*va1);
+ va2=ma2*va1;
+ va2=ma1*va2;
+ va2=ma2*va2;
+
+ va1=va1*ma1;
+ va1=scalar_cast<float>(va1*ma2);
+ va1=scalar_cast<float>(va2*ma1);
+ va1=scalar_cast<float>(va2*ma2);
+
+ va2=make<vec2>(va1*ma1);
+ va2=va1*ma2;
+ va2=va2*ma1;
+ va2=va2*ma2;
+
+ ma1==mb1;
+ ma1==ma2;
+ ma2==ma1;
+
+ ma1!=mb1;
+ ma1!=ma2;
+ ma2!=ma1;
+
+ va1==vb1;
+ va1==va2;
+ va2==va1;
+
+ va1!=vb1;
+ va1!=va2;
+ va2!=va1;
+
+ return 0;
+ }
Added: sandbox/la/libs/la/test/make_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/make_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_make.hpp>
+#include <boost/la/vector_make.hpp>
+#include <boost/la/array_matrix_traits.hpp>
+#include <boost/la/array_vector_traits.hpp>
+#include "test_la_matrix.hpp"
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Rows,int Cols>
+ void
+ test_matrix()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> const x(42,1);
+ test_la::matrix<M2,Rows,Cols> const y=make< test_la::matrix<M2,Rows,Cols> >(x);
+ BOOST_TEST_LA_EQ(x.a,y.a);
+ }
+
+ template <int Dim>
+ void
+ test_vector()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> const x(42,1);
+ test_la::vector<V2,Dim> const y=make< test_la::vector<V2,Dim> >(x);
+ BOOST_TEST_LA_EQ(x.a,y.a);
+ }
+ }
+
+int
+main()
+ {
+ test_matrix<1,2>();
+ test_matrix<2,1>();
+ test_matrix<2,2>();
+ test_matrix<1,3>();
+ test_matrix<3,1>();
+ test_matrix<3,3>();
+ test_matrix<1,4>();
+ test_matrix<4,1>();
+ test_matrix<4,4>();
+ test_matrix<1,5>();
+ test_matrix<5,1>();
+ test_matrix<5,5>();
+ test_vector<2>();
+ test_vector<3>();
+ test_vector<4>();
+ test_vector<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_access_fail1.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_access_fail1.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,36 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_access.hpp>
+
+template <int R,int C> struct mat { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int R,int C>
+ struct
+ matrix_traits< mat<R,C> >
+ {
+ typedef int scalar_type;
+ static int const rows=R;
+ static int const cols=C;
+ template <int Row,int Col> static int r( mat<R,C> const & );
+ template <int Row,int Col> static int & w( mat<R,C> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ mat<1,1> const m;
+ m|A11;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/matrix_access_fail2.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_access_fail2.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,36 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_access.hpp>
+
+template <int R,int C> struct mat { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int R,int C>
+ struct
+ matrix_traits< mat<R,C> >
+ {
+ typedef int scalar_type;
+ static int const rows=R;
+ static int const cols=C;
+ template <int Row,int Col> static int r( mat<R,C> const & );
+ template <int Row,int Col> static int & w( mat<R,C> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ mat<1,1> m;
+ m|A11;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/matrix_access_fail3.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_access_fail3.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,36 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_access.hpp>
+
+template <int R,int C> struct mat { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int R,int C>
+ struct
+ matrix_traits< mat<R,C> >
+ {
+ typedef int scalar_type;
+ static int const rows=R;
+ static int const cols=C;
+ template <int Row,int Col> static int r( mat<R,C> const & );
+ template <int Row,int Col> static int & w( mat<R,C> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ mat<1,1> const m;
+ m|A11();
+ return 1;
+ }
Added: sandbox/la/libs/la/test/matrix_access_fail4.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_access_fail4.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,36 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_access.hpp>
+
+template <int R,int C> struct mat { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int R,int C>
+ struct
+ matrix_traits< mat<R,C> >
+ {
+ typedef int scalar_type;
+ static int const rows=R;
+ static int const cols=C;
+ template <int Row,int Col> static int r( mat<R,C> const & );
+ template <int Row,int Col> static int & w( mat<R,C> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ mat<1,1> m;
+ m|A11();
+ return 1;
+ }
Added: sandbox/la/libs/la/test/matrix_access_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_access_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,158 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_access.hpp>
+#include "test_la_matrix.hpp"
+
+template <class T,class U> struct same_type;
+template <class T> struct same_type<T,T> { };
+
+template <class T,class U>
+void
+check_type( U x )
+ {
+ same_type<T,U>();
+ }
+
+template <int R,int C>
+void
+check_idx( boost::la::la_detail::matrix_access_tag<R,C> (*f)() )
+ {
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+
+ test_la::matrix<M1,2,2> m;
+ m.a[0][0]=42.0f;
+ m.a[0][1]=43.0f;
+ m.a[1][0]=44.0f;
+ m.a[1][1]=45.0f;
+ BOOST_TEST_EQ(m|A00,m.a[0][0]);
+ BOOST_TEST_EQ(m|A01,m.a[0][1]);
+ BOOST_TEST_EQ(m|A10,m.a[1][0]);
+ BOOST_TEST_EQ(m|A11,m.a[1][1]);
+ test_la::matrix<M1,2,2> m1=m;
+ m|A00 *= 2;
+ BOOST_TEST_EQ(m.a[0][0],m1.a[0][0]*2);
+ m|A01 *= 2;
+ BOOST_TEST_EQ(m.a[0][1],m1.a[0][1]*2);
+ m|A10 *= 2;
+ BOOST_TEST_EQ(m.a[1][0],m1.a[1][0]*2);
+ m|A11 *= 2;
+ BOOST_TEST_EQ(m.a[1][1],m1.a[1][1]*2);
+
+ check_type<float>(m|A00);
+ check_type<float>(static_cast<test_la::matrix<M1,2,2> const &>(m)|A00);
+ check_type<float>(m|A00());
+ check_type<float>(static_cast<test_la::matrix<M1,2,2> const &>(m)|A00());
+
+#define CHECK_A(i,j) check_idx<i,j>(A##i##j); check_idx<i,j>(A<i,j>)
+ CHECK_A(0,0);
+ CHECK_A(0,1);
+ CHECK_A(0,2);
+ CHECK_A(0,3);
+ CHECK_A(0,4);
+ CHECK_A(0,5);
+ CHECK_A(0,6);
+ CHECK_A(0,7);
+ CHECK_A(0,8);
+ CHECK_A(0,9);
+ CHECK_A(1,0);
+ CHECK_A(1,1);
+ CHECK_A(1,2);
+ CHECK_A(1,3);
+ CHECK_A(1,4);
+ CHECK_A(1,5);
+ CHECK_A(1,6);
+ CHECK_A(1,7);
+ CHECK_A(1,8);
+ CHECK_A(1,9);
+ CHECK_A(2,0);
+ CHECK_A(2,1);
+ CHECK_A(2,2);
+ CHECK_A(2,3);
+ CHECK_A(2,4);
+ CHECK_A(2,5);
+ CHECK_A(2,6);
+ CHECK_A(2,7);
+ CHECK_A(2,8);
+ CHECK_A(2,9);
+ CHECK_A(3,0);
+ CHECK_A(3,1);
+ CHECK_A(3,2);
+ CHECK_A(3,3);
+ CHECK_A(3,4);
+ CHECK_A(3,5);
+ CHECK_A(3,6);
+ CHECK_A(3,7);
+ CHECK_A(3,8);
+ CHECK_A(3,9);
+ CHECK_A(4,0);
+ CHECK_A(4,1);
+ CHECK_A(4,2);
+ CHECK_A(4,3);
+ CHECK_A(4,4);
+ CHECK_A(4,5);
+ CHECK_A(4,6);
+ CHECK_A(4,7);
+ CHECK_A(4,8);
+ CHECK_A(4,9);
+ CHECK_A(5,0);
+ CHECK_A(5,1);
+ CHECK_A(5,2);
+ CHECK_A(5,3);
+ CHECK_A(5,4);
+ CHECK_A(5,5);
+ CHECK_A(5,6);
+ CHECK_A(5,7);
+ CHECK_A(5,8);
+ CHECK_A(5,9);
+ CHECK_A(6,0);
+ CHECK_A(6,1);
+ CHECK_A(6,2);
+ CHECK_A(6,3);
+ CHECK_A(6,4);
+ CHECK_A(6,5);
+ CHECK_A(6,6);
+ CHECK_A(6,7);
+ CHECK_A(6,8);
+ CHECK_A(6,9);
+ CHECK_A(7,0);
+ CHECK_A(7,1);
+ CHECK_A(7,2);
+ CHECK_A(7,3);
+ CHECK_A(7,4);
+ CHECK_A(7,5);
+ CHECK_A(7,6);
+ CHECK_A(7,7);
+ CHECK_A(7,8);
+ CHECK_A(7,9);
+ CHECK_A(8,0);
+ CHECK_A(8,1);
+ CHECK_A(8,2);
+ CHECK_A(8,3);
+ CHECK_A(8,4);
+ CHECK_A(8,5);
+ CHECK_A(8,6);
+ CHECK_A(8,7);
+ CHECK_A(8,8);
+ CHECK_A(8,9);
+ CHECK_A(9,0);
+ CHECK_A(9,1);
+ CHECK_A(9,2);
+ CHECK_A(9,3);
+ CHECK_A(9,4);
+ CHECK_A(9,5);
+ CHECK_A(9,6);
+ CHECK_A(9,7);
+ CHECK_A(9,8);
+ CHECK_A(9,9);
+#undef CHECK_A
+
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_assign_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_assign_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,41 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_assign.hpp>
+#include <boost/la/array_matrix_traits.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Rows,int Cols>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> const x(42,1);
+ test_la::init_m(x.b);
+ assign(x.b,x.a);
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ test<1,3>();
+ test<3,1>();
+ test<3,3>();
+ test<1,4>();
+ test<4,1>();
+ test<4,4>();
+ test<1,5>();
+ test<5,1>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_determinant_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_determinant_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,32 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_determinant.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int D>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,D,D> const x(42,1);
+ float gd=test_la::determinant(x.b);
+ float d=determinant(x);
+ BOOST_TEST_LA_EQ(gd,d);
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_div_eq_scalar_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_div_eq_scalar_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,40 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_div_eq_scalar.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Rows,int Cols>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> x(42,1);
+ test_la::scalar_multiply_m(x.b,x.a,0.5f);
+ x/=2;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ test<1,3>();
+ test<3,1>();
+ test<3,3>();
+ test<1,4>();
+ test<4,1>();
+ test<4,4>();
+ test<1,5>();
+ test<5,1>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_div_scalar_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_div_scalar_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_div_scalar.hpp>
+#include <boost/la/mref.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <class T,class U> struct same_type_tester;
+ template <class T> struct same_type_tester<T,T> { };
+ template <class T,class U> void test_same_type( T, U ) { same_type_tester<T,U>(); }
+
+ template <int Rows,int Cols>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> const x(42,1);
+ test_la::scalar_multiply_m(x.b,x.a,0.5f);
+ test_same_type(x,x/2);
+ {
+ test_la::matrix<M1,Rows,Cols> y=x/2;
+ BOOST_TEST_LA_EQ(x.b,y.a);
+ }
+ {
+ test_la::matrix<M1,Rows,Cols> y=mref(x)/2;
+ BOOST_TEST_LA_EQ(x.b,y.a);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ test<1,3>();
+ test<3,1>();
+ test<3,3>();
+ test<1,4>();
+ test<4,1>();
+ test<4,4>();
+ test<1,5>();
+ test<5,1>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_eq_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_eq_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,54 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_eq_matrix.hpp>
+#include <boost/la/matrix_neq_matrix.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Rows,int Cols>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> const x(42,1);
+ for( int i=0; i!=Rows; ++i )
+ for( int j=0; j!=Cols; ++j )
+ {
+ {
+ test_la::matrix<M1,Rows,Cols> y(x);
+ BOOST_TEST_LA_EQ(x,y);
+ y.a[i][j]=0;
+ BOOST_TEST_LA_NEQ(x,y);
+ }
+ {
+ test_la::matrix<M2,Rows,Cols> y; assign(y,x);
+ BOOST_TEST_LA_EQ(x,y);
+ y.a[i][j]=0;
+ BOOST_TEST_LA_NEQ(x,y);
+ }
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ test<1,3>();
+ test<3,1>();
+ test<3,3>();
+ test<1,4>();
+ test<4,1>();
+ test<4,4>();
+ test<1,5>();
+ test<5,1>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_inverse_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_inverse_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_inverse.hpp>
+#include <boost/la/mref.hpp>
+#include <boost/exception/diagnostic_information.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <class T,class U> struct same_type_tester;
+ template <class T> struct same_type_tester<T,T> { };
+ template <class T,class U> void test_same_type( T, U ) { same_type_tester<T,U>(); }
+
+ template <int D>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,D,D> x;
+ test_la::rotation_z(x.a,42.0f);
+ test_la::inverse(x.b,x.a);
+ test_same_type(x,inverse(x));
+ {
+ test_la::matrix<M1,D,D> y=inverse(x);
+ BOOST_TEST_LA_CLOSE(x.b,y.a,0.000001f);
+ }
+ {
+ test_la::matrix<M1,D,D> y=inverse(mref(x));
+ BOOST_TEST_LA_CLOSE(x.b,y.a,0.000001f);
+ }
+ }
+ }
+
+int
+main()
+ {
+ try
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
+ catch(
+ ... )
+ {
+ std::cerr << "Uncaught exception:\n" << boost::current_exception_diagnostic_information();
+ return 1;
+ }
+ }
Added: sandbox/la/libs/la/test/matrix_minus_eq_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_minus_eq_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_minus_eq_matrix.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Rows,int Cols>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> x(42,2);
+ {
+ test_la::matrix<M1,Rows,Cols> const y(42,1);
+ test_la::subtract_m(x.b,x.a,y.a);
+ x-=y;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ {
+ test_la::matrix<M2,Rows,Cols> const y(42,1);
+ test_la::subtract_m(x.b,x.a,y.a);
+ x-=y;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ test<1,3>();
+ test<3,1>();
+ test<3,3>();
+ test<1,4>();
+ test<4,1>();
+ test<4,4>();
+ test<1,5>();
+ test<5,1>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_minus_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_minus_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,61 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_minus_matrix.hpp>
+#include <boost/la/mref.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <class T,class U> struct same_type_tester;
+ template <class T> struct same_type_tester<T,T> { };
+ template <class T,class U> void test_same_type( T, U ) { same_type_tester<T,U>(); }
+
+ template <int Rows,int Cols>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> const x(42,2);
+ {
+ test_la::matrix<M1,Rows,Cols> const y(42,1);
+ test_same_type(x,x-y);
+ test_la::matrix<M1,Rows,Cols> r=x-y;
+ test_la::subtract_m(r.b,x.b,y.b);
+ BOOST_TEST_LA_EQ(r.a,r.b);
+ }
+ {
+ test_la::matrix<M1,Rows,Cols> const y(42,1);
+ test_la::matrix<M2,Rows,Cols> r=mref(x)-y;
+ test_la::subtract_m(r.b,x.b,y.b);
+ BOOST_TEST_LA_EQ(r.a,r.b);
+ }
+ {
+ test_la::matrix<M1,Rows,Cols> const y(42,1);
+ test_la::matrix<M2,Rows,Cols> r=x-mref(y);
+ test_la::subtract_m(r.b,x.b,y.b);
+ BOOST_TEST_LA_EQ(r.a,r.b);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ test<1,3>();
+ test<3,1>();
+ test<3,3>();
+ test<1,4>();
+ test<4,1>();
+ test<4,4>();
+ test<1,5>();
+ test<5,1>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_minus_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_minus_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_minus.hpp>
+#include <boost/la/mref.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <class T,class U> struct same_type_tester;
+ template <class T> struct same_type_tester<T,T> { };
+ template <class T,class U> void test_same_type( T, U ) { same_type_tester<T,U>(); }
+
+ template <int Rows,int Cols>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> const x(42,1);
+ test_la::scalar_multiply_m(x.b,x.a,-1.0f);
+ test_same_type(x,-x);
+ {
+ test_la::matrix<M1,Rows,Cols> y=-x;
+ BOOST_TEST_LA_EQ(x.b,y.a);
+ }
+ {
+ test_la::matrix<M1,Rows,Cols> y=-mref(x);
+ BOOST_TEST_LA_EQ(x.b,y.a);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ test<1,3>();
+ test<3,1>();
+ test<3,3>();
+ test<1,4>();
+ test<4,1>();
+ test<4,4>();
+ test<1,5>();
+ test<5,1>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_mul_eq_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_mul_eq_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,42 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_mul_eq_matrix.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ {
+ test_la::matrix<M1,Dim,Dim> x(42,1);
+ test_la::matrix<M1,Dim,Dim> const y(42,2);
+ test_la::multiply_m(x.b,x.a,y.a);
+ x *= y;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ {
+ test_la::matrix<M1,Dim,Dim> x(42,1);
+ test_la::matrix<M2,Dim,Dim> const y(42,2);
+ test_la::multiply_m(x.b,x.a,y.a);
+ x *= y;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_mul_eq_scalar_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_mul_eq_scalar_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,40 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_mul_eq_scalar.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Rows,int Cols>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> x(42,1);
+ test_la::scalar_multiply_m(x.b,x.a,2.0f);
+ x*=2;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ test<1,3>();
+ test<3,1>();
+ test<3,3>();
+ test<1,4>();
+ test<4,1>();
+ test<4,4>();
+ test<1,5>();
+ test<5,1>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_mul_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_mul_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_mul_matrix.hpp>
+#include <boost/la/mref.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int M,int N,int P>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,M,N> const x(42,1);
+ test_la::matrix<M2,N,P> const y(42,1);
+ {
+ test_la::matrix<M3,M,P> r=x*y;
+ test_la::multiply_m(r.b,x.b,y.b);
+ BOOST_TEST_LA_CLOSE(r.a,r.b,0.0000001f);
+ }
+ {
+ test_la::matrix<M3,M,P> r=mref(x)*y;
+ test_la::multiply_m(r.b,x.b,y.b);
+ BOOST_TEST_LA_CLOSE(r.a,r.b,0.0000001f);
+ }
+ {
+ test_la::matrix<M3,M,P> r=x*mref(y);
+ test_la::multiply_m(r.b,x.b,y.b);
+ BOOST_TEST_LA_CLOSE(r.a,r.b,0.0000001f);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<1,2,2>();
+ test<2,2,1>();
+ test<2,2,2>();
+ test<1,3,3>();
+ test<3,3,1>();
+ test<3,3,3>();
+ test<1,4,4>();
+ test<4,4,1>();
+ test<4,4,4>();
+ test<1,5,5>();
+ test<5,5,1>();
+ test<5,5,5>();
+ test<2,3,4>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_mul_scalar_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_mul_scalar_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,52 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_mul_scalar.hpp>
+#include <boost/la/mref.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <class T,class U> struct same_type_tester;
+ template <class T> struct same_type_tester<T,T> { };
+ template <class T,class U> void test_same_type( T, U ) { same_type_tester<T,U>(); }
+
+ template <int Rows,int Cols>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> const x(42,1);
+ test_la::scalar_multiply_m(x.b,x.a,2.0f);
+ test_same_type(x,x*2);
+ {
+ test_la::matrix<M1,Rows,Cols> y=x*2;
+ BOOST_TEST_LA_EQ(x.b,y.a);
+ }
+ {
+ test_la::matrix<M1,Rows,Cols> y=mref(x)*2;
+ BOOST_TEST_LA_EQ(x.b,y.a);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ test<1,3>();
+ test<3,1>();
+ test<3,3>();
+ test<1,4>();
+ test<4,1>();
+ test<4,4>();
+ test<1,5>();
+ test<5,1>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_mul_vector_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_mul_vector_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_mul_vector.hpp>
+#include <boost/la/mref.hpp>
+#include <boost/la/vref.hpp>
+#include "test_la_matrix.hpp"
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int M,int N>
+ void
+ test()
+ {
+ using namespace boost::la;
+ using namespace boost::la;
+ test_la::matrix<M1,M,N> const x(42,1);
+ test_la::vector<V1,N> const y(42,1);
+ {
+ test_la::vector<V2,M> r=x*y;
+ test_la::multiply_mv(r.b,x.b,y.b);
+ BOOST_TEST_LA_CLOSE(r.a,r.b,0.0000001f);
+ }
+ {
+ test_la::vector<V2,M> r=mref(x)*y;
+ test_la::multiply_mv(r.b,x.b,y.b);
+ BOOST_TEST_LA_CLOSE(r.a,r.b,0.0000001f);
+ }
+ {
+ test_la::vector<V2,M> r=x*vref(y);
+ test_la::multiply_mv(r.b,x.b,y.b);
+ BOOST_TEST_LA_CLOSE(r.a,r.b,0.0000001f);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ test<1,3>();
+ test<3,1>();
+ test<3,3>();
+ test<1,4>();
+ test<4,1>();
+ test<4,4>();
+ test<1,5>();
+ test<5,1>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_plus_eq_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_plus_eq_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,49 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_plus_eq_matrix.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Rows,int Cols>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> x(42,2);
+ {
+ test_la::matrix<M1,Rows,Cols> const y(42,1);
+ test_la::add_m(x.b,x.a,y.a);
+ x+=y;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ {
+ test_la::matrix<M2,Rows,Cols> const y(42,1);
+ test_la::add_m(x.b,x.a,y.a);
+ x+=y;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ test<1,3>();
+ test<3,1>();
+ test<3,3>();
+ test<1,4>();
+ test<4,1>();
+ test<4,4>();
+ test<1,5>();
+ test<5,1>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_plus_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_plus_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,61 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_plus_matrix.hpp>
+#include <boost/la/mref.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <class T,class U> struct same_type_tester;
+ template <class T> struct same_type_tester<T,T> { };
+ template <class T,class U> void test_same_type( T, U ) { same_type_tester<T,U>(); }
+
+ template <int Rows,int Cols>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> const x(42,2);
+ {
+ test_la::matrix<M1,Rows,Cols> const y(42,1);
+ test_same_type(x,x+y);
+ test_la::matrix<M1,Rows,Cols> r=x+y;
+ test_la::add_m(r.b,x.b,y.b);
+ BOOST_TEST_LA_EQ(r.a,r.b);
+ }
+ {
+ test_la::matrix<M1,Rows,Cols> const y(42,1);
+ test_la::matrix<M2,Rows,Cols> r=mref(x)+y;
+ test_la::add_m(r.b,x.b,y.b);
+ BOOST_TEST_LA_EQ(r.a,r.b);
+ }
+ {
+ test_la::matrix<M1,Rows,Cols> const y(42,1);
+ test_la::matrix<M2,Rows,Cols> r=x+mref(y);
+ test_la::add_m(r.b,x.b,y.b);
+ BOOST_TEST_LA_EQ(r.a,r.b);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ test<1,3>();
+ test<3,1>();
+ test<3,3>();
+ test<1,4>();
+ test<4,1>();
+ test<4,4>();
+ test<1,5>();
+ test<5,1>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/matrix_scalar_cast_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/matrix_scalar_cast_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/matrix_scalar_cast.hpp>
+#include <boost/la/matrix_assign.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Rows,int Cols>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols,double> x(42,1);
+ test_la::matrix<M1,Rows,Cols,float> y;
+ assign(y,scalar_cast<float>(x));
+ for( int i=0; i!=Rows; ++i )
+ for( int j=0; j!=Cols; ++j )
+ y.b[i][j]=static_cast<float>(x.a[i][j]);
+ BOOST_TEST_LA_EQ(y.a,y.b);
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/rotx_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/rotx_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,33 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/rotx_matrix.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int D>
+ void
+ test()
+ {
+ using namespace boost::la;
+ for( float r=0; r<6.28f; r+=0.5f )
+ {
+ test_la::matrix<M1,D,D> x=rotx_matrix<D>(r);
+ test_la::rotation_x(x.b,r);
+ BOOST_TEST_LA_CLOSE(x.a,x.b,0.000001f);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/roty_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/roty_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,33 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/roty_matrix.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int D>
+ void
+ test()
+ {
+ using namespace boost::la;
+ for( float r=0; r<6.28f; r+=0.5f )
+ {
+ test_la::matrix<M1,D,D> x=roty_matrix<D>(r);
+ test_la::rotation_y(x.b,r);
+ BOOST_TEST_LA_CLOSE(x.a,x.b,0.000001f);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/rotz_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/rotz_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,34 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/rotz_matrix.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int D>
+ void
+ test()
+ {
+ using namespace boost::la;
+ for( float r=0; r<6.28f; r+=0.5f )
+ {
+ test_la::matrix<M1,D,D> x=rotz_matrix<D>(r);
+ test_la::rotation_z(x.b,r);
+ BOOST_TEST_LA_CLOSE(x.a,x.b,0.000001f);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/row_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/row_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,40 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/row_matrix.hpp>
+#include <boost/la/row.hpp>
+#include <boost/la/vector_mul_eq_scalar.hpp>
+#include <boost/la/array_matrix_traits.hpp>
+#include <boost/la/array_vector_traits.hpp>
+#include <boost/la/matrix_assign.hpp>
+#include <boost/la/vector_assign.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> x(42,1);
+ float y[1][Dim]; assign(y,x|row_matrix);
+ BOOST_TEST_LA_EQ(x.a,y[0]);
+ test_la::scalar_multiply_v(x.b,x.a,2.0f);
+ x|row_matrix|row<0>() *= 2;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/row_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/row_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,117 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/row.hpp>
+#include <boost/la/vector_mul_eq_scalar.hpp>
+#include <boost/la/array_matrix_traits.hpp>
+#include <boost/la/array_vector_traits.hpp>
+#include <boost/la/matrix_assign.hpp>
+#include <boost/la/vector_assign.hpp>
+#include "test_la.hpp"
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Rows,int Cols,int Row>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> x(42,1);
+ float r1[Cols];
+ for( int i=0; i!=Cols; ++i )
+ r1[i]=x.a[Row][i];
+ float r2[Cols];
+ assign(r2,x|row<Row>());
+ BOOST_TEST_LA_EQ(r1,r2);
+ x|row<Row>() *= 2;
+ for( int i=0; i!=Cols; ++i )
+ r1[i]=x.a[Row][i];
+ assign(r2,x|row<Row>());
+ BOOST_TEST_LA_EQ(r1,r2);
+ }
+ }
+
+int
+main()
+ {
+ test<2,1,0>();
+ test<2,1,1>();
+ test<3,1,0>();
+ test<3,1,1>();
+ test<3,1,2>();
+ test<4,1,0>();
+ test<4,1,1>();
+ test<4,1,2>();
+ test<4,1,3>();
+ test<5,1,0>();
+ test<5,1,1>();
+ test<5,1,2>();
+ test<5,1,3>();
+ test<5,1,4>();
+
+ test<2,2,0>();
+ test<2,2,1>();
+ test<3,2,0>();
+ test<3,2,1>();
+ test<3,2,2>();
+ test<4,2,0>();
+ test<4,2,1>();
+ test<4,2,2>();
+ test<4,2,3>();
+ test<5,2,0>();
+ test<5,2,1>();
+ test<5,2,2>();
+ test<5,2,3>();
+ test<5,2,4>();
+
+ test<2,3,0>();
+ test<2,3,1>();
+ test<3,3,0>();
+ test<3,3,1>();
+ test<3,3,2>();
+ test<4,3,0>();
+ test<4,3,1>();
+ test<4,3,2>();
+ test<4,3,3>();
+ test<5,3,0>();
+ test<5,3,1>();
+ test<5,3,2>();
+ test<5,3,3>();
+ test<5,3,4>();
+
+ test<2,4,0>();
+ test<2,4,1>();
+ test<3,4,0>();
+ test<3,4,1>();
+ test<3,4,2>();
+ test<4,4,0>();
+ test<4,4,1>();
+ test<4,4,2>();
+ test<4,4,3>();
+ test<5,4,0>();
+ test<5,4,1>();
+ test<5,4,2>();
+ test<5,4,3>();
+ test<5,4,4>();
+
+ test<2,5,0>();
+ test<2,5,1>();
+ test<3,5,0>();
+ test<3,5,1>();
+ test<3,5,2>();
+ test<4,5,0>();
+ test<4,5,1>();
+ test<4,5,2>();
+ test<4,5,3>();
+ test<5,5,0>();
+ test<5,5,1>();
+ test<5,5,2>();
+ test<5,5,3>();
+ test<5,5,4>();
+
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/swizzle1_fail2.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle1_fail2.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_1.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<1>()|Y;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/swizzle1_fail3.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle1_fail3.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_1.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<2>()|Z;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/swizzle1_fail4.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle1_fail4.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_1.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<3>()|W;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/swizzle1_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle1_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,47 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_1.hpp>
+#include "test_la_vector.hpp"
+
+template <class T,class U> struct same_type;
+template <class T> struct same_type<T,T> { };
+
+template <class T,class U>
+void
+check_type( U x )
+ {
+ same_type<T,U>();
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,4> v;
+ v.el[0]=42.0f;
+ v.el[1]=43.0f;
+ v.el[2]=44.0f;
+ v.el[3]=45.0f;
+ BOOST_TEST_EQ(v|X,v.el[0]);
+ BOOST_TEST_EQ(v|Y,v.el[1]);
+ BOOST_TEST_EQ(v|Z,v.el[2]);
+ BOOST_TEST_EQ(v|W,v.el[3]);
+ check_type<float>(v|X);
+ check_type<float>(v|Y);
+ check_type<float>(v|Z);
+ check_type<float>(v|W);
+ test_la::vector<V1,4> v1=v;
+ v|X *= 2;
+ BOOST_TEST_EQ(v.el[0],v1.el[0]*2);
+ v|Y *= 2;
+ BOOST_TEST_EQ(v.el[1],v1.el[1]*2);
+ v|Z *= 2;
+ BOOST_TEST_EQ(v.el[2],v1.el[2]*2);
+ v|W *= 2;
+ BOOST_TEST_EQ(v.el[3],v1.el[3]*2);
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/swizzle2_fail2.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle2_fail2.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_2.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<1>()|XY;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/swizzle2_fail3.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle2_fail3.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_2.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<2>()|XZ;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/swizzle2_fail4.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle2_fail4.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_2.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<3>()|XW;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/swizzle2_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle2_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,71 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_2.hpp>
+#include <boost/la/custom/vector_eq_vector_2.hpp>
+#include <boost/la/custom/vector_mul_eq_scalar_2.hpp>
+#include "test_la_vector.hpp"
+
+int
+main()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,4> v1;
+ v1.a[0]=42.0f;
+ v1.a[1]=43.0f;
+ v1.a[2]=44.0f;
+ v1.a[3]=45.0f;
+ {
+ test_la::vector<V2,2> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[0];
+ test_la::vector<V2,2> v2=v1|XX;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,2> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[1];
+ test_la::vector<V2,2> v2=v1|XY;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,2> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[2];
+ test_la::vector<V2,2> v2=v1|XZ;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,2> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[3];
+ test_la::vector<V2,2> v2=v1|XW;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,2> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=0;
+ test_la::vector<V2,2> v2=v1|X0;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,2> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=1;
+ test_la::vector<V2,2> v2=v1|X1;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,2> v2=v1|XY;
+ v1|XY *= 2;
+ v2 *= 2;
+ test_la::vector<V2,2> v3=v1|XY;
+ BOOST_TEST_LA_EQ(v2,v3);
+ }
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/swizzle3_fail2.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle3_fail2.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_3.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<1>()|XXY;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/swizzle3_fail3.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle3_fail3.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_3.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<2>()|XXZ;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/swizzle3_fail4.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle3_fail4.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_3.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<3>()|XXW;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/swizzle3_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle3_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,77 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_3.hpp>
+#include <boost/la/custom/vector_eq_vector_3.hpp>
+#include <boost/la/custom/vector_mul_eq_scalar_3.hpp>
+#include "test_la_vector.hpp"
+
+int
+main()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,4> v1;
+ v1.a[0]=42.0f;
+ v1.a[1]=43.0f;
+ v1.a[2]=44.0f;
+ v1.a[3]=45.0f;
+ {
+ test_la::vector<V2,3> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[0];
+ r.a[2]=v1.a[0];
+ test_la::vector<V2,3> v2=v1|XXX;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,3> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[0];
+ r.a[2]=v1.a[1];
+ test_la::vector<V2,3> v2=v1|XXY;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,3> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[0];
+ r.a[2]=v1.a[2];
+ test_la::vector<V2,3> v2=v1|XXZ;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,3> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[0];
+ r.a[2]=v1.a[3];
+ test_la::vector<V2,3> v2=v1|XXW;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,3> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[0];
+ r.a[2]=0;
+ test_la::vector<V2,3> v2=v1|XX0;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,3> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[0];
+ r.a[2]=1;
+ test_la::vector<V2,3> v2=v1|XX1;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,3> v2=v1|XYZ;
+ v1|XYZ *= 2;
+ v2 *= 2;
+ test_la::vector<V2,3> v3=v1|XYZ;
+ BOOST_TEST_LA_EQ(v2,v3);
+ }
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/swizzle4_fail2.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle4_fail2.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_4.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<1>()|XXXY;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/swizzle4_fail3.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle4_fail3.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_4.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<2>()|XXXZ;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/swizzle4_fail4.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle4_fail4.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_4.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<3>()|XXXW;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/swizzle4_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/swizzle4_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,83 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/sw.hpp>
+#include <boost/la/custom/swizzle_4.hpp>
+#include <boost/la/custom/vector_eq_vector_4.hpp>
+#include <boost/la/custom/vector_mul_eq_scalar_4.hpp>
+#include "test_la_vector.hpp"
+
+int
+main()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,4> v1;
+ v1.a[0]=42.0f;
+ v1.a[1]=43.0f;
+ v1.a[2]=44.0f;
+ v1.a[3]=45.0f;
+ {
+ test_la::vector<V2,4> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[0];
+ r.a[2]=v1.a[0];
+ r.a[3]=v1.a[0];
+ test_la::vector<V2,4> v2=v1|XXXX;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,4> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[0];
+ r.a[2]=v1.a[0];
+ r.a[3]=v1.a[1];
+ test_la::vector<V2,4> v2=v1|XXXY;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,4> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[0];
+ r.a[2]=v1.a[0];
+ r.a[3]=v1.a[2];
+ test_la::vector<V2,4> v2=v1|XXXZ;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,4> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[0];
+ r.a[2]=v1.a[0];
+ r.a[3]=v1.a[3];
+ test_la::vector<V2,4> v2=v1|XXXW;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,4> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[0];
+ r.a[2]=v1.a[0];
+ r.a[3]=0;
+ test_la::vector<V2,4> v2=v1|XXX0;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,4> r;
+ r.a[0]=v1.a[0];
+ r.a[1]=v1.a[0];
+ r.a[2]=v1.a[0];
+ r.a[3]=1;
+ test_la::vector<V2,4> v2=v1|XXX1;
+ BOOST_TEST_LA_EQ(v2,r);
+ }
+ {
+ test_la::vector<V2,4> v2=v1|XYZW;
+ v1|XYZW *= 2;
+ v2 *= 2;
+ test_la::vector<V2,4> v3=v1|XYZW;
+ BOOST_TEST_LA_EQ(v2,v3);
+ }
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/test_la.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/test_la.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,190 @@
+//Copyright (c) 2008-2009 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 UUID_06E5D36EB6C211DEA317E19C55D89593
+#define UUID_06E5D36EB6C211DEA317E19C55D89593
+
+#include <boost/test/floating_point_comparison.hpp>
+#include <boost/detail/lightweight_test.hpp>
+#include <iostream>
+
+#define BOOST_TEST_LA_CLOSE(expra,exprb,exprt) ( ::test_la::detail::test_close_impl(#expra, #exprb, #exprt, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expra, exprb, exprt) )
+#define BOOST_TEST_LA_EQ(expra,exprb) ( ::test_la::detail::test_eq_impl(#expra, #exprb, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expra, exprb) )
+#define BOOST_TEST_LA_NEQ(expra,exprb) ( ::test_la::detail::test_neq_impl(#expra, #exprb, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expra, exprb) )
+
+namespace
+test_la
+ {
+ namespace
+ detail
+ {
+ inline
+ bool
+ close_at_tolerance( float a, float b, float tolerance )
+ {
+ using namespace boost::test_tools;
+ return check_is_close(a,b,fraction_tolerance(tolerance));
+ }
+
+ inline
+ bool
+ close_at_tolerance( double a, double b, double tolerance )
+ {
+ using namespace boost::test_tools;
+ return check_is_close(a,b,fraction_tolerance(tolerance));
+ }
+
+ template <class A,class B>
+ void
+ dump_ab( A a, B b )
+ {
+ std::cerr << a << '\t' << b << std::endl;
+ }
+
+ template <class A,class B,int D>
+ void
+ dump_ab( A (&a)[D], B (&b)[D] )
+ {
+ for( int i=0; i!=D; ++i )
+ dump_ab(a[i],b[i]);
+ }
+
+ template <class A,class B>
+ void
+ test_eq_impl( char const * expra, char const * exprb, char const * file, int line, char const * function, A a, B b )
+ {
+ using namespace ::boost::la;
+ if( !(a==b) )
+ {
+ std::cerr << file << "(" << line << "): test '" << expra << "==" << exprb
+ << ")' failed in function '" << function << "'\n";
+ dump_ab(a,b);
+ ++::boost::detail::test_errors();
+ }
+ }
+
+ template <class A,class B,int M,int N>
+ void
+ test_eq_impl( char const * expra, char const * exprb, char const * file, int line, char const * function, A (&a)[M][N], B (&b)[M][N] )
+ {
+ using namespace ::boost::la;
+ for( int i=0; i<M; ++i )
+ for( int j=0; j<N; ++j )
+ if( !(a[i][j]==b[i][j]) )
+ {
+ std::cerr << file << "(" << line << "): test '" << expra << "==" << exprb
+ << ")' failed in function '" << function << "'\n";
+ dump_ab(a,b);
+ ++::boost::detail::test_errors();
+ return;
+ }
+ }
+
+ template <class A,class B,int D>
+ void
+ test_eq_impl( char const * expra, char const * exprb, char const * file, int line, char const * function, A (&a)[D], B (&b)[D] )
+ {
+ using namespace ::boost::la;
+ for( int i=0; i<D; ++i )
+ if( !(a[i]==b[i]) )
+ {
+ std::cerr << file << "(" << line << "): test '" << expra << "==" << exprb
+ << ")' failed in function '" << function << "'\n";
+ dump_ab(a,b);
+ ++::boost::detail::test_errors();
+ return;
+ }
+ }
+
+ template <class A,class B>
+ void
+ test_neq_impl( char const * expra, char const * exprb, char const * file, int line, char const * function, A a, B b )
+ {
+ using namespace ::boost::la;
+ if( !(a!=b) )
+ {
+ std::cerr << file << "(" << line << "): test '" << expra << "!=" << exprb
+ << ")' failed in function '" << function << "'\n";
+ dump_ab(a,b);
+ ++::boost::detail::test_errors();
+ }
+ }
+
+ template <class A,class B,int M,int N>
+ void
+ test_neq_impl( char const * expra, char const * exprb, char const * file, int line, char const * function, A (&a)[M][N], B (&b)[M][N] )
+ {
+ using namespace ::boost::la;
+ for( int i=0; i<M; ++i )
+ for( int j=0; j<N; ++j )
+ if( a[i][j]!=b[i][j] )
+ return;
+ std::cerr << file << "(" << line << "): test '" << expra << "!=" << exprb
+ << ")' failed in function '" << function << "'\n";
+ dump_ab(a,b);
+ ++::boost::detail::test_errors();
+ }
+
+ template <class A,class B,int D>
+ void
+ test_neq_impl( char const * expra, char const * exprb, char const * file, int line, char const * function, A (&a)[D], B (&b)[D] )
+ {
+ using namespace ::boost::la;
+ for( int i=0; i<D; ++i )
+ if( a[i]!=b[i] )
+ return;
+ std::cerr << file << "(" << line << "): test '" << expra << "!=" << exprb
+ << ")' failed in function '" << function << "'\n";
+ dump_ab(a,b);
+ ++::boost::detail::test_errors();
+ }
+
+ template <class A,class B,class T>
+ void
+ test_close_impl( char const * expra, char const * exprb, char const * exprt, char const * file, int line, char const * function, A a, B b, T t )
+ {
+ if( !close_at_tolerance(a,b,t) )
+ {
+ std::cerr << file << "(" << line << "): test 'close_at_tolerance(" << expra << ',' << b << ',' << t
+ << ")' failed in function '" << function << '\'' << std::endl;
+ ++::boost::detail::test_errors();
+ return;
+ }
+ }
+
+ template <class A,class B,class T,int M,int N>
+ void
+ test_close_impl( char const * expra, char const * exprb, char const * exprt, char const * file, int line, char const * function, A (&a)[M][N], B (&b)[M][N], T t )
+ {
+ for( int i=0; i<M; ++i )
+ for( int j=0; j<N; ++j )
+ if( !close_at_tolerance(a[i][j],b[i][j],t) )
+ {
+ std::cerr << file << "(" << line << "): test 'close_at_tolerance(" << expra << ',' << exprb << ',' << exprt
+ << ")' failed in function '" << function << "'\n";
+ dump_ab(a,b);
+ ++::boost::detail::test_errors();
+ return;
+ }
+ }
+
+ template <class A,class B,class T,int D>
+ void
+ test_close_impl( char const * expra, char const * exprb, char const * exprt, char const * file, int line, char const * function, A (&a)[D], B (&b)[D], T t )
+ {
+ for( int i=0; i<D; ++i )
+ if( !close_at_tolerance(a[i],b[i],t) )
+ {
+ std::cerr << file << "(" << line << "): test 'close_at_tolerance(" << expra << ',' << exprb << ',' << exprt
+ << ")' failed in function '" << function << "'\n";
+ dump_ab(a,b);
+ ++::boost::detail::test_errors();
+ return;
+ }
+ }
+ }
+ }
+
+#endif
Added: sandbox/la/libs/la/test/test_la_matrix.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/test_la_matrix.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,120 @@
+//Copyright (c) 2008-2009 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 UUID_9C471450B3A611DEAF56C1F155D89593
+#define UUID_9C471450B3A611DEAF56C1F155D89593
+
+#include <boost/la/deduce_matrix.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/assert.hpp>
+#include "test_la.hpp"
+
+namespace
+test_la
+ {
+ template <class Tag,int Rows,int Cols,class T=float>
+ struct
+ matrix
+ {
+ T a[Rows][Cols];
+ mutable T b[Rows][Cols];
+
+ explicit
+ matrix( T start=T(0), T step=T(0) )
+ {
+ for( int i=0; i!=Rows; ++i )
+ for( int j=0; j!=Cols; ++j,start+=step )
+ a[i][j]=b[i][j]=start;
+ }
+ };
+
+ template <int Rows,int Cols,class Tag1,class T1,class Tag2,class T2>
+ void
+ dump_ab( matrix<Tag1,Rows,Cols,T1> const & a, matrix<Tag2,Rows,Cols,T2> const & b )
+ {
+ detail::dump_ab(a.a,b.a);
+ }
+ }
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class Tag,int Rows,int Cols,class T>
+ struct
+ matrix_traits< test_la::matrix<Tag,Rows,Cols,T> >
+ {
+ static int const rows=Rows;
+ static int const cols=Cols;
+ typedef T scalar_type;
+
+ template <int R,int C>
+ static
+ scalar_type &
+ w( test_la::matrix<Tag,Rows,Cols,T> & m )
+ {
+ BOOST_STATIC_ASSERT(R>=0);
+ BOOST_STATIC_ASSERT(R<rows);
+ BOOST_STATIC_ASSERT(C>=0);
+ BOOST_STATIC_ASSERT(C<cols);
+ return m.a[R][C];
+ }
+
+ template <int R,int C>
+ static
+ scalar_type
+ r( test_la::matrix<Tag,Rows,Cols,T> const & m )
+ {
+ BOOST_STATIC_ASSERT(R>=0);
+ BOOST_STATIC_ASSERT(R<rows);
+ BOOST_STATIC_ASSERT(C>=0);
+ BOOST_STATIC_ASSERT(C<cols);
+ return m.a[R][C];
+ }
+
+ static
+ inline
+ scalar_type &
+ iw( int r, int c, test_la::matrix<Tag,Rows,Cols,T> & m )
+ {
+ BOOST_ASSERT(r>=0);
+ BOOST_ASSERT(r<rows);
+ BOOST_ASSERT(c>=0);
+ BOOST_ASSERT(c<cols);
+ return m.a[r][c];
+ }
+
+ static
+ inline
+ scalar_type
+ ir( int r, int c, test_la::matrix<Tag,Rows,Cols,T> const & m )
+ {
+ BOOST_ASSERT(r>=0);
+ BOOST_ASSERT(r<rows);
+ BOOST_ASSERT(c>=0);
+ BOOST_ASSERT(c<cols);
+ return m.a[r][c];
+ }
+ };
+
+ template <class Tag,class T,int R1,int C1,int R2,int C2,int Rows,int Cols>
+ struct
+ deduce_matrix2<test_la::matrix<Tag,R1,C1,T>,test_la::matrix<Tag,R2,C2,T>,Rows,Cols>
+ {
+ typedef test_la::matrix<Tag,Rows,Cols,T> type;
+ };
+ }
+ }
+
+namespace
+ {
+ struct M1;
+ struct M2;
+ struct M3;
+ }
+
+#endif
Added: sandbox/la/libs/la/test/test_la_vector.hpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/test_la_vector.hpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,110 @@
+//Copyright (c) 2008-2009 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 UUID_02C176D6B3AB11DE979F9A0D56D89593
+#define UUID_02C176D6B3AB11DE979F9A0D56D89593
+
+#include <boost/la/deduce_vector.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/assert.hpp>
+#include "test_la.hpp"
+
+namespace
+test_la
+ {
+ template <class Tag,int Dim,class T=float>
+ struct
+ vector
+ {
+ T a[Dim];
+ mutable T b[Dim];
+
+ explicit
+ vector( T start=T(0), T step=T(0) )
+ {
+ for( int i=0; i!=Dim; ++i,start+=step )
+ a[i]=b[i]=start;
+ }
+ };
+
+ template <int Dim,class Tag1,class T1,class Tag2,class T2>
+ void
+ dump_ab( vector<Tag1,Dim,T1> const & a, vector<Tag2,Dim,T2> const & b )
+ {
+ detail::dump_ab(a.a,b.a);
+ }
+ }
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <class Tag,int Dim,class T>
+ struct
+ vector_traits< test_la::vector<Tag,Dim,T> >
+ {
+ static int const dim=Dim;
+ typedef T scalar_type;
+
+ template <int I>
+ static
+ scalar_type &
+ w( test_la::vector<Tag,Dim,T> & m )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ return m.a[I];
+ }
+
+ template <int I>
+ static
+ scalar_type
+ r( test_la::vector<Tag,Dim,T> const & m )
+ {
+ BOOST_STATIC_ASSERT(I>=0);
+ BOOST_STATIC_ASSERT(I<dim);
+ return m.a[I];
+ }
+
+ static
+ inline
+ scalar_type &
+ iw( int i, test_la::vector<Tag,Dim,T> & m )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<dim);
+ return m.a[i];
+ }
+
+ static
+ inline
+ scalar_type
+ ir( int i, test_la::vector<Tag,Dim,T> const & m )
+ {
+ BOOST_ASSERT(i>=0);
+ BOOST_ASSERT(i<dim);
+ return m.a[i];
+ }
+ };
+
+ template <class Tag,class T,int D1,int D2,int Dim>
+ struct
+ deduce_vector2<test_la::vector<Tag,D1,T>,test_la::vector<Tag,D2,T>,Dim>
+ {
+ typedef test_la::vector<Tag,Dim,T> type;
+ };
+ }
+ }
+
+namespace
+ {
+ struct V1;
+ struct V2;
+ struct V3;
+ }
+
+#endif
Added: sandbox/la/libs/la/test/trans_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/trans_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,41 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/trans_matrix.hpp>
+#include <boost/la/array_matrix_traits.hpp>
+#include <boost/la/matrix_assign.hpp>
+#include <boost/la/vector_mul_eq_scalar.hpp>
+#include <boost/la/delr.hpp>
+#include <boost/la/col.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim-1> x(42,1);
+ float r1[Dim][Dim];
+ test_la::translation(r1,x.a);
+ float r2[Dim][Dim];
+ assign(r2,x|trans_matrix);
+ BOOST_TEST_LA_EQ(r1,r2);
+ test_la::scalar_multiply_v(x.b,x.a,2.0f);
+ x|trans_matrix|delr<Dim-1>()|col<Dim-1>() *= 2;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+
+int
+main()
+ {
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/transpose_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/transpose_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,50 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/transpose.hpp>
+#include <boost/la/array_matrix_traits.hpp>
+#include <boost/la/matrix_assign.hpp>
+#include <boost/la/matrix_mul_eq_scalar.hpp>
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Rows,int Cols>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> x(42,1);
+ float r1[Cols][Rows];
+ for( int i=0; i!=Rows; ++i )
+ for( int j=0; j!=Cols; ++j )
+ r1[j][i]=x.a[i][j];
+ float r2[Cols][Rows];
+ assign(r2,x|transpose);
+ BOOST_TEST_LA_EQ(r1,r2);
+ test_la::scalar_multiply_m(x.b,x.a,2.0f);
+ x|transpose *= 2;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ test<1,3>();
+ test<3,1>();
+ test<3,3>();
+ test<1,4>();
+ test<4,1>();
+ test<4,4>();
+ test<1,5>();
+ test<5,1>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_access_fail1.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_access_fail1.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_access.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<1> const v;
+ v|Y;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/vector_access_fail2.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_access_fail2.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_access.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<1> v;
+ v|Y;
+ return 1;
+ }
Added: sandbox/la/libs/la/test/vector_access_fail3.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_access_fail3.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_access.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<1> const v;
+ v|Y();
+ return 1;
+ }
Added: sandbox/la/libs/la/test/vector_access_fail4.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_access_fail4.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,35 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_access.hpp>
+
+template <int D> struct vec { };
+
+namespace
+boost
+ {
+ namespace
+ la
+ {
+ template <int D>
+ struct
+ vector_traits< vec<D> >
+ {
+ typedef int scalar_type;
+ static int const dim=D;
+ template <int I> static int r( vec<D> const & );
+ template <int I> static int & w( vec<D> & );
+ };
+ }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ vec<1> v;
+ v|Y();
+ return 1;
+ }
Added: sandbox/la/libs/la/test/vector_access_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_access_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,73 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_access.hpp>
+#include "test_la_vector.hpp"
+
+template <class T,class U> struct same_type;
+template <class T> struct same_type<T,T> { };
+
+template <class T,class U>
+void
+check_type( U x )
+ {
+ same_type<T,U>();
+ }
+
+template <int I>
+void
+check_idx( boost::la::la_detail::vector_access_tag<I> (*f)() )
+ {
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+
+ test_la::vector<V1,4> v;
+ v.a[0]=42.0f;
+ v.a[1]=43.0f;
+ v.a[2]=44.0f;
+ v.a[3]=45.0f;
+ BOOST_TEST_EQ(v|X,v.a[0]);
+ BOOST_TEST_EQ(v|Y,v.a[1]);
+ BOOST_TEST_EQ(v|Z,v.a[2]);
+ BOOST_TEST_EQ(v|W,v.a[3]);
+ test_la::vector<V1,4> v1=v;
+ v|X *= 2;
+ BOOST_TEST_EQ(v.a[0],v1.a[0]*2);
+ v|Y *= 2;
+ BOOST_TEST_EQ(v.a[1],v1.a[1]*2);
+ v|Z *= 2;
+ BOOST_TEST_EQ(v.a[2],v1.a[2]*2);
+ v|W *= 2;
+ BOOST_TEST_EQ(v.a[3],v1.a[3]*2);
+
+ check_type<float>(v|X);
+ check_type<float>(static_cast<test_la::vector<V1,4> const &>(v)|X);
+ check_type<float>(v|X());
+ check_type<float>(static_cast<test_la::vector<V1,4> const &>(v)|X());
+
+ check_idx<0>(X);
+ check_idx<1>(Y);
+ check_idx<2>(Z);
+ check_idx<3>(W);
+
+#define CHECK_A(i) check_idx<i>(A##i);check_idx<i>(A<i>)
+ CHECK_A(0);
+ CHECK_A(1);
+ CHECK_A(2);
+ CHECK_A(3);
+ CHECK_A(4);
+ CHECK_A(5);
+ CHECK_A(6);
+ CHECK_A(7);
+ CHECK_A(8);
+ CHECK_A(9);
+#undef CHECK_A
+
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_assign_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_assign_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,33 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_assign.hpp>
+#include <boost/la/array_vector_traits.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> const x(42,1);
+ test_la::init_v(x.b);
+ assign(x.b,x.a);
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_cross_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_cross_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,55 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_cross.hpp>
+#include <boost/la/vector_access.hpp>
+#include <boost/la/matrix_access.hpp>
+#include <boost/la/custom/vector_mul_scalar_3.hpp>
+#include <boost/la/vref.hpp>
+#include "test_la_vector.hpp"
+#include "test_la_matrix.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <class T,class U> struct same_type_tester;
+ template <class T> struct same_type_tester<T,T> { };
+ template <class T,class U> void test_same_type( T, U ) { same_type_tester<T,U>(); }
+ }
+
+int
+main()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,3> x(42,1);
+ test_la::vector<V1,3> y=x*2;
+ test_la::matrix<M1,3,3> m;
+ m|A00 = 0;
+ m|A01 = -(x|A2);
+ m|A02 = x|A1;
+ m|A10 = x|A2;
+ m|A11 = 0;
+ m|A12 = -(x|A0);
+ m|A20 = -(x|A1);
+ m|A21 = x|A0;
+ m|A22 = 0;
+ {
+ test_same_type(x,cross(x,y));
+ test_la::vector<V1,3> c=cross(x,y);
+ test_la::multiply_mv(c.b,m.a,y.a);
+ BOOST_TEST_LA_EQ(c.a,c.b);
+ }
+ {
+ test_la::vector<V2,3> c=cross(vref(x),y);
+ test_la::multiply_mv(c.b,m.a,y.a);
+ BOOST_TEST_LA_EQ(c.a,c.b);
+ }
+ {
+ test_la::vector<V2,3> c=cross(x,vref(y));
+ test_la::multiply_mv(c.b,m.a,y.a);
+ BOOST_TEST_LA_EQ(c.a,c.b);
+ }
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_div_eq_scalar_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_div_eq_scalar_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,33 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_div_eq_scalar.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> x(42,1);
+ test_la::scalar_multiply_v(x.b,x.a,0.5f);
+ x/=2;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+
+int
+main()
+ {
+ test<1>();
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_div_scalar_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_div_scalar_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,45 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_div_scalar.hpp>
+#include <boost/la/vref.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <class T,class U> struct same_type_tester;
+ template <class T> struct same_type_tester<T,T> { };
+ template <class T,class U> void test_same_type( T, U ) { same_type_tester<T,U>(); }
+
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> const x(42,1);
+ test_la::scalar_multiply_v(x.b,x.a,0.5f);
+ test_same_type(x,x/2);
+ {
+ test_la::vector<V1,Dim> y=x/2;
+ BOOST_TEST_LA_EQ(x.b,y.a);
+ }
+ {
+ test_la::vector<V1,Dim> y=vref(x)/2;
+ BOOST_TEST_LA_EQ(x.b,y.a);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<1>();
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_dot_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_dot_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,48 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_dot.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <class T,class U> struct same_type_tester;
+ template <class T> struct same_type_tester<T,T> { };
+ template <class T,class U> void test_same_type( T, U ) { same_type_tester<T,U>(); }
+
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+
+ test_la::vector<V1,Dim> const x(42,1);
+ {
+ test_la::vector<V1,Dim> const y(43,1);
+ test_same_type(float(),dot(x,y));
+ float d1=dot(x,y);
+ float d2=test_la::dot<float>(x.a,y.a);
+ BOOST_TEST_LA_CLOSE(d1,d2,0.000001f);
+ }
+ {
+ test_la::vector<V1,Dim,double> const y(43,1);
+ test_same_type(double(),dot(x,y));
+ double d1=dot(x,y);
+ double d2=test_la::dot<double>(x.a,y.a);
+ BOOST_TEST_LA_CLOSE(d1,d2,0.000001);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_eq_vector_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_eq_vector_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,45 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_eq_vector.hpp>
+#include <boost/la/vector_neq_vector.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> const x(42,1);
+ for( int i=0; i!=Dim; ++i )
+ {
+ {
+ test_la::vector<V1,Dim> y(x);
+ BOOST_TEST_LA_EQ(x,y);
+ y.a[i]=0;
+ BOOST_TEST_LA_NEQ(x,y);
+ }
+ {
+ test_la::vector<V2,Dim> y; assign(y,x);
+ BOOST_TEST_LA_EQ(x,y);
+ y.a[i]=0;
+ BOOST_TEST_LA_NEQ(x,y);
+ }
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_magnitude2_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_magnitude2_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,36 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_magnitude2.hpp>
+#include <boost/la/vref.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+
+ test_la::vector<V1,Dim> const x(42,1);
+ float m1=magnitude2(x);
+ float m2=magnitude2(vref(x));
+ float m3=test_la::dot<float>(x.a,x.a);
+ BOOST_TEST_LA_CLOSE(m1,m3,0.000001f);
+ BOOST_TEST_LA_CLOSE(m2,m3,0.000001f);
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_magnitude_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_magnitude_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,36 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_magnitude.hpp>
+#include <boost/la/vref.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+
+ test_la::vector<V1,Dim> const x(42,1);
+ float m1=magnitude(x);
+ float m2=magnitude(vref(x));
+ float m3=sqrtf(test_la::dot<float>(x.a,x.a));
+ BOOST_TEST_LA_CLOSE(m1,m3,0.000001f);
+ BOOST_TEST_LA_CLOSE(m2,m3,0.000001f);
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_minus_eq_vector_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_minus_eq_vector_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,41 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_minus_eq_vector.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> x(42,2);
+ {
+ test_la::vector<V1,Dim> const y(42,1);
+ test_la::subtract_v(x.b,x.a,y.a);
+ x-=y;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ {
+ test_la::vector<V2,Dim> const y(42,1);
+ test_la::subtract_v(x.b,x.a,y.a);
+ x-=y;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_minus_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_minus_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,44 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_minus.hpp>
+#include <boost/la/vref.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <class T,class U> struct same_type_tester;
+ template <class T> struct same_type_tester<T,T> { };
+ template <class T,class U> void test_same_type( T, U ) { same_type_tester<T,U>(); }
+
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> const x(42,1);
+ test_la::scalar_multiply_v(x.b,x.a,-1.0f);
+ test_same_type(x,-x);
+ {
+ test_la::vector<V1,Dim> y=-x;
+ BOOST_TEST_LA_EQ(x.b,y.a);
+ }
+ {
+ test_la::vector<V1,Dim> y=-vref(x);
+ BOOST_TEST_LA_EQ(x.b,y.a);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_minus_vector_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_minus_vector_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_minus_vector.hpp>
+#include <boost/la/vref.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <class T,class U> struct same_type_tester;
+ template <class T> struct same_type_tester<T,T> { };
+ template <class T,class U> void test_same_type( T, U ) { same_type_tester<T,U>(); }
+
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> const x(42,2);
+ {
+ test_la::vector<V1,Dim> const y(42,1);
+ test_same_type(x,x-y);
+ test_la::vector<V1,Dim> r=x-y;
+ test_la::subtract_v(r.b,x.b,y.b);
+ BOOST_TEST_LA_EQ(r.a,r.b);
+ }
+ {
+ test_la::vector<V1,Dim> const y(42,1);
+ test_la::vector<V2,Dim> r=vref(x)-y;
+ test_la::subtract_v(r.b,x.b,y.b);
+ BOOST_TEST_LA_EQ(r.a,r.b);
+ }
+ {
+ test_la::vector<V1,Dim> const y(42,1);
+ test_la::vector<V2,Dim> r=x-vref(y);
+ test_la::subtract_v(r.b,x.b,y.b);
+ BOOST_TEST_LA_EQ(r.a,r.b);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_mul_eq_scalar_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_mul_eq_scalar_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,33 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_mul_eq_scalar.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> x(42,1);
+ test_la::scalar_multiply_v(x.b,x.a,2.0f);
+ x*=2;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+
+int
+main()
+ {
+ test<1>();
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_mul_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_mul_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,57 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_mul_matrix.hpp>
+#include <boost/la/mref.hpp>
+#include <boost/la/vref.hpp>
+#include "test_la_matrix.hpp"
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int M,int N>
+ void
+ test()
+ {
+ using namespace boost::la;
+ using namespace boost::la;
+ test_la::vector<V1,M> const x(42,1);
+ test_la::matrix<M1,M,N> const y(42,1);
+ {
+ test_la::vector<V2,N> r=x*y;
+ test_la::multiply_vm(r.b,x.b,y.b);
+ BOOST_TEST_LA_CLOSE(r.a,r.b,0.0000001f);
+ }
+ {
+ test_la::vector<V2,N> r=vref(x)*y;
+ test_la::multiply_vm(r.b,x.b,y.b);
+ BOOST_TEST_LA_CLOSE(r.a,r.b,0.0000001f);
+ }
+ {
+ test_la::vector<V2,N> r=x*mref(y);
+ test_la::multiply_vm(r.b,x.b,y.b);
+ BOOST_TEST_LA_CLOSE(r.a,r.b,0.0000001f);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ test<1,3>();
+ test<3,1>();
+ test<3,3>();
+ test<1,4>();
+ test<4,1>();
+ test<4,4>();
+ test<1,5>();
+ test<5,1>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_mul_scalar_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_mul_scalar_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,45 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_mul_scalar.hpp>
+#include <boost/la/vref.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <class T,class U> struct same_type_tester;
+ template <class T> struct same_type_tester<T,T> { };
+ template <class T,class U> void test_same_type( T, U ) { same_type_tester<T,U>(); }
+
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> const x(42,1);
+ test_la::scalar_multiply_v(x.b,x.a,2.0f);
+ test_same_type(x,x*2);
+ {
+ test_la::vector<V1,Dim> y=x*2;
+ BOOST_TEST_LA_EQ(x.b,y.a);
+ }
+ {
+ test_la::vector<V1,Dim> y=vref(x)*2;
+ BOOST_TEST_LA_EQ(x.b,y.a);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<1>();
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_plus_eq_vector_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_plus_eq_vector_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,41 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_plus_eq_vector.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> x(42,2);
+ {
+ test_la::vector<V1,Dim> const y(42,1);
+ test_la::add_v(x.b,x.a,y.a);
+ x+=y;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ {
+ test_la::vector<V2,Dim> const y(42,1);
+ test_la::add_v(x.b,x.a,y.a);
+ x+=y;
+ BOOST_TEST_LA_EQ(x.a,x.b);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_plus_vector_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_plus_vector_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,53 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_plus_vector.hpp>
+#include <boost/la/vref.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <class T,class U> struct same_type_tester;
+ template <class T> struct same_type_tester<T,T> { };
+ template <class T,class U> void test_same_type( T, U ) { same_type_tester<T,U>(); }
+
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> const x(42,2);
+ {
+ test_la::vector<V1,Dim> const y(42,1);
+ test_same_type(x,x+y);
+ test_la::vector<V1,Dim> r=x+y;
+ test_la::add_v(r.b,x.b,y.b);
+ BOOST_TEST_LA_EQ(r.a,r.b);
+ }
+ {
+ test_la::vector<V1,Dim> const y(42,1);
+ test_la::vector<V2,Dim> r=vref(x)+y;
+ test_la::add_v(r.b,x.b,y.b);
+ BOOST_TEST_LA_EQ(r.a,r.b);
+ }
+ {
+ test_la::vector<V1,Dim> const y(42,1);
+ test_la::vector<V2,Dim> r=x+vref(y);
+ test_la::add_v(r.b,x.b,y.b);
+ BOOST_TEST_LA_EQ(r.a,r.b);
+ }
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/vector_scalar_cast_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/vector_scalar_cast_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,32 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/vector_scalar_cast.hpp>
+#include <boost/la/vector_assign.hpp>
+#include "test_la_vector.hpp"
+#include "gold.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim,double> x(42,1);
+ test_la::vector<V1,Dim,float> y;
+ assign(y,scalar_cast<float>(x));
+ for( int i=0; i!=Dim; ++i )
+ y.b[i]=static_cast<float>(x.a[i]);
+ BOOST_TEST_LA_EQ(y.a,y.b);
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/zero_matrix_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/zero_matrix_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,39 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/zero_matrix.hpp>
+#include "test_la_matrix.hpp"
+
+namespace
+ {
+ template <int Rows,int Cols>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::matrix<M1,Rows,Cols> m=zero_matrix<float,Rows,Cols>();
+ for( int i=0; i!=Rows; ++i )
+ for( int j=0; j!=Cols; ++j )
+ BOOST_TEST(!m.a[i][j]);
+ }
+ }
+
+int
+main()
+ {
+ test<1,2>();
+ test<2,1>();
+ test<2,2>();
+ test<1,3>();
+ test<3,1>();
+ test<3,3>();
+ test<1,4>();
+ test<4,1>();
+ test<4,4>();
+ test<1,5>();
+ test<5,1>();
+ test<5,5>();
+ return boost::report_errors();
+ }
Added: sandbox/la/libs/la/test/zero_vector_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/la/libs/la/test/zero_vector_test.cpp 2010-02-05 00:36:48 EST (Fri, 05 Feb 2010)
@@ -0,0 +1,30 @@
+//Copyright (c) 2008-2009 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)
+
+#include <boost/la/zero_vector.hpp>
+#include "test_la_vector.hpp"
+
+namespace
+ {
+ template <int Dim>
+ void
+ test()
+ {
+ using namespace boost::la;
+ test_la::vector<V1,Dim> v=zero_vector<float,Dim>();
+ for( int i=0; i!=Dim; ++i )
+ BOOST_TEST(!v.a[i]);
+ }
+ }
+
+int
+main()
+ {
+ test<2>();
+ test<3>();
+ test<4>();
+ test<5>();
+ return boost::report_errors();
+ }
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk