![]() |
Bachelor's degree final project
v1.0
Faculty of Mathematics, University of Barcelona
|
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