public abstract class AbstractLambdaMethod extends Object implements IntegerLeastSquareSolver
This class is based on both the 1996 paper The LAMBDA method for integer ambiguity estimation: implementation aspects by Paul de Jonge and Christian Tiberius and on the 2005 paper A modified LAMBDA method for integer least-squares estimation by X.-W Chang, X. Yang and T. Zhou, Journal of Geodesy 79(9):552-565, DOI: 10.1007/s00190-005-0004-x
Constructor and Description |
---|
AbstractLambdaMethod() |
Modifier and Type | Method and Description |
---|---|
protected void |
addSolution(long[] fixed,
double squaredNorm)
Add a new solution.
|
protected abstract void |
discreteSearch()
Find the best solutions to the Integer Least Square problem.
|
protected double[] |
getDecorrelatedReference()
Get the reference decorrelated ambiguities.
|
protected double[] |
getDiagReference()
Get a reference to the diagonal matrix of the decomposition.
|
protected double[] |
getLowReference()
Get a reference to the lower triangular matrix of the decomposition.
|
protected int |
getMaxSolution()
Get the maximum number of solutions seeked.
|
protected int |
getSolutionsSize()
Get the number of solutions found.
|
protected void |
integerGaussTransformation(int row,
int col)
Perform one integer Gauss transformation.
|
protected abstract void |
inverseDecomposition()
Inverse the decomposition.
|
protected int |
lIndex(int row,
int col)
Get the index of an entry in the lower triangular matrix.
|
protected abstract void |
ltdlDecomposition()
Perform Lᵀ.D.L = Q decomposition of the covariance matrix.
|
protected void |
permutation(int k0,
double delta)
Perform one symmetric permutation involving rows/columns
k0 and k0+1 . |
protected abstract void |
reduction()
Perform LAMBDA reduction.
|
protected void |
removeSolution()
Remove spurious solution.
|
IntegerLeastSquareSolution[] |
solveILS(int nbSol,
double[] floatAmbiguities,
int[] indirection,
RealMatrix covariance)
Find the best solutions to an Integer Least Square problem.
|
protected int |
zIndex(int row,
int col)
Get the index of an entry in the Z transformation matrix.
|
public IntegerLeastSquareSolution[] solveILS(int nbSol, double[] floatAmbiguities, int[] indirection, RealMatrix covariance)
solveILS
in interface IntegerLeastSquareSolver
nbSol
- number of solutions to search forfloatAmbiguities
- float estimates of ambiguitiesindirection
- indirection array to extract ambiguity covariances from global covariance matrixcovariance
- global covariance matrix (includes ambiguities among other parameters)nbSol
solutions a to the Integer Least Square problem, in increasing
squared distance orderprotected double[] getDiagReference()
BEWARE: the returned value is a reference to an internal array, it is only intended for subclasses use (hence the method is protected and not public).
protected double[] getLowReference()
BEWARE: the returned value is a reference to an internal array, it is only intended for subclasses use (hence the method is protected and not public).
protected double[] getDecorrelatedReference()
protected int getMaxSolution()
protected void addSolution(long[] fixed, double squaredNorm)
fixed
- solution arraysquaredNorm
- squared distance to the corresponding float solutionprotected void removeSolution()
protected int getSolutionsSize()
protected abstract void ltdlDecomposition()
protected abstract void reduction()
protected abstract void discreteSearch()
protected abstract void inverseDecomposition()
This method transforms the Lᵀ.D.L = Q decomposition of covariance into the L⁻¹.D⁻¹.L⁻ᵀ = Q⁻¹ decomposition of the inverse of covariance.
protected void integerGaussTransformation(int row, int col)
This method corresponds to algorithm 2.1 in X.-W Chang, X. Yang and T. Zhou paper.
row
- row index (counting from 0)col
- column index (counting from 0)protected void permutation(int k0, double delta)
k0
and k0+1
.
This method corresponds to algorithm 2.2 in X.-W Chang, X. Yang and T. Zhou paper.
k0
- diagonal index (counting from 0)delta
- new value for diag[k0+1]protected int lIndex(int row, int col)
row
- row index (counting from 0)col
- column index (counting from 0)protected int zIndex(int row, int col)
row
- row index (counting from 0)col
- column index (counting from 0)Copyright © 2002-2020 CS Group. All rights reserved.