| 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 |