#if !defined(__MIMASINTERNALARRAYFUNC)# error "Do not include this file directly."#endif#if !defined(__MIMASEXTERNALARRAYFUNC)# error "Do not include this file directly."#endif#if !defined(__MIMASFUNCTIONOBJECT)# error "Do not include this file directly."#endifnamespace mimas {/** @addtogroup arrayOp@{ *////template <template< typename, size_t, typename > class MultiArray1,template< typename, size_t, typename > class MultiArray2,typename T, size_t NumDims, typename Allocator>boost::multi_array< T, NumDims, Allocator > __MIMASEXTERNALARRAYFUNC( const MultiArray1< T, NumDims, Allocator > &a,const MultiArray2< T, NumDims, Allocator > &b ){return multi_func< T >( a, b, __MIMASFUNCTIONOBJECT< T >() );};///template <template< typename, size_t, typename > class MultiArray,typename T, size_t NumDims, typename Allocator>boost::multi_array< T, NumDims, Allocator > __MIMASEXTERNALARRAYFUNC( const MultiArray< T, NumDims, Allocator > &a,const T &b ){return multi_func< T >( a, std::bind2nd( __MIMASFUNCTIONOBJECT< T >(), b ) );};///template <template< typename, size_t, typename > class MultiArray,typename T, size_t NumDims, typename Allocator>boost::multi_array< T, NumDims, Allocator > __MIMASEXTERNALARRAYFUNC( const T &a,const MultiArray< T, NumDims, Allocator > &b ){return multi_func< T >( b, std::bind1st( __MIMASFUNCTIONOBJECT< T >(), a ) );};///template <template< typename, size_t, typename > class MultiArray2,typename T, size_t NumDims, typename Allocator>boost::detail::multi_array::sub_array< T, NumDims > __MIMASINTERNALARRAYFUNC( boost::detail::multi_array::sub_array< T, NumDims > a,const MultiArray2< T, NumDims, Allocator > &b ){return multi_apply( a, a, b,_multi_help2< T, T, T, __MIMASFUNCTIONOBJECT< T > >( __MIMASFUNCTIONOBJECT< T >() ) );};///template <template< typename, size_t, typename > class MultiArray1,template< typename, size_t, typename > class MultiArray2,typename T, size_t NumDims, typename Allocator>MultiArray1< T, NumDims, Allocator > &__MIMASINTERNALARRAYFUNC( MultiArray1< T, NumDims, Allocator > &a,const MultiArray2< T, NumDims, Allocator > &b ){return multi_apply( a, a, b,_multi_help2< T, T, T, __MIMASFUNCTIONOBJECT< T > >( __MIMASFUNCTIONOBJECT< T >() ) );};///template <typename T, size_t NumDims>boost::detail::multi_array::sub_array< T, NumDims > __MIMASINTERNALARRAYFUNC( boost::detail::multi_array::sub_array< T, NumDims > a,const T &b ){return multi_apply( a, a,_multi_help1< T, T,std::binder2nd< __MIMASFUNCTIONOBJECT< T > > >( std::bind2nd( __MIMASFUNCTIONOBJECT< T >(), b ) ) );};///template <template< typename, size_t, typename > class MultiArray,typename T, size_t NumDims, typename Allocator>MultiArray< T, NumDims, Allocator > &__MIMASINTERNALARRAYFUNC( MultiArray< T, NumDims, Allocator > &a,const T &b ){return multi_apply( a, a,_multi_help1< T, T,std::binder2nd< __MIMASFUNCTIONOBJECT< T > > >( std::bind2nd( __MIMASFUNCTIONOBJECT< T >(), b ) ) );};///@}}#undef __MIMASINTERNALARRAYFUNC#undef __MIMASEXTERNALARRAYFUNC#undef __MIMASFUNCTIONOBJECT