#include "xf_fintech/pentadiag_cr.hpp"
template < typename T, unsigned int P_SIZE, unsigned int logN > void pentadiagCr ( T a [P_SIZE], T b [P_SIZE], T c [P_SIZE], T d [P_SIZE], T e [P_SIZE], T v [P_SIZE], T u [P_SIZE] )
Solves for u in linear system Pu = r
It calls function pentadiag_step for each step until all diagonals instead of main are zeros (or very close to zero). Result U is made by dividing Each of elements of right hand vactor ( v ) by main diagonal ( c )
Structure of input matrix:
c d e 0 0 |
b c d e 0 |
a b c d e |
0 a b c d |
0 0 a b c |.
Parameters:
T | data type used in whole function (double by default) |
P_SIZE | Size of the operating matrix |
logN | Number of steps for algorithm |
c | Main diagonal |
b | First lower |
a | Second lower |
d | First upper |
e | Second upper |
v | Right hand side vector of length n |
u | Vectors of unknows to solve for |