Kokkos Node API and Local Linear Algebra Kernels Version of the Day
Kokkos_Raw_SparseTriangularSolve_decl.hpp
Go to the documentation of this file.
00001 //@HEADER
00002 // ************************************************************************
00003 // 
00004 //          Kokkos: Node API and Parallel Node Kernels
00005 //              Copyright (2008) Sandia Corporation
00006 // 
00007 // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
00008 // the U.S. Government retains certain rights in this software.
00009 // 
00010 // Redistribution and use in source and binary forms, with or without
00011 // modification, are permitted provided that the following conditions are
00012 // met:
00013 //
00014 // 1. Redistributions of source code must retain the above copyright
00015 // notice, this list of conditions and the following disclaimer.
00016 //
00017 // 2. Redistributions in binary form must reproduce the above copyright
00018 // notice, this list of conditions and the following disclaimer in the
00019 // documentation and/or other materials provided with the distribution.
00020 //
00021 // 3. Neither the name of the Corporation nor the names of the
00022 // contributors may be used to endorse or promote products derived from
00023 // this software without specific prior written permission.
00024 //
00025 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
00026 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00027 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00028 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
00029 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00030 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00031 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00032 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00033 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00034 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00035 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00036 //
00037 // Questions? Contact Michael A. Heroux (maherou@sandia.gov) 
00038 // 
00039 // ************************************************************************
00040 //@HEADER
00041 
00042 #ifndef __Kokkos_Raw_SparseTriangularSolve_decl_hpp
00043 #define __Kokkos_Raw_SparseTriangularSolve_decl_hpp
00044 
00050 
00051 namespace Kokkos {
00052 
00068 namespace Raw {
00069 
00099 
00100 template<class Ordinal,
00101          class MatrixScalar,
00102          class DomainScalar,
00103          class RangeScalar>
00104 void
00105 lowerTriSolveCscColMajor (
00106   const Ordinal numRows,
00107   const Ordinal numCols,
00108   const Ordinal numVecs,
00109   RangeScalar* const X,
00110   const Ordinal colStrideX,
00111   const  size_t* const ptr,
00112   const Ordinal* const ind,
00113   const MatrixScalar* const val,
00114   const DomainScalar* const Y,
00115   const Ordinal colStrideY);
00116 
00146 
00147 template<class Ordinal,
00148          class MatrixScalar,
00149          class DomainScalar,
00150          class RangeScalar>
00151 void
00152 lowerTriSolveCsrColMajor (
00153   const Ordinal numRows,
00154   const Ordinal numCols,
00155   const Ordinal numVecs,
00156   RangeScalar* const X,
00157   const Ordinal colStrideX,
00158   const  size_t* const ptr,
00159   const Ordinal* const ind,
00160   const MatrixScalar* const val,
00161   const DomainScalar* const Y,
00162   const Ordinal colStrideY);
00163 
00193 
00194 template<class Ordinal,
00195          class MatrixScalar,
00196          class DomainScalar,
00197          class RangeScalar>
00198 void
00199 lowerTriSolveCscRowMajor (
00200   const Ordinal numRows,
00201   const Ordinal numCols,
00202   const Ordinal numVecs,
00203   RangeScalar* const X,
00204   const Ordinal rowStrideX,
00205   const  size_t* const ptr,
00206   const Ordinal* const ind,
00207   const MatrixScalar* const val,
00208   const DomainScalar* const Y,
00209   const Ordinal rowStrideY);
00210 
00240 
00241 template<class Ordinal,
00242          class MatrixScalar,
00243          class DomainScalar,
00244          class RangeScalar>
00245 void
00246 lowerTriSolveCsrRowMajor (
00247   const Ordinal numRows,
00248   const Ordinal numCols,
00249   const Ordinal numVecs,
00250   RangeScalar* const X,
00251   const Ordinal rowStrideX,
00252   const  size_t* const ptr,
00253   const Ordinal* const ind,
00254   const MatrixScalar* const val,
00255   const DomainScalar* const Y,
00256   const Ordinal rowStrideY);
00257 
00288 
00289 template<class Ordinal,
00290          class MatrixScalar,
00291          class DomainScalar,
00292          class RangeScalar>
00293 void
00294 lowerTriSolveCscColMajorUnitDiag (
00295   const Ordinal numRows,
00296   const Ordinal numCols,
00297   const Ordinal numVecs,
00298   RangeScalar* const X,
00299   const Ordinal colStrideX,
00300   const  size_t* const ptr,
00301   const Ordinal* const ind,
00302   const MatrixScalar* const val,
00303   const DomainScalar* const Y,
00304   const Ordinal colStrideY);
00305 
00336 
00337 template<class Ordinal,
00338          class MatrixScalar,
00339          class DomainScalar,
00340          class RangeScalar>
00341 void
00342 lowerTriSolveCsrColMajorUnitDiag (
00343   const Ordinal numRows,
00344   const Ordinal numCols,
00345   const Ordinal numVecs,
00346   RangeScalar* const X,
00347   const Ordinal colStrideX,
00348   const  size_t* const ptr,
00349   const Ordinal* const ind,
00350   const MatrixScalar* const val,
00351   const DomainScalar* const Y,
00352   const Ordinal colStrideY);
00353 
00384 
00385 template<class Ordinal,
00386          class MatrixScalar,
00387          class DomainScalar,
00388          class RangeScalar>
00389 void
00390 lowerTriSolveCscRowMajorUnitDiag (
00391   const Ordinal numRows,
00392   const Ordinal numCols,
00393   const Ordinal numVecs,
00394   RangeScalar* const X,
00395   const Ordinal rowStrideX,
00396   const  size_t* const ptr,
00397   const Ordinal* const ind,
00398   const MatrixScalar* const val,
00399   const DomainScalar* const Y,
00400   const Ordinal rowStrideY);
00401 
00432 
00433 template<class Ordinal,
00434          class MatrixScalar,
00435          class DomainScalar,
00436          class RangeScalar>
00437 void
00438 lowerTriSolveCsrRowMajorUnitDiag (
00439   const Ordinal numRows,
00440   const Ordinal numCols,
00441   const Ordinal numVecs,
00442   RangeScalar* const X,
00443   const Ordinal rowStrideX,
00444   const  size_t* const ptr,
00445   const Ordinal* const ind,
00446   const MatrixScalar* const val,
00447   const DomainScalar* const Y,
00448   const Ordinal rowStrideY);
00449 
00479 
00480 template<class Ordinal,
00481          class MatrixScalar,
00482          class DomainScalar,
00483          class RangeScalar>
00484 void
00485 upperTriSolveCscColMajor (
00486   const Ordinal numRows,
00487   const Ordinal numCols,
00488   const Ordinal numVecs,
00489   RangeScalar* const X,
00490   const Ordinal colStrideX,
00491   const  size_t* const ptr,
00492   const Ordinal* const ind,
00493   const MatrixScalar* const val,
00494   const DomainScalar* const Y,
00495   const Ordinal colStrideY);
00496 
00526 
00527 template<class Ordinal,
00528          class MatrixScalar,
00529          class DomainScalar,
00530          class RangeScalar>
00531 void
00532 upperTriSolveCsrColMajor (
00533   const Ordinal numRows,
00534   const Ordinal numCols,
00535   const Ordinal numVecs,
00536   RangeScalar* const X,
00537   const Ordinal colStrideX,
00538   const  size_t* const ptr,
00539   const Ordinal* const ind,
00540   const MatrixScalar* const val,
00541   const DomainScalar* const Y,
00542   const Ordinal colStrideY);
00543 
00573 
00574 template<class Ordinal,
00575          class MatrixScalar,
00576          class DomainScalar,
00577          class RangeScalar>
00578 void
00579 upperTriSolveCscRowMajor (
00580   const Ordinal numRows,
00581   const Ordinal numCols,
00582   const Ordinal numVecs,
00583   RangeScalar* const X,
00584   const Ordinal rowStrideX,
00585   const  size_t* const ptr,
00586   const Ordinal* const ind,
00587   const MatrixScalar* const val,
00588   const DomainScalar* const Y,
00589   const Ordinal rowStrideY);
00590 
00620 
00621 template<class Ordinal,
00622          class MatrixScalar,
00623          class DomainScalar,
00624          class RangeScalar>
00625 void
00626 upperTriSolveCsrRowMajor (
00627   const Ordinal numRows,
00628   const Ordinal numCols,
00629   const Ordinal numVecs,
00630   RangeScalar* const X,
00631   const Ordinal rowStrideX,
00632   const  size_t* const ptr,
00633   const Ordinal* const ind,
00634   const MatrixScalar* const val,
00635   const DomainScalar* const Y,
00636   const Ordinal rowStrideY);
00637 
00668 
00669 template<class Ordinal,
00670          class MatrixScalar,
00671          class DomainScalar,
00672          class RangeScalar>
00673 void
00674 upperTriSolveCscColMajorUnitDiag (
00675   const Ordinal numRows,
00676   const Ordinal numCols,
00677   const Ordinal numVecs,
00678   RangeScalar* const X,
00679   const Ordinal colStrideX,
00680   const  size_t* const ptr,
00681   const Ordinal* const ind,
00682   const MatrixScalar* const val,
00683   const DomainScalar* const Y,
00684   const Ordinal colStrideY);
00685 
00716 
00717 template<class Ordinal,
00718          class MatrixScalar,
00719          class DomainScalar,
00720          class RangeScalar>
00721 void
00722 upperTriSolveCsrColMajorUnitDiag (
00723   const Ordinal numRows,
00724   const Ordinal numCols,
00725   const Ordinal numVecs,
00726   RangeScalar* const X,
00727   const Ordinal colStrideX,
00728   const  size_t* const ptr,
00729   const Ordinal* const ind,
00730   const MatrixScalar* const val,
00731   const DomainScalar* const Y,
00732   const Ordinal colStrideY);
00733 
00764 
00765 template<class Ordinal,
00766          class MatrixScalar,
00767          class DomainScalar,
00768          class RangeScalar>
00769 void
00770 upperTriSolveCscRowMajorUnitDiag (
00771   const Ordinal numRows,
00772   const Ordinal numCols,
00773   const Ordinal numVecs,
00774   RangeScalar* const X,
00775   const Ordinal rowStrideX,
00776   const  size_t* const ptr,
00777   const Ordinal* const ind,
00778   const MatrixScalar* const val,
00779   const DomainScalar* const Y,
00780   const Ordinal rowStrideY);
00781 
00812 
00813 template<class Ordinal,
00814          class MatrixScalar,
00815          class DomainScalar,
00816          class RangeScalar>
00817 void
00818 upperTriSolveCsrRowMajorUnitDiag (
00819   const Ordinal numRows,
00820   const Ordinal numCols,
00821   const Ordinal numVecs,
00822   RangeScalar* const X,
00823   const Ordinal rowStrideX,
00824   const  size_t* const ptr,
00825   const Ordinal* const ind,
00826   const MatrixScalar* const val,
00827   const DomainScalar* const Y,
00828   const Ordinal rowStrideY);
00829 
00855 
00856 template<class Ordinal,
00857          class MatrixScalar,
00858          class RangeScalar>
00859 void
00860 lowerTriSolveCscColMajorInPlace (
00861   const Ordinal numRows,
00862   const Ordinal numCols,
00863   const Ordinal numVecs,
00864   RangeScalar* const X,
00865   const Ordinal colStrideX,
00866   const  size_t* const ptr,
00867   const Ordinal* const ind,
00868   const MatrixScalar* const val);
00869 
00895 
00896 template<class Ordinal,
00897          class MatrixScalar,
00898          class RangeScalar>
00899 void
00900 lowerTriSolveCscRowMajorInPlace (
00901   const Ordinal numRows,
00902   const Ordinal numCols,
00903   const Ordinal numVecs,
00904   RangeScalar* const X,
00905   const Ordinal rowStrideX,
00906   const  size_t* const ptr,
00907   const Ordinal* const ind,
00908   const MatrixScalar* const val);
00909 
00936 
00937 template<class Ordinal,
00938          class MatrixScalar,
00939          class RangeScalar>
00940 void
00941 lowerTriSolveCscColMajorUnitDiagInPlace (
00942   const Ordinal numRows,
00943   const Ordinal numCols,
00944   const Ordinal numVecs,
00945   RangeScalar* const X,
00946   const Ordinal colStrideX,
00947   const  size_t* const ptr,
00948   const Ordinal* const ind,
00949   const MatrixScalar* const val);
00950 
00977 
00978 template<class Ordinal,
00979          class MatrixScalar,
00980          class RangeScalar>
00981 void
00982 lowerTriSolveCscRowMajorUnitDiagInPlace (
00983   const Ordinal numRows,
00984   const Ordinal numCols,
00985   const Ordinal numVecs,
00986   RangeScalar* const X,
00987   const Ordinal rowStrideX,
00988   const  size_t* const ptr,
00989   const Ordinal* const ind,
00990   const MatrixScalar* const val);
00991 
01017 
01018 template<class Ordinal,
01019          class MatrixScalar,
01020          class RangeScalar>
01021 void
01022 upperTriSolveCscColMajorInPlace (
01023   const Ordinal numRows,
01024   const Ordinal numCols,
01025   const Ordinal numVecs,
01026   RangeScalar* const X,
01027   const Ordinal colStrideX,
01028   const  size_t* const ptr,
01029   const Ordinal* const ind,
01030   const MatrixScalar* const val);
01031 
01057 
01058 template<class Ordinal,
01059          class MatrixScalar,
01060          class RangeScalar>
01061 void
01062 upperTriSolveCscRowMajorInPlace (
01063   const Ordinal numRows,
01064   const Ordinal numCols,
01065   const Ordinal numVecs,
01066   RangeScalar* const X,
01067   const Ordinal rowStrideX,
01068   const  size_t* const ptr,
01069   const Ordinal* const ind,
01070   const MatrixScalar* const val);
01071 
01098 
01099 template<class Ordinal,
01100          class MatrixScalar,
01101          class RangeScalar>
01102 void
01103 upperTriSolveCscColMajorUnitDiagInPlace (
01104   const Ordinal numRows,
01105   const Ordinal numCols,
01106   const Ordinal numVecs,
01107   RangeScalar* const X,
01108   const Ordinal colStrideX,
01109   const  size_t* const ptr,
01110   const Ordinal* const ind,
01111   const MatrixScalar* const val);
01112 
01139 
01140 template<class Ordinal,
01141          class MatrixScalar,
01142          class RangeScalar>
01143 void
01144 upperTriSolveCscRowMajorUnitDiagInPlace (
01145   const Ordinal numRows,
01146   const Ordinal numCols,
01147   const Ordinal numVecs,
01148   RangeScalar* const X,
01149   const Ordinal rowStrideX,
01150   const  size_t* const ptr,
01151   const Ordinal* const ind,
01152   const MatrixScalar* const val);
01153 
01184 
01185 template<class Ordinal,
01186          class MatrixScalar,
01187          class DomainScalar,
01188          class RangeScalar>
01189 void
01190 lowerTriSolveCscColMajorConj (
01191   const Ordinal numRows,
01192   const Ordinal numCols,
01193   const Ordinal numVecs,
01194   RangeScalar* const X,
01195   const Ordinal colStrideX,
01196   const  size_t* const ptr,
01197   const Ordinal* const ind,
01198   const MatrixScalar* const val,
01199   const DomainScalar* const Y,
01200   const Ordinal colStrideY);
01201 
01232 
01233 template<class Ordinal,
01234          class MatrixScalar,
01235          class DomainScalar,
01236          class RangeScalar>
01237 void
01238 lowerTriSolveCsrColMajorConj (
01239   const Ordinal numRows,
01240   const Ordinal numCols,
01241   const Ordinal numVecs,
01242   RangeScalar* const X,
01243   const Ordinal colStrideX,
01244   const  size_t* const ptr,
01245   const Ordinal* const ind,
01246   const MatrixScalar* const val,
01247   const DomainScalar* const Y,
01248   const Ordinal colStrideY);
01249 
01280 
01281 template<class Ordinal,
01282          class MatrixScalar,
01283          class DomainScalar,
01284          class RangeScalar>
01285 void
01286 lowerTriSolveCscRowMajorConj (
01287   const Ordinal numRows,
01288   const Ordinal numCols,
01289   const Ordinal numVecs,
01290   RangeScalar* const X,
01291   const Ordinal rowStrideX,
01292   const  size_t* const ptr,
01293   const Ordinal* const ind,
01294   const MatrixScalar* const val,
01295   const DomainScalar* const Y,
01296   const Ordinal rowStrideY);
01297 
01328 
01329 template<class Ordinal,
01330          class MatrixScalar,
01331          class DomainScalar,
01332          class RangeScalar>
01333 void
01334 lowerTriSolveCsrRowMajorConj (
01335   const Ordinal numRows,
01336   const Ordinal numCols,
01337   const Ordinal numVecs,
01338   RangeScalar* const X,
01339   const Ordinal rowStrideX,
01340   const  size_t* const ptr,
01341   const Ordinal* const ind,
01342   const MatrixScalar* const val,
01343   const DomainScalar* const Y,
01344   const Ordinal rowStrideY);
01345 
01377 
01378 template<class Ordinal,
01379          class MatrixScalar,
01380          class DomainScalar,
01381          class RangeScalar>
01382 void
01383 lowerTriSolveCscColMajorUnitDiagConj (
01384   const Ordinal numRows,
01385   const Ordinal numCols,
01386   const Ordinal numVecs,
01387   RangeScalar* const X,
01388   const Ordinal colStrideX,
01389   const  size_t* const ptr,
01390   const Ordinal* const ind,
01391   const MatrixScalar* const val,
01392   const DomainScalar* const Y,
01393   const Ordinal colStrideY);
01394 
01426 
01427 template<class Ordinal,
01428          class MatrixScalar,
01429          class DomainScalar,
01430          class RangeScalar>
01431 void
01432 lowerTriSolveCsrColMajorUnitDiagConj (
01433   const Ordinal numRows,
01434   const Ordinal numCols,
01435   const Ordinal numVecs,
01436   RangeScalar* const X,
01437   const Ordinal colStrideX,
01438   const  size_t* const ptr,
01439   const Ordinal* const ind,
01440   const MatrixScalar* const val,
01441   const DomainScalar* const Y,
01442   const Ordinal colStrideY);
01443 
01475 
01476 template<class Ordinal,
01477          class MatrixScalar,
01478          class DomainScalar,
01479          class RangeScalar>
01480 void
01481 lowerTriSolveCscRowMajorUnitDiagConj (
01482   const Ordinal numRows,
01483   const Ordinal numCols,
01484   const Ordinal numVecs,
01485   RangeScalar* const X,
01486   const Ordinal rowStrideX,
01487   const  size_t* const ptr,
01488   const Ordinal* const ind,
01489   const MatrixScalar* const val,
01490   const DomainScalar* const Y,
01491   const Ordinal rowStrideY);
01492 
01524 
01525 template<class Ordinal,
01526          class MatrixScalar,
01527          class DomainScalar,
01528          class RangeScalar>
01529 void
01530 lowerTriSolveCsrRowMajorUnitDiagConj (
01531   const Ordinal numRows,
01532   const Ordinal numCols,
01533   const Ordinal numVecs,
01534   RangeScalar* const X,
01535   const Ordinal rowStrideX,
01536   const  size_t* const ptr,
01537   const Ordinal* const ind,
01538   const MatrixScalar* const val,
01539   const DomainScalar* const Y,
01540   const Ordinal rowStrideY);
01541 
01572 
01573 template<class Ordinal,
01574          class MatrixScalar,
01575          class DomainScalar,
01576          class RangeScalar>
01577 void
01578 upperTriSolveCscColMajorConj (
01579   const Ordinal numRows,
01580   const Ordinal numCols,
01581   const Ordinal numVecs,
01582   RangeScalar* const X,
01583   const Ordinal colStrideX,
01584   const  size_t* const ptr,
01585   const Ordinal* const ind,
01586   const MatrixScalar* const val,
01587   const DomainScalar* const Y,
01588   const Ordinal colStrideY);
01589 
01620 
01621 template<class Ordinal,
01622          class MatrixScalar,
01623          class DomainScalar,
01624          class RangeScalar>
01625 void
01626 upperTriSolveCsrColMajorConj (
01627   const Ordinal numRows,
01628   const Ordinal numCols,
01629   const Ordinal numVecs,
01630   RangeScalar* const X,
01631   const Ordinal colStrideX,
01632   const  size_t* const ptr,
01633   const Ordinal* const ind,
01634   const MatrixScalar* const val,
01635   const DomainScalar* const Y,
01636   const Ordinal colStrideY);
01637 
01668 
01669 template<class Ordinal,
01670          class MatrixScalar,
01671          class DomainScalar,
01672          class RangeScalar>
01673 void
01674 upperTriSolveCscRowMajorConj (
01675   const Ordinal numRows,
01676   const Ordinal numCols,
01677   const Ordinal numVecs,
01678   RangeScalar* const X,
01679   const Ordinal rowStrideX,
01680   const  size_t* const ptr,
01681   const Ordinal* const ind,
01682   const MatrixScalar* const val,
01683   const DomainScalar* const Y,
01684   const Ordinal rowStrideY);
01685 
01716 
01717 template<class Ordinal,
01718          class MatrixScalar,
01719          class DomainScalar,
01720          class RangeScalar>
01721 void
01722 upperTriSolveCsrRowMajorConj (
01723   const Ordinal numRows,
01724   const Ordinal numCols,
01725   const Ordinal numVecs,
01726   RangeScalar* const X,
01727   const Ordinal rowStrideX,
01728   const  size_t* const ptr,
01729   const Ordinal* const ind,
01730   const MatrixScalar* const val,
01731   const DomainScalar* const Y,
01732   const Ordinal rowStrideY);
01733 
01765 
01766 template<class Ordinal,
01767          class MatrixScalar,
01768          class DomainScalar,
01769          class RangeScalar>
01770 void
01771 upperTriSolveCscColMajorUnitDiagConj (
01772   const Ordinal numRows,
01773   const Ordinal numCols,
01774   const Ordinal numVecs,
01775   RangeScalar* const X,
01776   const Ordinal colStrideX,
01777   const  size_t* const ptr,
01778   const Ordinal* const ind,
01779   const MatrixScalar* const val,
01780   const DomainScalar* const Y,
01781   const Ordinal colStrideY);
01782 
01814 
01815 template<class Ordinal,
01816          class MatrixScalar,
01817          class DomainScalar,
01818          class RangeScalar>
01819 void
01820 upperTriSolveCsrColMajorUnitDiagConj (
01821   const Ordinal numRows,
01822   const Ordinal numCols,
01823   const Ordinal numVecs,
01824   RangeScalar* const X,
01825   const Ordinal colStrideX,
01826   const  size_t* const ptr,
01827   const Ordinal* const ind,
01828   const MatrixScalar* const val,
01829   const DomainScalar* const Y,
01830   const Ordinal colStrideY);
01831 
01863 
01864 template<class Ordinal,
01865          class MatrixScalar,
01866          class DomainScalar,
01867          class RangeScalar>
01868 void
01869 upperTriSolveCscRowMajorUnitDiagConj (
01870   const Ordinal numRows,
01871   const Ordinal numCols,
01872   const Ordinal numVecs,
01873   RangeScalar* const X,
01874   const Ordinal rowStrideX,
01875   const  size_t* const ptr,
01876   const Ordinal* const ind,
01877   const MatrixScalar* const val,
01878   const DomainScalar* const Y,
01879   const Ordinal rowStrideY);
01880 
01912 
01913 template<class Ordinal,
01914          class MatrixScalar,
01915          class DomainScalar,
01916          class RangeScalar>
01917 void
01918 upperTriSolveCsrRowMajorUnitDiagConj (
01919   const Ordinal numRows,
01920   const Ordinal numCols,
01921   const Ordinal numVecs,
01922   RangeScalar* const X,
01923   const Ordinal rowStrideX,
01924   const  size_t* const ptr,
01925   const Ordinal* const ind,
01926   const MatrixScalar* const val,
01927   const DomainScalar* const Y,
01928   const Ordinal rowStrideY);
01929 
01956 
01957 template<class Ordinal,
01958          class MatrixScalar,
01959          class RangeScalar>
01960 void
01961 lowerTriSolveCscColMajorInPlaceConj (
01962   const Ordinal numRows,
01963   const Ordinal numCols,
01964   const Ordinal numVecs,
01965   RangeScalar* const X,
01966   const Ordinal colStrideX,
01967   const  size_t* const ptr,
01968   const Ordinal* const ind,
01969   const MatrixScalar* const val);
01970 
01997 
01998 template<class Ordinal,
01999          class MatrixScalar,
02000          class RangeScalar>
02001 void
02002 lowerTriSolveCscRowMajorInPlaceConj (
02003   const Ordinal numRows,
02004   const Ordinal numCols,
02005   const Ordinal numVecs,
02006   RangeScalar* const X,
02007   const Ordinal rowStrideX,
02008   const  size_t* const ptr,
02009   const Ordinal* const ind,
02010   const MatrixScalar* const val);
02011 
02039 
02040 template<class Ordinal,
02041          class MatrixScalar,
02042          class RangeScalar>
02043 void
02044 lowerTriSolveCscColMajorUnitDiagInPlaceConj (
02045   const Ordinal numRows,
02046   const Ordinal numCols,
02047   const Ordinal numVecs,
02048   RangeScalar* const X,
02049   const Ordinal colStrideX,
02050   const  size_t* const ptr,
02051   const Ordinal* const ind,
02052   const MatrixScalar* const val);
02053 
02081 
02082 template<class Ordinal,
02083          class MatrixScalar,
02084          class RangeScalar>
02085 void
02086 lowerTriSolveCscRowMajorUnitDiagInPlaceConj (
02087   const Ordinal numRows,
02088   const Ordinal numCols,
02089   const Ordinal numVecs,
02090   RangeScalar* const X,
02091   const Ordinal rowStrideX,
02092   const  size_t* const ptr,
02093   const Ordinal* const ind,
02094   const MatrixScalar* const val);
02095 
02122 
02123 template<class Ordinal,
02124          class MatrixScalar,
02125          class RangeScalar>
02126 void
02127 upperTriSolveCscColMajorInPlaceConj (
02128   const Ordinal numRows,
02129   const Ordinal numCols,
02130   const Ordinal numVecs,
02131   RangeScalar* const X,
02132   const Ordinal colStrideX,
02133   const  size_t* const ptr,
02134   const Ordinal* const ind,
02135   const MatrixScalar* const val);
02136 
02163 
02164 template<class Ordinal,
02165          class MatrixScalar,
02166          class RangeScalar>
02167 void
02168 upperTriSolveCscRowMajorInPlaceConj (
02169   const Ordinal numRows,
02170   const Ordinal numCols,
02171   const Ordinal numVecs,
02172   RangeScalar* const X,
02173   const Ordinal rowStrideX,
02174   const  size_t* const ptr,
02175   const Ordinal* const ind,
02176   const MatrixScalar* const val);
02177 
02205 
02206 template<class Ordinal,
02207          class MatrixScalar,
02208          class RangeScalar>
02209 void
02210 upperTriSolveCscColMajorUnitDiagInPlaceConj (
02211   const Ordinal numRows,
02212   const Ordinal numCols,
02213   const Ordinal numVecs,
02214   RangeScalar* const X,
02215   const Ordinal colStrideX,
02216   const  size_t* const ptr,
02217   const Ordinal* const ind,
02218   const MatrixScalar* const val);
02219 
02247 
02248 template<class Ordinal,
02249          class MatrixScalar,
02250          class RangeScalar>
02251 void
02252 upperTriSolveCscRowMajorUnitDiagInPlaceConj (
02253   const Ordinal numRows,
02254   const Ordinal numCols,
02255   const Ordinal numVecs,
02256   RangeScalar* const X,
02257   const Ordinal rowStrideX,
02258   const  size_t* const ptr,
02259   const Ordinal* const ind,
02260   const MatrixScalar* const val);
02261 
02262 } // namespace Raw
02263 } // namespace Kokkos
02264 
02265 #endif // #ifndef __Kokkos_Raw_SparseTriangularSolve_decl_hpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends