Actual source code: dvecimpl.h

  1: #pragma once

  3: /*
  4:   This should not be included in users code.

  6:   Includes definition of structure for sequential vectors

  8:   These are shared by dvec1.c dvec2.c dvec3.c bvec1.c bvec2.c pvec.c pbvec.c
  9: */

 11: #include <petsc/private/vecimpl.h>

 13: typedef struct {
 14:   VECHEADER
 15:   /* VecSetValuesCOO() related fields on host. m is the vector's local size */
 16:   PetscCount  coo_n; /* Number of entries in VecSetPreallocationCOO() */
 17:   PetscCount  tot1;  /* Total number of valid (i.e., w/ non-negative indices) entries in the COO array */
 18:   PetscCount *jmap1; /* [m+1]: perm1[jmap1[i]..jmap1[i+1]) give indices of entries in v[] associated with i-th nonzero of the vector */
 19:   PetscCount *perm1; /* [tot1]: The permutation array in sorting coo_i[] */
 20: } Vec_Seq;

 22: PETSC_INTERN PetscErrorCode VecMaxPointwiseDivide_Seq(Vec, Vec, PetscReal *);
 23: PETSC_INTERN PetscErrorCode VecReplaceArray_Seq(Vec, const PetscScalar *);
 24: PETSC_INTERN PetscErrorCode VecDuplicate_Seq(Vec, Vec *);
 25: PETSC_INTERN PetscErrorCode VecSetOption_Seq(Vec, VecOption, PetscBool);
 26: PETSC_INTERN PetscErrorCode VecGetValues_Seq(Vec, PetscInt, const PetscInt *, PetscScalar *);
 27: PETSC_INTERN PetscErrorCode VecSetValues_Seq(Vec, PetscInt, const PetscInt *, const PetscScalar *, InsertMode);
 28: PETSC_INTERN PetscErrorCode VecSetValuesBlocked_Seq(Vec, PetscInt, const PetscInt *, const PetscScalar *, InsertMode);
 29: PETSC_INTERN PetscErrorCode VecGetSize_Seq(Vec, PetscInt *);
 30: PETSC_INTERN PetscErrorCode VecPointwiseMax_Seq(Vec, Vec, Vec);
 31: PETSC_INTERN PetscErrorCode VecPointwiseMaxAbs_Seq(Vec, Vec, Vec);
 32: PETSC_INTERN PetscErrorCode VecPointwiseMin_Seq(Vec, Vec, Vec);
 33: PETSC_INTERN PetscErrorCode VecCreate_Seq(Vec);

 35: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecCreate_Seq_Private(Vec, const PetscScalar[]);
 36: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecSetPreallocationCOO_Seq(Vec, PetscCount, const PetscInt[]);
 37: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecSetValuesCOO_Seq(Vec, const PetscScalar[], InsertMode);

 39: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecMDot_Seq(Vec, PetscInt, const Vec[], PetscScalar *);
 40: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecMTDot_Seq(Vec, PetscInt, const Vec[], PetscScalar *);
 41: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecSet_Seq(Vec, PetscScalar);
 42: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecMAXPY_Seq(Vec, PetscInt, const PetscScalar *, Vec *);
 43: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecAYPX_Seq(Vec, PetscScalar, Vec);
 44: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecWAXPY_Seq(Vec, PetscScalar, Vec, Vec);
 45: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecAXPBYPCZ_Seq(Vec, PetscScalar, PetscScalar, PetscScalar, Vec, Vec);
 46: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecPlaceArray_Seq(Vec, const PetscScalar *);
 47: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecResetArray_Seq(Vec);
 48: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecDot_Seq(Vec, Vec, PetscScalar *);
 49: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecTDot_Seq(Vec, Vec, PetscScalar *);
 50: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecScale_Seq(Vec, PetscScalar);
 51: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecAXPBY_Seq(Vec, PetscScalar, PetscScalar, Vec);
 52: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecMin_Seq(Vec, PetscInt *, PetscReal *);
 53: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecMax_Seq(Vec, PetscInt *, PetscReal *);
 54: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecNorm_Seq(Vec, NormType, PetscReal *);
 55: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecDestroy_Seq(Vec);
 56: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecCopy_Seq(Vec, Vec);
 57: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecSwap_Seq(Vec, Vec);
 58: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecConjugate_Seq(Vec);
 59: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecSetRandom_Seq(Vec, PetscRandom);
 60: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecPointwiseMult_Seq(Vec, Vec, Vec);
 61: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecPointwiseDivide_Seq(Vec, Vec, Vec);
 62: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecAXPY_Seq(Vec, PetscScalar, Vec);
 63: PETSC_SINGLE_LIBRARY_INTERN PetscErrorCode VecReplaceArray_Default_GEMV_Error(Vec, const PetscScalar *);

 65: PETSC_INTERN PetscErrorCode VecMDot_Seq_GEMV(Vec, PetscInt, const Vec[], PetscScalar *);
 66: PETSC_INTERN PetscErrorCode VecMTDot_Seq_GEMV(Vec, PetscInt, const Vec[], PetscScalar *);
 67: PETSC_INTERN PetscErrorCode VecMAXPY_Seq_GEMV(Vec, PetscInt, const PetscScalar *, Vec *);