Commit 01c659d7 authored by Jakub Klinkovský's avatar Jakub Klinkovský
Browse files

Removed explicit template instantiation of small templates

parent 1081a25c
Loading
Loading
Loading
Loading

src/TNL/Containers/Array_impl.cpp

deleted100644 → 0
+0 −61
Original line number Diff line number Diff line
/***************************************************************************
                          Array_impl.cpp  -  description
                             -------------------
    begin                : Jan 20, 2013
    copyright            : (C) 2013 by Tomas Oberhuber
    email                : tomas.oberhuber@fjfi.cvut.cz
 ***************************************************************************/

/* See Copyright Notice in tnl/Copyright */

#ifdef TEMPLATE_EXPLICIT_INSTANTIATION

#include <TNL/Containers/Array.h>

namespace TNL {
namespace Containers {

#ifdef INSTANTIATE_FLOAT
template class Array< float, Devices::Host, int >;
#endif
template class Array< double, Devices::Host, int >;
#ifdef INSTANTIATE_LONG_DOUBLE
template class Array< long double, Devices::Host, int >;
#endif

#ifdef INSTANTIATE_LONG_INT
#ifdef INSTANTIATE_FLOAT
template class Array< float, Devices::Host, long int >;
#endif
template class Array< double, Devices::Host, long int >;
#ifdef INSTANTIATE_LONG_DOUBLE
template class Array< long double, Devices::Host, long int >;
#endif
#endif

#ifndef HAVE_CUDA
#ifdef INSTANTIATE_FLOAT
template class Array< float, Devices::Cuda, int >;
#endif
template class Array< double, Devices::Cuda, int >;
#ifdef INSTANTIATE_LONG_DOUBLE
template class Array< long double, Devices::Cuda, int >;
#endif


#ifdef INSTANTIATE_LONG_INT
#ifdef INSTANTIATE_FLOAT
template class Array< float, Devices::Cuda, long int >;
#endif
template class Array< double, Devices::Cuda, long int >;
#ifdef INSTANTIATE_LONG_DOUBLE
template class Array< long double, Devices::Cuda, long int >;
#endif
#endif

#endif

} // namespace Containers
} // namespace TNL

#endif // #ifdef TEMPLATE_EXPLICIT_INSTANTIATION

src/TNL/Containers/Array_impl.cu

deleted100644 → 0
+0 −43
Original line number Diff line number Diff line
/***************************************************************************
                          Array_impl.cu  -  description
                             -------------------
    begin                : Jan 20, 2013
    copyright            : (C) 2013 by Tomas Oberhuber
    email                : tomas.oberhuber@fjfi.cvut.cz
 ***************************************************************************/

/* See Copyright Notice in tnl/Copyright */

#ifdef TEMPLATE_EXPLICIT_INSTANTIATION

#include <TNL/Containers/Array.h>

namespace TNL {
namespace Containers {

#ifdef HAVE_CUDA
#ifdef INSTANTIATE_FLOAT
template class Array< float, Devices::Cuda, int >;
#endif
template class Array< double, Devices::Cuda, int >;
#ifdef INSTANTIATE_LONG_DOUBLE
template class Array< long double, Devices::Cuda, int >;
#endif


#ifdef INSTANTIATE_LONG_INT
#ifdef INSTANTIATE_FLOAT
template class Array< float, Devices::Cuda, long int >;
#endif
template class Array< double, Devices::Cuda, long int >;
#ifdef INSTANTIATE_LONG_DOUBLE
template class Array< long double, Devices::Cuda, long int >;
#endif
#endif

#endif

} // namespace Containers
} // namespace TNL

#endif // #ifdef TEMPLATE_EXPLICIT_INSTANTIATION
+0 −37
Original line number Diff line number Diff line
@@ -581,42 +581,5 @@ std::ostream& operator << ( std::ostream& str, const Array< Value, Device, Index
   return str;
}


#ifdef UNDEF //TEMPLATE_EXPLICIT_INSTANTIATION

// TODO: this does not work with CUDA 5.5 - fix it later

#ifdef INSTANTIATE_FLOAT
extern template class Array< float, Devices::Host, int >;
#endif
extern template class Array< double, Devices::Host, int >;
#ifdef INSTANTIATE_LONG_DOUBLE
extern template class Array< long double, Devices::Host, int >;
#endif

#ifdef INSTANTIATE_LONG_INT
#ifdef INSTANTIATE_FLOAT
extern template class Array< float, Devices::Host, long int >;
#endif
extern template class Array< double, Devices::Host, long int >;
#ifdef INSTANTIATE_LONG_DOUBLE
extern template class Array< long double, Devices::Host, long int >;
#endif
#endif

#ifdef HAVE_CUDA
/*
 #ifdef INSTANTIATE_FLOAT
 extern template class Array< float, Devices::Cuda, int >;
 #endif
 extern template class Array< double, Devices::Cuda, int >;
 #ifdef INSTANTIATE_FLOAT
 extern template class Array< float, Devices::Cuda, long int >;
 #endif
 extern template class Array< double, Devices::Cuda, long int >;*/
#endif

#endif

} // namespace Containers
} // namespace TNL
+0 −27
Original line number Diff line number Diff line
@@ -40,30 +40,3 @@ set( headers Array.h
             StaticVector3D_impl.h  )

INSTALL( FILES ${headers} DESTINATION ${TNL_TARGET_INCLUDE_DIRECTORY}/Containers )

if( ${WITH_TEMPLATES_INSTANTIATION} )
   SET( CURRENT_DIR ${CMAKE_SOURCE_DIR}/src/TNL/Containers )
   set( common_SOURCES
        ${CURRENT_DIR}/MultiArray_impl.cpp
        ${CURRENT_DIR}/Array_impl.cpp
        ${CURRENT_DIR}/StaticArray_impl.cpp
        ${CURRENT_DIR}/MultiVector_impl.cpp
        ${CURRENT_DIR}/Vector_impl.cpp
        ${CURRENT_DIR}/StaticVector_impl.cpp
   )

   if( BUILD_CUDA )
      set( tnl_containers_CUDA__SOURCES
           ${common_SOURCES}
           ${CURRENT_DIR}/Array_impl.cu
           ${CURRENT_DIR}/MultiArray_impl.cu
           ${CURRENT_DIR}/StaticArray_impl.cu
           ${CURRENT_DIR}/Vector_impl.cu
           ${CURRENT_DIR}/StaticVector_impl.cu
           PARENT_SCOPE )
   endif()

   set( tnl_containers_SOURCES
        ${common_SOURCES}
        PARENT_SCOPE )
endif()
+0 −89
Original line number Diff line number Diff line
@@ -369,92 +369,3 @@ std::ostream& operator << ( std::ostream& str, const MultiArray< 4, Value, devic
#include <TNL/Containers/MultiArray2D_impl.h>
#include <TNL/Containers/MultiArray3D_impl.h>
#include <TNL/Containers/MultiArray4D_impl.h>

namespace TNL {
namespace Containers {
   
#ifdef TEMPLATE_EXPLICIT_INSTANTIATION

#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 1, float,  Devices::Host, int >;
#endif
extern template class MultiArray< 1, double, Devices::Host, int >;
#ifdef INSTANTIATE_LONG_INT
#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 1, float,  Devices::Host, long int >;
#endif
extern template class MultiArray< 1, double, Devices::Host, long int >;
#endif

#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 2, float,  Devices::Host, int >;
#endif
extern template class MultiArray< 2, double, Devices::Host, int >;
#ifdef INSTANTIATE_LONG_INT
#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 2, float,  Devices::Host, long int >;
#endif
extern template class MultiArray< 2, double, Devices::Host, long int >;
#endif

#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 3, float,  Devices::Host, int >;
#endif
extern template class MultiArray< 3, double, Devices::Host, int >;
#ifdef INSTANTIATE_LONG_INT
#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 3, float,  Devices::Host, long int >;
#endif
extern template class MultiArray< 3, double, Devices::Host, long int >;
#endif

#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 4, float,  Devices::Host, int >;
#endif
extern template class MultiArray< 4, double, Devices::Host, int >;
#ifdef INSTANTIATE_LONG_INT
#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 4, float,  Devices::Host, long int >;
#endif
extern template class MultiArray< 4, double, Devices::Host, long int >;
#endif

// TODO: There are problems with nvlink - it might be better in later versions
/*
#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 1, float,  Devices::Cuda, int >;
#endif
extern template class MultiArray< 1, double, Devices::Cuda, int >;
#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 1, float,  Devices::Cuda, long int >;
#endif
extern template class MultiArray< 1, double, Devices::Cuda, long int >;
#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 2, float,  Devices::Cuda, int >;
#endif
extern template class MultiArray< 2, double, Devices::Cuda, int >;
#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 2, float,  Devices::Cuda, long int >;
#endif
extern template class MultiArray< 2, double, Devices::Cuda, long int >;
#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 3, float,  Devices::Cuda, int >;
#endif
extern template class MultiArray< 3, double, Devices::Cuda, int >;
#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 3, float,  Devices::Cuda, long int >;
#endif
extern template class MultiArray< 3, double, Devices::Cuda, long int >;
#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 4, float,  Devices::Cuda, int >;
#endif
extern template class MultiArray< 4, double, Devices::Cuda, int >;
#ifdef INSTANTIATE_FLOAT
extern template class MultiArray< 4, float,  Devices::Cuda, long int >;
#endif
extern template class MultiArray< 4, double, Devices::Cuda, long int >;*/

#endif

} // namespace Containers
} // namespace TNL
Loading