    // 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() );      }  };        