Lines Matching refs:N
75 PetscErrorCode PetscDTAltVApply(PetscInt N, PetscInt k, const PetscReal *w, const PetscReal *v, Pet… in PetscDTAltVApply() argument
78 PetscCheck(N >= 0, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "invalid dimension"); in PetscDTAltVApply()
79 PetscCheck(k >= 0 && k <= N, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "invalid form degree"); in PetscDTAltVApply()
80 if (N <= 3) { in PetscDTAltVApply()
84 if (N == 1) { in PetscDTAltVApply()
86 } else if (N == 2) { in PetscDTAltVApply()
109 PetscCall(PetscDTBinomialInt(N, k, &Nk)); in PetscDTAltVApply()
114 PetscCall(PetscDTEnumSubset(N, k, i, subset)); in PetscDTAltVApply()
121 for (l = 0; l < k; l++) prod *= v[perm[l] * N + subset[l]]; in PetscDTAltVApply()
150 PetscErrorCode PetscDTAltVWedge(PetscInt N, PetscInt j, PetscInt k, const PetscReal *a, const Petsc… in PetscDTAltVWedge() argument
155 PetscCheck(N >= 0, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "invalid dimension"); in PetscDTAltVWedge()
157 PetscCheck(j + k <= N, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "Wedge greater than dimension"); in PetscDTAltVWedge()
158 if (N <= 3) { in PetscDTAltVWedge()
161 PetscCall(PetscDTBinomialInt(N, j + k, &Njk)); in PetscDTAltVWedge()
167 if (N == 2) { in PetscDTAltVWedge()
185 PetscCall(PetscDTBinomialInt(N, j + k, &Njk)); in PetscDTAltVWedge()
192 PetscCall(PetscDTEnumSubset(N, j + k, i, subset)); in PetscDTAltVWedge()
200 PetscCall(PetscDTSubsetIndex(N, j, subsetj, &jInd)); in PetscDTAltVWedge()
201 PetscCall(PetscDTSubsetIndex(N, k, subsetk, &kInd)); in PetscDTAltVWedge()
227 PetscErrorCode PetscDTAltVWedgeMatrix(PetscInt N, PetscInt j, PetscInt k, const PetscReal *a, Petsc… in PetscDTAltVWedgeMatrix() argument
232 PetscCheck(N >= 0, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "invalid dimension"); in PetscDTAltVWedgeMatrix()
234 PetscCheck(j + k <= N, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "Wedge greater than dimension"); in PetscDTAltVWedgeMatrix()
235 if (N <= 3) { in PetscDTAltVWedgeMatrix()
238 PetscCall(PetscDTBinomialInt(N, j + k, &Njk)); in PetscDTAltVWedgeMatrix()
245 if (N == 2) { in PetscDTAltVWedgeMatrix()
272 PetscCall(PetscDTBinomialInt(N, k, &Nk)); in PetscDTAltVWedgeMatrix()
273 PetscCall(PetscDTBinomialInt(N, j + k, &Njk)); in PetscDTAltVWedgeMatrix()
280 PetscCall(PetscDTEnumSubset(N, j + k, i, subset)); in PetscDTAltVWedgeMatrix()
288 PetscCall(PetscDTSubsetIndex(N, j, subsetj, &jInd)); in PetscDTAltVWedgeMatrix()
289 PetscCall(PetscDTSubsetIndex(N, k, subsetk, &kInd)); in PetscDTAltVWedgeMatrix()
323 PetscErrorCode PetscDTAltVPullback(PetscInt N, PetscInt M, const PetscReal *L, PetscInt k, const Pe… in PetscDTAltVPullback() argument
328 PetscCheck(N >= 0 && M >= 0, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "invalid dimensions"); in PetscDTAltVPullback()
329 …PetscCheck(PetscAbsInt(k) <= N && PetscAbsInt(k) <= M, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, … in PetscDTAltVPullback()
330 if (N <= 3 && M <= 3) { in PetscDTAltVPullback()
332 PetscCall(PetscDTBinomialInt(N, PetscAbsInt(k), &Nk)); in PetscDTAltVPullback()
360 …um += (L[pairs[j][0] * N + pairs[i][0]] * L[pairs[j][1] * N + pairs[i][1]] - L[pairs[j][1] * N + p… in PetscDTAltVPullback()
369 PetscInt offi = (N == 2) ? 2 : 0; in PetscDTAltVPullback()
375 …* N + pairs[offi + i][0]] * L[pairs[offj + j][1] * N + pairs[offi + i][1]] - L[pairs[offj + j][1] … in PetscDTAltVPullback()
393 PetscCall(PetscDTBinomialInt(N, PetscAbsInt(k), &Nk)); in PetscDTAltVPullback()
404 PetscCall(PetscMalloc5(k, &subsetw, k, &subsetv, k, &perm, N * k, &Lw, k * k, &Lwv)); in PetscDTAltVPullback()
409 PetscCall(PetscDTEnumSubset(N, k, j, subsetv)); in PetscDTAltVPullback()
416 for (l = 0; l < k; l++) prod *= L[subsetw[perm[l]] * N + subsetv[l]]; in PetscDTAltVPullback()
425 PetscCall(PetscDTAltVStar(N, N - k, -1, Lstarw, sLsw)); in PetscDTAltVPullback()
452 PetscErrorCode PetscDTAltVPullbackMatrix(PetscInt N, PetscInt M, const PetscReal *L, PetscInt k, Pe… in PetscDTAltVPullbackMatrix() argument
461 PetscCheck(N >= 0 && M >= 0, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "invalid dimensions"); in PetscDTAltVPullbackMatrix()
462 …PetscCheck(PetscAbsInt(k) <= N && PetscAbsInt(k) <= M, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, … in PetscDTAltVPullbackMatrix()
463 if (N <= 3 && M <= 3) { in PetscDTAltVPullbackMatrix()
467 PetscCall(PetscDTBinomialInt(N, PetscAbsInt(k), &Nk)); in PetscDTAltVPullbackMatrix()
486 …+ j] = L[pairs[j][0] * N + pairs[i][0]] * L[pairs[j][1] * N + pairs[i][1]] - L[pairs[j][1] * N + p… in PetscDTAltVPullbackMatrix()
494 PetscInt offi = (N == 2) ? 2 : 0; in PetscDTAltVPullbackMatrix()
498 …* N + pairs[offi + i][0]] * L[pairs[offj + j][1] * N + pairs[offi + i][1]] - L[pairs[offj + j][1] … in PetscDTAltVPullbackMatrix()
511 PetscCall(PetscDTBinomialInt(N, PetscAbsInt(k), &Nk)); in PetscDTAltVPullbackMatrix()
513 PetscCall(PetscMalloc5(M, &subsetw, N, &subsetv, k, &perm, N * k, &Lw, k * k, &Lwv)); in PetscDTAltVPullbackMatrix()
525 PetscCall(PetscDTEnumSplit(N, k, j, subsetv, &jOdd)); in PetscDTAltVPullbackMatrix()
527 jOdd = negative ? (PetscBool)(iOdd ^ jOdd ^ ((k * (N - k)) & 1)) : PETSC_FALSE; in PetscDTAltVPullbackMatrix()
535 for (l = 0; l < k; l++) prod *= L[subsetw[perm[l]] * N + subsetv[l]]; in PetscDTAltVPullbackMatrix()
561 PetscErrorCode PetscDTAltVInterior(PetscInt N, PetscInt k, const PetscReal *w, const PetscReal *v, … in PetscDTAltVInterior() argument
566 PetscCheck(k > 0 && k <= N, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "invalid form degree"); in PetscDTAltVInterior()
567 PetscCall(PetscDTBinomialInt(N, k, &Nk)); in PetscDTAltVInterior()
568 PetscCall(PetscDTBinomialInt(N, k - 1, &Nkm)); in PetscDTAltVInterior()
569 if (N <= 3) { in PetscDTAltVInterior()
573 for (i = 0; i < N; i++) sum += w[i] * v[i]; in PetscDTAltVInterior()
575 } else if (k == N) { in PetscDTAltVInterior()
578 for (i = 0; i < N; i++) wIntv[N - 1 - i] = w[0] * v[i] * mult[i]; in PetscDTAltVInterior()
592 PetscCall(PetscDTEnumSubset(N, k, i, subset)); in PetscDTAltVInterior()
600 PetscCall(PetscDTSubsetIndex(N, k - 1, work, &idx)); in PetscDTAltVInterior()
624 PetscErrorCode PetscDTAltVInteriorMatrix(PetscInt N, PetscInt k, const PetscReal *v, PetscReal *int… in PetscDTAltVInteriorMatrix() argument
629 PetscCheck(k > 0 && k <= N, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "invalid form degree"); in PetscDTAltVInteriorMatrix()
630 PetscCall(PetscDTBinomialInt(N, k, &Nk)); in PetscDTAltVInteriorMatrix()
631 PetscCall(PetscDTBinomialInt(N, k - 1, &Nkm)); in PetscDTAltVInteriorMatrix()
632 if (N <= 3) { in PetscDTAltVInteriorMatrix()
634 for (i = 0; i < N; i++) intvMat[i] = v[i]; in PetscDTAltVInteriorMatrix()
635 } else if (k == N) { in PetscDTAltVInteriorMatrix()
638 for (i = 0; i < N; i++) intvMat[N - 1 - i] = v[i] * mult[i]; in PetscDTAltVInteriorMatrix()
658 PetscCall(PetscDTEnumSubset(N, k, i, subset)); in PetscDTAltVInteriorMatrix()
666 PetscCall(PetscDTSubsetIndex(N, k - 1, work, &idx)); in PetscDTAltVInteriorMatrix()
694 PetscErrorCode PetscDTAltVInteriorPattern(PetscInt N, PetscInt k, PetscInt (*indices)[3]) in PetscDTAltVInteriorPattern() argument
699 PetscCheck(k > 0 && k <= N, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "invalid form degree"); in PetscDTAltVInteriorPattern()
700 PetscCall(PetscDTBinomialInt(N, k, &Nk)); in PetscDTAltVInteriorPattern()
701 PetscCall(PetscDTBinomialInt(N, k - 1, &Nkm)); in PetscDTAltVInteriorPattern()
702 if (N <= 3) { in PetscDTAltVInteriorPattern()
704 for (i = 0; i < N; i++) { in PetscDTAltVInteriorPattern()
709 } else if (k == N) { in PetscDTAltVInteriorPattern()
712 for (i = 0; i < N; i++) { in PetscDTAltVInteriorPattern()
713 indices[i][0] = N - 1 - i; in PetscDTAltVInteriorPattern()
744 PetscCall(PetscDTEnumSubset(N, k, i, subset)); in PetscDTAltVInteriorPattern()
752 PetscCall(PetscDTSubsetIndex(N, k - 1, work, &idx)); in PetscDTAltVInteriorPattern()
786 PetscErrorCode PetscDTAltVStar(PetscInt N, PetscInt k, PetscInt pow, const PetscReal *w, PetscReal … in PetscDTAltVStar() argument
791 PetscCheck(k >= 0 && k <= N, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "invalid form degree"); in PetscDTAltVStar()
792 PetscCall(PetscDTBinomialInt(N, k, &Nk)); in PetscDTAltVStar()
796 if (N <= 3) { in PetscDTAltVStar()
804 if (pow > 1 && ((k * (N - k)) & 1)) { in PetscDTAltVStar()
810 PetscCall(PetscMalloc1(N, &subset)); in PetscDTAltVStar()
812 PetscInt l = (pow == 1) ? k : N - k; in PetscDTAltVStar()
817 PetscCall(PetscDTEnumSplit(N, l, i, subset, &sOdd)); in PetscDTAltVStar()
818 PetscCall(PetscDTSubsetIndex(N, l, subset, &idx)); in PetscDTAltVStar()
819 PetscCall(PetscDTSubsetIndex(N, N - l, &subset[l], &j)); in PetscDTAltVStar()
826 if (pow > 1 && (k * (N - k)) % 2) { in PetscDTAltVStar()