42 #include "Thyra_SpmdVectorSpaceUtilities.hpp" 43 #include "Teuchos_CommHelpers.hpp" 49 Ordinal SpmdVectorSpaceUtilities::computeMapCode(
50 const Teuchos::Comm<Ordinal> &comm,
const Ordinal localSubDim
53 using Teuchos::outArg;
54 using Teuchos::REDUCE_SUM;
55 using Teuchos::reduceAll;
62 const int procRank = comm.getSize ();
64 Ordinal localCode = localSubDim % (procRank+1) + localSubDim;
65 reduceAll<Ordinal, Ordinal> (comm, REDUCE_SUM, localCode, outArg (mapCode));
70 Ordinal SpmdVectorSpaceUtilities::computeLocalOffset(
71 const Teuchos::Comm<Ordinal> &comm,
const Ordinal localSubDim
74 using Teuchos::outArg;
75 using Teuchos::REDUCE_SUM;
79 const Ordinal _localOffset = localSubDim;
80 scan<Ordinal, Ordinal> (comm, REDUCE_SUM, _localOffset, outArg (localOffset));
81 localOffset -= localSubDim;
86 Ordinal SpmdVectorSpaceUtilities::computeGlobalDim(
87 const Teuchos::Comm<Ordinal> &comm,
const Ordinal localSubDim
90 using Teuchos::outArg;
91 using Teuchos::REDUCE_SUM;
92 using Teuchos::reduceAll;
95 reduceAll<Ordinal, Ordinal> (comm, REDUCE_SUM, localSubDim, outArg (globalDim));
Teuchos::Ordinal Ordinal
Type for the dimension of a vector space. `*.