accelerInt
v0.1
|
Various linear algebra routines needed for the Carathéodory-Fejér method. More...
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <float.h>
#include <string.h>
#include <complex.h>
Go to the source code of this file.
Functions | |
void | getInverseComplex (int n, double complex *A) |
Interface function to LAPACK matrix inversion subroutine. More... | |
void | linSolveComplex (int n, double complex *A, double complex *B, double complex *x) |
Solves the complex linear system Ax = B. More... | |
void | roots (int n, double *v, double complex *rt) |
Polynomial root finding function. More... | |
void | svd (int n, double *A, double *S, double *U, double *V) |
Singular value decomposition function. More... | |
Various linear algebra routines needed for the Carathéodory-Fejér method.
Definition in file linear-algebra.c.
void getInverseComplex | ( | int | n, |
double complex * | A | ||
) |
Interface function to LAPACK matrix inversion subroutine.
Performs inversion of square matrix. Uses LAPACK subroutines DGETRF and DGETRI.
[in] | n | order of matrix |
[in] | A | the input matrix, size n*n |
Definition at line 23 of file linear-algebra.c.
void linSolveComplex | ( | int | n, |
double complex * | A, | ||
double complex * | B, | ||
double complex * | x | ||
) |
Solves the complex linear system Ax = B.
Performs inversion of square matrix. Uses LAPACK subroutines DGETRF and DGETRI.
[in] | n | order of matrix |
[in] | A | the LHS matrix, size n*n |
[in] | B | the RHS matrix, size n*n |
[out] | x | the solved vector, size n*1 |
Definition at line 88 of file linear-algebra.c.
void roots | ( | int | n, |
double * | v, | ||
double complex * | rt | ||
) |
Polynomial root finding function.
This function calculates the roots of a polynomial represented by its coefficients in the array v. This is done by constructing a companion matrix out of the polynomial coefficients, then using the LAPACK subroutine DGEEV to calculate its eigenvalues. These are the roots of the polynomial.
[in] | n | size of v; |
[in] | v | array of polynomial coefficients (real) |
[out] | rt | array of polynomial roots (complex), size n - 1 |
Definition at line 141 of file linear-algebra.c.
void svd | ( | int | n, |
double * | A, | ||
double * | S, | ||
double * | U, | ||
double * | V | ||
) |
Singular value decomposition function.
Decomposes a matrix A into U * S * V', where S (here an array, really a diagonal matrix) holds the singular values. The function uses the LAPACK subroutine DGESVD.
[in] | n | leading dimension of array |
[in] | A | array to be decomposed, size n * n |
[out] | S | array with singular values, size n |
[out] | U | array with left singular vectors, size n * n |
[out] | V | array with right singular vectors, size n * n |
Definition at line 215 of file linear-algebra.c.