| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 | //Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc.//Distributed under the Boost Software License, Version 1.0. (See accompanying//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)#ifndef BOOST_QVM_5DD4CBFC96F5453B13D89A1CDBAE32#define BOOST_QVM_5DD4CBFC96F5453B13D89A1CDBAE32//This file was generated by a program. Do not edit manually.#include <boost/qvm/enable_if.hpp>#include <boost/qvm/inline.hpp>#include <boost/qvm/mat_traits.hpp>namespaceboost    {    namespace    qvm        {        template <class A,class B>        BOOST_QVM_INLINE_OPERATIONS        typename enable_if_c<            mat_traits<A>::rows==2 && mat_traits<B>::rows==2 &&            mat_traits<A>::cols==2 && mat_traits<B>::cols==2,            A &>::type        assign( A & a, B const & b )            {            mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);            mat_traits<A>::template write_element<0,1>(a)=mat_traits<B>::template read_element<0,1>(b);            mat_traits<A>::template write_element<1,0>(a)=mat_traits<B>::template read_element<1,0>(b);            mat_traits<A>::template write_element<1,1>(a)=mat_traits<B>::template read_element<1,1>(b);            return a;            }        namespace        sfinae            {            using ::boost::qvm::assign;            }        namespace        qvm_detail            {            template <int R,int C>            struct assign_mm_defined;            template <>            struct            assign_mm_defined<2,2>                {                static bool const value=true;                };            }        template <class A,class B>        BOOST_QVM_INLINE_OPERATIONS        typename enable_if_c<            mat_traits<A>::rows==2 && mat_traits<B>::rows==2 &&            mat_traits<A>::cols==1 && mat_traits<B>::cols==1,            A &>::type        assign( A & a, B const & b )            {            mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);            mat_traits<A>::template write_element<1,0>(a)=mat_traits<B>::template read_element<1,0>(b);            return a;            }        namespace        sfinae            {            using ::boost::qvm::assign;            }        namespace        qvm_detail            {            template <int R,int C>            struct assign_mm_defined;            template <>            struct            assign_mm_defined<2,1>                {                static bool const value=true;                };            }        template <class A,class B>        BOOST_QVM_INLINE_OPERATIONS        typename enable_if_c<            mat_traits<A>::rows==1 && mat_traits<B>::rows==1 &&            mat_traits<A>::cols==2 && mat_traits<B>::cols==2,            A &>::type        assign( A & a, B const & b )            {            mat_traits<A>::template write_element<0,0>(a)=mat_traits<B>::template read_element<0,0>(b);            mat_traits<A>::template write_element<0,1>(a)=mat_traits<B>::template read_element<0,1>(b);            return a;            }        namespace        sfinae            {            using ::boost::qvm::assign;            }        namespace        qvm_detail            {            template <int R,int C>            struct assign_mm_defined;            template <>            struct            assign_mm_defined<1,2>                {                static bool const value=true;                };            }        }    }#endif
 |