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.