Lines Matching refs:nc

27   for (j = 0; j < bA->nc; j++) { /* cols */  in MatNestGetSizes_Private()
42 PetscInt i, j, nr = bA->nr, nc = bA->nc; in MatMult_Nest() local
46 for (i = 0; i < nc; i++) PetscCall(VecGetSubVector(x, bA->isglobal.col[i], &bx[i])); in MatMult_Nest()
49 for (j = 0; j < nc; j++) { in MatMult_Nest()
56 for (i = 0; i < nc; i++) PetscCall(VecRestoreSubVector(x, bA->isglobal.col[i], &bx[i])); in MatMult_Nest()
64 PetscInt i, j, nr = bA->nr, nc = bA->nc; in MatMultAdd_Nest() local
68 for (i = 0; i < nc; i++) PetscCall(VecGetSubVector(x, bA->isglobal.col[i], &bx[i])); in MatMultAdd_Nest()
76 for (j = 0; j < nc; j++) { in MatMultAdd_Nest()
83 for (i = 0; i < nc; i++) PetscCall(VecRestoreSubVector(x, bA->isglobal.col[i], &bx[i])); in MatMultAdd_Nest()
100 PetscInt i, j, M, N, nr, nc, ldb, ldc; in MatProductNumeric_Nest_Dense() local
117 nc = bA->nc; in MatProductNumeric_Nest_Dense()
127 for (j = 0; j < nc; j++) { in MatProductNumeric_Nest_Dense()
134 workC = contents->workC[i * nc + j]; in MatProductNumeric_Nest_Dense()
142 PetscCall(MatAXPY(viewC, 1.0, contents->workC[i * nc + j], SAME_NONZERO_PATTERN)); in MatProductNumeric_Nest_Dense()
173 PetscInt i, j, M, N, m, n, nr, nc, maxm = 0, ldb; in MatProductSymbolic_Nest_Dense() local
187 nc = bA->nc; in MatProductSymbolic_Nest_Dense()
208 PetscCall(PetscCalloc3(nr + 1, &contents->dm, nc + 1, &contents->dn, nr * nc, &contents->workC)); in MatProductSymbolic_Nest_Dense()
209 contents->k = nr * nc; in MatProductSymbolic_Nest_Dense()
215 for (i = 0; i < nc; i++) { in MatProductSymbolic_Nest_Dense()
224 for (j = 0; j < nc; j++) { in MatProductSymbolic_Nest_Dense()
232 PetscCall(MatProductCreate(bA->m[i][j], viewB, NULL, &contents->workC[i * nc + j])); in MatProductSymbolic_Nest_Dense()
233 workC = contents->workC[i * nc + j]; in MatProductSymbolic_Nest_Dense()
265 PetscInt i, j, nr = bA->nr, nc = bA->nc; in MatMultTransposeKernel_Nest() local
269 for (i = 0; i < nc; i++) PetscCall(VecGetSubVector(y, bA->isglobal.col[i], &by[i])); in MatMultTransposeKernel_Nest()
270 for (j = 0; j < nc; j++) { in MatMultTransposeKernel_Nest()
279 for (i = 0; i < nc; i++) PetscCall(VecRestoreSubVector(y, bA->isglobal.col[i], &by[i])); in MatMultTransposeKernel_Nest()
301 PetscInt i, j, nr = bA->nr, nc = bA->nc; in MatMultTransposeAddKernel_Nest() local
305 for (i = 0; i < nc; i++) PetscCall(VecGetSubVector(z, bA->isglobal.col[i], &bz[i])); in MatMultTransposeAddKernel_Nest()
306 for (j = 0; j < nc; j++) { in MatMultTransposeAddKernel_Nest()
320 for (i = 0; i < nc; i++) PetscCall(VecRestoreSubVector(z, bA->isglobal.col[i], &bz[i])); in MatMultTransposeAddKernel_Nest()
342 PetscInt i, j, nr = bA->nr, nc = bA->nc; in MatTranspose_Nest() local
346 …PetscCheck(reuse != MAT_INPLACE_MATRIX || nr == nc, PetscObjectComm((PetscObject)A), PETSC_ERR_ARG… in MatTranspose_Nest()
352 PetscCall(PetscCalloc1(nr * nc, &subs)); in MatTranspose_Nest()
353 PetscCall(PetscMalloc2(nr, &is_row, nc, &is_col)); in MatTranspose_Nest()
357 for (j = 0; j < nc; j++) subs[i + nr * j] = bA->m[i][j]; in MatTranspose_Nest()
361 PetscCall(MatCreateNest(PetscObjectComm((PetscObject)A), nc, is_col, nr, is_row, subs, &C)); in MatTranspose_Nest()
370 for (j = 0; j < nc; j++) { in MatTranspose_Nest()
409 PetscCall(MatNestDestroyISList(vs->nc, &vs->isglobal.col)); in MatReset_Nest()
411 PetscCall(MatNestDestroyISList(vs->nc, &vs->islocal.col)); in MatReset_Nest()
422 for (j = 0; j < vs->nc; j++) PetscCall(MatDestroy(&vs->m[i][j])); in MatReset_Nest()
430 vs->nc = 0; in MatReset_Nest()
467 for (j = 0; j < vs->nc; j++) { in MatAssemblyBegin_Nest()
482 …nnzstate = (PetscBool)(nnzstate || vs->nnzstate[i * vs->nc + j] != subnnzstate… in MatAssemblyBegin_Nest()
483 vs->nnzstate[i * vs->nc + j] = subnnzstate; in MatAssemblyBegin_Nest()
497 for (j = 0; j < vs->nc; j++) { in MatAssemblyEnd_Nest()
513 sub = (row < vs->nc) ? vs->m[row][row] : (Mat)NULL; /* Prefer to find on the diagonal */ in MatNestFindNonzeroSubMatRow()
514 for (j = 0; !sub && j < vs->nc; j++) sub = vs->m[row][j]; in MatNestFindNonzeroSubMatRow()
613 PetscInt i, j, k, l, nr = rend - rbegin, nc = cend - cbegin; in MatNestGetBlock_Private() local
624 PetscCall(PetscMalloc2(nr * nc, &a, nr * nc, &b)); in MatNestGetBlock_Private()
626 for (j = 0; j < nc; j++) { in MatNestGetBlock_Private()
627 a[i * nc + j] = vs->m[rbegin + i][cbegin + j]; in MatNestGetBlock_Private()
628 b[i * nc + j] = PETSC_FALSE; in MatNestGetBlock_Private()
631 if (nc != vs->nc && nr != vs->nr) { in MatNestGetBlock_Private()
633 for (j = 0; j < nc; j++) { in MatNestGetBlock_Private()
636 if (a[j + k * nc]) flg = PETSC_TRUE; in MatNestGetBlock_Private()
640 for (l = 0; (l < nc && !flg); l++) { in MatNestGetBlock_Private()
641 if (a[i * nc + l]) flg = PETSC_TRUE; in MatNestGetBlock_Private()
645 b[i * nc + j] = PETSC_TRUE; in MatNestGetBlock_Private()
646 PetscCall(MatNestFillEmptyMat_Private(A, rbegin + i, cbegin + j, a + i * nc + j)); in MatNestGetBlock_Private()
651 …ctComm((PetscObject)A), nr, nr != vs->nr ? NULL : vs->isglobal.row, nc, nc != vs->nc ? NULL : vs->… in MatNestGetBlock_Private()
653 for (j = 0; j < nc; j++) { in MatNestGetBlock_Private()
654 if (b[i * nc + j]) PetscCall(MatDestroy(a + i * nc + j)); in MatNestGetBlock_Private()
671 PetscCall(MatNestFindISRange(A, vs->nc, is->col, iscol, &cbegin, &cend)); in MatNestFindSubMat()
761 PetscCall(PetscCalloc1(bA->nc, &br)); in MatDiagonalScale_Nest()
763 for (j = 0; j < bA->nc; j++) PetscCall(VecGetSubVector(r, bA->isglobal.col[j], &br[j])); in MatDiagonalScale_Nest()
768 for (j = 0; j < bA->nc; j++) { in MatDiagonalScale_Nest()
774 for (j = 0; j < bA->nc; j++) PetscCall(VecRestoreSubVector(r, bA->isglobal.col[j], &br[j])); in MatDiagonalScale_Nest()
787 for (j = 0; j < bA->nc; j++) { in MatScale_Nest()
806 …nnzstate = (PetscBool)(nnzstate || bA->nnzstate[i * bA->nc + i] != subnnzstate… in MatShift_Nest()
807 bA->nnzstate[i * bA->nc + i] = subnnzstate; in MatShift_Nest()
829 …nnzstate = (PetscBool)(nnzstate || bA->nnzstate[i * bA->nc + i] != subnnzstate… in MatDiagonalSet_Nest()
830 bA->nnzstate[i * bA->nc + i] = subnnzstate; in MatDiagonalSet_Nest()
843 for (j = 0; j < bA->nc; j++) { in MatSetRandom_Nest()
861 PetscCall(PetscMalloc1(bA->nc, &R)); in MatCreateVecs_Nest()
863 for (j = 0; j < bA->nc; j++) { in MatCreateVecs_Nest()
872 PetscCall(VecCreateNest(comm, bA->nc, bA->isglobal.col, R, right)); in MatCreateVecs_Nest()
874 for (j = 0; j < bA->nc; j++) PetscCall(VecDestroy(&R[j])); in MatCreateVecs_Nest()
883 for (j = 0; j < bA->nc; j++) { in MatCreateVecs_Nest()
889 …PetscCheck(j != bA->nc, PetscObjectComm((PetscObject)A), PETSC_ERR_ARG_WRONG, "Mat(Nest) contains … in MatCreateVecs_Nest()
922 …(viewer, "MatNest, rows=%" PetscInt_FMT ", cols=%" PetscInt_FMT ", structure:\n", bA->nr, bA->nc)); in MatView_Nest()
924 for (j = 0; j < bA->nc; j++) { in MatView_Nest()
961 for (j = 0; j < bA->nc; j++) { in MatZeroEntries_Nest()
972 PetscInt i, j, nr = bA->nr, nc = bA->nc; in MatCopy_Nest() local
976nc == bB->nc, PetscObjectComm((PetscObject)A), PETSC_ERR_ARG_INCOMP, "Cannot copy a Mat_Nest of bl… in MatCopy_Nest()
978 for (j = 0; j < nc; j++) { in MatCopy_Nest()
983 nnzstate = (PetscBool)(nnzstate || bB->nnzstate[i * nc + j] != subnnzstate); in MatCopy_Nest()
984 bB->nnzstate[i * nc + j] = subnnzstate; in MatCopy_Nest()
1005 PetscInt i, j, nr = bY->nr, nc = bY->nc; in MatAXPY_Nest() local
1009nc == bX->nc, PetscObjectComm((PetscObject)Y), PETSC_ERR_ARG_INCOMP, "Cannot AXPY a MatNest of blo… in MatAXPY_Nest()
1011 for (j = 0; j < nc; j++) { in MatAXPY_Nest()
1024 nnzstate = (PetscBool)(nnzstate || bY->nnzstate[i * nc + j] != subnnzstate); in MatAXPY_Nest()
1025 bY->nnzstate[i * nc + j] = subnnzstate; in MatAXPY_Nest()
1036 PetscInt i, j, nr = bA->nr, nc = bA->nc; in MatDuplicate_Nest() local
1039 PetscCall(PetscMalloc1(nr * nc, &b)); in MatDuplicate_Nest()
1041 for (j = 0; j < nc; j++) { in MatDuplicate_Nest()
1043 PetscCall(MatDuplicate(bA->m[i][j], op, &b[i * nc + j])); in MatDuplicate_Nest()
1045 b[i * nc + j] = NULL; in MatDuplicate_Nest()
1049 …PetscCall(MatCreateNest(PetscObjectComm((PetscObject)A), nr, bA->isglobal.row, nc, bA->isglobal.co… in MatDuplicate_Nest()
1051 for (i = 0; i < nr * nc; i++) PetscCall(MatDestroy(&b[i])); in MatDuplicate_Nest()
1066 …xm < bA->nc, PetscObjectComm((PetscObject)A), PETSC_ERR_ARG_OUTOFRANGE, "Col too large: row %" Pet… in MatNestGetSubMat_Nest()
1107 …xm < bA->nc, PetscObjectComm((PetscObject)A), PETSC_ERR_ARG_OUTOFRANGE, "Col too large: row %" Pet… in MatNestSetSubMat_Nest()
1126 if (mat) PetscCall(MatGetNonzeroState(mat, &bA->nnzstate[idxm * bA->nc + jdxm])); in MatNestSetSubMat_Nest()
1127 else bA->nnzstate[idxm * bA->nc + jdxm] = 0; in MatNestSetSubMat_Nest()
1170 if (N) *N = bA->nc; in MatNestGetSubMats_Nest()
1215 if (N) *N = bA->nc; in MatNestGetSize_Nest()
1256 for (i = 0; i < vs->nc; i++) cols[i] = vs->isglobal.col[i]; in MatNestGetISs_Nest()
1297 for (i = 0; i < vs->nc; i++) cols[i] = vs->islocal.col[i]; in MatNestGetLocalISs_Nest()
1362 static PetscErrorCode MatNestSetSubMats_Nest(Mat A, PetscInt nr, const IS is_row[], PetscInt nc, co… in MatNestSetSubMats_Nest() argument
1373 s->nc = nc; in MatNestSetSubMats_Nest()
1377 PetscCall(PetscMalloc1(nr * nc, &s->m[0])); in MatNestSetSubMats_Nest()
1379 s->m[i] = s->m[0] + i * nc; in MatNestSetSubMats_Nest()
1380 for (j = 0; j < nc; j++) { in MatNestSetSubMats_Nest()
1381 s->m[i][j] = a ? a[i * nc + j] : NULL; in MatNestSetSubMats_Nest()
1391 for (j = 0; j < nc; j++) { in MatNestSetSubMats_Nest()
1408 PetscCall(MatSetUp_NestIS_Private(A, nr, is_row, nc, is_col)); in MatNestSetSubMats_Nest()
1411 PetscCall(PetscMalloc1(nc, &s->col_len)); in MatNestSetSubMats_Nest()
1413 for (j = 0; j < nc; j++) s->col_len[j] = -1; in MatNestSetSubMats_Nest()
1415 PetscCall(PetscCalloc1(nr * nc, &s->nnzstate)); in MatNestSetSubMats_Nest()
1417 for (j = 0; j < nc; j++) { in MatNestSetSubMats_Nest()
1418 if (s->m[i][j]) PetscCall(MatGetNonzeroState(s->m[i][j], &s->nnzstate[i * nc + j])); in MatNestSetSubMats_Nest()
1435 if (cong && nr != nc) cong = PETSC_FALSE; in MatNestSetSubMats_Nest()
1445 PetscCall(PetscCalloc2(nr, &s->left, nc, &s->right)); in MatNestSetSubMats_Nest()
1479 PetscErrorCode MatNestSetSubMats(Mat A, PetscInt nr, const IS is_row[], PetscInt nc, const IS is_co… in MatNestSetSubMats() argument
1489 PetscValidLogicalCollectiveInt(A, nc, 4); in MatNestSetSubMats()
1490 …PetscCheck(nc >= 0, PetscObjectComm((PetscObject)A), PETSC_ERR_ARG_OUTOFRANGE, "Number of columns … in MatNestSetSubMats()
1491 if (nc && is_col) { in MatNestSetSubMats()
1493 for (PetscInt i = 0; i < nc; i++) PetscValidHeaderSpecific(is_col[i], IS_CLASSID, 5); in MatNestSetSubMats()
1495 …", (Mat, PetscInt, const IS[], PetscInt, const IS[], const Mat[]), (A, nr, is_row, nc, is_col, a)); in MatNestSetSubMats()
1601 static PetscErrorCode MatSetUp_NestIS_Private(Mat A, PetscInt nr, const IS is_row[], PetscInt nc, c… in MatSetUp_NestIS_Private() argument
1609 PetscCall(PetscMalloc1(nc, &vs->isglobal.col)); in MatSetUp_NestIS_Private()
1639 for (j = 0; j < vs->nc; j++) { in MatSetUp_NestIS_Private()
1646 for (j = 0; j < vs->nc; j++) { in MatSetUp_NestIS_Private()
1655 for (j = 0; j < vs->nc; j++) { in MatSetUp_NestIS_Private()
1667 PetscCall(PetscMalloc1(vs->nc, &vs->islocal.col)); in MatSetUp_NestIS_Private()
1686 for (i = 0, offset = 0; i < vs->nc; i++) { in MatSetUp_NestIS_Private()
1709 …PetscCall(MatNestCreateAggregateL2G_Private(A, vs->nc, vs->islocal.col, vs->isglobal.col, PETSC_TR… in MatSetUp_NestIS_Private()
1717 for (j = 0; j < vs->nc; j++) { in MatSetUp_NestIS_Private()
1735 for (j = 0; j < vs->nc; j++) { in MatSetUp_NestIS_Private()
1774 PetscErrorCode MatCreateNest(MPI_Comm comm, PetscInt nr, const IS is_row[], PetscInt nc, const IS i… in MatCreateNest() argument
1780 PetscCall(MatNestSetSubMats(*B, nr, is_row, nc, is_col, a)); in MatCreateNest()
1792 PetscInt nr, nc, nnz, i, j; in MatConvert_Nest_SeqAIJ_fast() local
1796 PetscCall(MatGetSize(A, &nr, &nc)); in MatConvert_Nest_SeqAIJ_fast()
1807 …Call(PetscCalloc4(nest->nr * nest->nc, &aii, nest->nr * nest->nc, &ajj, nest->nr * nest->nc, &avv,… in MatConvert_Nest_SeqAIJ_fast()
1809 for (j = 0; j < nest->nc; ++j) { in MatConvert_Nest_SeqAIJ_fast()
1821 PetscCall(MatTranspose(Bt, MAT_INITIAL_MATRIX, &trans[i * nest->nc + j])); in MatConvert_Nest_SeqAIJ_fast()
1822 B = trans[i * nest->nc + j]; in MatConvert_Nest_SeqAIJ_fast()
1829 PetscCall(MatHermitianTranspose(Bt, MAT_INITIAL_MATRIX, &trans[i * nest->nc + j])); in MatConvert_Nest_SeqAIJ_fast()
1830 B = trans[i * nest->nc + j]; in MatConvert_Nest_SeqAIJ_fast()
1838 aii[i * nest->nc + j] = nii; in MatConvert_Nest_SeqAIJ_fast()
1839 ajj[i * nest->nc + j] = njj; in MatConvert_Nest_SeqAIJ_fast()
1840 avv[i * nest->nc + j] = naa; in MatConvert_Nest_SeqAIJ_fast()
1859 for (j = 0; j < nest->nc; ++j) { in MatConvert_Nest_SeqAIJ_fast()
1860 if (aii[i * nest->nc + j]) { in MatConvert_Nest_SeqAIJ_fast()
1861 PetscInt *nii = aii[i * nest->nc + j]; in MatConvert_Nest_SeqAIJ_fast()
1880 for (j = 0; j < nest->nc; ++j) { in MatConvert_Nest_SeqAIJ_fast()
1881 if (aii[i * nest->nc + j]) { in MatConvert_Nest_SeqAIJ_fast()
1882 PetscScalar *nvv = avv[i * nest->nc + j], vscale = 1.0, vshift = 0.0; in MatConvert_Nest_SeqAIJ_fast()
1883 PetscInt *nii = aii[i * nest->nc + j]; in MatConvert_Nest_SeqAIJ_fast()
1884 PetscInt *njj = ajj[i * nest->nc + j]; in MatConvert_Nest_SeqAIJ_fast()
1887 if (trans[i * nest->nc + j]) { in MatConvert_Nest_SeqAIJ_fast()
1912 for (j = 0; j < nest->nc; ++j) { in MatConvert_Nest_SeqAIJ_fast()
1915 PetscInt nnr = 0, k = i * nest->nc + j; in MatConvert_Nest_SeqAIJ_fast()
1929 … PetscCall(MatCreateSeqAIJWithArrays(PetscObjectComm((PetscObject)A), nr, nc, ii, jj, vv, newmat)); in MatConvert_Nest_SeqAIJ_fast()
1933 PetscCall(MatCreateSeqAIJWithArrays(PetscObjectComm((PetscObject)A), nr, nc, ii, jj, vv, &B)); in MatConvert_Nest_SeqAIJ_fast()
1954 for (j = 0; j < nest->nc; ++j) { in MatAXPY_Dense_Nest()
2033 for (j = 0; j < nest->nc && fast; ++j) { in MatConvert_Nest_AIJ()
2074 for (i = 0, nf = 0; i < nest->nc && fast; ++i) { in MatConvert_Nest_AIJ()
2110 for (j = 0; j < nest->nc; ++j) { in MatConvert_Nest_AIJ()
2229 PetscInt i, j, nr = bA->nr, nc = bA->nc; in MatHasOperation_Nest() local
2236 for (j = 0; j < nc; j++) { in MatHasOperation_Nest()
2275 s->nc = -1; in MatCreate_Nest()