00001 #ifndef __MIMASEXTERNALARRAYFUNC 00002 # error "Do not include this file directly." 00003 #endif 00004 #ifndef __MIMASINTERNALARRAYFUNC 00005 # error "Do not include this file directly." 00006 #endif 00007 #ifndef __MIMASFUNCTIONOBJECT 00008 # error "Do not include this file directly." 00009 #endif 00010 00011 namespace mimas { 00012 00015 00016 template < 00017 typename T, size_t NumDims, 00018 template< typename, size_t > class MultiArray 00019 > 00020 MultiArray< T, NumDims > &__MIMASINTERNALARRAYFUNC( MultiArray< T, NumDims > &a ) 00021 { 00022 return multi_apply( a, a, _multi_help1< T, T, __MIMASFUNCTIONOBJECT< T > > 00023 ( __MIMASFUNCTIONOBJECT< T >() ) ); 00024 }; 00025 00027 template < 00028 typename T, size_t NumDims, 00029 template< typename, size_t > class MultiArray 00030 > 00031 boost::multi_array< T, NumDims > __MIMASEXTERNALARRAYFUNC( const MultiArray< T, NumDims > &a ) 00032 { 00033 return multi_func< T >( a, __MIMASFUNCTIONOBJECT< T >() ); 00034 }; 00035 00037 } 00038 00039 #undef __MIMASEXTERNALARRAYFUNC 00040 #undef __MIMASINTERNALARRAYFUNC 00041 #undef __MIMASFUNCTIONOBJECT