MRTKLIB 0.7.14
Modernized GNSS Positioning Library
Loading...
Searching...
No Matches
mrtk_lambda.h
Go to the documentation of this file.
1/*------------------------------------------------------------------------------
2 * mrtk_lambda.h : integer ambiguity resolution (LAMBDA) functions
3 *
4 * Copyright (C) 2026 H.SHIONO (MRTKLIB Project)
5 * Copyright (C) 2023-2025 Cabinet Office, Japan
6 * Copyright (C) 2024-2025 Lighthouse Technology & Consulting Co. Ltd.
7 * Copyright (C) 2023-2025 Japan Aerospace Exploration Agency
8 * Copyright (C) 2023-2025 TOSHIBA ELECTRONIC TECHNOLOGIES CORPORATION
9 * Copyright (C) 2015- Mitsubishi Electric Corp.
10 * Copyright (C) 2014 Geospatial Information Authority of Japan
11 * Copyright (C) 2014 T.SUZUKI
12 * Copyright (C) 2007-2023 T.TAKASU
13 *
14 * SPDX-License-Identifier: BSD-2-Clause
15 *----------------------------------------------------------------------------*/
16/**
17 * @file mrtk_lambda.h
18 * @brief MRTKLIB Integer Ambiguity Resolution Module — LAMBDA method.
19 *
20 * This header provides functions for integer least-squares estimation using
21 * the LAMBDA (Least-squares AMBiguity Decorrelation Adjustment) method and
22 * the modified LAMBDA (MLAMBDA) search algorithm.
23 *
24 * @note Functions declared here are implemented in mrtk_lambda.c.
25 *
26 * References:
27 * [1] P.J.G.Teunissen, The least-square ambiguity decorrelation adjustment:
28 * a method for fast GPS ambiguity estimation, J.Geodesy, Vol.70, 65-82,
29 * 1995
30 * [2] X.-W.Chang, X.Yang, T.Zhou, MLAMBDA: A modified LAMBDA method for
31 * integer least-squares estimation, J.Geodesy, Vol.79, 552-565, 2005
32 */
33#ifndef MRTK_LAMBDA_H
34#define MRTK_LAMBDA_H
35
36#ifdef __cplusplus
37extern "C" {
38#endif
39
41
42/**
43 * @brief Integer least-square estimation (LAMBDA/MLAMBDA).
44 *
45 * Reduction is performed by LAMBDA (ref.[1]), and search by MLAMBDA (ref.[2]).
46 *
47 * @param[in] n Number of float parameters
48 * @param[in] m Number of fixed solutions
49 * @param[in] a Float parameters (n x 1)
50 * @param[in] Q Covariance matrix of float parameters (n x n)
51 * @param[out] F Fixed solutions (n x m)
52 * @param[out] s Sum of squared residuals of fixed solutions (1 x m)
53 * @return Status (0: ok, other: error)
54 * @note Matrix stored by column-major order (Fortran convention).
55 */
56int lambda(int n, int m, const double* a, const double* Q, double* F, double* s);
57
58/**
59 * @brief LAMBDA reduction for integer least-squares.
60 *
61 * Performs decorrelation reduction on the covariance matrix using the
62 * LAMBDA method (ref.[1]).
63 *
64 * @param[in] n Number of float parameters
65 * @param[in] Q Covariance matrix of float parameters (n x n)
66 * @param[out] Z LAMBDA reduction matrix (n x n)
67 * @return Status (0: ok, other: error)
68 */
69int lambda_reduction(int n, const double* Q, double* Z);
70
71/**
72 * @brief MLAMBDA search for integer least-squares.
73 *
74 * Performs the modified LAMBDA search algorithm (ref.[2]) for integer
75 * least-squares estimation.
76 *
77 * @param[in] n Number of float parameters
78 * @param[in] m Number of fixed solutions
79 * @param[in] a Float parameters (n x 1)
80 * @param[in] Q Covariance matrix of float parameters (n x n)
81 * @param[out] F Fixed solutions (n x m)
82 * @param[out] s Sum of squared residuals of fixed solutions (1 x m)
83 * @return Status (0: ok, other: error)
84 */
85int lambda_search(int n, int m, const double* a, const double* Q, double* F, double* s);
86
87#ifdef __cplusplus
88}
89#endif
90
91#endif /* MRTK_LAMBDA_H */
MRTKLIB Foundation — Common types, standard includes, and system constants (MAXSAT,...
int lambda(int n, int m, const double *a, const double *Q, double *F, double *s)
Integer least-square estimation (LAMBDA/MLAMBDA).
int lambda_search(int n, int m, const double *a, const double *Q, double *F, double *s)
MLAMBDA search for integer least-squares.
int lambda_reduction(int n, const double *Q, double *Z)
LAMBDA reduction for integer least-squares.