Home | History | Annotate | Download | only in ceres

Lines Matching refs:row

91   // and build the row/column block structure of the reduced linear
100 // Iterate over the row blocks of A, and detect the chunks. The
118 // Add to the chunk until the first block in the row is
119 // different than the one in the first row for the chunk.
121 const CompressedRow& row = bs->rows[r + chunk.size];
122 if (row.cells.front().block_id != chunk_block_id) {
126 // Iterate over the blocks in the row, ignoring the first
128 for (int c = 1; c < row.cells.size(); ++c) {
129 const Cell& cell = row.cells[c];
204 // buffer_ contains the non-zero blocks in the row corresponding
209 // blocks for all the z blocks that share a row block/residual
311 const CompressedRow& row = bs->rows[chunk.start + j];
313 const Cell& e_cell = row.cells.front();
317 row.block.size,
324 row.block.size);
326 for (int c = 1; c < row.cells.size(); ++c) {
327 const int f_block_id = row.cells[c].block_id;
330 f_block(row_values + row.cells[c].position,
331 row.block.size, f_block_size);
368 const CompressedRow& row = bs->rows[row_block_counter + j];
370 const Cell& e_cell = row.cells.front();
374 row.block.size,
380 (b + b_pos, row.block.size) - e_block * (inverse_ete_g);
382 for (int c = 1; c < row.cells.size(); ++c) {
383 const int block_id = row.cells[c].block_id;
386 b(row_values + row.cells[c].position,
387 row.block.size, block_size);
395 b_pos += row.block.size;
435 // Iterate over the rows in this chunk, for each row, compute the
440 const CompressedRow& row = bs->rows[row_block_counter + j];
443 if (row.cells.size() > 1) {
448 const Cell& e_cell = row.cells.front();
451 row.block.size,
460 (b + b_pos, row.block.size);
463 // f_blocks for each row in the chunk.
464 for (int c = 1; c < row.cells.size(); ++c) {
465 const int f_block_id = row.cells[c].block_id;
468 f_block(row_values + row.cells[c].position,
469 row.block.size, f_block_size);
478 b_pos += row.block.size;
564 // and calls NoEBlockRowOuterProduct on each row.
575 const CompressedRow& row = bs->rows[row_block_counter];
577 for (int c = 0; c < row.cells.size(); ++c) {
578 const int block_id = row.cells[c].block_id;
582 += (ConstMatrixRef(row_values + row.cells[c].position,
583 row.block.size, block_size).transpose() *
584 ConstVectorRef(b + row.block.position, row.block.size));
591 // A row r of A, which has no e_blocks gets added to the Schur
593 // the contribution of a single row r to the Schur complement. It is
612 const CompressedRow& row = bs->rows[row_block_index];
614 for (int i = 0; i < row.cells.size(); ++i) {
615 const int block1 = row.cells[i].block_id - num_eliminate_blocks_;
618 const int block1_size = bs->cols[row.cells[i].block_id].size;
619 const ConstMatrixRef b1(row_values + row.cells[i].position,
620 row.block.size, block1_size);
633 for (int j = i + 1; j < row.cells.size(); ++j) {
634 const int block2 = row.cells[j].block_id - num_eliminate_blocks_;
645 const int block2_size = bs->cols[row.cells[j].block_id].size;
649 b1.transpose() * ConstMatrixRef(row_values + row.cells[j].position,
650 row.block.size,
656 // For a row with an e_block, compute the contribition S += F'F. This
666 const CompressedRow& row = bs->rows[row_block_index];
668 for (int i = 1; i < row.cells.size(); ++i) {
669 const int block1 = row.cells[i].block_id - num_eliminate_blocks_;
672 const int block1_size = bs->cols[row.cells[i].block_id].size;
674 b1(row_values + row.cells[i].position,
675 row.block.size, block1_size);
694 for (int j = i + 1; j < row.cells.size(); ++j) {
695 const int block2 = row.cells[j].block_id - num_eliminate_blocks_;
698 const int block2_size = bs->cols[row.cells[j].block_id].size;
708 b2(row_values + row.cells[j].position,
709 row.block.size,