Loading src/TNL/Containers/Algorithms/ArrayOperations.h +10 −10 Original line number Diff line number Diff line Loading @@ -42,14 +42,14 @@ class ArrayOperations< Devices::Host > static Element getMemoryElement( const Element* data ); template< typename Element, typename Index > static bool setMemory( Element* data, static void setMemory( Element* data, const Element& value, const Index size ); template< typename DestinationElement, typename SourceElement, typename Index > static bool copyMemory( DestinationElement* destination, static void copyMemory( DestinationElement* destination, const SourceElement* source, const Index size ); Loading Loading @@ -93,14 +93,14 @@ class ArrayOperations< Devices::Cuda > static Element getMemoryElement( const Element* data ); template< typename Element, typename Index > static bool setMemory( Element* data, static void setMemory( Element* data, const Element& value, const Index size ); template< typename DestinationElement, typename SourceElement, typename Index > static bool copyMemory( DestinationElement* destination, static void copyMemory( DestinationElement* destination, const SourceElement* source, const Index size ); Loading Loading @@ -132,7 +132,7 @@ class ArrayOperations< Devices::Cuda, Devices::Host > template< typename DestinationElement, typename SourceElement, typename Index > static bool copyMemory( DestinationElement* destination, static void copyMemory( DestinationElement* destination, const SourceElement* source, const Index size ); Loading @@ -152,7 +152,7 @@ class ArrayOperations< Devices::Host, Devices::Cuda > template< typename DestinationElement, typename SourceElement, typename Index > static bool copyMemory( DestinationElement* destination, static void copyMemory( DestinationElement* destination, const SourceElement* source, const Index size ); Loading Loading @@ -185,14 +185,14 @@ class ArrayOperations< Devices::MIC > static Element getMemoryElement( const Element* data ); template< typename Element, typename Index > static bool setMemory( Element* data, static void setMemory( Element* data, const Element& value, const Index size ); template< typename DestinationElement, typename SourceElement, typename Index > static bool copyMemory( DestinationElement* destination, static void copyMemory( DestinationElement* destination, const SourceElement* source, const Index size ); Loading Loading @@ -224,7 +224,7 @@ class ArrayOperations< Devices::MIC, Devices::Host > template< typename DestinationElement, typename SourceElement, typename Index > static bool copyMemory( DestinationElement* destination, static void copyMemory( DestinationElement* destination, const SourceElement* source, const Index size ); Loading @@ -244,7 +244,7 @@ class ArrayOperations< Devices::Host, Devices::MIC > template< typename DestinationElement, typename SourceElement, typename Index > static bool copyMemory( DestinationElement* destination, static void copyMemory( DestinationElement* destination, const SourceElement* source, const Index size ); Loading src/TNL/Containers/Algorithms/ArrayOperationsCuda_impl.h +25 −270 File changed.Preview size limit exceeded, changes collapsed. Show changes src/TNL/Containers/Algorithms/ArrayOperationsHost_impl.h +2 −138 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ getMemoryElement( const Element* data ) } template< typename Element, typename Index > bool void ArrayOperations< Devices::Host >:: setMemory( Element* data, const Element& value, Loading @@ -70,13 +70,12 @@ setMemory( Element* data, { for( Index i = 0; i < size; i ++ ) data[ i ] = value; return true; } template< typename DestinationElement, typename SourceElement, typename Index > bool void ArrayOperations< Devices::Host >:: copyMemory( DestinationElement* destination, const SourceElement* source, Loading @@ -100,7 +99,6 @@ copyMemory( DestinationElement* destination, else for( Index i = 0; i < size; i ++ ) destination[ i ] = ( DestinationElement ) source[ i ]; return true; } template< typename DestinationElement, Loading Loading @@ -164,140 +162,6 @@ containsOnlyValue( const Element* data, return true; } #ifdef TEMPLATE_EXPLICIT_INSTANTIATION extern template bool ArrayOperations< Devices::Host >::allocateMemory< char, int >( char*& data, const int size ); extern template bool ArrayOperations< Devices::Host >::allocateMemory< int, int >( int*& data, const int size ); extern template bool ArrayOperations< Devices::Host >::allocateMemory< long int, int >( long int*& data, const int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::allocateMemory< float, int >( float*& data, const int size ); #endif extern template bool ArrayOperations< Devices::Host >::allocateMemory< double, int >( double*& data, const int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::allocateMemory< long double, int >( long double*& data, const int size ); #endif #ifdef INSTANTIATE_LONG_INT extern template bool ArrayOperations< Devices::Host >::allocateMemory< char, long int >( char*& data, const long int size ); extern template bool ArrayOperations< Devices::Host >::allocateMemory< int, long int >( int*& data, const long int size ); extern template bool ArrayOperations< Devices::Host >::allocateMemory< long int, long int >( long int*& data, const long int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::allocateMemory< float, long int >( float*& data, const long int size ); #endif extern template bool ArrayOperations< Devices::Host >::allocateMemory< double, long int >( double*& data, const long int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::allocateMemory< long double, long int >( long double*& data, const long int size ); #endif #endif extern template bool ArrayOperations< Devices::Host >::freeMemory< char >( char* data ); extern template bool ArrayOperations< Devices::Host >::freeMemory< int >( int* data ); extern template bool ArrayOperations< Devices::Host >::freeMemory< long int >( long int* data ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::freeMemory< float >( float* data ); #endif extern template bool ArrayOperations< Devices::Host >::freeMemory< double >( double* data ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::freeMemory< long double >( long double* data ); #endif extern template void ArrayOperations< Devices::Host >::setMemoryElement< char >( char* data, const char& value ); extern template void ArrayOperations< Devices::Host >::setMemoryElement< int >( int* data, const int& value ); extern template void ArrayOperations< Devices::Host >::setMemoryElement< long int >( long int* data, const long int& value ); #ifdef INSTANTIATE_FLOAT extern template void ArrayOperations< Devices::Host >::setMemoryElement< float >( float* data, const float& value ); #endif extern template void ArrayOperations< Devices::Host >::setMemoryElement< double >( double* data, const double& value ); #ifdef INSTANTIATE_LONG_DOUBLE extern template void ArrayOperations< Devices::Host >::setMemoryElement< long double >( long double* data, const long double& value ); #endif extern template char ArrayOperations< Devices::Host >::getMemoryElement< char >( char* data ); extern template int ArrayOperations< Devices::Host >::getMemoryElement< int >( int* data ); extern template long int ArrayOperations< Devices::Host >::getMemoryElement< long int >( long int* data ); #ifdef INSTANTIATE_FLOAT extern template float ArrayOperations< Devices::Host >::getMemoryElement< float >( float* data ); #endif extern template double ArrayOperations< Devices::Host >::getMemoryElement< double >( double* data ); #ifdef INSTANTIATE_LONG_DOUBLE extern template long double ArrayOperations< Devices::Host >::getMemoryElement< long double >( long double* data ); #endif extern template bool ArrayOperations< Devices::Host >::copyMemory< char, char, int >( char* destination, const char* source, const int size ); extern template bool ArrayOperations< Devices::Host >::copyMemory< int, int, int >( int* destination, const int* source, const int size ); extern template bool ArrayOperations< Devices::Host >::copyMemory< long int, long int, int >( long int* destination, const long int* source, const int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::copyMemory< float, float, int >( float* destination, const float* source, const int size ); #endif extern template bool ArrayOperations< Devices::Host >::copyMemory< double, double, int >( double* destination, const double* source, const int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::copyMemory< long double, long double, int >( long double* destination, const long double* source, const int size ); #endif #ifdef INSTANTIATE_LONG_INT extern template bool ArrayOperations< Devices::Host >::copyMemory< char, char, long int >( char* destination, const char* source, const long int size ); extern template bool ArrayOperations< Devices::Host >::copyMemory< int, int, long int >( int* destination, const int* source, const long int size ); extern template bool ArrayOperations< Devices::Host >::copyMemory< long int, long int, long int >( long int* destination, const long int* source, const long int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::copyMemory< float, float, long int >( float* destination, const float* source, const long int size ); #endif extern template bool ArrayOperations< Devices::Host >::copyMemory< double, double, long int >( double* destination, const double* source, const long int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::copyMemory< long double, long double, long int >( long double* destination, const long double* source, const long int size ); #endif #endif extern template bool ArrayOperations< Devices::Host >::compareMemory< char, char, int >( const char* data1, const char* data2, const int size ); extern template bool ArrayOperations< Devices::Host >::compareMemory< int, int, int >( const int* data1, const int* data2, const int size ); extern template bool ArrayOperations< Devices::Host >::compareMemory< long int, long int, int >( const long int* data1, const long int* data2, const int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::compareMemory< float, float, int >( const float* data1, const float* data2, const int size ); #endif extern template bool ArrayOperations< Devices::Host >::compareMemory< double, double, int >( const double* data1, const double* data2, const int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::compareMemory< long double, long double, int >( const long double* data1, const long double* data2, const int size ); #endif #ifdef INSTANTIATE_LONG_INT extern template bool ArrayOperations< Devices::Host >::compareMemory< char, char, long int >( const char* data1, const char* data2, const long int size ); extern template bool ArrayOperations< Devices::Host >::compareMemory< int, int, long int >( const int* data1, const int* data2, const long int size ); extern template bool ArrayOperations< Devices::Host >::compareMemory< long int, long int, long int >( const long int* data1, const long int* data2, const long int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::compareMemory< float, float, long int >( const float* data1, const float* data2, const long int size ); #endif extern template bool ArrayOperations< Devices::Host >::compareMemory< double, double, long int >( const double* data1, const double* data2, const long int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::compareMemory< long double, long double, long int >( const long double* data1, const long double* data2, const long int size ); #endif #endif extern template bool ArrayOperations< Devices::Host >::setMemory< char, int >( char* destination, const char& value, const int size ); extern template bool ArrayOperations< Devices::Host >::setMemory< int, int >( int* destination, const int& value, const int size ); extern template bool ArrayOperations< Devices::Host >::setMemory< long int, int >( long int* destination, const long int& value, const int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::setMemory< float, int >( float* destination, const float& value, const int size ); #endif extern template bool ArrayOperations< Devices::Host >::setMemory< double, int >( double* destination, const double& value, const int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::setMemory< long double, int >( long double* destination, const long double& value, const int size ); #endif #ifdef INSTANTIATE_LONG_INT extern template bool ArrayOperations< Devices::Host >::setMemory< char, long int >( char* destination, const char& value, const long int size ); extern template bool ArrayOperations< Devices::Host >::setMemory< int, long int >( int* destination, const int& value, const long int size ); extern template bool ArrayOperations< Devices::Host >::setMemory< long int, long int >( long int* destination, const long int& value, const long int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::setMemory< float, long int >( float* destination, const float& value, const long int size ); #endif extern template bool ArrayOperations< Devices::Host >::setMemory< double, long int >( double* destination, const double& value, const long int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::setMemory< long double, long int >( long double* destination, const long double& value, const long int size ); #endif #endif #endif } // namespace Algorithms } // namespace Containers } // namespace TNL src/TNL/Containers/Algorithms/ArrayOperationsMIC_impl.h +4 −20 Original line number Diff line number Diff line Loading @@ -78,7 +78,7 @@ getMemoryElement( const Element* data ) } template< typename Element, typename Index > bool void ArrayOperations< Devices::MIC >:: setMemory( Element* data, const Element& value, Loading @@ -95,7 +95,6 @@ setMemory( Element* data, for(int i=0;i<size;i++) dst[i]=tmp; } return true; #else throw Exceptions::MICSupportMissing(); #endif Loading @@ -104,7 +103,7 @@ setMemory( Element* data, template< typename DestinationElement, typename SourceElement, typename Index > bool void ArrayOperations< Devices::MIC >:: copyMemory( DestinationElement* destination, const SourceElement* source, Loading @@ -123,7 +122,6 @@ copyMemory( DestinationElement* destination, { memcpy(dst_ptr.pointer,src_ptr.pointer,size*sizeof(DestinationElement)); } return true; } else { Loading @@ -136,13 +134,10 @@ copyMemory( DestinationElement* destination, for(int i=0;i<size;i++) dst_ptr.pointer[i]=src_ptr.pointer[i]; } return true; } #else throw Exceptions::MICSupportMissing(); #endif return false; } template< typename Element1, Loading Loading @@ -242,7 +237,7 @@ containsOnlyValue( const Element* data, template< typename DestinationElement, typename SourceElement, typename Index > bool void ArrayOperations< Devices::Host, Devices::MIC >:: copyMemory( DestinationElement* destination, const SourceElement* source, Loading @@ -267,7 +262,6 @@ copyMemory( DestinationElement* destination, } memcpy((void*)destination,(void*)&tmp,size*sizeof(SourceElement)); return true; } else { Loading @@ -277,7 +271,6 @@ copyMemory( DestinationElement* destination, { memcpy((void*)tmp,src_ptr.pointer,size*sizeof(SourceElement)); } return true; } } else Loading @@ -297,7 +290,6 @@ copyMemory( DestinationElement* destination, } memcpy((void*)destination,(void*)&tmp,size*sizeof(DestinationElement)); return true; } else { Loading @@ -309,10 +301,8 @@ copyMemory( DestinationElement* destination, for(int i=0;i<size;i++) dst[i]=src_ptr.pointer[i]; } return true; } } return false; #else throw Exceptions::MICSupportMissing(); #endif Loading Loading @@ -368,7 +358,7 @@ compareMemory( const Element1* destination, template< typename DestinationElement, typename SourceElement, typename Index > bool void ArrayOperations< Devices::MIC, Devices::Host >:: copyMemory( DestinationElement* destination, const SourceElement* source, Loading @@ -393,8 +383,6 @@ copyMemory( DestinationElement* destination, { memcpy(dst_ptr.pointer,(void*)&tmp,size*sizeof(SourceElement)); } return true; } else { Loading @@ -404,7 +392,6 @@ copyMemory( DestinationElement* destination, { memcpy(dst_ptr.pointer,(void*)tmp,size*sizeof(SourceElement)); } return true; } } else Loading @@ -423,7 +410,6 @@ copyMemory( DestinationElement* destination, for(int i=0;i<size;i++) dst_ptr.pointer[i]=src[i]; } return true; } else { Loading @@ -435,10 +421,8 @@ copyMemory( DestinationElement* destination, for(int i=0;i<size;i++) dst_ptr.pointer[i]=src[i]; } return true; } } return false; #else throw Exceptions::MICSupportMissing(); #endif Loading src/TNL/Containers/Algorithms/Multireduction.h +4 −4 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ class Multireduction< Devices::Cuda > { public: template< typename Operation, typename Index > static bool static void reduce( Operation& operation, const int n, const Index size, Loading @@ -45,7 +45,7 @@ class Multireduction< Devices::Host > { public: template< typename Operation, typename Index > static bool static void reduce( Operation& operation, const int n, const Index size, Loading @@ -60,7 +60,7 @@ class Multireduction< Devices::MIC > { public: template< typename Operation, typename Index > static bool static void reduce( Operation& operation, const int n, const Index size, Loading Loading
src/TNL/Containers/Algorithms/ArrayOperations.h +10 −10 Original line number Diff line number Diff line Loading @@ -42,14 +42,14 @@ class ArrayOperations< Devices::Host > static Element getMemoryElement( const Element* data ); template< typename Element, typename Index > static bool setMemory( Element* data, static void setMemory( Element* data, const Element& value, const Index size ); template< typename DestinationElement, typename SourceElement, typename Index > static bool copyMemory( DestinationElement* destination, static void copyMemory( DestinationElement* destination, const SourceElement* source, const Index size ); Loading Loading @@ -93,14 +93,14 @@ class ArrayOperations< Devices::Cuda > static Element getMemoryElement( const Element* data ); template< typename Element, typename Index > static bool setMemory( Element* data, static void setMemory( Element* data, const Element& value, const Index size ); template< typename DestinationElement, typename SourceElement, typename Index > static bool copyMemory( DestinationElement* destination, static void copyMemory( DestinationElement* destination, const SourceElement* source, const Index size ); Loading Loading @@ -132,7 +132,7 @@ class ArrayOperations< Devices::Cuda, Devices::Host > template< typename DestinationElement, typename SourceElement, typename Index > static bool copyMemory( DestinationElement* destination, static void copyMemory( DestinationElement* destination, const SourceElement* source, const Index size ); Loading @@ -152,7 +152,7 @@ class ArrayOperations< Devices::Host, Devices::Cuda > template< typename DestinationElement, typename SourceElement, typename Index > static bool copyMemory( DestinationElement* destination, static void copyMemory( DestinationElement* destination, const SourceElement* source, const Index size ); Loading Loading @@ -185,14 +185,14 @@ class ArrayOperations< Devices::MIC > static Element getMemoryElement( const Element* data ); template< typename Element, typename Index > static bool setMemory( Element* data, static void setMemory( Element* data, const Element& value, const Index size ); template< typename DestinationElement, typename SourceElement, typename Index > static bool copyMemory( DestinationElement* destination, static void copyMemory( DestinationElement* destination, const SourceElement* source, const Index size ); Loading Loading @@ -224,7 +224,7 @@ class ArrayOperations< Devices::MIC, Devices::Host > template< typename DestinationElement, typename SourceElement, typename Index > static bool copyMemory( DestinationElement* destination, static void copyMemory( DestinationElement* destination, const SourceElement* source, const Index size ); Loading @@ -244,7 +244,7 @@ class ArrayOperations< Devices::Host, Devices::MIC > template< typename DestinationElement, typename SourceElement, typename Index > static bool copyMemory( DestinationElement* destination, static void copyMemory( DestinationElement* destination, const SourceElement* source, const Index size ); Loading
src/TNL/Containers/Algorithms/ArrayOperationsCuda_impl.h +25 −270 File changed.Preview size limit exceeded, changes collapsed. Show changes
src/TNL/Containers/Algorithms/ArrayOperationsHost_impl.h +2 −138 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ getMemoryElement( const Element* data ) } template< typename Element, typename Index > bool void ArrayOperations< Devices::Host >:: setMemory( Element* data, const Element& value, Loading @@ -70,13 +70,12 @@ setMemory( Element* data, { for( Index i = 0; i < size; i ++ ) data[ i ] = value; return true; } template< typename DestinationElement, typename SourceElement, typename Index > bool void ArrayOperations< Devices::Host >:: copyMemory( DestinationElement* destination, const SourceElement* source, Loading @@ -100,7 +99,6 @@ copyMemory( DestinationElement* destination, else for( Index i = 0; i < size; i ++ ) destination[ i ] = ( DestinationElement ) source[ i ]; return true; } template< typename DestinationElement, Loading Loading @@ -164,140 +162,6 @@ containsOnlyValue( const Element* data, return true; } #ifdef TEMPLATE_EXPLICIT_INSTANTIATION extern template bool ArrayOperations< Devices::Host >::allocateMemory< char, int >( char*& data, const int size ); extern template bool ArrayOperations< Devices::Host >::allocateMemory< int, int >( int*& data, const int size ); extern template bool ArrayOperations< Devices::Host >::allocateMemory< long int, int >( long int*& data, const int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::allocateMemory< float, int >( float*& data, const int size ); #endif extern template bool ArrayOperations< Devices::Host >::allocateMemory< double, int >( double*& data, const int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::allocateMemory< long double, int >( long double*& data, const int size ); #endif #ifdef INSTANTIATE_LONG_INT extern template bool ArrayOperations< Devices::Host >::allocateMemory< char, long int >( char*& data, const long int size ); extern template bool ArrayOperations< Devices::Host >::allocateMemory< int, long int >( int*& data, const long int size ); extern template bool ArrayOperations< Devices::Host >::allocateMemory< long int, long int >( long int*& data, const long int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::allocateMemory< float, long int >( float*& data, const long int size ); #endif extern template bool ArrayOperations< Devices::Host >::allocateMemory< double, long int >( double*& data, const long int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::allocateMemory< long double, long int >( long double*& data, const long int size ); #endif #endif extern template bool ArrayOperations< Devices::Host >::freeMemory< char >( char* data ); extern template bool ArrayOperations< Devices::Host >::freeMemory< int >( int* data ); extern template bool ArrayOperations< Devices::Host >::freeMemory< long int >( long int* data ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::freeMemory< float >( float* data ); #endif extern template bool ArrayOperations< Devices::Host >::freeMemory< double >( double* data ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::freeMemory< long double >( long double* data ); #endif extern template void ArrayOperations< Devices::Host >::setMemoryElement< char >( char* data, const char& value ); extern template void ArrayOperations< Devices::Host >::setMemoryElement< int >( int* data, const int& value ); extern template void ArrayOperations< Devices::Host >::setMemoryElement< long int >( long int* data, const long int& value ); #ifdef INSTANTIATE_FLOAT extern template void ArrayOperations< Devices::Host >::setMemoryElement< float >( float* data, const float& value ); #endif extern template void ArrayOperations< Devices::Host >::setMemoryElement< double >( double* data, const double& value ); #ifdef INSTANTIATE_LONG_DOUBLE extern template void ArrayOperations< Devices::Host >::setMemoryElement< long double >( long double* data, const long double& value ); #endif extern template char ArrayOperations< Devices::Host >::getMemoryElement< char >( char* data ); extern template int ArrayOperations< Devices::Host >::getMemoryElement< int >( int* data ); extern template long int ArrayOperations< Devices::Host >::getMemoryElement< long int >( long int* data ); #ifdef INSTANTIATE_FLOAT extern template float ArrayOperations< Devices::Host >::getMemoryElement< float >( float* data ); #endif extern template double ArrayOperations< Devices::Host >::getMemoryElement< double >( double* data ); #ifdef INSTANTIATE_LONG_DOUBLE extern template long double ArrayOperations< Devices::Host >::getMemoryElement< long double >( long double* data ); #endif extern template bool ArrayOperations< Devices::Host >::copyMemory< char, char, int >( char* destination, const char* source, const int size ); extern template bool ArrayOperations< Devices::Host >::copyMemory< int, int, int >( int* destination, const int* source, const int size ); extern template bool ArrayOperations< Devices::Host >::copyMemory< long int, long int, int >( long int* destination, const long int* source, const int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::copyMemory< float, float, int >( float* destination, const float* source, const int size ); #endif extern template bool ArrayOperations< Devices::Host >::copyMemory< double, double, int >( double* destination, const double* source, const int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::copyMemory< long double, long double, int >( long double* destination, const long double* source, const int size ); #endif #ifdef INSTANTIATE_LONG_INT extern template bool ArrayOperations< Devices::Host >::copyMemory< char, char, long int >( char* destination, const char* source, const long int size ); extern template bool ArrayOperations< Devices::Host >::copyMemory< int, int, long int >( int* destination, const int* source, const long int size ); extern template bool ArrayOperations< Devices::Host >::copyMemory< long int, long int, long int >( long int* destination, const long int* source, const long int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::copyMemory< float, float, long int >( float* destination, const float* source, const long int size ); #endif extern template bool ArrayOperations< Devices::Host >::copyMemory< double, double, long int >( double* destination, const double* source, const long int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::copyMemory< long double, long double, long int >( long double* destination, const long double* source, const long int size ); #endif #endif extern template bool ArrayOperations< Devices::Host >::compareMemory< char, char, int >( const char* data1, const char* data2, const int size ); extern template bool ArrayOperations< Devices::Host >::compareMemory< int, int, int >( const int* data1, const int* data2, const int size ); extern template bool ArrayOperations< Devices::Host >::compareMemory< long int, long int, int >( const long int* data1, const long int* data2, const int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::compareMemory< float, float, int >( const float* data1, const float* data2, const int size ); #endif extern template bool ArrayOperations< Devices::Host >::compareMemory< double, double, int >( const double* data1, const double* data2, const int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::compareMemory< long double, long double, int >( const long double* data1, const long double* data2, const int size ); #endif #ifdef INSTANTIATE_LONG_INT extern template bool ArrayOperations< Devices::Host >::compareMemory< char, char, long int >( const char* data1, const char* data2, const long int size ); extern template bool ArrayOperations< Devices::Host >::compareMemory< int, int, long int >( const int* data1, const int* data2, const long int size ); extern template bool ArrayOperations< Devices::Host >::compareMemory< long int, long int, long int >( const long int* data1, const long int* data2, const long int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::compareMemory< float, float, long int >( const float* data1, const float* data2, const long int size ); #endif extern template bool ArrayOperations< Devices::Host >::compareMemory< double, double, long int >( const double* data1, const double* data2, const long int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::compareMemory< long double, long double, long int >( const long double* data1, const long double* data2, const long int size ); #endif #endif extern template bool ArrayOperations< Devices::Host >::setMemory< char, int >( char* destination, const char& value, const int size ); extern template bool ArrayOperations< Devices::Host >::setMemory< int, int >( int* destination, const int& value, const int size ); extern template bool ArrayOperations< Devices::Host >::setMemory< long int, int >( long int* destination, const long int& value, const int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::setMemory< float, int >( float* destination, const float& value, const int size ); #endif extern template bool ArrayOperations< Devices::Host >::setMemory< double, int >( double* destination, const double& value, const int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::setMemory< long double, int >( long double* destination, const long double& value, const int size ); #endif #ifdef INSTANTIATE_LONG_INT extern template bool ArrayOperations< Devices::Host >::setMemory< char, long int >( char* destination, const char& value, const long int size ); extern template bool ArrayOperations< Devices::Host >::setMemory< int, long int >( int* destination, const int& value, const long int size ); extern template bool ArrayOperations< Devices::Host >::setMemory< long int, long int >( long int* destination, const long int& value, const long int size ); #ifdef INSTANTIATE_FLOAT extern template bool ArrayOperations< Devices::Host >::setMemory< float, long int >( float* destination, const float& value, const long int size ); #endif extern template bool ArrayOperations< Devices::Host >::setMemory< double, long int >( double* destination, const double& value, const long int size ); #ifdef INSTANTIATE_LONG_DOUBLE extern template bool ArrayOperations< Devices::Host >::setMemory< long double, long int >( long double* destination, const long double& value, const long int size ); #endif #endif #endif } // namespace Algorithms } // namespace Containers } // namespace TNL
src/TNL/Containers/Algorithms/ArrayOperationsMIC_impl.h +4 −20 Original line number Diff line number Diff line Loading @@ -78,7 +78,7 @@ getMemoryElement( const Element* data ) } template< typename Element, typename Index > bool void ArrayOperations< Devices::MIC >:: setMemory( Element* data, const Element& value, Loading @@ -95,7 +95,6 @@ setMemory( Element* data, for(int i=0;i<size;i++) dst[i]=tmp; } return true; #else throw Exceptions::MICSupportMissing(); #endif Loading @@ -104,7 +103,7 @@ setMemory( Element* data, template< typename DestinationElement, typename SourceElement, typename Index > bool void ArrayOperations< Devices::MIC >:: copyMemory( DestinationElement* destination, const SourceElement* source, Loading @@ -123,7 +122,6 @@ copyMemory( DestinationElement* destination, { memcpy(dst_ptr.pointer,src_ptr.pointer,size*sizeof(DestinationElement)); } return true; } else { Loading @@ -136,13 +134,10 @@ copyMemory( DestinationElement* destination, for(int i=0;i<size;i++) dst_ptr.pointer[i]=src_ptr.pointer[i]; } return true; } #else throw Exceptions::MICSupportMissing(); #endif return false; } template< typename Element1, Loading Loading @@ -242,7 +237,7 @@ containsOnlyValue( const Element* data, template< typename DestinationElement, typename SourceElement, typename Index > bool void ArrayOperations< Devices::Host, Devices::MIC >:: copyMemory( DestinationElement* destination, const SourceElement* source, Loading @@ -267,7 +262,6 @@ copyMemory( DestinationElement* destination, } memcpy((void*)destination,(void*)&tmp,size*sizeof(SourceElement)); return true; } else { Loading @@ -277,7 +271,6 @@ copyMemory( DestinationElement* destination, { memcpy((void*)tmp,src_ptr.pointer,size*sizeof(SourceElement)); } return true; } } else Loading @@ -297,7 +290,6 @@ copyMemory( DestinationElement* destination, } memcpy((void*)destination,(void*)&tmp,size*sizeof(DestinationElement)); return true; } else { Loading @@ -309,10 +301,8 @@ copyMemory( DestinationElement* destination, for(int i=0;i<size;i++) dst[i]=src_ptr.pointer[i]; } return true; } } return false; #else throw Exceptions::MICSupportMissing(); #endif Loading Loading @@ -368,7 +358,7 @@ compareMemory( const Element1* destination, template< typename DestinationElement, typename SourceElement, typename Index > bool void ArrayOperations< Devices::MIC, Devices::Host >:: copyMemory( DestinationElement* destination, const SourceElement* source, Loading @@ -393,8 +383,6 @@ copyMemory( DestinationElement* destination, { memcpy(dst_ptr.pointer,(void*)&tmp,size*sizeof(SourceElement)); } return true; } else { Loading @@ -404,7 +392,6 @@ copyMemory( DestinationElement* destination, { memcpy(dst_ptr.pointer,(void*)tmp,size*sizeof(SourceElement)); } return true; } } else Loading @@ -423,7 +410,6 @@ copyMemory( DestinationElement* destination, for(int i=0;i<size;i++) dst_ptr.pointer[i]=src[i]; } return true; } else { Loading @@ -435,10 +421,8 @@ copyMemory( DestinationElement* destination, for(int i=0;i<size;i++) dst_ptr.pointer[i]=src[i]; } return true; } } return false; #else throw Exceptions::MICSupportMissing(); #endif Loading
src/TNL/Containers/Algorithms/Multireduction.h +4 −4 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ class Multireduction< Devices::Cuda > { public: template< typename Operation, typename Index > static bool static void reduce( Operation& operation, const int n, const Index size, Loading @@ -45,7 +45,7 @@ class Multireduction< Devices::Host > { public: template< typename Operation, typename Index > static bool static void reduce( Operation& operation, const int n, const Index size, Loading @@ -60,7 +60,7 @@ class Multireduction< Devices::MIC > { public: template< typename Operation, typename Index > static bool static void reduce( Operation& operation, const int n, const Index size, Loading