Lines Matching refs:row
97 // and build the row/column block structure of the reduced linear
106 // Iterate over the row blocks of A, and detect the chunks. The
124 // Add to the chunk until the first block in the row is
125 // different than the one in the first row for the chunk.
127 const CompressedRow& row = bs->rows[r + chunk.size];
128 if (row.cells.front().block_id != chunk_block_id) {
132 // Iterate over the blocks in the row, ignoring the first
134 for (int c = 1; c < row.cells.size(); ++c) {
135 const Cell& cell = row.cells[c];
213 // buffer_ contains the non-zero blocks in the row corresponding
218 // blocks for all the z blocks that share a row block/residual
331 const CompressedRow& row = bs->rows[chunk.start + j];
332 const Cell& e_cell = row.cells.front();
335 FixedArray<double, 8> sj(row.block.size);
337 typename EigenTypes<kRowBlockSize>::VectorRef(sj.get(), row.block.size) =
339 (b + bs->rows[chunk.start + j].block.position, row.block.size);
341 for (int c = 1; c < row.cells.size(); ++c) {
342 const int f_block_id = row.cells[c].block_id;
347 values + row.cells[c].position, row.block.size, f_block_size,
353 values + e_cell.position, row.block.size, e_block_size,
359 values + e_cell.position, row.block.size, e_block_size,
360 values + e_cell.position, row.block.size, e_block_size,
387 const CompressedRow& row = bs->rows[row_block_counter + j];
388 const Cell& e_cell = row.cells.front();
392 (b + b_pos, row.block.size);
395 values + e_cell.position, row.block.size, e_block_size,
398 for (int c = 1; c < row.cells.size(); ++c) {
399 const int block_id = row.cells[c].block_id;
404 values + row.cells[c].position,
405 row.block.size, block_size,
408 b_pos += row.block.size;
448 // Iterate over the rows in this chunk, for each row, compute the
454 const CompressedRow& row = bs->rows[row_block_counter + j];
456 if (row.cells.size() > 1) {
461 const Cell& e_cell = row.cells.front();
464 values + e_cell.position, row.block.size, e_block_size,
465 values + e_cell.position, row.block.size, e_block_size,
470 values + e_cell.position, row.block.size, e_block_size,
476 // f_blocks for each row in the chunk.
477 for (int c = 1; c < row.cells.size(); ++c) {
478 const int f_block_id = row.cells[c].block_id;
484 values + e_cell.position, row.block.size, e_block_size,
485 values + row.cells[c].position, row.block.size, f_block_size,
488 b_pos += row.block.size;
552 // and calls NoEBlockRowOuterProduct on each row.
564 const CompressedRow& row = bs->rows[row_block_counter];
565 for (int c = 0; c < row.cells.size(); ++c) {
566 const int block_id = row.cells[c].block_id;
570 values + row.cells[c].position, row.block.size, block_size,
571 b + row.block.position,
579 // A row r of A, which has no e_blocks gets added to the Schur
581 // the contribution of a single row r to the Schur complement. It is
600 const CompressedRow& row = bs->rows[row_block_index];
602 for (int i = 0; i < row.cells.size(); ++i) {
603 const int block1 = row.cells[i].block_id - num_eliminate_blocks_;
606 const int block1_size = bs->cols[row.cells[i].block_id].size;
617 values + row.cells[i].position, row.block.size, block1_size,
618 values + row.cells[i].position, row.block.size, block1_size,
622 for (int j = i + 1; j < row.cells.size(); ++j) {
623 const int block2 = row.cells[j].block_id - num_eliminate_blocks_;
631 const int block2_size = bs->cols[row.cells[j].block_id].size;
635 values + row.cells[i].position, row.block.size, block1_size,
636 values + row.cells[j].position, row.block.size, block2_size,
643 // For a row with an e_block, compute the contribition S += F'F. This
653 const CompressedRow& row = bs->rows[row_block_index];
655 for (int i = 1; i < row.cells.size(); ++i) {
656 const int block1 = row.cells[i].block_id - num_eliminate_blocks_;
659 const int block1_size = bs->cols[row.cells[i].block_id].size;
669 values + row.cells[i].position, row.block.size, block1_size,
670 values + row.cells[i].position, row.block.size, block1_size,
674 for (int j = i + 1; j < row.cells.size(); ++j) {
675 const int block2 = row.cells[j].block_id - num_eliminate_blocks_;
678 const int block2_size = bs->cols[row.cells[j].block_id].size;
688 values + row.cells[i].position, row.block.size, block1_size,
689 values + row.cells[j].position, row.block.size, block2_size,