QVM: Quaternions, Vectors, Matrices
boost/qvm/mat_traits_array.hpp
В этом заголовке представлены специализацииmat_traitsвывести [мат]ивывести_мат2шаблоны, которые позволяют передавать массивы 2D C любой функции Boost QVM, которая принимает матрицу соответствующего размера.
Например, после#include<boost/qvm/mat_traits_array.hpp>, для вычисления определителя квадратной матрицы массива 2D C можно использовать:
float a[4][4];
float det = determinant(a);
Чтобы использовать перегрузки оператора Boost QVM, по крайней мере один из аргументов не должен быть встроенного типа; например, вы не можете умножить матрицу матрицы C на скаляр, используяоператора *=напрямую. Используйтеmref, чтобы обойти этот вопрос:
float a[4][4];
mref(a) *= 42;