1 // 2 // Copyright (c) 2009 Rutger ter Borg 3 // 4 // Distributed under the Boost Software License, Version 1.0. 5 // (See accompanying file LICENSE_1_0.txt or copy at 6 // http://www.boost.org/LICENSE_1_0.txt) 7 // 8 9 #ifndef BOOST_NUMERIC_BINDINGS_BLAS_DETAIL_BLAS_OPTION_HPP 10 #define BOOST_NUMERIC_BINDINGS_BLAS_DETAIL_BLAS_OPTION_HPP 11 12 #include <boost/mpl/char.hpp> 13 #include <boost/numeric/bindings/tag.hpp> 14 15 namespace boost { 16 namespace numeric { 17 namespace bindings { 18 namespace blas { 19 namespace detail { 20 21 template< typename Tag > 22 struct blas_option {}; 23 24 template<> 25 struct blas_option< tag::transpose >: mpl::char_< 'T' > {}; 26 27 template<> 28 struct blas_option< tag::no_transpose >: mpl::char_< 'N' > {}; 29 30 template<> 31 struct blas_option< tag::conjugate >: mpl::char_< 'C' > {}; 32 33 template<> 34 struct blas_option< tag::upper >: mpl::char_< 'U' > {}; 35 36 template<> 37 struct blas_option< tag::lower >: mpl::char_< 'L' > {}; 38 39 template<> 40 struct blas_option< tag::unit >: mpl::char_< 'U' > {}; 41 42 template<> 43 struct blas_option< tag::non_unit >: mpl::char_< 'N' > {}; 44 45 template<> 46 struct blas_option< tag::left >: mpl::char_< 'L' > {}; 47 48 template<> 49 struct blas_option< tag::right >: mpl::char_< 'R' > {}; 50 51 } // namespace detail 52 } // namespace blas 53 } // namespace bindings 54 } // namespace numeric 55 } // namespace boost 56 57 #endif 58