GCC Code Coverage Report


Directory: ./
File: include/slepc/private/slepccontour.h
Date: 2025-10-04 04:19:13
Exec Total Coverage
Lines: 8 8 100.0%
Functions: 1 1 100.0%
Branches: 13 20 65.0%

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 #pragma once
12
13 #include <slepc/private/slepcimpl.h>
14 #include <petscksp.h>
15
16 /*
17 CISS_BlockHankel - Builds a block Hankel matrix from the contents of Mu.
18 */
19 380 static inline PetscErrorCode CISS_BlockHankel(PetscScalar *Mu,PetscInt s,PetscInt L,PetscInt M,PetscScalar *H)
20 {
21 380 PetscInt i,j,k;
22
23
1/2
✓ Branch 0 taken 4 times.
✗ Branch 1 not taken.
380 PetscFunctionBegin;
24
2/2
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 20 times.
24828 for (k=0;k<L*M;k++)
25
2/2
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 20 times.
197952 for (j=0;j<M;j++)
26
2/2
✓ Branch 0 taken 20 times.
✓ Branch 1 taken 20 times.
2324416 for (i=0;i<L;i++)
27 2150912 H[j*L+i+k*L*M] = Mu[i+k*L+(j+s)*L*L];
28
6/12
✓ Branch 0 taken 4 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 4 times.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 4 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 4 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 4 times.
380 PetscFunctionReturn(PETSC_SUCCESS);
29 }
30
31 SLEPC_SINGLE_LIBRARY_INTERN PetscErrorCode SlepcCISS_isGhost(Mat,PetscInt,PetscReal*,PetscReal,PetscBool*);
32 SLEPC_SINGLE_LIBRARY_INTERN PetscErrorCode SlepcCISS_BH_SVD(PetscScalar*,PetscInt,PetscReal,PetscReal*,PetscInt*);
33
34 /* Data structures and functions for contour integral methods (used in several classes) */
35 struct _n_SlepcContourData {
36 PetscObject parent; /* parent object */
37 PetscSubcomm subcomm; /* subcommunicator for top level parallelization */
38 PetscInt npoints; /* number of integration points assigned to the local subcomm */
39 KSP *ksp; /* ksp array for storing factorizations at integration points */
40 Mat *pA; /* redundant copies of the matrices in the local subcomm */
41 Mat *pP; /* redundant copies of the matrices (preconditioner) */
42 PetscInt nmat; /* number of matrices in pA */
43 Vec xsub; /* aux vector with parallel layout as redundant Mat */
44 Vec xdup; /* aux vector with parallel layout as original Mat (with contiguous order) */
45 VecScatter scatterin; /* to scatter from regular vector to xdup */
46 };
47 typedef struct _n_SlepcContourData* SlepcContourData;
48
49 SLEPC_SINGLE_LIBRARY_INTERN PetscErrorCode SlepcContourDataCreate(PetscInt,PetscInt,PetscObject,SlepcContourData*);
50 SLEPC_SINGLE_LIBRARY_INTERN PetscErrorCode SlepcContourDataReset(SlepcContourData);
51 SLEPC_SINGLE_LIBRARY_INTERN PetscErrorCode SlepcContourDataDestroy(SlepcContourData*);
52
53 SLEPC_SINGLE_LIBRARY_INTERN PetscErrorCode SlepcContourRedundantMat(SlepcContourData,PetscInt,Mat*,Mat*);
54 SLEPC_SINGLE_LIBRARY_INTERN PetscErrorCode SlepcContourScatterCreate(SlepcContourData,Vec);
55