Lines Matching refs:op
15 #define OP_BINARY(op, s, t) \ argument
17 (s) = (s)op(t); \
19 #define OP_FUNCTION(op, s, t) \ argument
21 (s) = op((s), (t)); \
23 #define OP_LXOR(op, s, t) \ argument
27 #define OP_ASSIGN(op, s, t) \ argument
32 #define OP_XLOC(op, s, t) \ argument
35 else if (!((s).u op(t).u)) s = t; \
420 …const void *rootdata, PetscMemType leafmtype, const void *leafdata, MPI_Op op, PetscSFOperation sf… in PetscSFLinkCreate() argument
429 …PetscCall(PetscSFLinkCreate_NVSHMEM(sf, unit, rootmtype, rootdata, leafmtype, leafdata, op, sfop, … in PetscSFLinkCreate()
434 …PetscCall(PetscSFLinkCreate_MPI(sf, unit, rootmtype, rootdata, leafmtype, leafdata, op, sfop, myli… in PetscSFLinkCreate()
687 PetscErrorCode PetscSFLinkGetUnpackAndOp(PetscSFLink link, PetscMemType mtype, MPI_Op op, PetscBool… in PetscSFLinkGetUnpackAndOp() argument
692 if (op == MPI_REPLACE) *UnpackAndOp = link->h_UnpackAndInsert; in PetscSFLinkGetUnpackAndOp()
693 else if (op == MPI_SUM || op == MPIU_SUM) *UnpackAndOp = link->h_UnpackAndAdd; in PetscSFLinkGetUnpackAndOp()
694 else if (op == MPI_PROD) *UnpackAndOp = link->h_UnpackAndMult; in PetscSFLinkGetUnpackAndOp()
695 else if (op == MPI_MAX || op == MPIU_MAX) *UnpackAndOp = link->h_UnpackAndMax; in PetscSFLinkGetUnpackAndOp()
696 else if (op == MPI_MIN || op == MPIU_MIN) *UnpackAndOp = link->h_UnpackAndMin; in PetscSFLinkGetUnpackAndOp()
697 else if (op == MPI_LAND) *UnpackAndOp = link->h_UnpackAndLAND; in PetscSFLinkGetUnpackAndOp()
698 else if (op == MPI_BAND) *UnpackAndOp = link->h_UnpackAndBAND; in PetscSFLinkGetUnpackAndOp()
699 else if (op == MPI_LOR) *UnpackAndOp = link->h_UnpackAndLOR; in PetscSFLinkGetUnpackAndOp()
700 else if (op == MPI_BOR) *UnpackAndOp = link->h_UnpackAndBOR; in PetscSFLinkGetUnpackAndOp()
701 else if (op == MPI_LXOR) *UnpackAndOp = link->h_UnpackAndLXOR; in PetscSFLinkGetUnpackAndOp()
702 else if (op == MPI_BXOR) *UnpackAndOp = link->h_UnpackAndBXOR; in PetscSFLinkGetUnpackAndOp()
703 else if (op == MPI_MAXLOC) *UnpackAndOp = link->h_UnpackAndMaxloc; in PetscSFLinkGetUnpackAndOp()
704 else if (op == MPI_MINLOC) *UnpackAndOp = link->h_UnpackAndMinloc; in PetscSFLinkGetUnpackAndOp()
708 if (op == MPI_REPLACE) *UnpackAndOp = link->d_UnpackAndInsert; in PetscSFLinkGetUnpackAndOp()
709 else if (op == MPI_SUM || op == MPIU_SUM) *UnpackAndOp = link->d_UnpackAndAdd; in PetscSFLinkGetUnpackAndOp()
710 else if (op == MPI_PROD) *UnpackAndOp = link->d_UnpackAndMult; in PetscSFLinkGetUnpackAndOp()
711 else if (op == MPI_MAX || op == MPIU_MAX) *UnpackAndOp = link->d_UnpackAndMax; in PetscSFLinkGetUnpackAndOp()
712 else if (op == MPI_MIN || op == MPIU_MIN) *UnpackAndOp = link->d_UnpackAndMin; in PetscSFLinkGetUnpackAndOp()
713 else if (op == MPI_LAND) *UnpackAndOp = link->d_UnpackAndLAND; in PetscSFLinkGetUnpackAndOp()
714 else if (op == MPI_BAND) *UnpackAndOp = link->d_UnpackAndBAND; in PetscSFLinkGetUnpackAndOp()
715 else if (op == MPI_LOR) *UnpackAndOp = link->d_UnpackAndLOR; in PetscSFLinkGetUnpackAndOp()
716 else if (op == MPI_BOR) *UnpackAndOp = link->d_UnpackAndBOR; in PetscSFLinkGetUnpackAndOp()
717 else if (op == MPI_LXOR) *UnpackAndOp = link->d_UnpackAndLXOR; in PetscSFLinkGetUnpackAndOp()
718 else if (op == MPI_BXOR) *UnpackAndOp = link->d_UnpackAndBXOR; in PetscSFLinkGetUnpackAndOp()
719 else if (op == MPI_MAXLOC) *UnpackAndOp = link->d_UnpackAndMaxloc; in PetscSFLinkGetUnpackAndOp()
720 else if (op == MPI_MINLOC) *UnpackAndOp = link->d_UnpackAndMinloc; in PetscSFLinkGetUnpackAndOp()
722 if (op == MPI_REPLACE) *UnpackAndOp = link->da_UnpackAndInsert; in PetscSFLinkGetUnpackAndOp()
723 else if (op == MPI_SUM || op == MPIU_SUM) *UnpackAndOp = link->da_UnpackAndAdd; in PetscSFLinkGetUnpackAndOp()
724 else if (op == MPI_PROD) *UnpackAndOp = link->da_UnpackAndMult; in PetscSFLinkGetUnpackAndOp()
725 else if (op == MPI_MAX || op == MPIU_MAX) *UnpackAndOp = link->da_UnpackAndMax; in PetscSFLinkGetUnpackAndOp()
726 else if (op == MPI_MIN || op == MPIU_MIN) *UnpackAndOp = link->da_UnpackAndMin; in PetscSFLinkGetUnpackAndOp()
727 else if (op == MPI_LAND) *UnpackAndOp = link->da_UnpackAndLAND; in PetscSFLinkGetUnpackAndOp()
728 else if (op == MPI_BAND) *UnpackAndOp = link->da_UnpackAndBAND; in PetscSFLinkGetUnpackAndOp()
729 else if (op == MPI_LOR) *UnpackAndOp = link->da_UnpackAndLOR; in PetscSFLinkGetUnpackAndOp()
730 else if (op == MPI_BOR) *UnpackAndOp = link->da_UnpackAndBOR; in PetscSFLinkGetUnpackAndOp()
731 else if (op == MPI_LXOR) *UnpackAndOp = link->da_UnpackAndLXOR; in PetscSFLinkGetUnpackAndOp()
732 else if (op == MPI_BXOR) *UnpackAndOp = link->da_UnpackAndBXOR; in PetscSFLinkGetUnpackAndOp()
733 else if (op == MPI_MAXLOC) *UnpackAndOp = link->da_UnpackAndMaxloc; in PetscSFLinkGetUnpackAndOp()
734 else if (op == MPI_MINLOC) *UnpackAndOp = link->da_UnpackAndMinloc; in PetscSFLinkGetUnpackAndOp()
740 PetscErrorCode PetscSFLinkGetScatterAndOp(PetscSFLink link, PetscMemType mtype, MPI_Op op, PetscBoo… in PetscSFLinkGetScatterAndOp() argument
745 if (op == MPI_REPLACE) *ScatterAndOp = link->h_ScatterAndInsert; in PetscSFLinkGetScatterAndOp()
746 else if (op == MPI_SUM || op == MPIU_SUM) *ScatterAndOp = link->h_ScatterAndAdd; in PetscSFLinkGetScatterAndOp()
747 else if (op == MPI_PROD) *ScatterAndOp = link->h_ScatterAndMult; in PetscSFLinkGetScatterAndOp()
748 else if (op == MPI_MAX || op == MPIU_MAX) *ScatterAndOp = link->h_ScatterAndMax; in PetscSFLinkGetScatterAndOp()
749 else if (op == MPI_MIN || op == MPIU_MIN) *ScatterAndOp = link->h_ScatterAndMin; in PetscSFLinkGetScatterAndOp()
750 else if (op == MPI_LAND) *ScatterAndOp = link->h_ScatterAndLAND; in PetscSFLinkGetScatterAndOp()
751 else if (op == MPI_BAND) *ScatterAndOp = link->h_ScatterAndBAND; in PetscSFLinkGetScatterAndOp()
752 else if (op == MPI_LOR) *ScatterAndOp = link->h_ScatterAndLOR; in PetscSFLinkGetScatterAndOp()
753 else if (op == MPI_BOR) *ScatterAndOp = link->h_ScatterAndBOR; in PetscSFLinkGetScatterAndOp()
754 else if (op == MPI_LXOR) *ScatterAndOp = link->h_ScatterAndLXOR; in PetscSFLinkGetScatterAndOp()
755 else if (op == MPI_BXOR) *ScatterAndOp = link->h_ScatterAndBXOR; in PetscSFLinkGetScatterAndOp()
756 else if (op == MPI_MAXLOC) *ScatterAndOp = link->h_ScatterAndMaxloc; in PetscSFLinkGetScatterAndOp()
757 else if (op == MPI_MINLOC) *ScatterAndOp = link->h_ScatterAndMinloc; in PetscSFLinkGetScatterAndOp()
761 if (op == MPI_REPLACE) *ScatterAndOp = link->d_ScatterAndInsert; in PetscSFLinkGetScatterAndOp()
762 else if (op == MPI_SUM || op == MPIU_SUM) *ScatterAndOp = link->d_ScatterAndAdd; in PetscSFLinkGetScatterAndOp()
763 else if (op == MPI_PROD) *ScatterAndOp = link->d_ScatterAndMult; in PetscSFLinkGetScatterAndOp()
764 else if (op == MPI_MAX || op == MPIU_MAX) *ScatterAndOp = link->d_ScatterAndMax; in PetscSFLinkGetScatterAndOp()
765 else if (op == MPI_MIN || op == MPIU_MIN) *ScatterAndOp = link->d_ScatterAndMin; in PetscSFLinkGetScatterAndOp()
766 else if (op == MPI_LAND) *ScatterAndOp = link->d_ScatterAndLAND; in PetscSFLinkGetScatterAndOp()
767 else if (op == MPI_BAND) *ScatterAndOp = link->d_ScatterAndBAND; in PetscSFLinkGetScatterAndOp()
768 else if (op == MPI_LOR) *ScatterAndOp = link->d_ScatterAndLOR; in PetscSFLinkGetScatterAndOp()
769 else if (op == MPI_BOR) *ScatterAndOp = link->d_ScatterAndBOR; in PetscSFLinkGetScatterAndOp()
770 else if (op == MPI_LXOR) *ScatterAndOp = link->d_ScatterAndLXOR; in PetscSFLinkGetScatterAndOp()
771 else if (op == MPI_BXOR) *ScatterAndOp = link->d_ScatterAndBXOR; in PetscSFLinkGetScatterAndOp()
772 else if (op == MPI_MAXLOC) *ScatterAndOp = link->d_ScatterAndMaxloc; in PetscSFLinkGetScatterAndOp()
773 else if (op == MPI_MINLOC) *ScatterAndOp = link->d_ScatterAndMinloc; in PetscSFLinkGetScatterAndOp()
775 if (op == MPI_REPLACE) *ScatterAndOp = link->da_ScatterAndInsert; in PetscSFLinkGetScatterAndOp()
776 else if (op == MPI_SUM || op == MPIU_SUM) *ScatterAndOp = link->da_ScatterAndAdd; in PetscSFLinkGetScatterAndOp()
777 else if (op == MPI_PROD) *ScatterAndOp = link->da_ScatterAndMult; in PetscSFLinkGetScatterAndOp()
778 else if (op == MPI_MAX || op == MPIU_MAX) *ScatterAndOp = link->da_ScatterAndMax; in PetscSFLinkGetScatterAndOp()
779 else if (op == MPI_MIN || op == MPIU_MIN) *ScatterAndOp = link->da_ScatterAndMin; in PetscSFLinkGetScatterAndOp()
780 else if (op == MPI_LAND) *ScatterAndOp = link->da_ScatterAndLAND; in PetscSFLinkGetScatterAndOp()
781 else if (op == MPI_BAND) *ScatterAndOp = link->da_ScatterAndBAND; in PetscSFLinkGetScatterAndOp()
782 else if (op == MPI_LOR) *ScatterAndOp = link->da_ScatterAndLOR; in PetscSFLinkGetScatterAndOp()
783 else if (op == MPI_BOR) *ScatterAndOp = link->da_ScatterAndBOR; in PetscSFLinkGetScatterAndOp()
784 else if (op == MPI_LXOR) *ScatterAndOp = link->da_ScatterAndLXOR; in PetscSFLinkGetScatterAndOp()
785 else if (op == MPI_BXOR) *ScatterAndOp = link->da_ScatterAndBXOR; in PetscSFLinkGetScatterAndOp()
786 else if (op == MPI_MAXLOC) *ScatterAndOp = link->da_ScatterAndMaxloc; in PetscSFLinkGetScatterAndOp()
787 else if (op == MPI_MINLOC) *ScatterAndOp = link->da_ScatterAndMinloc; in PetscSFLinkGetScatterAndOp()
793 PetscErrorCode PetscSFLinkGetFetchAndOp(PetscSFLink link, PetscMemType mtype, MPI_Op op, PetscBool … in PetscSFLinkGetFetchAndOp() argument
797 …PetscCheck(op == MPI_SUM || op == MPIU_SUM, PETSC_COMM_SELF, PETSC_ERR_SUP, "No support for MPI_Op… in PetscSFLinkGetFetchAndOp()
806 PetscErrorCode PetscSFLinkGetFetchAndOpLocal(PetscSFLink link, PetscMemType mtype, MPI_Op op, Petsc… in PetscSFLinkGetFetchAndOpLocal() argument
810 …PetscCheck(op == MPI_SUM || op == MPIU_SUM, PETSC_COMM_SELF, PETSC_ERR_SUP, "No support for MPI_Op… in PetscSFLinkGetFetchAndOpLocal()
819 …PetscSFLinkLogFlopsAfterUnpackRootData(PetscSF sf, PetscSFLink link, PetscSFScope scope, MPI_Op op) in PetscSFLinkLogFlopsAfterUnpackRootData() argument
824 if (op != MPI_REPLACE && link->basicunit == MPIU_SCALAR) { /* op is a reduction on PetscScalars */ in PetscSFLinkLogFlopsAfterUnpackRootData()
834 …PetscSFLinkLogFlopsAfterUnpackLeafData(PetscSF sf, PetscSFLink link, PetscSFScope scope, MPI_Op op) in PetscSFLinkLogFlopsAfterUnpackLeafData() argument
837 if (op != MPI_REPLACE && link->basicunit == MPIU_SCALAR) { /* op is a reduction on PetscScalars */ in PetscSFLinkLogFlopsAfterUnpackLeafData()
860 …k, PetscInt count, PetscInt start, const PetscInt *indices, void *data, const void *buf, MPI_Op op) in PetscSFLinkUnpackDataWithMPIReduceLocal() argument
870 …char *)buf + i * link->unitbytes, (char *)data + indices[i] * link->unitbytes, 1, link->unit, op)); in PetscSFLinkUnpackDataWithMPIReduceLocal()
872 …PetscCheck(op != MPI_REPLACE, PETSC_COMM_SELF, PETSC_ERR_PLIB, "MPI_REPLACE is not an allowed op i… in PetscSFLinkUnpackDataWithMPIReduceLocal()
873 …etscCallMPI(MPIU_Reduce_local(buf, (char *)data + start * link->unitbytes, count, link->unit, op)); in PetscSFLinkUnpackDataWithMPIReduceLocal()
882 …PetscInt *srcIdx, const void *src, PetscInt dstStart, const PetscInt *dstIdx, void *dst, MPI_Op op) in PetscSFLinkScatterDataWithMPIReduceLocal() argument
889 …Local(sf, link, count, dstStart, dstIdx, dst, (const char *)src + srcStart * link->unitbytes, op)); in PetscSFLinkScatterDataWithMPIReduceLocal()
891 …PetscCheck(op != MPI_REPLACE, PETSC_COMM_SELF, PETSC_ERR_PLIB, "MPI_REPLACE is not an allowed op i… in PetscSFLinkScatterDataWithMPIReduceLocal()
894 …har *)src + srcIdx[i] * link->unitbytes, (char *)dst + disp * link->unitbytes, 1, link->unit, op)); in PetscSFLinkScatterDataWithMPIReduceLocal()
983 …UnpackRootData_Private(PetscSF sf, PetscSFLink link, PetscSFScope scope, void *rootdata, MPI_Op op) in PetscSFLinkUnpackRootData_Private() argument
994 PetscCall(PetscSFLinkGetUnpackAndOp(link, rootmtype, op, bas->rootdups[scope], &UnpackAndOp)); in PetscSFLinkUnpackRootData_Private()
1000 …PIReduceLocal(sf, link, count, start, rootindices, rootdata, link->rootbuf[scope][rootmtype], op)); in PetscSFLinkUnpackRootData_Private()
1003 PetscCall(PetscSFLinkLogFlopsAfterUnpackRootData(sf, link, scope, op)); in PetscSFLinkUnpackRootData_Private()
1007 …UnpackLeafData_Private(PetscSF sf, PetscSFLink link, PetscSFScope scope, void *leafdata, MPI_Op op) in PetscSFLinkUnpackLeafData_Private() argument
1017 PetscCall(PetscSFLinkGetUnpackAndOp(link, leafmtype, op, sf->leafdups[scope], &UnpackAndOp)); in PetscSFLinkUnpackLeafData_Private()
1023 …PIReduceLocal(sf, link, count, start, leafindices, leafdata, link->leafbuf[scope][leafmtype], op)); in PetscSFLinkUnpackLeafData_Private()
1026 PetscCall(PetscSFLinkLogFlopsAfterUnpackLeafData(sf, link, scope, op)); in PetscSFLinkUnpackLeafData_Private()
1030 …scSFLinkUnpackRootData(PetscSF sf, PetscSFLink link, PetscSFScope scope, void *rootdata, MPI_Op op) in PetscSFLinkUnpackRootData() argument
1036 …nk->rootdirect[scope]) PetscCall(PetscSFLinkUnpackRootData_Private(sf, link, scope, rootdata, op)); in PetscSFLinkUnpackRootData()
1046 …scSFLinkUnpackLeafData(PetscSF sf, PetscSFLink link, PetscSFScope scope, void *leafdata, MPI_Op op) in PetscSFLinkUnpackLeafData() argument
1050 …nk->leafdirect[scope]) PetscCall(PetscSFLinkUnpackLeafData_Private(sf, link, scope, leafdata, op)); in PetscSFLinkUnpackLeafData()
1060 PetscErrorCode PetscSFLinkFetchAndOpRemote(PetscSF sf, PetscSFLink link, void *rootdata, MPI_Op op) in PetscSFLinkFetchAndOpRemote() argument
1073 …PetscCall(PetscSFLinkGetFetchAndOp(link, rootmtype, op, bas->rootdups[PETSCSF_REMOTE], &FetchAndOp… in PetscSFLinkFetchAndOpRemote()
1077 PetscCall(PetscSFLinkLogFlopsAfterUnpackRootData(sf, link, PETSCSF_REMOTE, op)); in PetscSFLinkFetchAndOpRemote()
1082 …etscSF sf, PetscSFLink link, PetscSFDirection direction, void *rootdata, void *leafdata, MPI_Op op) in PetscSFLinkScatterLocal() argument
1114 PetscCall(PetscSFLinkUnpackLeafData(sf, link, PETSCSF_LOCAL, leafdata, op)); in PetscSFLinkScatterLocal()
1116 PetscCall(PetscSFLinkUnpackRootData(sf, link, PETSCSF_LOCAL, rootdata, op)); in PetscSFLinkScatterLocal()
1121 PetscCall(PetscSFLinkGetScatterAndOp(link, dstmtype, op, dstdups, &ScatterAndOp)); in PetscSFLinkScatterLocal()
1134 …uceLocal(sf, link, count, rootstart, rootindices, rootdata, leafstart, leafindices, leafdata, op)); in PetscSFLinkScatterLocal()
1136 …uceLocal(sf, link, count, leafstart, leafindices, leafdata, rootstart, rootindices, rootdata, op)); in PetscSFLinkScatterLocal()
1144 …al(PetscSF sf, PetscSFLink link, void *rootdata, const void *leafdata, void *leafupdate, MPI_Op op) in PetscSFLinkFetchAndOpLocal() argument
1161 …PetscCall(PetscSFLinkGetFetchAndOpLocal(link, rootmtype, op, bas->rootdups[PETSCSF_LOCAL], &FetchA… in PetscSFLinkFetchAndOpLocal()