Lines Matching refs:N

6 static PetscErrorCode CheckPullback(PetscInt N, PetscInt M, const PetscReal *L, PetscInt k, const P…  in CheckPullback()  argument
17 PetscCall(PetscDTBinomialInt(N, k, &Nk)); in CheckPullback()
28 PetscCall(PetscDTAltVPullback(N, M, L, negative ? -k : k, w, Lstarw)); in CheckPullback()
29 PetscCall(PetscDTAltVPullbackMatrix(N, M, L, negative ? -k : k, Lstar)); in CheckPullback()
34 PetscCall(PetscDTAltVStar(N, N - k, 1, Lstarw, sLsw)); in CheckPullback()
35 PetscCall(PetscDTAltVApply(N, k, sLsw, x, &Lstarwx)); in CheckPullback()
38 PetscCall(PetscDTAltVApply(N, k, Lstarw, x, &Lstarwx)); in CheckPullback()
44 for (j = 0; j < N; j++) sum += L[i * N + j] * x[l * N + j]; in CheckPullback()
62 if (M * N > 0) PetscCall(PetscRealView(M * N, L, viewer)); in CheckPullback()
104 PetscInt k, N = n[i]; in main() local
106 if (verbose) PetscCall(PetscViewerASCIIPrintf(viewer, "N = %" PetscInt_FMT ":\n", N)); in main()
113 PetscCall(PetscMalloc1(N, &perm)); in main()
115 for (k = 1; k <= N; k++) fac *= k; in main()
116 PetscCall(PetscViewerASCIIPrintf(viewer, "Permutations of %" PetscInt_FMT ":\n", N)); in main()
122 PetscCall(PetscDTEnumPerm(N, k, perm, &isOdd)); in main()
124 … for (j = 0; j < N; j++) PetscCall(PetscPrintf(PETSC_COMM_WORLD, " %" PetscInt_FMT, perm[j])); in main()
126 PetscCall(PetscDTPermIndex(N, perm, &kCheck, &isOddCheck)); in main()
127 …B, "PetscDTEnumPerm / PetscDTPermIndex mismatch for (%" PetscInt_FMT ", %" PetscInt_FMT ")", N, k); in main()
132 for (k = 0; k <= N; k++) { in main()
137 PetscCall(PetscDTBinomialInt(N, k, &Nk)); in main()
140 …SCIIPrintf(viewer, "(%" PetscInt_FMT " choose %" PetscInt_FMT "): %" PetscInt_FMT "\n", N, k, Nk)); in main()
143 PetscCall(PetscMalloc1(N, &subset)); in main()
149 PetscCall(PetscDTEnumSplit(N, k, j, subset, &isOdd)); in main()
150 PetscCall(PetscDTPermIndex(N, subset, &kCheck, &isOddCheck)); in main()
158 … for (l = k; l < N; l++) PetscCall(PetscPrintf(PETSC_COMM_WORLD, " %" PetscInt_FMT, subset[l])); in main()
161 PetscCall(PetscDTSubsetIndex(N, k, subset, &jCheck)); in main()
171 PetscCall(PetscMalloc1(N * k, &v)); in main()
172 for (j = 0; j < N * k; j++) PetscCall(PetscRandomGetValueReal(rand, &v[j])); in main()
174 PetscCall(PetscDTAltVApply(N, k, w, v, &wv)); in main()
183 if (N * k > 0) PetscCall(PetscRealView(N * k, v, viewer)); in main()
194 for (l = 0; l < N; l++) wvcheck += w[l] * v[l]; in main()
198 if (k == N && N < 5) { /* n-forms are scaled determinants */ in main()
231 PetscCall(PetscMalloc2(N * k, &x, N * k, &axv)); in main()
237 for (l = 0; l < N * k; l++) x[l] = v[l]; in main()
238 for (l = 0; l < N * k; l++) axv[l] = v[l]; in main()
239 for (l = 0; l < N; l++) { in main()
243 x[j * N + l] = val; in main()
244 axv[j * N + l] += alpha * val; in main()
246 PetscCall(PetscDTAltVApply(N, k, w, x, &wx)); in main()
247 PetscCall(PetscDTAltVApply(N, k, w, axv, &waxv)); in main()
266 PetscCall(PetscMalloc1(N * k, &swapv)); in main()
267 for (m = 0; m < N * k; m++) swapv[m] = v[m]; in main()
268 for (m = 0; m < N; m++) { in main()
269 swapv[j * N + m] = v[l * N + m]; in main()
270 swapv[l * N + m] = v[j * N + m]; in main()
272 PetscCall(PetscDTAltVApply(N, k, w, swapv, &wswapv)); in main()
277 for (j = 0; j <= k && j + k <= N; j++) { /* wedge product */ in main()
284 PetscCall(PetscDTBinomialInt(N, j, &Nj)); in main()
285 PetscCall(PetscDTBinomialInt(N, j + k, &Njk)); in main()
286 PetscCall(PetscMalloc4(Nj, &u, Njk, &uWw, N * (j + k), &x, N * (j + k), &xsplit)); in main()
289 for (l = 0; l < N * (j + k); l++) PetscCall(PetscRandomGetValueReal(rand, &x[l])); in main()
290 PetscCall(PetscDTAltVWedge(N, j, k, u, w, uWw)); in main()
291 PetscCall(PetscDTAltVApply(N, j + k, uWw, x, &uWwx)); in main()
303 if (N * (j + k) > 0) PetscCall(PetscRealView(N * (j + k), x, viewer)); in main()
317 for (p = 0; p < N; p++) xsplit[m * N + p] = x[split[m] * N + p]; in main()
319 PetscCall(PetscDTAltVApply(N, j, u, xsplit, &ux)); in main()
320 PetscCall(PetscDTAltVApply(N, k, w, PetscSafePointerPlusOffset(xsplit, j * N), &wx)); in main()
327 PetscCall(PetscDTAltVWedgeMatrix(N, j, k, u, uWwmat)); in main()
352 for (M = PetscMax(1, k); M <= N; M++) { /* pullback */ in main()
357 PetscCall(PetscMalloc3(M * N, &L, Mk, &u, M * k, &x)); in main()
358 for (l = 0; l < M * N; l++) PetscCall(PetscRandomGetValueReal(rand, &L[l])); in main()
363 PetscCall(CheckPullback(M, N, L, k, w, x, verbose, viewer)); in main()
364 if (M != N) PetscCall(CheckPullback(N, M, L, k, u, v, PETSC_FALSE, viewer)); in main()
366 if ((k % N) && (N > 1)) { in main()
369 PetscCall(CheckPullback(M, N, L, -k, w, x, verbose, viewer)); in main()
370 if (M != N) PetscCall(CheckPullback(N, M, L, -k, u, v, PETSC_FALSE, viewer)); in main()
381 PetscCall(PetscDTBinomialInt(N, k - 1, &Nkm)); in main()
383 PetscCall(PetscDTAltVInterior(N, k, w, v, wIntv0)); in main()
384 PetscCall(PetscDTAltVInteriorMatrix(N, k, v, intv0mat)); in main()
385 PetscCall(PetscDTAltVInteriorPattern(N, k, indices)); in main()
444 PetscCall(PetscDTAltVApply(N, k - 1, wIntv0, &v[N], &wvcheck)); in main()
449 if (k >= N - k) { /* Hodge star */ in main()
455 isOdd = (PetscBool)((k * (N - k)) & 1); in main()
457 PetscCall(PetscDTAltVStar(N, k, 1, w, starw)); in main()
458 PetscCall(PetscDTAltVStar(N, N - k, 1, starw, starstarw)); in main()
471 PetscCall(PetscDTAltVWedge(N, k, N - k, w, u, &wu)); in main()