    // same size and resize specialization for matrix-vector resizing template< class T , class L , class A , class T_V , class A_V > struct same_size_impl< boost::numeric::ublas::matrix< T , L , A > , boost::numeric::ublas::vector< T_V , A_V > > {     static bool same_size( const boost::numeric::ublas::matrix< T , L , A > &m ,                            const boost::numeric::ublas::vector< T_V , A_V > &v )     {         return ( ( m.size0() == v.size() ) && ( m.size0() == v.size() ) );     } };  template< class T , class L , class A , class T_V , class A_V > struct resize_impl< boost::numeric::ublas::matrix< T , L , A > , boost::numeric::ublas::vector< T_V , A_V > > {     static void resize( boost::numeric::ublas::matrix< T , L , A > &m ,                         const boost::numeric::ublas::vector< T_V , A_V > &v )     {         m.resize( v.size() , v.size() );     } };    // specialization for ublas::permutation_matrix // same size and resize specialization for matrix-vector resizing template< class T , class A , class T_V , class A_V > struct same_size_impl< boost::numeric::ublas::permutation_matrix< T , A > ,                        boost::numeric::ublas::vector< T_V , A_V > > {     static bool same_size( const boost::numeric::ublas::permutation_matrix< T , A > &m ,                            const boost::numeric::ublas::vector< T_V , A_V > &v )     {         return ( m.size() == v.size() ); // && ( m.size0() == v.size() ) );     } };  template< class T , class A , class T_V , class A_V > struct resize_impl< boost::numeric::ublas::vector< T_V , A_V > ,                     boost::numeric::ublas::permutation_matrix< T , A > > {     static void resize( const boost::numeric::ublas::vector< T_V , A_V > &v,                         boost::numeric::ublas::permutation_matrix< T , A > &m )     {         m.resize( v.size() , v.size() );     } };    