MBot Software Library  v1.0
An API documentation to mbot_firmware repository
Macros | Functions | Variables
algebra.c File Reference

Collection of advanced linear algebra functions. More...

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <rc/math/vector.h>
#include <rc/math/matrix.h>
#include <rc/math/algebra.h>
#include "algebra_common.h"
Include dependency graph for algebra.c:

Macros

#define DEFAULT_ZERO_TOLERANCE   1e-8
 

Functions

int rc_algebra_qr_decomp (rc_matrix_t A, rc_matrix_t *Q, rc_matrix_t *R)
 Calculate the QR decomposition of matrix A. More...
 
int rc_algebra_lup_decomp (rc_matrix_t A, rc_matrix_t *L, rc_matrix_t *U, rc_matrix_t *P)
 Performs LUP decomposition on matrix A with partial pivoting. More...
 
int rc_algebra_invert_matrix (rc_matrix_t A, rc_matrix_t *Ainv)
 Inverts matrix A via LUP decomposition method. More...
 
int rc_algebra_invert_matrix_inplace (rc_matrix_t *A)
 Inverts matrix A in place. More...
 
int rc_algebra_lin_system_solve (rc_matrix_t A, rc_vector_t b, rc_vector_t *x)
 Solves Ax=b for given matrix A and vector b. More...
 
void rc_algebra_set_zero_tolerance (double tol)
 Sets the zero tolerance for detecting singular matrices. More...
 
int rc_algebra_lin_system_solve_qr (rc_matrix_t A, rc_vector_t b, rc_vector_t *x)
 Finds a least-squares solution to the system Ax=b for non-square A using QR decomposition method. More...
 
int rc_algebra_fit_ellipsoid (rc_matrix_t pts, rc_vector_t *ctr, rc_vector_t *lens)
 Fits an ellipsoid to a set of points in 3D space. More...
 

Variables

double zero_tolerance =DEFAULT_ZERO_TOLERANCE
 

Detailed Description

Collection of advanced linear algebra functions.

Author
James Strawson
Date
2016