Actual source code: pvec2.c

  1: /*
  2:      Code for some of the parallel vector primitives.
  3: */
  4: #include <../src/vec/vec/impls/mpi/pvecimpl.h>
  5: #include <petscblaslapack.h>

  7: PetscErrorCode VecDot_MPI(Vec xin, Vec yin, PetscScalar *z)
  8: {
  9:   PetscFunctionBegin;
 10:   PetscCall(VecXDot_MPI_Default(xin, yin, z, VecDot_Seq));
 11:   PetscFunctionReturn(PETSC_SUCCESS);
 12: }

 14: PetscErrorCode VecTDot_MPI(Vec xin, Vec yin, PetscScalar *z)
 15: {
 16:   PetscFunctionBegin;
 17:   PetscCall(VecXDot_MPI_Default(xin, yin, z, VecTDot_Seq));
 18:   PetscFunctionReturn(PETSC_SUCCESS);
 19: }

 21: PetscErrorCode VecMDot_MPI(Vec xin, PetscInt nv, const Vec y[], PetscScalar *z)
 22: {
 23:   PetscFunctionBegin;
 24:   PetscCall(VecMXDot_MPI_Default(xin, nv, y, z, VecMDot_Seq));
 25:   PetscFunctionReturn(PETSC_SUCCESS);
 26: }

 28: PetscErrorCode VecMDot_MPI_GEMV(Vec xin, PetscInt nv, const Vec y[], PetscScalar *z)
 29: {
 30:   PetscFunctionBegin;
 31:   PetscCall(VecMXDot_MPI_Default(xin, nv, y, z, VecMDot_Seq_GEMV));
 32:   PetscFunctionReturn(PETSC_SUCCESS);
 33: }

 35: PetscErrorCode VecMTDot_MPI(Vec xin, PetscInt nv, const Vec y[], PetscScalar *z)
 36: {
 37:   PetscFunctionBegin;
 38:   PetscCall(VecMXDot_MPI_Default(xin, nv, y, z, VecMTDot_Seq));
 39:   PetscFunctionReturn(PETSC_SUCCESS);
 40: }

 42: PetscErrorCode VecMTDot_MPI_GEMV(Vec xin, PetscInt nv, const Vec y[], PetscScalar *z)
 43: {
 44:   PetscFunctionBegin;
 45:   PetscCall(VecMXDot_MPI_Default(xin, nv, y, z, VecMTDot_Seq_GEMV));
 46:   PetscFunctionReturn(PETSC_SUCCESS);
 47: }

 49: PetscErrorCode VecNorm_MPI(Vec xin, NormType type, PetscReal *z)
 50: {
 51:   PetscFunctionBegin;
 52:   PetscCall(VecNorm_MPI_Default(xin, type, z, VecNorm_Seq));
 53:   PetscFunctionReturn(PETSC_SUCCESS);
 54: }

 56: PetscErrorCode VecMax_MPI(Vec xin, PetscInt *idx, PetscReal *z)
 57: {
 58:   const MPI_Op ops[] = {MPIU_MAXLOC, MPIU_MAX};

 60:   PetscFunctionBegin;
 61:   PetscCall(VecMinMax_MPI_Default(xin, idx, z, VecMax_Seq, ops));
 62:   PetscFunctionReturn(PETSC_SUCCESS);
 63: }

 65: PetscErrorCode VecMin_MPI(Vec xin, PetscInt *idx, PetscReal *z)
 66: {
 67:   const MPI_Op ops[] = {MPIU_MINLOC, MPIU_MIN};

 69:   PetscFunctionBegin;
 70:   PetscCall(VecMinMax_MPI_Default(xin, idx, z, VecMin_Seq, ops));
 71:   PetscFunctionReturn(PETSC_SUCCESS);
 72: }