Class ModifiedLambdaMethod

java.lang.Object
org.orekit.estimation.measurements.gnss.AbstractLambdaMethod
org.orekit.estimation.measurements.gnss.ModifiedLambdaMethod
All Implemented Interfaces:
IntegerLeastSquareSolver

public class ModifiedLambdaMethod extends AbstractLambdaMethod
Decorrelation/reduction engine for Modified LAMBDA method.

This class implements Modified Least Square Ambiguity Decorrelation Adjustment (MLAMBDA) method, as described in 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

Since:
10.2
Author:
David Soulard
See Also:
  • Constructor Details

    • ModifiedLambdaMethod

      public ModifiedLambdaMethod()
      Empty constructor.

      This constructor is not strictly necessary, but it prevents spurious javadoc warnings with JDK 18 and later.

      Since:
      12.0
  • Method Details

    • ltdlDecomposition

      protected void ltdlDecomposition()
      Compute the LᵀDL factorization with symmetric pivoting decomposition of Q (symmetric definite positive matrix) with a minimum symmetric pivoting: Q = ZᵀLᵀDLZ.
      Specified by:
      ltdlDecomposition in class AbstractLambdaMethod
    • reduction

      protected void reduction()
      Perform MLAMBDA reduction.
      Specified by:
      reduction in class AbstractLambdaMethod
    • discreteSearch

      protected void discreteSearch()
      Find the best solutions to the Integer Least Square problem.
      Specified by:
      discreteSearch in class AbstractLambdaMethod
    • inverseDecomposition

      protected void inverseDecomposition()
      Inverse the decomposition.

      This method transforms the Lᵀ.D.L = Q decomposition of covariance into the L⁻¹.D⁻¹.L⁻ᵀ = Q⁻¹ decomposition of the inverse of covariance.

      Specified by:
      inverseDecomposition in class AbstractLambdaMethod
    • sign

      protected double sign(double a)
      Return the symbol of parameter a.
      Parameters:
      a - the double for which we want the want the symbol
      Returns:
      -1.0 if a is lower than or equal to 0 or 1.0 if a is greater than 0