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 | static char help[] = "Simple quadratic eigenvalue problem.\n\n" | ||
12 | "The command line options are:\n" | ||
13 | " -n <n>, where <n> = number of grid subdivisions in x dimension.\n" | ||
14 | " -m <m>, where <m> = number of grid subdivisions in y dimension.\n\n"; | ||
15 | |||
16 | #include <slepcpep.h> | ||
17 | |||
18 | 60 | int main(int argc,char **argv) | |
19 | { | ||
20 | 60 | Mat M,C,K,A[3]; /* problem matrices */ | |
21 | 60 | PEP pep; /* polynomial eigenproblem solver context */ | |
22 | 60 | PetscInt N,n=10,m,Istart,Iend,II,nev,i,j,nconv; | |
23 | 60 | PetscBool flag,terse; | |
24 | 60 | PetscReal error,re,im; | |
25 | 60 | PetscScalar kr,ki; | |
26 | 60 | Vec xr,xi; | |
27 | 60 | BV V; | |
28 | 60 | PetscRandom rand; | |
29 | |||
30 |
1/2✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
|
60 | PetscFunctionBeginUser; |
31 |
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(SlepcInitialize(&argc,&argv,NULL,help)); |
32 | |||
33 |
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(PetscOptionsGetInt(NULL,NULL,"-n",&n,NULL)); |
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.
|
60 | PetscCall(PetscOptionsGetInt(NULL,NULL,"-m",&m,&flag)); |
35 |
1/2✓ Branch 0 taken 10 times.
✗ Branch 1 not taken.
|
60 | if (!flag) m=n; |
36 | 60 | N = n*m; | |
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.
|
60 | PetscCall(PetscPrintf(PETSC_COMM_WORLD,"\nQuadratic Eigenproblem, N=%" PetscInt_FMT " (%" PetscInt_FMT "x%" PetscInt_FMT " grid)\n\n",N,n,m)); |
38 | |||
39 | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
40 | Compute the matrices that define the eigensystem, (k^2*M+k*C+K)x=0 | ||
41 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ | ||
42 | |||
43 | /* K is the 2-D Laplacian */ | ||
44 |
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(MatCreate(PETSC_COMM_WORLD,&K)); |
45 |
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(MatSetSizes(K,PETSC_DECIDE,PETSC_DECIDE,N,N)); |
46 |
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(MatSetFromOptions(K)); |
47 |
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(MatGetOwnershipRange(K,&Istart,&Iend)); |
48 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
8700 | for (II=Istart;II<Iend;II++) { |
49 | 8640 | i = II/n; j = II-i*n; | |
50 |
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.
|
8640 | if (i>0) PetscCall(MatSetValue(K,II,II-n,-1.0,INSERT_VALUES)); |
51 |
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.
|
8640 | if (i<m-1) PetscCall(MatSetValue(K,II,II+n,-1.0,INSERT_VALUES)); |
52 |
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.
|
8640 | if (j>0) PetscCall(MatSetValue(K,II,II-1,-1.0,INSERT_VALUES)); |
53 |
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.
|
8640 | if (j<n-1) PetscCall(MatSetValue(K,II,II+1,-1.0,INSERT_VALUES)); |
54 |
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.
|
8640 | PetscCall(MatSetValue(K,II,II,4.0,INSERT_VALUES)); |
55 | } | ||
56 |
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(MatAssemblyBegin(K,MAT_FINAL_ASSEMBLY)); |
57 |
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(MatAssemblyEnd(K,MAT_FINAL_ASSEMBLY)); |
58 | |||
59 | /* C is the 1-D Laplacian on horizontal lines */ | ||
60 |
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(MatCreate(PETSC_COMM_WORLD,&C)); |
61 |
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(MatSetSizes(C,PETSC_DECIDE,PETSC_DECIDE,N,N)); |
62 |
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(MatSetFromOptions(C)); |
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.
|
60 | PetscCall(MatGetOwnershipRange(C,&Istart,&Iend)); |
64 |
2/2✓ Branch 0 taken 10 times.
✓ Branch 1 taken 10 times.
|
8700 | for (II=Istart;II<Iend;II++) { |
65 | 8640 | i = II/n; j = II-i*n; | |
66 |
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.
|
8640 | if (j>0) PetscCall(MatSetValue(C,II,II-1,-1.0,INSERT_VALUES)); |
67 |
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.
|
8640 | if (j<n-1) PetscCall(MatSetValue(C,II,II+1,-1.0,INSERT_VALUES)); |
68 |
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.
|
8640 | PetscCall(MatSetValue(C,II,II,2.0,INSERT_VALUES)); |
69 | } | ||
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.
|
60 | PetscCall(MatAssemblyBegin(C,MAT_FINAL_ASSEMBLY)); |
71 |
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(MatAssemblyEnd(C,MAT_FINAL_ASSEMBLY)); |
72 | |||
73 | /* M is a diagonal matrix */ | ||
74 |
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(MatCreate(PETSC_COMM_WORLD,&M)); |
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.
|
60 | PetscCall(MatSetSizes(M,PETSC_DECIDE,PETSC_DECIDE,N,N)); |
76 |
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(MatSetFromOptions(M)); |
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.
|
60 | PetscCall(MatGetOwnershipRange(M,&Istart,&Iend)); |
78 |
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.
|
8700 | for (II=Istart;II<Iend;II++) PetscCall(MatSetValue(M,II,II,(PetscReal)(II+1),INSERT_VALUES)); |
79 |
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(MatAssemblyBegin(M,MAT_FINAL_ASSEMBLY)); |
80 |
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(MatAssemblyEnd(M,MAT_FINAL_ASSEMBLY)); |
81 | |||
82 | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
83 | Create the eigensolver and set various options | ||
84 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ | ||
85 | |||
86 | /* | ||
87 | Create eigensolver context | ||
88 | */ | ||
89 |
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(PEPCreate(PETSC_COMM_WORLD,&pep)); |
90 | |||
91 | /* | ||
92 | Set matrices and problem type | ||
93 | */ | ||
94 | 60 | A[0] = K; A[1] = C; A[2] = M; | |
95 |
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(PEPSetOperators(pep,3,A)); |
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.
|
60 | PetscCall(PEPSetProblemType(pep,PEP_HERMITIAN)); |
97 | |||
98 | /* | ||
99 | In complex scalars, use a real initial vector since in this example | ||
100 | the matrices are all real, then all vectors generated by the solver | ||
101 | will have a zero imaginary part. This is not really necessary. | ||
102 | */ | ||
103 |
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(PEPGetBV(pep,&V)); |
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.
|
60 | PetscCall(BVGetRandomContext(V,&rand)); |
105 |
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(PetscRandomSetInterval(rand,-1,1)); |
106 | |||
107 | /* | ||
108 | Set solver parameters at runtime | ||
109 | */ | ||
110 |
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(PEPSetFromOptions(pep)); |
111 | |||
112 | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
113 | Solve the eigensystem | ||
114 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ | ||
115 | |||
116 |
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(PEPSolve(pep)); |
117 | |||
118 | /* | ||
119 | Optional: Get some information from the solver and display it | ||
120 | */ | ||
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.
|
60 | PetscCall(PEPGetDimensions(pep,&nev,NULL,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.
|
60 | PetscCall(PetscPrintf(PETSC_COMM_WORLD," Number of requested eigenvalues: %" PetscInt_FMT "\n",nev)); |
123 | |||
124 | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
125 | Display solution and clean up | ||
126 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ | ||
127 | |||
128 | /* show detailed info unless -terse option is given by user */ | ||
129 |
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(PetscOptionsHasName(NULL,NULL,"-terse",&terse)); |
130 |
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 | if (terse) PetscCall(PEPErrorView(pep,PEP_ERROR_BACKWARD,NULL)); |
131 | else { | ||
132 | ✗ | PetscCall(PEPGetConverged(pep,&nconv)); | |
133 | ✗ | if (nconv>0) { | |
134 | ✗ | PetscCall(MatCreateVecs(M,&xr,&xi)); | |
135 | /* display eigenvalues and relative errors */ | ||
136 | ✗ | PetscCall(PetscPrintf(PETSC_COMM_WORLD, | |
137 | "\n k ||P(k)x||/||kx||\n" | ||
138 | " ----------------- ------------------\n")); | ||
139 | ✗ | for (i=0;i<nconv;i++) { | |
140 | /* get converged eigenpairs */ | ||
141 | ✗ | PetscCall(PEPGetEigenpair(pep,i,&kr,&ki,xr,xi)); | |
142 | /* compute the relative error associated to each eigenpair */ | ||
143 | ✗ | PetscCall(PEPComputeError(pep,i,PEP_ERROR_BACKWARD,&error)); | |
144 | #if defined(PETSC_USE_COMPLEX) | ||
145 | ✗ | re = PetscRealPart(kr); | |
146 | ✗ | im = PetscImaginaryPart(kr); | |
147 | #else | ||
148 | ✗ | re = kr; | |
149 | ✗ | im = ki; | |
150 | #endif | ||
151 | ✗ | if (im!=0.0) PetscCall(PetscPrintf(PETSC_COMM_WORLD," %9f%+9fi %12g\n",(double)re,(double)im,(double)error)); | |
152 | ✗ | else PetscCall(PetscPrintf(PETSC_COMM_WORLD," %12f %12g\n",(double)re,(double)error)); | |
153 | } | ||
154 | ✗ | PetscCall(PetscPrintf(PETSC_COMM_WORLD,"\n")); | |
155 | ✗ | PetscCall(VecDestroy(&xr)); | |
156 | ✗ | PetscCall(VecDestroy(&xi)); | |
157 | } | ||
158 | } | ||
159 |
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(PEPDestroy(&pep)); |
160 |
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(MatDestroy(&M)); |
161 |
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(MatDestroy(&C)); |
162 |
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(MatDestroy(&K)); |
163 |
3/6✓ Branch 0 taken 2 times.
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
|
60 | PetscCall(SlepcFinalize()); |
164 | return 0; | ||
165 | } | ||
166 | |||
167 | /*TEST | ||
168 | |||
169 | testset: | ||
170 | args: -pep_nev 4 -pep_ncv 21 -n 12 -terse | ||
171 | output_file: output/ex16_1.out | ||
172 | test: | ||
173 | suffix: 1 | ||
174 | args: -pep_type {{toar qarnoldi}} | ||
175 | test: | ||
176 | suffix: 1_linear | ||
177 | args: -pep_type linear -pep_linear_explicitmatrix | ||
178 | requires: !single | ||
179 | test: | ||
180 | suffix: 1_linear_symm | ||
181 | args: -pep_type linear -pep_linear_explicitmatrix -pep_linear_eps_gen_indefinite -pep_scale scalar -pep_linear_bv_definite_tol 1e-12 | ||
182 | requires: !single | ||
183 | test: | ||
184 | suffix: 1_stoar | ||
185 | args: -pep_type stoar -pep_scale scalar | ||
186 | requires: double | ||
187 | test: | ||
188 | suffix: 1_stoar_t | ||
189 | args: -pep_type stoar -pep_scale scalar -st_transform | ||
190 | requires: double | ||
191 | |||
192 | TEST*/ | ||
193 |