GCC Code Coverage Report


Directory: ./
File: src/svd/interface/dlregissvd.c
Date: 2025-10-04 04:19:13
Exec Total Coverage
Lines: 34 34 100.0%
Functions: 3 3 100.0%
Branches: 92 150 61.3%

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/svdimpl.h>
12
13 static PetscBool SVDPackageInitialized = PETSC_FALSE;
14
15 const char *SVDTRLanczosGBidiags[] = {"SINGLE","UPPER","LOWER","SVDTRLanczosGBidiag","SVD_TRLANCZOS_GBIDIAG_",NULL};
16 const char *SVDErrorTypes[] = {"ABSOLUTE","RELATIVE","SVDErrorType","SVD_ERROR_",NULL};
17 const char *SVDPRIMMEMethods[] = {"","HYBRID","NORMALEQUATIONS","AUGMENTED","SVDPRIMMEMethod","SVD_PRIMME_",NULL};
18 const char *SVDKSVDEigenMethods[] = {"","MRRR","DC","ELPA","SVDKSVDEigenMethod","SVD_KSVD_EIGEN_",NULL};
19 const char *SVDKSVDPolarMethods[] = {"","QDWH","ZOLOPD","SVDKSVDPolarMethod","SVD_KSVD_POLAR_",NULL};
20 const char *const SVDConvergedReasons_Shifted[] = {"","DIVERGED_SYMMETRY_LOST","DIVERGED_BREAKDOWN","DIVERGED_ITS","CONVERGED_ITERATING","CONVERGED_TOL","CONVERGED_USER","CONVERGED_MAXIT","SVDConvergedReason","SVD_",NULL};
21 const char *const*SVDConvergedReasons = SVDConvergedReasons_Shifted + 4;
22
23 /*@C
24 SVDFinalizePackage - This function destroys everything in the Slepc interface
25 to the SVD package. It is called from SlepcFinalize().
26
27 Level: developer
28
29 .seealso: SlepcFinalize()
30 @*/
31 2326 PetscErrorCode SVDFinalizePackage(void)
32 {
33
1/2
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
2326 PetscFunctionBegin;
34
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.
2326 PetscCall(PetscFunctionListDestroy(&SVDList));
35
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.
2326 PetscCall(PetscFunctionListDestroy(&SVDMonitorList));
36
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.
2326 PetscCall(PetscFunctionListDestroy(&SVDMonitorCreateList));
37
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.
2326 PetscCall(PetscFunctionListDestroy(&SVDMonitorDestroyList));
38 2326 SVDPackageInitialized = PETSC_FALSE;
39 2326 SVDRegisterAllCalled = PETSC_FALSE;
40 2326 SVDMonitorRegisterAllCalled = PETSC_FALSE;
41
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.
2326 PetscFunctionReturn(PETSC_SUCCESS);
42 }
43
44 /*@C
45 SVDInitializePackage - This function initializes everything in the SVD package.
46 It is called from PetscDLLibraryRegister() when using dynamic libraries, and
47 on the first call to SVDCreate() when using static libraries.
48
49 Level: developer
50
51 .seealso: SlepcInitialize()
52 @*/
53 35603 PetscErrorCode SVDInitializePackage(void)
54 {
55 35603 char logList[256];
56 35603 PetscBool opt,pkg;
57 35603 PetscClassId classids[1];
58
59
1/2
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
35603 PetscFunctionBegin;
60
8/14
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 2 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.
35603 if (SVDPackageInitialized) PetscFunctionReturn(PETSC_SUCCESS);
61 2326 SVDPackageInitialized = PETSC_TRUE;
62 /* Register Classes */
63
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.
2326 PetscCall(PetscClassIdRegister("SVD Solver",&SVD_CLASSID));
64 /* Register Constructors */
65
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.
2326 PetscCall(SVDRegisterAll());
66 /* Register Monitors */
67
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.
2326 PetscCall(SVDMonitorRegisterAll());
68 /* Register Events */
69
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.
2326 PetscCall(PetscLogEventRegister("SVDSetUp",SVD_CLASSID,&SVD_SetUp));
70
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.
2326 PetscCall(PetscLogEventRegister("SVDSolve",SVD_CLASSID,&SVD_Solve));
71 /* Process Info */
72 2326 classids[0] = SVD_CLASSID;
73
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.
2326 PetscCall(PetscInfoProcessClass("svd",1,&classids[0]));
74 /* Process summary exclusions */
75
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.
2326 PetscCall(PetscOptionsGetString(NULL,NULL,"-log_exclude",logList,sizeof(logList),&opt));
76
2/2
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
2326 if (opt) {
77
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.
14 PetscCall(PetscStrInList("svd",logList,',',&pkg));
78
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.
14 if (pkg) PetscCall(PetscLogEventDeactivateClass(SVD_CLASSID));
79 }
80 /* Register package finalizer */
81
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.
2326 PetscCall(PetscRegisterFinalize(SVDFinalizePackage));
82
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.
455 PetscFunctionReturn(PETSC_SUCCESS);
83 }
84
85 #if defined(PETSC_HAVE_DYNAMIC_LIBRARIES)
86 /*
87 PetscDLLibraryRegister - This function is called when the dynamic library
88 it is in is opened.
89
90 This one registers all the SVD methods that are in the basic SLEPc libslepcsvd
91 library.
92 */
93 10 SLEPC_EXTERN PetscErrorCode PetscDLLibraryRegister_slepcsvd(void)
94 {
95
1/2
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
10 PetscFunctionBegin;
96
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.
10 PetscCall(SVDInitializePackage());
97
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.
2 PetscFunctionReturn(PETSC_SUCCESS);
98 }
99 #endif /* PETSC_HAVE_DYNAMIC_LIBRARIES */
100