50 #ifndef INTREPID_ARRAYTOOLS_HPP 
   51 #define INTREPID_ARRAYTOOLS_HPP 
   53 #include "Intrepid_ConfigDefs.hpp" 
   55 #include "Teuchos_BLAS.hpp" 
   56 #include "Teuchos_Assert.hpp" 
   57 #include <Intrepid_KokkosRank.hpp> 
   58 #ifdef INTREPID_OLD_KOKKOS_CODE 
   59 #include "Kokkos_Core.hpp" 
   60 #include <impl/Kokkos_Timer.hpp> 
  350     template<
class Scalar, 
class ArrayOutFields, 
class ArrayInFieldsLeft, 
class ArrayInFieldsRight>
 
  352                                          const ArrayInFieldsLeft &   leftFields,
 
  353                                          const ArrayInFieldsRight &  rightFields,
 
  354                                          const ECompEngine           compEngine,
 
  355                                          const bool                  sumInto = 
false);
 
  379     template<
class Scalar, 
class ArrayOutFields, 
class ArrayInFieldsLeft, 
class ArrayInFieldsRight>
 
  381                                          const ArrayInFieldsLeft &   leftFields,
 
  382                                          const ArrayInFieldsRight &  rightFields,
 
  383                                          const ECompEngine           compEngine,
 
  384                                          const bool                  sumInto = 
false);
 
  409     template<
class Scalar, 
class ArrayOutFields, 
class ArrayInFieldsLeft, 
class ArrayInFieldsRight>
 
  411                                          const ArrayInFieldsLeft &   leftFields,
 
  412                                          const ArrayInFieldsRight &  rightFields,
 
  413                                          const ECompEngine           compEngine,
 
  414                                          const bool                  sumInto = 
false);
 
  435     template<
class Scalar, 
class ArrayOutFields, 
class ArrayInData, 
class ArrayInFields>
 
  437                                         const ArrayInData &    inputData,
 
  438                                         const ArrayInFields &  inputFields,
 
  439                                         const ECompEngine      compEngine,
 
  440                                         const bool             sumInto = 
false);
 
  462     template<
class Scalar, 
class ArrayOutFields, 
class ArrayInData, 
class ArrayInFields>
 
  464                                         const ArrayInData &    inputData,
 
  465                                         const ArrayInFields &  inputFields,
 
  466                                         const ECompEngine      compEngine,
 
  467                                         const bool             sumInto = 
false);
 
  490     template<
class Scalar, 
class ArrayOutFields, 
class ArrayInData, 
class ArrayInFields>
 
  492                                         const ArrayInData &    inputData,
 
  493                                         const ArrayInFields &  inputFields,
 
  494                                         const ECompEngine      compEngine,
 
  495                                         const bool             sumInto = 
false);
 
  514     template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight>
 
  516                                        const ArrayInDataLeft &   inputDataLeft,
 
  517                                        const ArrayInDataRight &  inputDataRight,
 
  518                                        const ECompEngine         compEngine,
 
  519                                        const bool                sumInto = 
false);
 
  538     template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight>
 
  540                                        const ArrayInDataLeft &   inputDataLeft,
 
  541                                        const ArrayInDataRight &  inputDataRight,
 
  542                                        const ECompEngine         compEngine,
 
  543                                        const bool                sumInto = 
false);
 
  563     template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight>
 
  565                                        const ArrayInDataLeft &   inputDataLeft,
 
  566                                        const ArrayInDataRight &  inputDataRight,
 
  567                                        const ECompEngine         compEngine,
 
  568                                        const bool                sumInto = 
false);
 
  600     template<
class Scalar, 
class ArrayOutFields, 
class ArrayInData, 
class ArrayInFields>
 
  602                                         const ArrayInData &  inputData,
 
  603                                         const ArrayInFields &      inputFields,
 
  604                                         const bool           reciprocal = 
false);
 
  606    template<
class ArrayOutFields, 
class ArrayInData, 
class ArrayInFields, 
class Layout, 
class MemorySpace,
int infieldRank,
int outfieldRank>
 
  643     template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight>
 
  645                                        const ArrayInDataLeft &        inputDataLeft,
 
  646                                        const ArrayInDataRight &       inputDataRight,
 
  647                                        const bool               reciprocal = 
false);
 
  677     template<
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight, 
class Layout, 
class MemorySpace,
int invalRank,
int outvalRank>
 
  685 #ifdef INTREPID_OLD_KOKKOS_CODE 
  693     template<
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight, 
class Layout, 
class MemorySpace,
int invalRank,
int outvalRank>
 
  694         struct scalarMultiplyDataData2Kokkos;
 
  727     template<
class Scalar, 
class ArrayOutFields, 
class ArrayInData, 
class ArrayInFields>
 
  729                                      const ArrayInData &    inputDataLeft,
 
  730                                      const ArrayInFields &  inputFields);
 
  759     template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight>
 
  761                                     const ArrayInDataLeft &   inputDataLeft,
 
  762                                     const ArrayInDataRight &  inputDataRight);
 
  786     template<
class Scalar, 
class ArrayOutFields, 
class ArrayInData, 
class ArrayInFields>
 
  788                                       const ArrayInData &    inputData,
 
  789                                       const ArrayInFields &  inputFields);
 
  812     template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight>
 
  814                                      const ArrayInDataLeft &   inputDataLeft,
 
  815                                      const ArrayInDataRight &  inputDataRight);
 
  840     template<
class Scalar, 
class ArrayOutFields, 
class ArrayInData, 
class ArrayInFields>
 
  842                                       const ArrayInData &    inputData,
 
  843                                       const ArrayInFields &  inputFields);
 
  867     template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight>
 
  869                                      const ArrayInDataLeft &   inputDataLeft,
 
  870                                      const ArrayInDataRight &  inputDataRight);
 
  908     template<
class Scalar, 
class ArrayOutFields, 
class ArrayInData, 
class ArrayInFields>
 
  910                                        const ArrayInData &    inputData,
 
  911                                        const ArrayInFields &  inputFields,
 
  912                                        const char             transpose = 
'N');
 
  953     template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight>
 
  955                                       const ArrayInDataLeft &   inputDataLeft,
 
  956                                       const ArrayInDataRight &  inputDataRight,
 
  957                                       const char                transpose = 
'N');
 
 1000     template<
class Scalar, 
class ArrayOutFields, 
class ArrayInData, 
class ArrayInFields>
 
 1002                                        const ArrayInData &    inputData,
 
 1003                                        const ArrayInFields &  inputFields,
 
 1004                                        const char             transpose = 
'N');
 
 1041     template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight>
 
 1043                                       const ArrayInDataLeft &   inputDataLeft,
 
 1044                                       const ArrayInDataRight &  inputDataRight,
 
 1045                                       const char                transpose = 
'N');
 
 1047    template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight,
int inleftrank,
int inrankright>
 
 1050  template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight,
int inrightrank>
 
 1074     template<
class Scalar, 
class ArrayOutFields, 
class ArrayInFields>
 
 1075     static void cloneFields(ArrayOutFields &       outputFields,
 
 1076                             const ArrayInFields &  inputFields);
 
 1079     template<
class ArrayOutFields, 
class ArrayInFields, 
class Layout, 
class MemorySpace,
int invalRank,
int outvalRank>
 
 1104     template<
class Scalar, 
class ArrayOutFields, 
class ArrayInFactors, 
class ArrayInFields>
 
 1106                                  const ArrayInFactors &  inputFactors,
 
 1107                                  const ArrayInFields &   inputFields);
 
 1125     template<
class Scalar, 
class ArrayInOutFields, 
class ArrayInFactors>
 
 1126     static void scaleFields(ArrayInOutFields &      inoutFields,
 
 1127                             const ArrayInFactors &  inputFactors);
 
Contains definitions of custom data types in Intrepid.