Package gov.nih.mipav.model.algorithms
Class CeresSolver.ImplicitSchurComplement
- java.lang.Object
-
- gov.nih.mipav.model.algorithms.CeresSolver.LinearOperator
-
- gov.nih.mipav.model.algorithms.CeresSolver.ImplicitSchurComplement
-
- Enclosing class:
- CeresSolver
class CeresSolver.ImplicitSchurComplement extends CeresSolver.LinearOperator
-
-
Field Summary
Fields Modifier and Type Field Description private CeresSolver.PartitionedMatrixView
A_
private double[]
b_
private CeresSolver.BlockSparseMatrix
block_diagonal_EtE_inverse_
private CeresSolver.BlockSparseMatrix
block_diagonal_FtF_inverse_
private double[]
D_
private CeresSolver.LinearSolverOptions
options_
private java.util.Vector<java.lang.Double>
rhs_
private java.util.Vector<java.lang.Double>
tmp_e_cols_
private java.util.Vector<java.lang.Double>
tmp_e_cols_2_
private java.util.Vector<java.lang.Double>
tmp_f_cols_
private java.util.Vector<java.lang.Double>
tmp_rows_
-
Constructor Summary
Constructors Constructor Description ImplicitSchurComplement(CeresSolver.LinearSolverOptions options)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
AddDiagonalAndInvert(double[] D, int D_start, CeresSolver.BlockSparseMatrix block_diagonal)
void
BackSubstitute(double[] x, double[] y)
CeresSolver.BlockSparseMatrix
block_diagonal_EtE_inverse()
CeresSolver.BlockSparseMatrix
block_diagonal_FtF_inverse()
void
Init(CeresSolver.BlockSparseMatrix A, double[] D, double[] b)
void
LeftMultiply(double[] x, double[] y)
int
num_cols()
int
num_rows()
java.util.Vector<java.lang.Double>
rhs()
void
RightMultiply(double[] x, double[] y)
private void
UpdateRhs()
-
-
-
Field Detail
-
options_
private CeresSolver.LinearSolverOptions options_
-
A_
private CeresSolver.PartitionedMatrixView A_
-
D_
private double[] D_
-
b_
private double[] b_
-
block_diagonal_EtE_inverse_
private CeresSolver.BlockSparseMatrix block_diagonal_EtE_inverse_
-
block_diagonal_FtF_inverse_
private CeresSolver.BlockSparseMatrix block_diagonal_FtF_inverse_
-
rhs_
private java.util.Vector<java.lang.Double> rhs_
-
tmp_rows_
private java.util.Vector<java.lang.Double> tmp_rows_
-
tmp_e_cols_
private java.util.Vector<java.lang.Double> tmp_e_cols_
-
tmp_e_cols_2_
private java.util.Vector<java.lang.Double> tmp_e_cols_2_
-
tmp_f_cols_
private java.util.Vector<java.lang.Double> tmp_f_cols_
-
-
Constructor Detail
-
ImplicitSchurComplement
public ImplicitSchurComplement(CeresSolver.LinearSolverOptions options)
-
-
Method Detail
-
Init
public void Init(CeresSolver.BlockSparseMatrix A, double[] D, double[] b)
-
RightMultiply
public void RightMultiply(double[] x, double[] y)
- Specified by:
RightMultiply
in classCeresSolver.LinearOperator
-
LeftMultiply
public void LeftMultiply(double[] x, double[] y)
- Specified by:
LeftMultiply
in classCeresSolver.LinearOperator
-
BackSubstitute
public void BackSubstitute(double[] x, double[] y)
-
num_rows
public int num_rows()
- Specified by:
num_rows
in classCeresSolver.LinearOperator
-
num_cols
public int num_cols()
- Specified by:
num_cols
in classCeresSolver.LinearOperator
-
rhs
public java.util.Vector<java.lang.Double> rhs()
-
block_diagonal_EtE_inverse
public CeresSolver.BlockSparseMatrix block_diagonal_EtE_inverse()
-
block_diagonal_FtF_inverse
public CeresSolver.BlockSparseMatrix block_diagonal_FtF_inverse()
-
AddDiagonalAndInvert
private void AddDiagonalAndInvert(double[] D, int D_start, CeresSolver.BlockSparseMatrix block_diagonal)
-
UpdateRhs
private void UpdateRhs()
-
-