|
Tpetra Matrix/Vector Services
Version of the Day
|
00001 /* 00002 // @HEADER 00003 // *********************************************************************** 00004 // 00005 // Tpetra: Templated Linear Algebra Services Package 00006 // Copyright (2008) Sandia Corporation 00007 // 00008 // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, 00009 // the U.S. Government retains certain rights in this software. 00010 // 00011 // Redistribution and use in source and binary forms, with or without 00012 // modification, are permitted provided that the following conditions are 00013 // met: 00014 // 00015 // 1. Redistributions of source code must retain the above copyright 00016 // notice, this list of conditions and the following disclaimer. 00017 // 00018 // 2. Redistributions in binary form must reproduce the above copyright 00019 // notice, this list of conditions and the following disclaimer in the 00020 // documentation and/or other materials provided with the distribution. 00021 // 00022 // 3. Neither the name of the Corporation nor the names of the 00023 // contributors may be used to endorse or promote products derived from 00024 // this software without specific prior written permission. 00025 // 00026 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY 00027 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00028 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 00029 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE 00030 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00031 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00032 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 00033 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00034 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 00035 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00036 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00037 // 00038 // Questions? Contact Michael A. Heroux (maherou@sandia.gov) 00039 // 00040 // ************************************************************************ 00041 // @HEADER 00042 */ 00043 00044 #include "TpetraExt_MMHelpers.hpp" 00045 00046 #ifdef HAVE_TPETRA_EXPLICIT_INSTANTIATION 00047 00048 // #include "Tpetra_ExplicitInstantiationHelpers.hpp" 00049 00050 #include "TpetraExt_MMHelpers_def.hpp" 00051 00052 #include <Kokkos_SerialNode.hpp> 00053 #if defined(HAVE_KOKKOSCLASSIC_OPENMP) 00054 # include <Kokkos_OpenMPNode.hpp> 00055 #endif 00056 #if defined(HAVE_KOKKOSCLASSIC_TBB) 00057 # include <Kokkos_TBBNode.hpp> 00058 #endif 00059 #if defined(HAVE_KOKKOSCLASSIC_THREADPOOL) 00060 # include <Kokkos_TPINode.hpp> 00061 #endif 00062 #if defined(HAVE_KOKKOSCLASSIC_THRUST) 00063 # include <Kokkos_ThrustGPUNode.hpp> 00064 #endif 00065 00066 namespace Tpetra { 00067 00068 #if defined(HAVE_TPETRA_INST_DOUBLE) 00069 TPETRA_CRSMATRIXSTRUCT_INSTANT(double,int,int,Kokkos::SerialNode) 00070 TPETRA_CRSWRAPPER_INSTANT(double,int,int,Kokkos::SerialNode) 00071 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(double,int,int,Kokkos::SerialNode) 00072 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(double,int,int,Kokkos::SerialNode) 00073 #if defined(HAVE_KOKKOSCLASSIC_OPENMP) 00074 TPETRA_CRSMATRIXSTRUCT_INSTANT(double,int,int,Kokkos::OpenMPNode) 00075 TPETRA_CRSWRAPPER_INSTANT(double,int,int,Kokkos::OpenMPNode) 00076 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(double,int,int,Kokkos::OpenMPNode) 00077 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(double,int,int,Kokkos::OpenMPNode) 00078 #endif 00079 #if defined(HAVE_KOKKOSCLASSIC_TBB) 00080 TPETRA_CRSMATRIXSTRUCT_INSTANT(double,int,int,Kokkos::TBBNode) 00081 TPETRA_CRSWRAPPER_INSTANT(double,int,int,Kokkos::TBBNode) 00082 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(double,int,int,Kokkos::TBBNode) 00083 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(double,int,int,Kokkos::TBBNode) 00084 #endif 00085 #if defined(HAVE_KOKKOSCLASSIC_THREADPOOL) 00086 TPETRA_CRSMATRIXSTRUCT_INSTANT(double,int,int,Kokkos::TPINode) 00087 TPETRA_CRSWRAPPER_INSTANT(double,int,int,Kokkos::TPINode) 00088 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(double,int,int,Kokkos::TPINode) 00089 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(double,int,int,Kokkos::TPINode) 00090 #endif 00091 #if defined(HAVE_KOKKOSCLASSIC_THRUST) && defined(HAVE_KOKKOSCLASSIC_CUDA_DOUBLE) 00092 TPETRA_CRSMATRIXSTRUCT_INSTANT(double,int,int,Kokkos::ThrustGPUNode) 00093 TPETRA_CRSWRAPPER_INSTANT(double,int,int,Kokkos::ThrustGPUNode) 00094 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(double,int,int,Kokkos::ThrustGPUNode) 00095 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(double,int,int,Kokkos::ThrustGPUNode) 00096 #endif 00097 #endif // double 00098 #if defined(HAVE_TPETRA_INST_FLOAT) 00099 TPETRA_CRSMATRIXSTRUCT_INSTANT(float,int,int,Kokkos::SerialNode) 00100 TPETRA_CRSWRAPPER_INSTANT(float,int,int,Kokkos::SerialNode) 00101 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(float,int,int,Kokkos::SerialNode) 00102 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(float,int,int,Kokkos::SerialNode) 00103 #if defined(HAVE_KOKKOSCLASSIC_OPENMP) 00104 TPETRA_CRSMATRIXSTRUCT_INSTANT(float,int,int,Kokkos::OpenMPNode) 00105 TPETRA_CRSWRAPPER_INSTANT(float,int,int,Kokkos::OpenMPNode) 00106 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(float,int,int,Kokkos::OpenMPNode) 00107 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(float,int,int,Kokkos::OpenMPNode) 00108 #endif 00109 #if defined(HAVE_KOKKOSCLASSIC_TBB) 00110 TPETRA_CRSMATRIXSTRUCT_INSTANT(float,int,int,Kokkos::TBBNode) 00111 TPETRA_CRSWRAPPER_INSTANT(float,int,int,Kokkos::TBBNode) 00112 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(float,int,int,Kokkos::TBBNode) 00113 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(float,int,int,Kokkos::TBBNode) 00114 #endif 00115 #if defined(HAVE_KOKKOSCLASSIC_THREADPOOL) 00116 TPETRA_CRSMATRIXSTRUCT_INSTANT(float,int,int,Kokkos::TPINode) 00117 TPETRA_CRSWRAPPER_INSTANT(float,int,int,Kokkos::TPINode) 00118 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(float,int,int,Kokkos::TPINode) 00119 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(float,int,int,Kokkos::TPINode) 00120 #endif 00121 #if defined(HAVE_KOKKOSCLASSIC_THRUST) && defined(HAVE_KOKKOSCLASSIC_CUDA_FLOAT) 00122 TPETRA_CRSMATRIXSTRUCT_INSTANT(float,int,int,Kokkos::ThrustGPUNode) 00123 TPETRA_CRSWRAPPER_INSTANT(float,int,int,Kokkos::ThrustGPUNode) 00124 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(float,int,int,Kokkos::ThrustGPUNode) 00125 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(float,int,int,Kokkos::ThrustGPUNode) 00126 #endif 00127 #endif // float 00128 #if defined(HAVE_TPETRA_INST_COMPLEX_DOUBLE) 00129 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<double>,int,int,Kokkos::SerialNode) 00130 TPETRA_CRSWRAPPER_INSTANT(std::complex<double>,int,int,Kokkos::SerialNode) 00131 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<double>,int,int,Kokkos::SerialNode) 00132 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<double>,int,int,Kokkos::SerialNode) 00133 #if defined(HAVE_KOKKOSCLASSIC_OPENMP) 00134 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<double>,int,int,Kokkos::OpenMPNode) 00135 TPETRA_CRSWRAPPER_INSTANT(std::complex<double>,int,int,Kokkos::OpenMPNode) 00136 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<double>,int,int,Kokkos::OpenMPNode) 00137 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<double>,int,int,Kokkos::OpenMPNode) 00138 #endif 00139 #if defined(HAVE_KOKKOSCLASSIC_TBB) 00140 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<double>,int,int,Kokkos::TBBNode) 00141 TPETRA_CRSWRAPPER_INSTANT(std::complex<double>,int,int,Kokkos::TBBNode) 00142 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<double>,int,int,Kokkos::TBBNode) 00143 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<double>,int,int,Kokkos::TBBNode) 00144 #endif 00145 #if defined(HAVE_KOKKOSCLASSIC_THREADPOOL) 00146 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<double>,int,int,Kokkos::TPINode) 00147 TPETRA_CRSWRAPPER_INSTANT(std::complex<double>,int,int,Kokkos::TPINode) 00148 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<double>,int,int,Kokkos::TPINode) 00149 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<double>,int,int,Kokkos::TPINode) 00150 #endif 00151 // no complex on GPU support for now 00152 //#if defined(HAVE_KOKKOSCLASSIC_THRUST) && defined(HAVE_KOKKOSCLASSIC_CUDA_DOUBLE) 00153 // TPETRA_CRSMATRIXSTRUCT_INSTANT(double,int,int,Kokkos::ThrustGPUNode) 00154 // TPETRA_CRSWRAPPER_INSTANT(double,int,int,Kokkos::ThrustGPUNode) 00155 // TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(double,int,int,Kokkos::ThrustGPUNode) 00156 // TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(double,int,int,Kokkos::ThrustGPUNode) 00157 //#endif 00158 #endif // complex double 00159 #if defined(HAVE_TPETRA_INST_COMPLEX_FLOAT) 00160 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<float>,int,int,Kokkos::SerialNode) 00161 TPETRA_CRSWRAPPER_INSTANT(std::complex<float>,int,int,Kokkos::SerialNode) 00162 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<float>,int,int,Kokkos::SerialNode) 00163 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<float>,int,int,Kokkos::SerialNode) 00164 #if defined(HAVE_KOKKOSCLASSIC_OPENMP) 00165 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<float>,int,int,Kokkos::OpenMPNode) 00166 TPETRA_CRSWRAPPER_INSTANT(std::complex<float>,int,int,Kokkos::OpenMPNode) 00167 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<float>,int,int,Kokkos::OpenMPNode) 00168 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<float>,int,int,Kokkos::OpenMPNode) 00169 #endif 00170 #if defined(HAVE_KOKKOSCLASSIC_TBB) 00171 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<float>,int,int,Kokkos::TBBNode) 00172 TPETRA_CRSWRAPPER_INSTANT(std::complex<float>,int,int,Kokkos::TBBNode) 00173 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<float>,int,int,Kokkos::TBBNode) 00174 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<float>,int,int,Kokkos::TBBNode) 00175 #endif 00176 #if defined(HAVE_KOKKOSCLASSIC_THREADPOOL) 00177 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<float>,int,int,Kokkos::TPINode) 00178 TPETRA_CRSWRAPPER_INSTANT(std::complex<float>,int,int,Kokkos::TPINode) 00179 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<float>,int,int,Kokkos::TPINode) 00180 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<float>,int,int,Kokkos::TPINode) 00181 #endif 00182 // no complex on GPU support for now 00183 //#if defined(HAVE_KOKKOSCLASSIC_THRUST) && defined(HAVE_KOKKOSCLASSIC_CUDA_DOUBLE) 00184 // TPETRA_CRSMATRIXSTRUCT_INSTANT(double,int,int,Kokkos::ThrustGPUNode) 00185 // TPETRA_CRSWRAPPER_INSTANT(double,int,int,Kokkos::ThrustGPUNode) 00186 // TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(double,int,int,Kokkos::ThrustGPUNode) 00187 // TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(double,int,int,Kokkos::ThrustGPUNode) 00188 //#endif 00189 #endif // complex float 00190 00191 00192 #ifdef HAVE_TPETRA_INST_INT_LONG 00193 #if defined(HAVE_TPETRA_INST_DOUBLE) 00194 TPETRA_CRSMATRIXSTRUCT_INSTANT(double,int,long,Kokkos::SerialNode) 00195 TPETRA_CRSWRAPPER_INSTANT(double,int,long,Kokkos::SerialNode) 00196 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(double,int,long,Kokkos::SerialNode) 00197 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(double,int,long,Kokkos::SerialNode) 00198 #if defined(HAVE_KOKKOSCLASSIC_OPENMP) 00199 TPETRA_CRSMATRIXSTRUCT_INSTANT(double,int,long,Kokkos::OpenMPNode) 00200 TPETRA_CRSWRAPPER_INSTANT(double,int,long,Kokkos::OpenMPNode) 00201 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(double,int,long,Kokkos::OpenMPNode) 00202 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(double,int,long,Kokkos::OpenMPNode) 00203 #endif 00204 #if defined(HAVE_KOKKOSCLASSIC_TBB) 00205 TPETRA_CRSMATRIXSTRUCT_INSTANT(double,int,long,Kokkos::TBBNode) 00206 TPETRA_CRSWRAPPER_INSTANT(double,int,long,Kokkos::TBBNode) 00207 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(double,int,long,Kokkos::TBBNode) 00208 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(double,int,long,Kokkos::TBBNode) 00209 #endif 00210 #if defined(HAVE_KOKKOSCLASSIC_THREADPOOL) 00211 TPETRA_CRSMATRIXSTRUCT_INSTANT(double,int,long,Kokkos::TPINode) 00212 TPETRA_CRSWRAPPER_INSTANT(double,int,long,Kokkos::TPINode) 00213 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(double,int,long,Kokkos::TPINode) 00214 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(double,int,long,Kokkos::TPINode) 00215 #endif 00216 #if defined(HAVE_KOKKOSCLASSIC_THRUST) && defined(HAVE_KOKKOSCLASSIC_CUDA_DOUBLE) 00217 TPETRA_CRSMATRIXSTRUCT_INSTANT(double,int,long,Kokkos::ThrustGPUNode) 00218 TPETRA_CRSWRAPPER_INSTANT(double,int,long,Kokkos::ThrustGPUNode) 00219 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(double,int,long,Kokkos::ThrustGPUNode) 00220 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(double,int,long,Kokkos::ThrustGPUNode) 00221 #endif 00222 #endif // double 00223 #if defined(HAVE_TPETRA_INST_FLOAT) 00224 TPETRA_CRSMATRIXSTRUCT_INSTANT(float,int,long,Kokkos::SerialNode) 00225 TPETRA_CRSWRAPPER_INSTANT(float,int,long,Kokkos::SerialNode) 00226 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(float,int,long,Kokkos::SerialNode) 00227 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(float,int,long,Kokkos::SerialNode) 00228 #if defined(HAVE_KOKKOSCLASSIC_OPENMP) 00229 TPETRA_CRSMATRIXSTRUCT_INSTANT(float,int,long,Kokkos::OpenMPNode) 00230 TPETRA_CRSWRAPPER_INSTANT(float,int,long,Kokkos::OpenMPNode) 00231 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(float,int,long,Kokkos::OpenMPNode) 00232 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(float,int,long,Kokkos::OpenMPNode) 00233 #endif 00234 #if defined(HAVE_KOKKOSCLASSIC_TBB) 00235 TPETRA_CRSMATRIXSTRUCT_INSTANT(float,int,long,Kokkos::TBBNode) 00236 TPETRA_CRSWRAPPER_INSTANT(float,int,long,Kokkos::TBBNode) 00237 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(float,int,long,Kokkos::TBBNode) 00238 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(float,int,long,Kokkos::TBBNode) 00239 #endif 00240 #if defined(HAVE_KOKKOSCLASSIC_THREADPOOL) 00241 TPETRA_CRSMATRIXSTRUCT_INSTANT(float,int,long,Kokkos::TPINode) 00242 TPETRA_CRSWRAPPER_INSTANT(float,int,long,Kokkos::TPINode) 00243 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(float,int,long,Kokkos::TPINode) 00244 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(float,int,long,Kokkos::TPINode) 00245 #endif 00246 #if defined(HAVE_KOKKOSCLASSIC_THRUST) && defined(HAVE_KOKKOSCLASSIC_CUDA_FLOAT) 00247 TPETRA_CRSMATRIXSTRUCT_INSTANT(float,int,long,Kokkos::ThrustGPUNode) 00248 TPETRA_CRSWRAPPER_INSTANT(float,int,long,Kokkos::ThrustGPUNode) 00249 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(float,int,long,Kokkos::ThrustGPUNode) 00250 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(float,int,long,Kokkos::ThrustGPUNode) 00251 #endif 00252 #endif // float 00253 #if defined(HAVE_TPETRA_INST_COMPLEX_DOUBLE) 00254 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<double>,int,long,Kokkos::SerialNode) 00255 TPETRA_CRSWRAPPER_INSTANT(std::complex<double>,int,long,Kokkos::SerialNode) 00256 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<double>,int,long,Kokkos::SerialNode) 00257 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<double>,int,long,Kokkos::SerialNode) 00258 #if defined(HAVE_KOKKOSCLASSIC_OPENMP) 00259 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<double>,int,long,Kokkos::OpenMPNode) 00260 TPETRA_CRSWRAPPER_INSTANT(std::complex<double>,int,long,Kokkos::OpenMPNode) 00261 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<double>,int,long,Kokkos::OpenMPNode) 00262 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<double>,int,long,Kokkos::OpenMPNode) 00263 #endif 00264 #if defined(HAVE_KOKKOSCLASSIC_TBB) 00265 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<double>,int,long,Kokkos::TBBNode) 00266 TPETRA_CRSWRAPPER_INSTANT(std::complex<double>,int,long,Kokkos::TBBNode) 00267 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<double>,int,long,Kokkos::TBBNode) 00268 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<double>,int,long,Kokkos::TBBNode) 00269 #endif 00270 #if defined(HAVE_KOKKOSCLASSIC_THREADPOOL) 00271 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<double>,int,long,Kokkos::TPINode) 00272 TPETRA_CRSWRAPPER_INSTANT(std::complex<double>,int,long,Kokkos::TPINode) 00273 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<double>,int,long,Kokkos::TPINode) 00274 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<double>,int,long,Kokkos::TPINode) 00275 #endif 00276 // no complex on GPU support for now 00277 //#if defined(HAVE_KOKKOSCLASSIC_THRUST) && defined(HAVE_KOKKOSCLASSIC_CUDA_DOUBLE) 00278 // TPETRA_CRSMATRIXSTRUCT_INSTANT(double,int,long,Kokkos::ThrustGPUNode) 00279 // TPETRA_CRSWRAPPER_INSTANT(double,int,long,Kokkos::ThrustGPUNode) 00280 // TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(double,int,long,Kokkos::ThrustGPUNode) 00281 // TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(double,int,long,Kokkos::ThrustGPUNode) 00282 //#endif 00283 #endif // complex double 00284 #if defined(HAVE_TPETRA_INST_COMPLEX_FLOAT) 00285 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<float>,int,long,Kokkos::SerialNode) 00286 TPETRA_CRSWRAPPER_INSTANT(std::complex<float>,int,long,Kokkos::SerialNode) 00287 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<float>,int,long,Kokkos::SerialNode) 00288 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<float>,int,long,Kokkos::SerialNode) 00289 #if defined(HAVE_KOKKOSCLASSIC_OPENMP) 00290 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<float>,int,long,Kokkos::OpenMPNode) 00291 TPETRA_CRSWRAPPER_INSTANT(std::complex<float>,int,long,Kokkos::OpenMPNode) 00292 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<float>,int,long,Kokkos::OpenMPNode) 00293 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<float>,int,long,Kokkos::OpenMPNode) 00294 #endif 00295 #if defined(HAVE_KOKKOSCLASSIC_TBB) 00296 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<float>,int,long,Kokkos::TBBNode) 00297 TPETRA_CRSWRAPPER_INSTANT(std::complex<float>,int,long,Kokkos::TBBNode) 00298 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<float>,int,long,Kokkos::TBBNode) 00299 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<float>,int,long,Kokkos::TBBNode) 00300 #endif 00301 #if defined(HAVE_KOKKOSCLASSIC_THREADPOOL) 00302 TPETRA_CRSMATRIXSTRUCT_INSTANT(std::complex<float>,int,long,Kokkos::TPINode) 00303 TPETRA_CRSWRAPPER_INSTANT(std::complex<float>,int,long,Kokkos::TPINode) 00304 TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(std::complex<float>,int,long,Kokkos::TPINode) 00305 TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(std::complex<float>,int,long,Kokkos::TPINode) 00306 #endif 00307 // no complex on GPU support for now 00308 //#if defined(HAVE_KOKKOSCLASSIC_THRUST) && defined(HAVE_KOKKOSCLASSIC_CUDA_DOUBLE) 00309 // TPETRA_CRSMATRIXSTRUCT_INSTANT(double,int,long,Kokkos::ThrustGPUNode) 00310 // TPETRA_CRSWRAPPER_INSTANT(double,int,long,Kokkos::ThrustGPUNode) 00311 // TPETRA_CRSWRAPPER_CRSMATRIX_INSTANT(double,int,long,Kokkos::ThrustGPUNode) 00312 // TPETRA_CRSWRAPPER_GRAPHBUILDER_INSTANT(double,int,long,Kokkos::ThrustGPUNode) 00313 //#endif 00314 #endif // complex float 00315 #endif // <int,long> 00316 00317 00318 } // namespace Tpetra 00319 00320 #endif // HAVE_TPETRA_EXPLICIT_INSTANTIATION
1.7.6.1