RcdMathLib_doc
Open Source Library for Linear and Non-linear Algebra
loc_gauss_newton.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de>
3  * 2020 Freie Universität Berlin
4  *
5  * This file is subject to the terms and conditions of the GNU Lesser General
6  * Public License v2.1. See the file LICENSE in the top level directory for more
7  * details.
8  */
9 
24 #ifndef LOC_GAUSS_NEWTON_H_
25 #define LOC_GAUSS_NEWTON_H_
26 
27 #include <inttypes.h>
28 
29 #include "matrix.h"
30 #include "vector.h"
31 
53 uint8_t loc_gauss_newton(uint8_t ref_points_num,
54  matrix_t ref_points_matrix[ref_points_num][3],
55  vector_t start_pos[3],
56  matrix_t measured_data_vec[ref_points_num],
57  matrix_t eps, matrix_t fmin, uint8_t max_iter_num,
58  vector_t est_pos[3],
59  void (*f_i)(uint8_t ref_point_num,
60  matrix_t ref_point_mat[ref_points_num][3],
61  matrix_t point[3], matrix_t d_vec[],
62  matrix_t f_vec[]),
63  void (*jacobian_get_JTJ)(uint8_t ref_points_num,
64  matrix_t ref_point_matrix[ref_points_num][3],
65  matrix_t point[3],
66  matrix_t data_vec[ref_points_num],
67  matrix_t JTJ[3][3]),
68  void (*jacobian_get_JTf)(uint8_t ref_points_num,
69  matrix_t ref_point_matrix[ref_points_num][3],
70  matrix_t point[3],
71  matrix_t data_vec[ref_points_num],
72  matrix_t JTf[3])
73  );
74 
75 #endif /* LOC_GAUSS_NEWTON_H_ */
vector_t
#define vector_t
Define the data type of the vector elements.
Definition: vector.h:33
matrix.h
Matrix computations.
loc_gauss_newton
uint8_t loc_gauss_newton(uint8_t ref_points_num, matrix_t ref_points_matrix[ref_points_num][3], vector_t start_pos[3], matrix_t measured_data_vec[ref_points_num], matrix_t eps, matrix_t fmin, uint8_t max_iter_num, vector_t est_pos[3], void(*f_i)(uint8_t ref_point_num, matrix_t ref_point_mat[ref_points_num][3], matrix_t point[3], matrix_t d_vec[], matrix_t f_vec[]), void(*jacobian_get_JTJ)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTJ[3][3]), void(*jacobian_get_JTf)(uint8_t ref_points_num, matrix_t ref_point_matrix[ref_points_num][3], matrix_t point[3], matrix_t data_vec[ref_points_num], matrix_t JTf[3]))
Implements the modified Gauss–Newton algorithm.
Definition: loc_gauss_newton.c:30
matrix_t
#define matrix_t
Define the data type of the matrix elements.
Definition: matrix.h:38
vector.h
Vector computations.