~siretart/ubuntu/utopic/blender/libav10

« back to all changes in this revision

Viewing changes to extern/libmv/third_party/ceres/internal/ceres/schur_eliminator.h

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2014-02-19 11:24:23 UTC
  • mfrom: (14.2.23 sid)
  • Revision ID: package-import@ubuntu.com-20140219112423-rkmaz2m7ha06d4tk
Tags: 2.69-3ubuntu1
* Merge with Debian; remaining changes:
  - Configure without OpenImageIO on armhf, as it is not available on
    Ubuntu.

Show diffs side-by-side

added added

removed removed

Lines of Context:
170
170
  // also the caller's responsibilty to ensure that the
171
171
  // CompressedRowBlockStructure object passed to this method is the
172
172
  // same one (or is equivalent to) the one associated with the
173
 
  // BlockSparseMatrixBase objects below.
 
173
  // BlockSparseMatrix objects below.
174
174
  virtual void Init(int num_eliminate_blocks,
175
175
                    const CompressedRowBlockStructure* bs) = 0;
176
176
 
185
185
  //
186
186
  // Since the Schur complement is a symmetric matrix, only the upper
187
187
  // triangular part of the Schur complement is computed.
188
 
  virtual void Eliminate(const BlockSparseMatrixBase* A,
 
188
  virtual void Eliminate(const BlockSparseMatrix* A,
189
189
                         const double* b,
190
190
                         const double* D,
191
191
                         BlockRandomAccessMatrix* lhs,
194
194
  // Given values for the variables z in the F block of A, solve for
195
195
  // the optimal values of the variables y corresponding to the E
196
196
  // block in A.
197
 
  virtual void BackSubstitute(const BlockSparseMatrixBase* A,
 
197
  virtual void BackSubstitute(const BlockSparseMatrix* A,
198
198
                              const double* b,
199
199
                              const double* D,
200
200
                              const double* z,
226
226
  virtual ~SchurEliminator();
227
227
  virtual void Init(int num_eliminate_blocks,
228
228
                    const CompressedRowBlockStructure* bs);
229
 
  virtual void Eliminate(const BlockSparseMatrixBase* A,
 
229
  virtual void Eliminate(const BlockSparseMatrix* A,
230
230
                         const double* b,
231
231
                         const double* D,
232
232
                         BlockRandomAccessMatrix* lhs,
233
233
                         double* rhs);
234
 
  virtual void BackSubstitute(const BlockSparseMatrixBase* A,
 
234
  virtual void BackSubstitute(const BlockSparseMatrix* A,
235
235
                              const double* b,
236
236
                              const double* D,
237
237
                              const double* z,
273
273
 
274
274
  void ChunkDiagonalBlockAndGradient(
275
275
      const Chunk& chunk,
276
 
      const BlockSparseMatrixBase* A,
 
276
      const BlockSparseMatrix* A,
277
277
      const double* b,
278
278
      int row_block_counter,
279
279
      typename EigenTypes<kEBlockSize, kEBlockSize>::Matrix* eet,
282
282
      BlockRandomAccessMatrix* lhs);
283
283
 
284
284
  void UpdateRhs(const Chunk& chunk,
285
 
                 const BlockSparseMatrixBase* A,
 
285
                 const BlockSparseMatrix* A,
286
286
                 const double* b,
287
287
                 int row_block_counter,
288
288
                 const double* inverse_ete_g,
293
293
                         const double* buffer,
294
294
                         const BufferLayoutType& buffer_layout,
295
295
                         BlockRandomAccessMatrix* lhs);
296
 
  void EBlockRowOuterProduct(const BlockSparseMatrixBase* A,
 
296
  void EBlockRowOuterProduct(const BlockSparseMatrix* A,
297
297
                             int row_block_index,
298
298
                             BlockRandomAccessMatrix* lhs);
299
299
 
300
300
 
301
 
  void NoEBlockRowsUpdate(const BlockSparseMatrixBase* A,
 
301
  void NoEBlockRowsUpdate(const BlockSparseMatrix* A,
302
302
                             const double* b,
303
303
                             int row_block_counter,
304
304
                             BlockRandomAccessMatrix* lhs,
305
305
                             double* rhs);
306
306
 
307
 
  void NoEBlockRowOuterProduct(const BlockSparseMatrixBase* A,
 
307
  void NoEBlockRowOuterProduct(const BlockSparseMatrix* A,
308
308
                               int row_block_index,
309
309
                               BlockRandomAccessMatrix* lhs);
310
310