#ifndef BOOST_QVM_GEN_SWIZZLE3_HPP_INCLUDED #define BOOST_QVM_GEN_SWIZZLE3_HPP_INCLUDED /// Copyright (c) 2008-2021 Emil Dotchevski and Reverge Studios, Inc. /// Distributed under the Boost Software License, Version 1.0. (See accompanying /// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) /// This file was generated by a program. Do not edit manually. #include #include #include namespace boost { namespace qvm { BOOST_QVM_INLINE_TRIVIAL qvm_detail::sw01_ > > > const & _111() { return *reinterpret_cast > > > const *>(qvm_detail::get_null()); } BOOST_QVM_INLINE_TRIVIAL qvm_detail::sw01_ > > > const & _011() { return *reinterpret_cast > > > const *>(qvm_detail::get_null()); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type W11( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type W11( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type Z11( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type Z11( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type Y11( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type Y11( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type X11( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type X11( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type X11( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type X11( S & a ) { return reinterpret_cast > > > &>(a); } BOOST_QVM_INLINE_TRIVIAL qvm_detail::sw01_ > > > const & _101() { return *reinterpret_cast > > > const *>(qvm_detail::get_null()); } BOOST_QVM_INLINE_TRIVIAL qvm_detail::sw01_ > > > const & _001() { return *reinterpret_cast > > > const *>(qvm_detail::get_null()); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type W01( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type W01( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type Z01( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type Z01( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type Y01( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type Y01( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type X01( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type X01( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type X01( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type X01( S & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _1W1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _1W1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _0W1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _0W1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WW1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WW1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type ZW1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type ZW1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type YW1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type YW1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type XW1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type XW1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _1Z1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _1Z1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _0Z1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _0Z1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WZ1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WZ1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type ZZ1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type ZZ1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type YZ1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type YZ1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type XZ1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type XZ1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type _1Y1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type _1Y1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type _0Y1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type _0Y1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WY1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WY1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type ZY1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type ZY1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type YY1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type YY1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type XY1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type XY1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type _1X1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type _1X1( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type _1X1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type _1X1( S & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type _0X1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type _0X1( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type _0X1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type _0X1( S & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WX1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WX1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type ZX1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type ZX1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type YX1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type YX1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type XX1( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type XX1( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type XX1( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type XX1( S & a ) { return reinterpret_cast > > > &>(a); } BOOST_QVM_INLINE_TRIVIAL qvm_detail::sw01_ > > > const & _110() { return *reinterpret_cast > > > const *>(qvm_detail::get_null()); } BOOST_QVM_INLINE_TRIVIAL qvm_detail::sw01_ > > > const & _010() { return *reinterpret_cast > > > const *>(qvm_detail::get_null()); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type W10( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type W10( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type Z10( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type Z10( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type Y10( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type Y10( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type X10( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type X10( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type X10( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type X10( S & a ) { return reinterpret_cast > > > &>(a); } BOOST_QVM_INLINE_TRIVIAL qvm_detail::sw01_ > > > const & _100() { return *reinterpret_cast > > > const *>(qvm_detail::get_null()); } BOOST_QVM_INLINE_TRIVIAL qvm_detail::sw01_ > > > const & _000() { return *reinterpret_cast > > > const *>(qvm_detail::get_null()); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type W00( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type W00( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type Z00( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type Z00( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type Y00( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type Y00( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type X00( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type X00( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type X00( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type X00( S & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _1W0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _1W0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _0W0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _0W0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WW0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WW0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type ZW0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type ZW0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type YW0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type YW0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type XW0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type XW0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _1Z0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _1Z0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _0Z0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _0Z0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WZ0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WZ0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type ZZ0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type ZZ0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type YZ0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type YZ0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type XZ0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type XZ0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type _1Y0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type _1Y0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type _0Y0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type _0Y0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WY0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WY0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type ZY0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type ZY0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type YY0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type YY0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type XY0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type XY0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type _1X0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type _1X0( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type _1X0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type _1X0( S & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type _0X0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type _0X0( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type _0X0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type _0X0( S & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WX0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WX0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type ZX0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type ZX0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type YX0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type YX0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type XX0( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type XX0( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type XX0( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type XX0( S & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _11W( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _11W( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _01W( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _01W( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type W1W( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type W1W( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type Z1W( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type Z1W( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type Y1W( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type Y1W( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type X1W( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type X1W( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _10W( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _10W( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _00W( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _00W( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type W0W( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type W0W( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type Z0W( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type Z0W( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type Y0W( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type Y0W( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type X0W( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type X0W( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _1WW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _1WW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _0WW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _0WW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WWW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WWW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type ZWW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type ZWW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type YWW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type YWW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type XWW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type XWW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _1ZW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _1ZW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _0ZW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _0ZW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WZW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WZW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type ZZW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type ZZW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type YZW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type YZW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type XZW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type XZW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _1YW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _1YW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _0YW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _0YW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WYW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WYW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type ZYW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type ZYW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type YYW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type YYW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type XYW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type XYW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _1XW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _1XW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _0XW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _0XW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WXW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WXW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type ZXW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type ZXW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type YXW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type YXW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type XXW( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type XXW( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _11Z( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _11Z( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _01Z( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _01Z( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type W1Z( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type W1Z( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type Z1Z( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type Z1Z( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type Y1Z( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type Y1Z( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type X1Z( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type X1Z( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _10Z( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _10Z( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _00Z( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _00Z( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type W0Z( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type W0Z( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type Z0Z( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type Z0Z( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type Y0Z( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type Y0Z( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type X0Z( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type X0Z( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _1WZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _1WZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _0WZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _0WZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WWZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WWZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type ZWZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type ZWZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type YWZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type YWZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type XWZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type XWZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _1ZZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _1ZZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _0ZZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _0ZZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WZZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WZZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type ZZZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type ZZZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type YZZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type YZZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type XZZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type XZZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _1YZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _1YZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _0YZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _0YZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WYZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WYZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type ZYZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type ZYZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type YYZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type YYZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type XYZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type XYZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _1XZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _1XZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _0XZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _0XZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WXZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WXZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type ZXZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type ZXZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type YXZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type YXZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type XXZ( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type XXZ( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type _11Y( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type _11Y( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type _01Y( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type _01Y( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type W1Y( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type W1Y( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type Z1Y( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type Z1Y( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type Y1Y( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type Y1Y( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type X1Y( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type X1Y( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type _10Y( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type _10Y( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type _00Y( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type _00Y( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type W0Y( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type W0Y( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type Z0Y( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type Z0Y( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type Y0Y( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type Y0Y( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type X0Y( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type X0Y( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _1WY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _1WY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _0WY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _0WY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WWY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WWY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type ZWY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type ZWY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type YWY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type YWY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type XWY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type XWY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _1ZY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _1ZY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _0ZY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _0ZY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WZY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WZY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type ZZY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type ZZY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type YZY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type YZY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type XZY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type XZY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type _1YY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type _1YY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type _0YY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type _0YY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WYY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WYY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type ZYY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type ZYY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type YYY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type YYY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type XYY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type XYY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type _1XY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type _1XY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type _0XY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type _0XY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WXY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WXY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type ZXY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type ZXY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type YXY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type YXY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type XXY( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type XXY( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type _11X( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type _11X( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type _11X( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type _11X( S & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type _01X( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type _01X( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type _01X( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type _01X( S & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type W1X( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type W1X( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type Z1X( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type Z1X( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type Y1X( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type Y1X( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type X1X( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type X1X( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type X1X( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type X1X( S & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type _10X( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type _10X( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type _10X( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type _10X( S & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type _00X( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type _00X( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type _00X( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type _00X( S & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type W0X( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type W0X( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type Z0X( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type Z0X( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type Y0X( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type Y0X( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type X0X( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type X0X( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type X0X( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type X0X( S & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _1WX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _1WX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type _0WX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type _0WX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WWX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WWX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type ZWX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type ZWX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type YWX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type YWX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type XWX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type XWX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _1ZX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _1ZX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type _0ZX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type _0ZX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WZX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WZX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type ZZX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type ZZX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type YZX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type YZX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type XZX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type XZX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type _1YX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type _1YX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type _0YX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type _0YX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WYX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WYX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type ZYX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type ZYX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type YYX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type YYX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type XYX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type XYX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type _1XX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type _1XX( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type _1XX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type _1XX( S & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type _0XX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type _0XX( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type _0XX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type _0XX( S & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > const &>::type WXX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=4, qvm_detail::sw_ > > > &>::type WXX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > const &>::type ZXX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=3, qvm_detail::sw_ > > > &>::type ZXX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > const &>::type YXX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=2, qvm_detail::sw_ > > > &>::type YXX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > const &>::type XXX( V const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > const &>::type XXX( S const & a ) { return reinterpret_cast > > > const &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_vec::value && vec_traits::dim>=1, qvm_detail::sw_ > > > &>::type XXX( V & a ) { return reinterpret_cast > > > &>(a); } template BOOST_QVM_INLINE_TRIVIAL typename enable_if_c< is_scalar::value, qvm_detail::sws_ > > > &>::type XXX( S & a ) { return reinterpret_cast > > > &>(a); } } } #endif