| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | /* | ||
| 2 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| 3 | SLEPc - Scalable Library for Eigenvalue Problem Computations | ||
| 4 | Copyright (c) 2002-, Universitat Politecnica de Valencia, Spain | ||
| 5 | |||
| 6 | This file is part of SLEPc. | ||
| 7 | SLEPc is distributed under a 2-clause BSD license (see LICENSE). | ||
| 8 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| 9 | */ | ||
| 10 | |||
| 11 | #include <slepc/private/vecimplslepc.h> /*I "slepcvec.h" I*/ | ||
| 12 | |||
| 13 | /* Private MPI datatypes and operators */ | ||
| 14 | static MPI_Datatype MPIU_NORM2=0, MPIU_NORM1_AND_2=0; | ||
| 15 | static PetscBool VecCompInitialized = PETSC_FALSE; | ||
| 16 | MPI_Op MPIU_NORM2_SUM=0; | ||
| 17 | |||
| 18 | /* Private functions */ | ||
| 19 | static inline void SumNorm2(PetscReal*,PetscReal*,PetscReal*,PetscReal*); | ||
| 20 | static inline PetscReal GetNorm2(PetscReal,PetscReal); | ||
| 21 | static inline void AddNorm2(PetscReal*,PetscReal*,PetscReal); | ||
| 22 | static PetscErrorCode VecCompSetSubVecs_Comp(Vec,PetscInt,Vec*); | ||
| 23 | static PetscErrorCode VecCompGetSubVecs_Comp(Vec,PetscInt*,const Vec**); | ||
| 24 | |||
| 25 | #include "veccomp0.h" | ||
| 26 | |||
| 27 | #define __WITH_MPI__ | ||
| 28 | #include "veccomp0.h" | ||
| 29 | |||
| 30 | 38177 | static inline void SumNorm2(PetscReal *ssq0,PetscReal *scale0,PetscReal *ssq1,PetscReal *scale1) | |
| 31 | { | ||
| 32 | 38177 | PetscReal q; | |
| 33 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
38177 | if (*scale0 > *scale1) { |
| 34 | 18320 | q = *scale1/(*scale0); | |
| 35 | 18320 | *ssq1 = *ssq0 + q*q*(*ssq1); | |
| 36 | 18320 | *scale1 = *scale0; | |
| 37 | } else { | ||
| 38 | 19857 | q = *scale0/(*scale1); | |
| 39 | 19857 | *ssq1 += q*q*(*ssq0); | |
| 40 | } | ||
| 41 | 38177 | } | |
| 42 | |||
| 43 | 421374 | static inline PetscReal GetNorm2(PetscReal ssq,PetscReal scale) | |
| 44 | { | ||
| 45 | 421374 | return scale*PetscSqrtReal(ssq); | |
| 46 | } | ||
| 47 | |||
| 48 | 422586 | static inline void AddNorm2(PetscReal *ssq,PetscReal *scale,PetscReal x) | |
| 49 | { | ||
| 50 | 422586 | PetscReal absx,q; | |
| 51 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 5 times.
|
422586 | if (x != 0.0) { |
| 52 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
|
422579 | absx = PetscAbs(x); |
| 53 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
422579 | if (*scale < absx) { |
| 54 | 422020 | q = *scale/absx; | |
| 55 | 422020 | *ssq = 1.0 + *ssq*q*q; | |
| 56 | 422020 | *scale = absx; | |
| 57 | } else { | ||
| 58 | 559 | q = absx/(*scale); | |
| 59 | 559 | *ssq += q*q; | |
| 60 | } | ||
| 61 | } | ||
| 62 | 422586 | } | |
| 63 | |||
| 64 | 38177 | SLEPC_EXTERN void MPIAPI SlepcSumNorm2_Local(void *in,void *out,PetscMPIInt *cnt,MPI_Datatype *datatype) | |
| 65 | { | ||
| 66 | 38177 | PetscInt i,count = *cnt; | |
| 67 | 38177 | PetscReal *xin = (PetscReal*)in,*xout = (PetscReal*)out; | |
| 68 | |||
| 69 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
38177 | PetscFunctionBegin; |
| 70 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
38177 | if (*datatype == MPIU_NORM2) { |
| 71 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
76326 | for (i=0;i<count;i++) { |
| 72 | 38163 | SumNorm2(&xin[i*2],&xin[i*2+1],&xout[i*2],&xout[i*2+1]); | |
| 73 | } | ||
| 74 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
14 | } else if (*datatype == MPIU_NORM1_AND_2) { |
| 75 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
28 | for (i=0;i<count;i++) { |
| 76 | 14 | xout[i*3] += xin[i*3]; | |
| 77 | 14 | SumNorm2(&xin[i*3+1],&xin[i*3+2],&xout[i*3+1],&xout[i*3+2]); | |
| 78 | } | ||
| 79 | } else { | ||
| 80 | ✗ | (void)(*PetscErrorPrintf)("Can only handle MPIU_NORM* data types"); | |
| 81 | ✗ | MPI_Abort(PETSC_COMM_WORLD,1); | |
| 82 | } | ||
| 83 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
38177 | PetscFunctionReturnVoid(); |
| 84 | } | ||
| 85 | |||
| 86 | 354 | static PetscErrorCode VecCompNormEnd(void) | |
| 87 | { | ||
| 88 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
354 | PetscFunctionBegin; |
| 89 |
14/28✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
354 | PetscCallMPI(MPI_Type_free(&MPIU_NORM2)); |
| 90 |
14/28✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
354 | PetscCallMPI(MPI_Type_free(&MPIU_NORM1_AND_2)); |
| 91 |
14/28✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
354 | PetscCallMPI(MPI_Op_free(&MPIU_NORM2_SUM)); |
| 92 | 354 | VecCompInitialized = PETSC_FALSE; | |
| 93 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
354 | PetscFunctionReturn(PETSC_SUCCESS); |
| 94 | } | ||
| 95 | |||
| 96 | 354 | static PetscErrorCode VecCompNormInit(void) | |
| 97 | { | ||
| 98 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
354 | PetscFunctionBegin; |
| 99 |
14/28✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
354 | PetscCallMPI(MPI_Type_contiguous(2,MPIU_REAL,&MPIU_NORM2)); |
| 100 |
14/28✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
354 | PetscCallMPI(MPI_Type_commit(&MPIU_NORM2)); |
| 101 |
14/28✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
354 | PetscCallMPI(MPI_Type_contiguous(3,MPIU_REAL,&MPIU_NORM1_AND_2)); |
| 102 |
14/28✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
354 | PetscCallMPI(MPI_Type_commit(&MPIU_NORM1_AND_2)); |
| 103 |
14/28✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
354 | PetscCallMPI(MPI_Op_create(SlepcSumNorm2_Local,PETSC_TRUE,&MPIU_NORM2_SUM)); |
| 104 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
354 | PetscCall(PetscRegisterFinalize(VecCompNormEnd)); |
| 105 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
70 | PetscFunctionReturn(PETSC_SUCCESS); |
| 106 | } | ||
| 107 | |||
| 108 | 28687 | PetscErrorCode VecDestroy_Comp(Vec v) | |
| 109 | { | ||
| 110 | 28687 | Vec_Comp *vs = (Vec_Comp*)v->data; | |
| 111 | 28687 | PetscInt i; | |
| 112 | |||
| 113 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
28687 | PetscFunctionBegin; |
| 114 | #if defined(PETSC_USE_LOG) | ||
| 115 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
28687 | PetscCall(PetscLogObjectState((PetscObject)v,"Length=%" PetscInt_FMT,v->map->n)); |
| 116 | #endif | ||
| 117 |
7/8✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 2 times.
|
62712 | for (i=0;i<vs->nx;i++) PetscCall(VecDestroy(&vs->x[i])); |
| 118 |
7/10✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✓ Branch 5 taken 8 times.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
|
28687 | if (--vs->n->friends <= 0) PetscCall(PetscFree(vs->n)); |
| 119 |
5/8✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
28687 | PetscCall(PetscFree(vs->x)); |
| 120 |
6/8✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
28687 | PetscCall(PetscFree(vs)); |
| 121 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
28687 | PetscCall(PetscObjectComposeFunction((PetscObject)v,"VecCompSetSubVecs_C",NULL)); |
| 122 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
28687 | PetscCall(PetscObjectComposeFunction((PetscObject)v,"VecCompGetSubVecs_C",NULL)); |
| 123 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
5725 | PetscFunctionReturn(PETSC_SUCCESS); |
| 124 | } | ||
| 125 | |||
| 126 | static struct _VecOps DvOps = { | ||
| 127 | PetscDesignatedInitializer(duplicate,VecDuplicate_Comp), | ||
| 128 | PetscDesignatedInitializer(duplicatevecs,VecDuplicateVecs_Comp), | ||
| 129 | PetscDesignatedInitializer(destroyvecs,VecDestroyVecs_Comp), | ||
| 130 | PetscDesignatedInitializer(dot,VecDot_Comp_MPI), | ||
| 131 | PetscDesignatedInitializer(mdot,VecMDot_Comp_MPI), | ||
| 132 | PetscDesignatedInitializer(norm,VecNorm_Comp_MPI), | ||
| 133 | PetscDesignatedInitializer(tdot,VecTDot_Comp_MPI), | ||
| 134 | PetscDesignatedInitializer(mtdot,VecMTDot_Comp_MPI), | ||
| 135 | PetscDesignatedInitializer(scale,VecScale_Comp), | ||
| 136 | PetscDesignatedInitializer(copy,VecCopy_Comp), | ||
| 137 | PetscDesignatedInitializer(set,VecSet_Comp), | ||
| 138 | PetscDesignatedInitializer(swap,VecSwap_Comp), | ||
| 139 | PetscDesignatedInitializer(axpy,VecAXPY_Comp), | ||
| 140 | PetscDesignatedInitializer(axpby,VecAXPBY_Comp), | ||
| 141 | PetscDesignatedInitializer(maxpy,VecMAXPY_Comp), | ||
| 142 | PetscDesignatedInitializer(aypx,VecAYPX_Comp), | ||
| 143 | PetscDesignatedInitializer(waxpy,VecWAXPY_Comp), | ||
| 144 | PetscDesignatedInitializer(axpbypcz,VecAXPBYPCZ_Comp), | ||
| 145 | PetscDesignatedInitializer(pointwisemult,VecPointwiseMult_Comp), | ||
| 146 | PetscDesignatedInitializer(pointwisedivide,VecPointwiseDivide_Comp), | ||
| 147 | PetscDesignatedInitializer(setvalues,NULL), | ||
| 148 | PetscDesignatedInitializer(assemblybegin,NULL), | ||
| 149 | PetscDesignatedInitializer(assemblyend,NULL), | ||
| 150 | PetscDesignatedInitializer(getarray,NULL), | ||
| 151 | PetscDesignatedInitializer(getsize,VecGetSize_Comp), | ||
| 152 | PetscDesignatedInitializer(getlocalsize,VecGetLocalSize_Comp), | ||
| 153 | PetscDesignatedInitializer(restorearray,NULL), | ||
| 154 | PetscDesignatedInitializer(max,VecMax_Comp), | ||
| 155 | PetscDesignatedInitializer(min,VecMin_Comp), | ||
| 156 | PetscDesignatedInitializer(setrandom,VecSetRandom_Comp), | ||
| 157 | PetscDesignatedInitializer(setoption,NULL), | ||
| 158 | PetscDesignatedInitializer(setvaluesblocked,NULL), | ||
| 159 | PetscDesignatedInitializer(destroy,VecDestroy_Comp), | ||
| 160 | PetscDesignatedInitializer(view,VecView_Comp), | ||
| 161 | PetscDesignatedInitializer(placearray,NULL), | ||
| 162 | PetscDesignatedInitializer(replacearray,NULL), | ||
| 163 | PetscDesignatedInitializer(dot_local,VecDot_Comp_Seq), | ||
| 164 | PetscDesignatedInitializer(tdot_local,VecTDot_Comp_Seq), | ||
| 165 | PetscDesignatedInitializer(norm_local,VecNorm_Comp_Seq), | ||
| 166 | PetscDesignatedInitializer(mdot_local,VecMDot_Comp_Seq), | ||
| 167 | PetscDesignatedInitializer(mtdot_local,VecMTDot_Comp_Seq), | ||
| 168 | PetscDesignatedInitializer(load,NULL), | ||
| 169 | PetscDesignatedInitializer(reciprocal,VecReciprocal_Comp), | ||
| 170 | PetscDesignatedInitializer(conjugate,VecConjugate_Comp), | ||
| 171 | PetscDesignatedInitializer(setlocaltoglobalmapping,NULL), | ||
| 172 | PetscDesignatedInitializer(getlocaltoglobalmapping,NULL), | ||
| 173 | PetscDesignatedInitializer(resetarray,NULL), | ||
| 174 | PetscDesignatedInitializer(setfromoptions,NULL), | ||
| 175 | PetscDesignatedInitializer(maxpointwisedivide,VecMaxPointwiseDivide_Comp), | ||
| 176 | PetscDesignatedInitializer(pointwisemax,VecPointwiseMax_Comp), | ||
| 177 | PetscDesignatedInitializer(pointwisemaxabs,VecPointwiseMaxAbs_Comp), | ||
| 178 | PetscDesignatedInitializer(pointwisemin,VecPointwiseMin_Comp), | ||
| 179 | PetscDesignatedInitializer(getvalues,NULL), | ||
| 180 | PetscDesignatedInitializer(sqrt,VecSqrtAbs_Comp), | ||
| 181 | PetscDesignatedInitializer(abs,VecAbs_Comp), | ||
| 182 | PetscDesignatedInitializer(exp,VecExp_Comp), | ||
| 183 | PetscDesignatedInitializer(log,VecLog_Comp), | ||
| 184 | PetscDesignatedInitializer(shift,VecShift_Comp), | ||
| 185 | PetscDesignatedInitializer(create,NULL), | ||
| 186 | PetscDesignatedInitializer(stridegather,NULL), | ||
| 187 | PetscDesignatedInitializer(stridescatter,NULL), | ||
| 188 | PetscDesignatedInitializer(dotnorm2,VecDotNorm2_Comp_MPI), | ||
| 189 | PetscDesignatedInitializer(getsubvector,NULL), | ||
| 190 | PetscDesignatedInitializer(restoresubvector,NULL), | ||
| 191 | PetscDesignatedInitializer(getarrayread,NULL), | ||
| 192 | PetscDesignatedInitializer(restorearrayread,NULL), | ||
| 193 | PetscDesignatedInitializer(stridesubsetgather,NULL), | ||
| 194 | PetscDesignatedInitializer(stridesubsetscatter,NULL), | ||
| 195 | PetscDesignatedInitializer(viewnative,NULL), | ||
| 196 | PetscDesignatedInitializer(loadnative,NULL), | ||
| 197 | PetscDesignatedInitializer(getlocalvector,NULL) | ||
| 198 | }; | ||
| 199 | |||
| 200 | 389 | PetscErrorCode VecDuplicateVecs_Comp(Vec w,PetscInt m,Vec *V[]) | |
| 201 | { | ||
| 202 | 389 | PetscInt i; | |
| 203 | |||
| 204 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
389 | PetscFunctionBegin; |
| 205 |
3/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
389 | PetscValidHeaderSpecific(w,VEC_CLASSID,1); |
| 206 |
2/8✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
389 | PetscAssertPointer(V,3); |
| 207 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
389 | PetscCheck(m>0,PetscObjectComm((PetscObject)w),PETSC_ERR_ARG_OUTOFRANGE,"m must be > 0: m = %" PetscInt_FMT,m); |
| 208 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
389 | PetscCall(PetscMalloc1(m,V)); |
| 209 |
7/8✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 2 times.
|
4139 | for (i=0;i<m;i++) PetscCall(VecDuplicate(w,*V+i)); |
| 210 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
77 | PetscFunctionReturn(PETSC_SUCCESS); |
| 211 | } | ||
| 212 | |||
| 213 | 389 | PetscErrorCode VecDestroyVecs_Comp(PetscInt m,Vec v[]) | |
| 214 | { | ||
| 215 | 389 | PetscInt i; | |
| 216 | |||
| 217 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
389 | PetscFunctionBegin; |
| 218 |
2/8✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
389 | PetscAssertPointer(v,2); |
| 219 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
389 | PetscCheck(m>0,PETSC_COMM_SELF,PETSC_ERR_ARG_OUTOFRANGE,"m must be > 0: m = %" PetscInt_FMT,m); |
| 220 |
7/8✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 2 times.
|
4139 | for (i=0;i<m;i++) PetscCall(VecDestroy(&v[i])); |
| 221 |
6/8✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
389 | PetscCall(PetscFree(v)); |
| 222 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
77 | PetscFunctionReturn(PETSC_SUCCESS); |
| 223 | } | ||
| 224 | |||
| 225 | 28687 | static PetscErrorCode VecCreate_Comp_Private(Vec v,Vec *x,PetscInt nx,PetscBool x_to_me,Vec_Comp_N *n) | |
| 226 | { | ||
| 227 | 28687 | Vec_Comp *s; | |
| 228 | 28687 | PetscInt N=0,lN=0,i,k; | |
| 229 | |||
| 230 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
28687 | PetscFunctionBegin; |
| 231 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
28687 | if (!VecCompInitialized) { |
| 232 | 354 | VecCompInitialized = PETSC_TRUE; | |
| 233 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
354 | PetscCall(VecRegister(VECCOMP,VecCreate_Comp)); |
| 234 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
354 | PetscCall(VecCompNormInit()); |
| 235 | } | ||
| 236 | |||
| 237 | /* Allocate a new Vec_Comp */ | ||
| 238 |
1/10✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
|
28687 | if (v->data) PetscCall(PetscFree(v->data)); |
| 239 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
28687 | PetscCall(PetscNew(&s)); |
| 240 |
4/6✓ Branch 0 taken 5 times.
✓ Branch 1 taken 5 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
28687 | PetscCall(PetscMemcpy(v->ops,&DvOps,sizeof(DvOps))); |
| 241 | 28687 | v->data = (void*)s; | |
| 242 | 28687 | v->petscnative = PETSC_FALSE; | |
| 243 | |||
| 244 | /* Allocate the array of Vec, if it is needed to be done */ | ||
| 245 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
28687 | if (!x_to_me) { |
| 246 |
6/8✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
19767 | if (nx) PetscCall(PetscMalloc1(nx,&s->x)); |
| 247 |
6/8✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
19767 | if (x) PetscCall(PetscArraycpy(s->x,x,nx)); |
| 248 | 8920 | } else s->x = x; | |
| 249 | |||
| 250 | 28687 | s->nx = nx; | |
| 251 | |||
| 252 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
28687 | if (nx && x) { |
| 253 | /* Allocate the shared structure, if it is not given */ | ||
| 254 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
28657 | if (!n) { |
| 255 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
1157 | for (i=0;i<nx;i++) { |
| 256 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
655 | PetscCall(VecGetSize(x[i],&k)); |
| 257 | 655 | N+= k; | |
| 258 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
655 | PetscCall(VecGetLocalSize(x[i],&k)); |
| 259 | 655 | lN+= k; | |
| 260 | } | ||
| 261 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
502 | PetscCall(PetscNew(&n)); |
| 262 | 502 | s->n = n; | |
| 263 | 502 | n->n = nx; | |
| 264 | 502 | n->N = N; | |
| 265 | 502 | n->lN = lN; | |
| 266 | 502 | n->friends = 1; | |
| 267 | } else { /* If not, check in the vector in the shared structure */ | ||
| 268 | 28155 | s->n = n; | |
| 269 | 28155 | s->n->friends++; | |
| 270 | } | ||
| 271 | |||
| 272 | /* Set the virtual sizes as the real sizes of the vector */ | ||
| 273 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
28657 | PetscCall(VecSetSizes(v,s->n->lN,s->n->N)); |
| 274 | } | ||
| 275 | |||
| 276 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
28687 | PetscCall(PetscObjectChangeTypeName((PetscObject)v,VECCOMP)); |
| 277 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
28687 | PetscCall(PetscObjectComposeFunction((PetscObject)v,"VecCompSetSubVecs_C",VecCompSetSubVecs_Comp)); |
| 278 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
28687 | PetscCall(PetscObjectComposeFunction((PetscObject)v,"VecCompGetSubVecs_C",VecCompGetSubVecs_Comp)); |
| 279 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
5725 | PetscFunctionReturn(PETSC_SUCCESS); |
| 280 | } | ||
| 281 | |||
| 282 | 30 | SLEPC_EXTERN PetscErrorCode VecCreate_Comp(Vec V) | |
| 283 | { | ||
| 284 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
30 | PetscFunctionBegin; |
| 285 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
30 | PetscCall(VecCreate_Comp_Private(V,NULL,0,PETSC_FALSE,NULL)); |
| 286 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
6 | PetscFunctionReturn(PETSC_SUCCESS); |
| 287 | } | ||
| 288 | |||
| 289 | /*MC | ||
| 290 | VECCOMP - VECCOMP = "comp" - Vector type consisting of several subvectors, | ||
| 291 | each stored separately. | ||
| 292 | |||
| 293 | Level: developer | ||
| 294 | |||
| 295 | Notes: | ||
| 296 | This is similar to PETSc's `VECNEST` but customized for SLEPc's needs. In particular, | ||
| 297 | the number of child vectors can be modified dynamically, with `VecCompSetSubVecs()`. | ||
| 298 | |||
| 299 | .seealso: `Vec`, `VecType`, `VecCreateComp()`, `VecCreateCompWithVecs()` | ||
| 300 | M*/ | ||
| 301 | |||
| 302 | /*@ | ||
| 303 | VecCreateComp - Creates a new vector containing several subvectors, | ||
| 304 | each stored separately. | ||
| 305 | |||
| 306 | Collective | ||
| 307 | |||
| 308 | Input Parameters: | ||
| 309 | + comm - communicator for the new `Vec` | ||
| 310 | . Nx - array of (initial) global sizes of child vectors | ||
| 311 | . n - number of child vectors | ||
| 312 | . t - type of the child vectors | ||
| 313 | - Vparent - (optional) template vector | ||
| 314 | |||
| 315 | Output Parameter: | ||
| 316 | . V - new vector | ||
| 317 | |||
| 318 | Notes: | ||
| 319 | This is similar to PETSc's `VECNEST` but customized for SLEPc's needs. In particular, | ||
| 320 | the number of child vectors can be modified dynamically, with `VecCompSetSubVecs()`. | ||
| 321 | |||
| 322 | Level: developer | ||
| 323 | |||
| 324 | .seealso: `VecCreateCompWithVecs()`, `VecCompSetSubVecs()` | ||
| 325 | @*/ | ||
| 326 | 30 | PetscErrorCode VecCreateComp(MPI_Comm comm,PetscInt Nx[],PetscInt n,VecType t,Vec Vparent,Vec *V) | |
| 327 | { | ||
| 328 | 30 | Vec *x; | |
| 329 | 30 | PetscInt i; | |
| 330 | |||
| 331 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
30 | PetscFunctionBegin; |
| 332 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
30 | PetscCall(VecCreate(comm,V)); |
| 333 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
30 | PetscCall(PetscMalloc1(n,&x)); |
| 334 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
90 | for (i=0;i<n;i++) { |
| 335 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
60 | PetscCall(VecCreate(comm,&x[i])); |
| 336 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
60 | PetscCall(VecSetSizes(x[i],PETSC_DECIDE,Nx[i])); |
| 337 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
60 | PetscCall(VecSetType(x[i],t)); |
| 338 | } | ||
| 339 |
5/8✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
30 | PetscCall(VecCreate_Comp_Private(*V,x,n,PETSC_TRUE,Vparent?((Vec_Comp*)Vparent->data)->n:NULL)); |
| 340 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
6 | PetscFunctionReturn(PETSC_SUCCESS); |
| 341 | } | ||
| 342 | |||
| 343 | /*@ | ||
| 344 | VecCreateCompWithVecs - Creates a new vector containing several subvectors, | ||
| 345 | each stored separately, from an array of `Vec`s. | ||
| 346 | |||
| 347 | Collective | ||
| 348 | |||
| 349 | Input Parameters: | ||
| 350 | + x - array of `Vec`s | ||
| 351 | . n - number of child vectors | ||
| 352 | - Vparent - (optional) template vector | ||
| 353 | |||
| 354 | Output Parameter: | ||
| 355 | . V - new vector | ||
| 356 | |||
| 357 | Level: developer | ||
| 358 | |||
| 359 | .seealso: `VecCreateComp()` | ||
| 360 | @*/ | ||
| 361 | 19737 | PetscErrorCode VecCreateCompWithVecs(Vec x[],PetscInt n,Vec Vparent,Vec *V) | |
| 362 | { | ||
| 363 | 19737 | PetscInt i; | |
| 364 | |||
| 365 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
19737 | PetscFunctionBegin; |
| 366 |
2/8✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
19737 | PetscAssertPointer(x,1); |
| 367 |
3/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
19737 | PetscValidHeaderSpecific(*x,VEC_CLASSID,1); |
| 368 |
27/62✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 2 times.
✓ Branch 24 taken 2 times.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✓ Branch 32 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✓ Branch 41 taken 2 times.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✓ Branch 45 taken 2 times.
✓ Branch 46 taken 2 times.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✓ Branch 50 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✓ Branch 59 taken 2 times.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
|
19737 | PetscValidLogicalCollectiveInt(*x,n,2); |
| 369 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
19737 | PetscCall(VecCreate(PetscObjectComm((PetscObject)x[0]),V)); |
| 370 |
7/8✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 2 times.
|
43832 | for (i=0;i<n;i++) PetscCall(PetscObjectReference((PetscObject)x[i])); |
| 371 |
7/8✓ Branch 0 taken 10 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
19737 | PetscCall(VecCreate_Comp_Private(*V,x,n,PETSC_FALSE,Vparent?((Vec_Comp*)Vparent->data)->n:NULL)); |
| 372 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
3869 | PetscFunctionReturn(PETSC_SUCCESS); |
| 373 | } | ||
| 374 | |||
| 375 | 8890 | PetscErrorCode VecDuplicate_Comp(Vec win,Vec *V) | |
| 376 | { | ||
| 377 | 8890 | Vec *x; | |
| 378 | 8890 | PetscInt i; | |
| 379 | 8890 | Vec_Comp *s = (Vec_Comp*)win->data; | |
| 380 | |||
| 381 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
8890 | PetscFunctionBegin; |
| 382 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
8890 | SlepcValidVecComp(win,1); |
| 383 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
8890 | PetscCall(VecCreate(PetscObjectComm((PetscObject)win),V)); |
| 384 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
8890 | PetscCall(PetscMalloc1(s->nx,&x)); |
| 385 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
18700 | for (i=0;i<s->nx;i++) { |
| 386 |
5/8✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
9810 | if (s->x[i]) PetscCall(VecDuplicate(s->x[i],&x[i])); |
| 387 | ✗ | else x[i] = NULL; | |
| 388 | } | ||
| 389 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
8890 | PetscCall(VecCreate_Comp_Private(*V,x,s->nx,PETSC_TRUE,s->n)); |
| 390 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
1844 | PetscFunctionReturn(PETSC_SUCCESS); |
| 391 | } | ||
| 392 | |||
| 393 | 1556616 | static PetscErrorCode VecCompGetSubVecs_Comp(Vec win,PetscInt *n,const Vec **x) | |
| 394 | { | ||
| 395 | 1556616 | Vec_Comp *s = (Vec_Comp*)win->data; | |
| 396 | |||
| 397 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
1556616 | PetscFunctionBegin; |
| 398 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
1556616 | if (x) *x = s->x; |
| 399 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
1556616 | if (n) *n = s->n->n; |
| 400 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
1556616 | PetscFunctionReturn(PETSC_SUCCESS); |
| 401 | } | ||
| 402 | |||
| 403 | /*@C | ||
| 404 | VecCompGetSubVecs - Returns the entire array of vectors defining a | ||
| 405 | compound vector. | ||
| 406 | |||
| 407 | Collective | ||
| 408 | |||
| 409 | Input Parameter: | ||
| 410 | . win - compound vector | ||
| 411 | |||
| 412 | Output Parameters: | ||
| 413 | + n - number of child vectors | ||
| 414 | - x - array of child vectors | ||
| 415 | |||
| 416 | Level: developer | ||
| 417 | |||
| 418 | .seealso: `VecCreateComp()` | ||
| 419 | @*/ | ||
| 420 | 1556616 | PetscErrorCode VecCompGetSubVecs(Vec win,PetscInt *n,const Vec *x[]) | |
| 421 | { | ||
| 422 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
1556616 | PetscFunctionBegin; |
| 423 |
3/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
1556616 | PetscValidHeaderSpecific(win,VEC_CLASSID,1); |
| 424 |
9/16✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
|
1556616 | PetscUseMethod(win,"VecCompGetSubVecs_C",(Vec,PetscInt*,const Vec**),(win,n,x)); |
| 425 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
1556616 | PetscFunctionReturn(PETSC_SUCCESS); |
| 426 | } | ||
| 427 | |||
| 428 | 9483 | static PetscErrorCode VecCompSetSubVecs_Comp(Vec win,PetscInt n,Vec *x) | |
| 429 | { | ||
| 430 | 9483 | Vec_Comp *s = (Vec_Comp*)win->data; | |
| 431 | 9483 | PetscInt i,N,nlocal; | |
| 432 | 9483 | Vec_Comp_N *nn; | |
| 433 | |||
| 434 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
9483 | PetscFunctionBegin; |
| 435 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
9483 | PetscCheck(s,PetscObjectComm((PetscObject)win),PETSC_ERR_ORDER,"Must call VecSetSizes first"); |
| 436 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
9483 | if (!s->nx) { |
| 437 | /* vector has been created via VecCreate+VecSetType+VecSetSizes, so allocate data structures */ | ||
| 438 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
30 | PetscCall(PetscMalloc1(n,&s->x)); |
| 439 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
30 | PetscCall(VecGetSize(win,&N)); |
| 440 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
30 | PetscCheck(N%n==0,PetscObjectComm((PetscObject)win),PETSC_ERR_SUP,"Global dimension %" PetscInt_FMT " is not divisible by %" PetscInt_FMT,N,n); |
| 441 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
30 | PetscCall(VecGetLocalSize(win,&nlocal)); |
| 442 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
30 | PetscCheck(nlocal%n==0,PetscObjectComm((PetscObject)win),PETSC_ERR_SUP,"Local dimension %" PetscInt_FMT " is not divisible by %" PetscInt_FMT,nlocal,n); |
| 443 | 30 | s->nx = n; | |
| 444 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
90 | for (i=0;i<n;i++) { |
| 445 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
60 | PetscCall(VecCreate(PetscObjectComm((PetscObject)win),&s->x[i])); |
| 446 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
60 | PetscCall(VecSetSizes(s->x[i],nlocal/n,N/n)); |
| 447 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
60 | PetscCall(VecSetFromOptions(s->x[i])); |
| 448 | } | ||
| 449 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
30 | if (!s->n) { |
| 450 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
30 | PetscCall(PetscNew(&nn)); |
| 451 | 30 | s->n = nn; | |
| 452 | 30 | nn->N = N; | |
| 453 | 30 | nn->lN = nlocal; | |
| 454 | 30 | nn->friends = 1; | |
| 455 | } | ||
| 456 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
9453 | } else PetscCheck(n<=s->nx,PetscObjectComm((PetscObject)win),PETSC_ERR_SUP,"Number of child vectors cannot be larger than %" PetscInt_FMT,s->nx); |
| 457 |
1/8✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
9483 | if (x) PetscCall(PetscArraycpy(s->x,x,n)); |
| 458 | 9483 | s->n->n = n; | |
| 459 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
9483 | PetscFunctionReturn(PETSC_SUCCESS); |
| 460 | } | ||
| 461 | |||
| 462 | /*@ | ||
| 463 | VecCompSetSubVecs - Resets the number of subvectors defining a compound vector, | ||
| 464 | or replaces the subvectors. | ||
| 465 | |||
| 466 | Collective | ||
| 467 | |||
| 468 | Input Parameters: | ||
| 469 | + win - compound vector | ||
| 470 | . n - number of child vectors | ||
| 471 | - x - array of child vectors | ||
| 472 | |||
| 473 | Note: | ||
| 474 | It is not possible to increase the number of subvectors with respect to the | ||
| 475 | number set at its creation. | ||
| 476 | |||
| 477 | Level: developer | ||
| 478 | |||
| 479 | .seealso: `VecCreateComp()`, `VecCompGetSubVecs()` | ||
| 480 | @*/ | ||
| 481 | 9483 | PetscErrorCode VecCompSetSubVecs(Vec win,PetscInt n,Vec x[]) | |
| 482 | { | ||
| 483 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
9483 | PetscFunctionBegin; |
| 484 |
3/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
9483 | PetscValidHeaderSpecific(win,VEC_CLASSID,1); |
| 485 |
27/62✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✓ Branch 23 taken 2 times.
✓ Branch 24 taken 2 times.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✓ Branch 32 taken 2 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 2 times.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✓ Branch 41 taken 2 times.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✓ Branch 45 taken 2 times.
✓ Branch 46 taken 2 times.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✓ Branch 49 taken 2 times.
✓ Branch 50 taken 2 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✓ Branch 59 taken 2 times.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
|
9483 | PetscValidLogicalCollectiveInt(win,n,2); |
| 486 |
8/14✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 10 times.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 2 times.
|
9483 | PetscTryMethod(win,"VecCompSetSubVecs_C",(Vec,PetscInt,Vec*),(win,n,x)); |
| 487 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
9483 | PetscFunctionReturn(PETSC_SUCCESS); |
| 488 | } | ||
| 489 | |||
| 490 | 666946 | PetscErrorCode VecAXPY_Comp(Vec v,PetscScalar alpha,Vec w) | |
| 491 | { | ||
| 492 | 666946 | Vec_Comp *vs = (Vec_Comp*)v->data,*ws = (Vec_Comp*)w->data; | |
| 493 | 666946 | PetscInt i; | |
| 494 | |||
| 495 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
666946 | PetscFunctionBegin; |
| 496 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
666946 | SlepcValidVecComp(v,1); |
| 497 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
666946 | SlepcValidVecComp(w,3); |
| 498 |
7/8✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 2 times.
|
1335577 | for (i=0;i<vs->n->n;i++) PetscCall(VecAXPY(vs->x[i],alpha,ws->x[i])); |
| 499 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
119300 | PetscFunctionReturn(PETSC_SUCCESS); |
| 500 | } | ||
| 501 | |||
| 502 | 391854 | PetscErrorCode VecAYPX_Comp(Vec v,PetscScalar alpha,Vec w) | |
| 503 | { | ||
| 504 | 391854 | Vec_Comp *vs = (Vec_Comp*)v->data,*ws = (Vec_Comp*)w->data; | |
| 505 | 391854 | PetscInt i; | |
| 506 | |||
| 507 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
391854 | PetscFunctionBegin; |
| 508 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
391854 | SlepcValidVecComp(v,1); |
| 509 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
391854 | SlepcValidVecComp(w,3); |
| 510 |
7/8✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 2 times.
|
784583 | for (i=0;i<vs->n->n;i++) PetscCall(VecAYPX(vs->x[i],alpha,ws->x[i])); |
| 511 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
69952 | PetscFunctionReturn(PETSC_SUCCESS); |
| 512 | } | ||
| 513 | |||
| 514 | 30 | PetscErrorCode VecAXPBY_Comp(Vec v,PetscScalar alpha,PetscScalar beta,Vec w) | |
| 515 | { | ||
| 516 | 30 | Vec_Comp *vs = (Vec_Comp*)v->data,*ws = (Vec_Comp*)w->data; | |
| 517 | 30 | PetscInt i; | |
| 518 | |||
| 519 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
30 | PetscFunctionBegin; |
| 520 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
30 | SlepcValidVecComp(v,1); |
| 521 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
30 | SlepcValidVecComp(w,4); |
| 522 |
7/8✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 2 times.
|
90 | for (i=0;i<vs->n->n;i++) PetscCall(VecAXPBY(vs->x[i],alpha,beta,ws->x[i])); |
| 523 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
6 | PetscFunctionReturn(PETSC_SUCCESS); |
| 524 | } | ||
| 525 | |||
| 526 | 399458 | PetscErrorCode VecMAXPY_Comp(Vec v,PetscInt n,const PetscScalar *alpha,Vec *w) | |
| 527 | { | ||
| 528 | 399458 | Vec_Comp *vs = (Vec_Comp*)v->data; | |
| 529 | 399458 | Vec *wx; | |
| 530 | 399458 | PetscInt i,j; | |
| 531 | |||
| 532 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
399458 | PetscFunctionBegin; |
| 533 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
399458 | SlepcValidVecComp(v,1); |
| 534 |
4/6✓ Branch 0 taken 8 times.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✓ Branch 5 taken 2 times.
|
1394955 | for (i=0;i<n;i++) SlepcValidVecComp(w[i],4); |
| 535 | |||
| 536 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
399458 | PetscCall(PetscMalloc1(n,&wx)); |
| 537 | |||
| 538 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
799762 | for (j=0;j<vs->n->n;j++) { |
| 539 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
1397493 | for (i=0;i<n;i++) wx[i] = ((Vec_Comp*)w[i]->data)->x[j]; |
| 540 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
400304 | PetscCall(VecMAXPY(vs->x[j],n,alpha,wx)); |
| 541 | } | ||
| 542 | |||
| 543 |
5/8✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
399458 | PetscCall(PetscFree(wx)); |
| 544 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
71226 | PetscFunctionReturn(PETSC_SUCCESS); |
| 545 | } | ||
| 546 | |||
| 547 | 8150 | PetscErrorCode VecWAXPY_Comp(Vec v,PetscScalar alpha,Vec w,Vec z) | |
| 548 | { | ||
| 549 | 8150 | Vec_Comp *vs = (Vec_Comp*)v->data,*ws = (Vec_Comp*)w->data,*zs = (Vec_Comp*)z->data; | |
| 550 | 8150 | PetscInt i; | |
| 551 | |||
| 552 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
8150 | PetscFunctionBegin; |
| 553 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
8150 | SlepcValidVecComp(v,1); |
| 554 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
8150 | SlepcValidVecComp(w,3); |
| 555 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
8150 | SlepcValidVecComp(z,4); |
| 556 |
7/8✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 2 times.
|
16330 | for (i=0;i<vs->n->n;i++) PetscCall(VecWAXPY(vs->x[i],alpha,ws->x[i],zs->x[i])); |
| 557 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
1640 | PetscFunctionReturn(PETSC_SUCCESS); |
| 558 | } | ||
| 559 | |||
| 560 | 8150 | PetscErrorCode VecAXPBYPCZ_Comp(Vec v,PetscScalar alpha,PetscScalar beta,PetscScalar gamma,Vec w,Vec z) | |
| 561 | { | ||
| 562 | 8150 | Vec_Comp *vs = (Vec_Comp*)v->data,*ws = (Vec_Comp*)w->data,*zs = (Vec_Comp*)z->data; | |
| 563 | 8150 | PetscInt i; | |
| 564 | |||
| 565 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
8150 | PetscFunctionBegin; |
| 566 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
8150 | SlepcValidVecComp(v,1); |
| 567 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
8150 | SlepcValidVecComp(w,5); |
| 568 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
8150 | SlepcValidVecComp(z,6); |
| 569 |
7/8✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 2 times.
|
16330 | for (i=0;i<vs->n->n;i++) PetscCall(VecAXPBYPCZ(vs->x[i],alpha,beta,gamma,ws->x[i],zs->x[i])); |
| 570 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
1640 | PetscFunctionReturn(PETSC_SUCCESS); |
| 571 | } | ||
| 572 | |||
| 573 | 90 | PetscErrorCode VecGetSize_Comp(Vec v,PetscInt *size) | |
| 574 | { | ||
| 575 | 90 | Vec_Comp *vs = (Vec_Comp*)v->data; | |
| 576 | |||
| 577 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
90 | PetscFunctionBegin; |
| 578 |
2/8✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
90 | PetscAssertPointer(size,2); |
| 579 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
90 | if (vs->n) { |
| 580 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
60 | SlepcValidVecComp(v,1); |
| 581 | 60 | *size = vs->n->N; | |
| 582 | 30 | } else *size = v->map->N; | |
| 583 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
90 | PetscFunctionReturn(PETSC_SUCCESS); |
| 584 | } | ||
| 585 | |||
| 586 | 469830 | PetscErrorCode VecGetLocalSize_Comp(Vec v,PetscInt *size) | |
| 587 | { | ||
| 588 | 469830 | Vec_Comp *vs = (Vec_Comp*)v->data; | |
| 589 | |||
| 590 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
469830 | PetscFunctionBegin; |
| 591 |
2/8✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
469830 | PetscAssertPointer(size,2); |
| 592 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
469830 | if (vs->n) { |
| 593 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
469800 | SlepcValidVecComp(v,1); |
| 594 | 469800 | *size = vs->n->lN; | |
| 595 | 30 | } else *size = v->map->n; | |
| 596 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
469830 | PetscFunctionReturn(PETSC_SUCCESS); |
| 597 | } | ||
| 598 | |||
| 599 | 30 | PetscErrorCode VecMax_Comp(Vec v,PetscInt *idx,PetscReal *z) | |
| 600 | { | ||
| 601 | 30 | Vec_Comp *vs = (Vec_Comp*)v->data; | |
| 602 | 30 | PetscInt idxp,s=0,s0; | |
| 603 | 30 | PetscReal zp,z0; | |
| 604 | 30 | PetscInt i; | |
| 605 | |||
| 606 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
30 | PetscFunctionBegin; |
| 607 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
30 | SlepcValidVecComp(v,1); |
| 608 |
2/14✓ Branch 0 taken 8 times.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
30 | if (!idx && !z) PetscFunctionReturn(PETSC_SUCCESS); |
| 609 | |||
| 610 |
6/10✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✓ Branch 5 taken 8 times.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
|
60 | if (vs->n->n > 0) PetscCall(VecMax(vs->x[0],idx?&idxp:NULL,&zp)); |
| 611 | else { | ||
| 612 | ✗ | zp = PETSC_MIN_REAL; | |
| 613 | ✗ | if (idx) idxp = -1; | |
| 614 | } | ||
| 615 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
60 | for (i=1;i<vs->n->n;i++) { |
| 616 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
30 | PetscCall(VecGetSize(vs->x[i-1],&s0)); |
| 617 | 30 | s += s0; | |
| 618 |
5/8✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
60 | PetscCall(VecMax(vs->x[i],idx?&idxp:NULL,&z0)); |
| 619 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
|
30 | if (zp < z0) { |
| 620 | ✗ | if (idx) *idx = s+idxp; | |
| 621 | ✗ | zp = z0; | |
| 622 | } | ||
| 623 | } | ||
| 624 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
30 | if (z) *z = zp; |
| 625 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
6 | PetscFunctionReturn(PETSC_SUCCESS); |
| 626 | } | ||
| 627 | |||
| 628 | 30 | PetscErrorCode VecMin_Comp(Vec v,PetscInt *idx,PetscReal *z) | |
| 629 | { | ||
| 630 | 30 | Vec_Comp *vs = (Vec_Comp*)v->data; | |
| 631 | 30 | PetscInt idxp,s=0,s0; | |
| 632 | 30 | PetscReal zp,z0; | |
| 633 | 30 | PetscInt i; | |
| 634 | |||
| 635 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
30 | PetscFunctionBegin; |
| 636 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
30 | SlepcValidVecComp(v,1); |
| 637 |
2/14✓ Branch 0 taken 8 times.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
30 | if (!idx && !z) PetscFunctionReturn(PETSC_SUCCESS); |
| 638 | |||
| 639 |
6/10✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 10 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✓ Branch 5 taken 8 times.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
|
60 | if (vs->n->n > 0) PetscCall(VecMin(vs->x[0],idx?&idxp:NULL,&zp)); |
| 640 | else { | ||
| 641 | ✗ | zp = PETSC_MAX_REAL; | |
| 642 | ✗ | if (idx) idxp = -1; | |
| 643 | } | ||
| 644 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
60 | for (i=1;i<vs->n->n;i++) { |
| 645 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
30 | PetscCall(VecGetSize(vs->x[i-1],&s0)); |
| 646 | 30 | s += s0; | |
| 647 |
5/8✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
60 | PetscCall(VecMin(vs->x[i],idx?&idxp:NULL,&z0)); |
| 648 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
30 | if (zp > z0) { |
| 649 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
|
30 | if (idx) *idx = s+idxp; |
| 650 | 30 | zp = z0; | |
| 651 | } | ||
| 652 | } | ||
| 653 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
30 | if (z) *z = zp; |
| 654 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
6 | PetscFunctionReturn(PETSC_SUCCESS); |
| 655 | } | ||
| 656 | |||
| 657 | 30 | PetscErrorCode VecMaxPointwiseDivide_Comp(Vec v,Vec w,PetscReal *m) | |
| 658 | { | ||
| 659 | 30 | Vec_Comp *vs = (Vec_Comp*)v->data,*ws = (Vec_Comp*)w->data; | |
| 660 | 30 | PetscReal work; | |
| 661 | 30 | PetscInt i; | |
| 662 | |||
| 663 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
30 | PetscFunctionBegin; |
| 664 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
30 | SlepcValidVecComp(v,1); |
| 665 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
30 | SlepcValidVecComp(w,2); |
| 666 |
3/16✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
30 | if (!m || vs->n->n == 0) PetscFunctionReturn(PETSC_SUCCESS); |
| 667 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
30 | PetscCall(VecMaxPointwiseDivide(vs->x[0],ws->x[0],m)); |
| 668 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
60 | for (i=1;i<vs->n->n;i++) { |
| 669 |
4/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 times.
|
30 | PetscCall(VecMaxPointwiseDivide(vs->x[i],ws->x[i],&work)); |
| 670 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 10 times.
|
30 | *m = PetscMax(*m,work); |
| 671 | } | ||
| 672 |
6/12✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
|
6 | PetscFunctionReturn(PETSC_SUCCESS); |
| 673 | } | ||
| 674 | |||
| 675 | #define __QUOTEME__(x) #x | ||
| 676 | #define __COMPOSE2__(A,B) A##B | ||
| 677 | #define __COMPOSE3__(A,B,C) A##B##C | ||
| 678 | |||
| 679 | #define __FUNC_TEMPLATE1__(NAME) \ | ||
| 680 | PetscErrorCode __COMPOSE3__(Vec,NAME,_Comp)(Vec v) \ | ||
| 681 | { \ | ||
| 682 | Vec_Comp *vs = (Vec_Comp*)v->data; \ | ||
| 683 | PetscInt i; \ | ||
| 684 | \ | ||
| 685 | PetscFunctionBegin; \ | ||
| 686 | SlepcValidVecComp(v,1); \ | ||
| 687 | for (i=0;i<vs->n->n;i++) { \ | ||
| 688 | PetscCall(__COMPOSE2__(Vec,NAME)(vs->x[i])); \ | ||
| 689 | } \ | ||
| 690 | PetscFunctionReturn(PETSC_SUCCESS);\ | ||
| 691 | } | ||
| 692 | |||
| 693 |
15/26✓ Branch 0 taken 1 times.
✓ Branch 1 taken 4 times.
✓ Branch 2 taken 4 times.
✓ Branch 3 taken 5 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✓ Branch 12 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 1 times.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 1 times.
|
52507 | __FUNC_TEMPLATE1__(Conjugate) |
| 694 |
15/26✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
|
90 | __FUNC_TEMPLATE1__(Reciprocal) |
| 695 |
15/26✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
|
90 | __FUNC_TEMPLATE1__(SqrtAbs) |
| 696 |
15/26✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
|
90 | __FUNC_TEMPLATE1__(Abs) |
| 697 |
15/26✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
|
90 | __FUNC_TEMPLATE1__(Exp) |
| 698 |
15/26✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
|
90 | __FUNC_TEMPLATE1__(Log) |
| 699 | |||
| 700 | #define __FUNC_TEMPLATE2__(NAME,T0) \ | ||
| 701 | PetscErrorCode __COMPOSE3__(Vec,NAME,_Comp)(Vec v,T0 __a) \ | ||
| 702 | { \ | ||
| 703 | Vec_Comp *vs = (Vec_Comp*)v->data; \ | ||
| 704 | PetscInt i; \ | ||
| 705 | \ | ||
| 706 | PetscFunctionBegin; \ | ||
| 707 | SlepcValidVecComp(v,1); \ | ||
| 708 | for (i=0;i<vs->n->n;i++) { \ | ||
| 709 | PetscCall(__COMPOSE2__(Vec,NAME)(vs->x[i],__a)); \ | ||
| 710 | } \ | ||
| 711 | PetscFunctionReturn(PETSC_SUCCESS);\ | ||
| 712 | } | ||
| 713 | |||
| 714 |
15/26✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
|
37500 | __FUNC_TEMPLATE2__(Set,PetscScalar) |
| 715 |
15/26✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
|
90 | __FUNC_TEMPLATE2__(View,PetscViewer) |
| 716 |
15/26✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
|
28780 | __FUNC_TEMPLATE2__(Scale,PetscScalar) |
| 717 |
15/26✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
|
90 | __FUNC_TEMPLATE2__(SetRandom,PetscRandom) |
| 718 |
15/26✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✓ Branch 12 taken 2 times.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 2 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
|
90 | __FUNC_TEMPLATE2__(Shift,PetscScalar) |
| 719 | |||
| 720 | #define __FUNC_TEMPLATE3__(NAME) \ | ||
| 721 | PetscErrorCode __COMPOSE3__(Vec,NAME,_Comp)(Vec v,Vec w) \ | ||
| 722 | { \ | ||
| 723 | Vec_Comp *vs = (Vec_Comp*)v->data,\ | ||
| 724 | *ws = (Vec_Comp*)w->data; \ | ||
| 725 | PetscInt i; \ | ||
| 726 | \ | ||
| 727 | PetscFunctionBegin; \ | ||
| 728 | SlepcValidVecComp(v,1); \ | ||
| 729 | SlepcValidVecComp(w,2); \ | ||
| 730 | for (i=0;i<vs->n->n;i++) { \ | ||
| 731 | PetscCall(__COMPOSE2__(Vec,NAME)(vs->x[i],ws->x[i])); \ | ||
| 732 | } \ | ||
| 733 | PetscFunctionReturn(PETSC_SUCCESS);\ | ||
| 734 | } | ||
| 735 | |||
| 736 |
16/30✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 2 times.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✓ Branch 29 taken 2 times.
|
436120 | __FUNC_TEMPLATE3__(Copy) |
| 737 |
16/30✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✓ Branch 16 taken 2 times.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 2 times.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✓ Branch 29 taken 2 times.
|
90 | __FUNC_TEMPLATE3__(Swap) |
| 738 | |||
| 739 | #define __FUNC_TEMPLATE4__(NAME) \ | ||
| 740 | PetscErrorCode __COMPOSE3__(Vec,NAME,_Comp)(Vec v,Vec w,Vec z) \ | ||
| 741 | { \ | ||
| 742 | Vec_Comp *vs = (Vec_Comp*)v->data, \ | ||
| 743 | *ws = (Vec_Comp*)w->data, \ | ||
| 744 | *zs = (Vec_Comp*)z->data; \ | ||
| 745 | PetscInt i; \ | ||
| 746 | \ | ||
| 747 | PetscFunctionBegin; \ | ||
| 748 | SlepcValidVecComp(v,1); \ | ||
| 749 | SlepcValidVecComp(w,2); \ | ||
| 750 | SlepcValidVecComp(z,3); \ | ||
| 751 | for (i=0;i<vs->n->n;i++) { \ | ||
| 752 | PetscCall(__COMPOSE2__(Vec,NAME)(vs->x[i],ws->x[i],zs->x[i])); \ | ||
| 753 | } \ | ||
| 754 | PetscFunctionReturn(PETSC_SUCCESS);\ | ||
| 755 | } | ||
| 756 | |||
| 757 |
17/34✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✓ Branch 20 taken 2 times.
✓ Branch 21 taken 2 times.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✓ Branch 26 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 2 times.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 2 times.
|
90 | __FUNC_TEMPLATE4__(PointwiseMax) |
| 758 |
17/34✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✓ Branch 20 taken 2 times.
✓ Branch 21 taken 2 times.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✓ Branch 26 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 2 times.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 2 times.
|
90 | __FUNC_TEMPLATE4__(PointwiseMaxAbs) |
| 759 |
17/34✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✓ Branch 20 taken 2 times.
✓ Branch 21 taken 2 times.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✓ Branch 26 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 2 times.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 2 times.
|
90 | __FUNC_TEMPLATE4__(PointwiseMin) |
| 760 |
17/34✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✓ Branch 20 taken 2 times.
✓ Branch 21 taken 2 times.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✓ Branch 26 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 2 times.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 2 times.
|
90 | __FUNC_TEMPLATE4__(PointwiseMult) |
| 761 |
17/34✓ Branch 0 taken 2 times.
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 8 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 2 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✓ Branch 20 taken 2 times.
✓ Branch 21 taken 2 times.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✓ Branch 26 taken 2 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 2 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 2 times.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 2 times.
|
90 | __FUNC_TEMPLATE4__(PointwiseDivide) |
| 762 |