Bachelor's degree final project  v1.0
Faculty of Mathematics, University of Barcelona
src/include/linear_solve.h
Go to the documentation of this file.
00001 
00012 #ifndef LINEAR_SOLVE_H
00013 #define LINEAR_SOLVE_H
00014 
00015 #include "QR_matrix.h"
00016 #include "LU_matrix.h"
00017 
00023 #define SOLVE_WITH_LU &solve_lu
00024 
00029 #define SOLVE_WITH_QR &solve_qr
00030 
00035 #define _SOLVE_PROTOTYPE \
00036 void * (*solve)(size_t, size_t, double ** const, double * const, double * const, double)
00037 
00038 typedef void * (*solve_ptr)(size_t, size_t, double ** const, double * const, double * const, double);
00039 
00040 /* Function prototypes */
00041 void forward_substitution_ones(size_t n, double ** const L, double * const x, double * const b);
00042 void * forward_substitution(size_t n, double ** const L, double * const x, double * const b, double tol);
00043 void * back_substitution(size_t n, double ** const U, double * const x, double * const b, double tol);
00044 
00045 void * solve_qr(size_t m, size_t n, double ** const A, double * const x, double * const b, double tol);
00046 void * solve_lu(size_t m, size_t n, double ** const A, double * const x, double * const b, double tol);
00047 
00048 solve_ptr get_solve_with_lu();
00049 solve_ptr get_solve_with_qr();
00050 #endif