49 #ifndef INTREPID_FUNCTIONSPACETOOLS_HPP 
   50 #define INTREPID_FUNCTIONSPACETOOLS_HPP 
   52 #include "Intrepid_ConfigDefs.hpp" 
   58 #include <Intrepid_KokkosRank.hpp> 
  106   template<
class Scalar, 
class ArrayTypeOut, 
class ArrayTypeIn>
 
  108                                   const ArrayTypeIn  & inVals);
 
  149   template<
class Scalar, 
class ArrayTypeOut, 
class ArrayTypeJac, 
class ArrayTypeIn>
 
  151                                  const ArrayTypeJac & jacobianInverse,
 
  152                                  const ArrayTypeIn  & inVals,
 
  153                                  const char           transpose = 
'T');
 
  196   template<
class Scalar, 
class ArrayTypeOut, 
class ArrayTypeJac, 
class ArrayTypeIn>
 
  198                                   const ArrayTypeJac  & jacobianInverse,
 
  199                                   const ArrayTypeIn   & inVals,
 
  200                                   const char            transpose = 
'T');
 
  244   template<
class Scalar, 
class ArrayTypeOut, 
class ArrayTypeJac, 
class ArrayTypeDet, 
class ArrayTypeIn>
 
  246                                  const ArrayTypeJac  & jacobian,
 
  247                                  const ArrayTypeDet  & jacobianDet,
 
  248                                  const ArrayTypeIn   & inVals,
 
  249                                  const char            transpose = 
'N');
 
  294   template<
class Scalar, 
class ArrayTypeOut, 
class ArrayTypeJac, 
class ArrayTypeDet, 
class ArrayTypeIn>
 
  296                                  const ArrayTypeJac  & jacobian,
 
  297                                  const ArrayTypeDet  & jacobianDet,
 
  298                                  const ArrayTypeIn   & inVals,
 
  299                                  const char            transpose = 
'N');
 
  343   template<
class Scalar, 
class ArrayTypeOut, 
class ArrayTypeDet, 
class ArrayTypeIn>
 
  345                                const ArrayTypeDet  & jacobianDet,
 
  346                                const ArrayTypeIn   & inVals);
 
  389   template<
class Scalar, 
class ArrayTypeOut, 
class ArrayTypeDet, 
class ArrayTypeIn>
 
  391                                  const ArrayTypeDet  & jacobianDet,
 
  392                                  const ArrayTypeIn   & inVals);
 
  408   template<
class Scalar>
 
  412                                    const ECompEngine           compEngine,
 
  413                                    const bool            sumInto = 
false);
 
  415   template<
class Scalar, 
class ArrayOut, 
class ArrayInLeft, 
class ArrayInRight>
 
  416   static void integrate(ArrayOut            & outputValues,
 
  417                         const ArrayInLeft   & leftValues,
 
  418                         const ArrayInRight  & rightValues,
 
  419                         const ECompEngine     compEngine,
 
  420                         const bool            sumInto = 
false);
 
  429     template<
class Scalar, 
class ArrayOut, 
class ArrayInLeft, 
class ArrayInRight,
int leftrank,
int outrank>
 
  455   template<
class Scalar, 
class ArrayOutFields, 
class ArrayInFieldsLeft, 
class ArrayInFieldsRight>
 
  457                                const ArrayInFieldsLeft &   leftFields,
 
  458                                const ArrayInFieldsRight &  rightFields,
 
  459                                const ECompEngine           compEngine,
 
  460                                const bool                  sumInto = 
false);
 
  489   template<
class Scalar, 
class ArrayOutFields, 
class ArrayInData, 
class ArrayInFields>
 
  491                                  const ArrayInData &    inputData,
 
  492                                  const ArrayInFields &  inputFields,
 
  493                                  const ECompEngine      compEngine,
 
  494                                  const bool             sumInto = 
false);
 
  521   template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight>
 
  523                            const ArrayInDataLeft &   inputDataLeft,
 
  524                            const ArrayInDataRight &  inputDataRight,
 
  525                            const ECompEngine         compEngine,
 
  526                            const bool                sumInto = 
false);
 
  564   template<
class Scalar, 
class ArrayOut, 
class ArrayDet, 
class ArrayWeights>
 
  566                                  const ArrayDet       & inDet,
 
  567                                  const ArrayWeights   & inWeights);
 
  617   template<
class Scalar, 
class ArrayOut, 
class ArrayJac, 
class ArrayWeights>
 
  619                                  const ArrayJac             & inJac,
 
  620                                  const ArrayWeights         & inWeights,
 
  622                                  const shards::CellTopology & parentCell);
 
  672   template<
class Scalar, 
class ArrayOut, 
class ArrayJac, 
class ArrayWeights>
 
  674                                  const ArrayJac             & inJac,
 
  675                                  const ArrayWeights         & inWeights,
 
  677                                  const shards::CellTopology & parentCell);
 
  693   template<
class Scalar, 
class ArrayTypeOut, 
class ArrayTypeMeasure, 
class ArrayTypeIn>
 
  695                               const ArrayTypeMeasure   & inMeasure,
 
  696                               const ArrayTypeIn        & inVals);
 
  734   template<
class Scalar, 
class ArrayOutFields, 
class ArrayInData, 
class ArrayInFields>
 
  736                                       ArrayInData &        inputData,
 
  737                                       ArrayInFields &      inputFields,
 
  738                                       const bool           reciprocal = 
false);
 
  772   template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight>
 
  774                                      ArrayInDataLeft &        inputDataLeft,
 
  775                                      ArrayInDataRight &       inputDataRight,
 
  776                                      const bool               reciprocal = 
false);
 
  809   template<
class Scalar, 
class ArrayOutFields, 
class ArrayInData, 
class ArrayInFields>
 
  811                                    const ArrayInData &    inputData,
 
  812                                    const ArrayInFields &  inputFields);
 
  844   template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight>
 
  846                                   const ArrayInDataLeft &   inputDataLeft,
 
  847                                   const ArrayInDataRight &  inputDataRight);
 
  883   template<
class Scalar, 
class ArrayOutFields, 
class ArrayInData, 
class ArrayInFields>
 
  885                                       const ArrayInData &    inputData,
 
  886                                       const ArrayInFields &  inputFields);
 
  921   template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight>
 
  923                                      const ArrayInDataLeft &   inputDataLeft,
 
  924                                      const ArrayInDataRight &  inputDataRight);
 
  976   template<
class Scalar, 
class ArrayOutFields, 
class ArrayInData, 
class ArrayInFields>
 
  978                                       const ArrayInData &    inputData,
 
  979                                       const ArrayInFields &  inputFields,
 
  980                                       const char             transpose = 
'N');
 
 1031   template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight>
 
 1033                                      const ArrayInDataLeft &   inputDataLeft,
 
 1034                                      const ArrayInDataRight &  inputDataRight,
 
 1035                                      const char                transpose = 
'N');
 
 1043    template<
class Scalar, 
class ArrayOutData, 
class ArrayInDataLeft, 
class ArrayInDataRight,
int outvalRank>
 
 1071   template<
class Scalar, 
class ArrayTypeInOut, 
class ArrayTypeSign>
 
 1073                                   const ArrayTypeSign   & fieldSigns);
 
 1101   template<
class Scalar, 
class ArrayTypeInOut, 
class ArrayTypeSign>
 
 1103                                    const ArrayTypeSign   & fieldSigns);
 
 1127   template<
class Scalar, 
class ArrayTypeInOut, 
class ArrayTypeSign>
 
 1129                               const ArrayTypeSign   & fieldSigns);
 
 1169   template<
class Scalar, 
class ArrayOutPo
intVals, 
class ArrayInCoeffs, 
class ArrayInFields>
 
 1170   static void evaluate(ArrayOutPointVals     & outPointVals,
 
 1171                        const ArrayInCoeffs   & inCoeffs,
 
 1172                        const ArrayInFields   & inFields);
 
Header file for utility class to provide multidimensional containers.