xref: /petsc/src/vec/vec/impls/dvecimpl.h (revision bbfbdd31d4e286473f4179abdcd08de394213aa7)
1 #pragma once
2 
3 /*
4   This should not be included in users code.
5 
6   Includes definition of structure for sequential vectors
7 
8   These are shared by dvec1.c dvec2.c dvec3.c bvec1.c bvec2.c pvec.c pbvec.c
9 */
10 
11 #include <petsc/private/vecimpl.h>
12 
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;
21 
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);
34 
35 PETSC_INTERN PetscErrorCode VecCreate_Seq_Private(Vec, const PetscScalar[]);
36 PETSC_INTERN PetscErrorCode VecSetPreallocationCOO_Seq(Vec, PetscCount, const PetscInt[]);
37 PETSC_INTERN PetscErrorCode VecSetValuesCOO_Seq(Vec, const PetscScalar[], InsertMode);
38 
39 PETSC_INTERN PetscErrorCode VecMDot_Seq(Vec, PetscInt, const Vec[], PetscScalar *);
40 PETSC_INTERN PetscErrorCode VecMTDot_Seq(Vec, PetscInt, const Vec[], PetscScalar *);
41 PETSC_INTERN PetscErrorCode VecSet_Seq(Vec, PetscScalar);
42 PETSC_INTERN PetscErrorCode VecMAXPY_Seq(Vec, PetscInt, const PetscScalar *, Vec *);
43 PETSC_INTERN PetscErrorCode VecAYPX_Seq(Vec, PetscScalar, Vec);
44 PETSC_INTERN PetscErrorCode VecWAXPY_Seq(Vec, PetscScalar, Vec, Vec);
45 PETSC_INTERN PetscErrorCode VecAXPBYPCZ_Seq(Vec, PetscScalar, PetscScalar, PetscScalar, Vec, Vec);
46 PETSC_INTERN PetscErrorCode VecPlaceArray_Seq(Vec, const PetscScalar *);
47 PETSC_INTERN PetscErrorCode VecResetArray_Seq(Vec);
48 PETSC_INTERN PetscErrorCode VecDot_Seq(Vec, Vec, PetscScalar *);
49 PETSC_INTERN PetscErrorCode VecTDot_Seq(Vec, Vec, PetscScalar *);
50 PETSC_INTERN PetscErrorCode VecScale_Seq(Vec, PetscScalar);
51 PETSC_INTERN PetscErrorCode VecAXPBY_Seq(Vec, PetscScalar, PetscScalar, Vec);
52 PETSC_INTERN PetscErrorCode VecMin_Seq(Vec, PetscInt *, PetscReal *);
53 PETSC_INTERN PetscErrorCode VecMax_Seq(Vec, PetscInt *, PetscReal *);
54 PETSC_INTERN PetscErrorCode VecNorm_Seq(Vec, NormType, PetscReal *);
55 PETSC_INTERN PetscErrorCode VecDestroy_Seq(Vec);
56 PETSC_INTERN PetscErrorCode VecCopy_Seq(Vec, Vec);
57 PETSC_INTERN PetscErrorCode VecSwap_Seq(Vec, Vec);
58 PETSC_INTERN PetscErrorCode VecConjugate_Seq(Vec);
59 PETSC_INTERN PetscErrorCode VecSetRandom_Seq(Vec, PetscRandom);
60 PETSC_INTERN PetscErrorCode VecPointwiseMult_Seq(Vec, Vec, Vec);
61 PETSC_INTERN PetscErrorCode VecPointwiseDivide_Seq(Vec, Vec, Vec);
62 PETSC_INTERN PetscErrorCode VecAXPY_Seq(Vec, PetscScalar, Vec);
63 PETSC_INTERN PetscErrorCode VecReplaceArray_Default_GEMV_Error(Vec, const PetscScalar *);
64 
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 *);
68