NEURON
matrix2.h File Reference
#include "matrix.h"

Go to the source code of this file.

Functions

MATBKPfactor (MAT *A, PERM *pivot, PERM *blocks)
 
MATCHfactor (MAT *A)
 
MATLUfactor (MAT *A, PERM *pivot)
 
MATQRfactor (MAT *A, VEC *diag)
 
MATQRCPfactor (MAT *A, VEC *diag, PERM *pivot)
 
MATLDLfactor (MAT *A)
 
MATHfactor (MAT *A, VEC *diag1, VEC *diag2)
 
MATMCHfactor (MAT *A, double tol)
 
MATm_inverse (MAT *A, MAT *out)
 
double LUcondest (MAT *A, PERM *pivot)
 
double QRcondest (MAT *A)
 
MATmakeQ (MAT *A, VEC *diag, MAT *Qout)
 
MATmakeR (MAT *A, MAT *Rout)
 
MATmakeHQ (MAT *A, VEC *diag1, VEC *diag2, MAT *Qout)
 
MATmakeH (MAT *A, MAT *Hout)
 
MATLDLupdate (MAT *A, VEC *u, double alpha)
 
MATQRupdate (MAT *Q, MAT *R, VEC *u, VEC *v)
 
VECBKPsolve (MAT *A, PERM *pivot, PERM *blocks, VEC *b, VEC *x)
 
VECCHsolve (MAT *A, VEC *b, VEC *x)
 
VECLDLsolve (MAT *A, VEC *b, VEC *x)
 
VECLUsolve (MAT *A, PERM *pivot, VEC *b, VEC *x)
 
VEC_Qsolve (MAT *A, VEC *, VEC *, VEC *, VEC *)
 
VECQRsolve (MAT *A, VEC *, VEC *b, VEC *x)
 
VECQRTsolve (MAT *A, VEC *, VEC *b, VEC *x)
 
VECUsolve (MAT *A, VEC *b, VEC *x, double diag_val)
 
VECLsolve (MAT *A, VEC *b, VEC *x, double diag_val)
 
VECDsolve (MAT *A, VEC *b, VEC *x)
 
VECLTsolve (MAT *A, VEC *b, VEC *x, double diag_val)
 
VECUTsolve (MAT *A, VEC *b, VEC *x, double diag_val)
 
VECLUTsolve (MAT *A, PERM *, VEC *, VEC *)
 
VECQRCPsolve (MAT *QR, VEC *diag, PERM *pivot, VEC *b, VEC *x)
 
BANDbdLUfactor (BAND *A, PERM *pivot)
 
BANDbdLDLfactor (BAND *A)
 
VECbdLUsolve (BAND *A, PERM *pivot, VEC *b, VEC *x)
 
VECbdLDLsolve (BAND *A, VEC *b, VEC *x)
 
VEChhvec (VEC *, u_int, Real *, VEC *, Real *)
 
VEChhtrvec (VEC *, double, u_int, VEC *, VEC *)
 
MAThhtrrows (MAT *, u_int, u_int, VEC *, double)
 
MAThhtrcols (MAT *, u_int, u_int, VEC *, double)
 
void givens (double, double, Real *, Real *)
 
VECrot_vec (VEC *, u_int, u_int, double, double, VEC *)
 
MATrot_rows (MAT *, u_int, u_int, double, double, MAT *)
 
MATrot_cols (MAT *, u_int, u_int, double, double, MAT *)
 
VECtrieig (VEC *a, VEC *b, MAT *Q)
 
VECsymmeig (MAT *A, MAT *Q, VEC *out)
 
MATschur (MAT *A, MAT *Q)
 
void schur_evals (MAT *A, VEC *re_part, VEC *im_part)
 
MATschur_vecs (MAT *T, MAT *Q, MAT *X_re, MAT *X_im)
 
VECbisvd (VEC *a, VEC *b, MAT *U, MAT *V)
 
VECsvd (MAT *A, MAT *U, MAT *V, VEC *out)
 
MAT_m_pow (MAT *, int, MAT *, MAT *)
 
MATm_pow (MAT *, int, MAT *)
 
MATm_exp (MAT *, double, MAT *)
 
MAT_m_exp (MAT *, double, MAT *, int *, int *)
 
MATm_poly (MAT *, VEC *, MAT *)
 
void fft (VEC *, VEC *)
 
void ifft (VEC *, VEC *)
 

Function Documentation

◆ _m_exp()

MAT* _m_exp ( MAT ,
double  ,
MAT ,
int ,
int  
)

Definition at line 134 of file mfunc.c.

◆ _m_pow()

MAT* _m_pow ( MAT ,
int  ,
MAT ,
MAT  
)

Definition at line 45 of file mfunc.c.

◆ _Qsolve()

VEC * _Qsolve ( MAT A,
VEC ,
VEC ,
VEC ,
VEC  
)

◆ bdLDLfactor()

BAND * bdLDLfactor ( BAND A)

Definition at line 507 of file bdfactor.c.

◆ bdLDLsolve()

VEC * bdLDLsolve ( BAND A,
VEC b,
VEC x 
)

Definition at line 554 of file bdfactor.c.

◆ bdLUfactor()

BAND* bdLUfactor ( BAND A,
PERM pivot 
)

◆ bdLUsolve()

VEC* bdLUsolve ( BAND A,
PERM pivot,
VEC b,
VEC x 
)

◆ bisvd()

VEC* bisvd ( VEC a,
VEC b,
MAT U,
MAT V 
)

◆ BKPfactor()

MAT* BKPfactor ( MAT A,
PERM pivot,
PERM blocks 
)

◆ BKPsolve()

VEC* BKPsolve ( MAT A,
PERM pivot,
PERM blocks,
VEC b,
VEC x 
)

◆ CHfactor()

MAT * CHfactor ( MAT A)

◆ CHsolve()

VEC * CHsolve ( MAT A,
VEC b,
VEC x 
)

◆ Dsolve()

VEC * Dsolve ( MAT A,
VEC b,
VEC x 
)

◆ fft()

void fft ( VEC ,
VEC  
)

Definition at line 45 of file fft.c.

◆ givens()

void givens ( double  ,
double  ,
Real ,
Real  
)

Definition at line 47 of file givens.c.

◆ Hfactor()

MAT * Hfactor ( MAT A,
VEC diag1,
VEC diag2 
)

◆ hhtrcols()

MAT* hhtrcols ( MAT ,
u_int  ,
u_int  ,
VEC ,
double   
)

Definition at line 146 of file hsehldr.c.

◆ hhtrrows()

MAT* hhtrrows ( MAT ,
u_int  ,
u_int  ,
VEC ,
double   
)

Definition at line 100 of file hsehldr.c.

◆ hhtrvec()

VEC* hhtrvec ( VEC ,
double  ,
u_int  ,
VEC ,
VEC  
)

Definition at line 72 of file hsehldr.c.

◆ hhvec()

VEC* hhvec ( VEC ,
u_int  ,
Real ,
VEC ,
Real  
)

Definition at line 47 of file hsehldr.c.

◆ ifft()

void ifft ( VEC ,
VEC  
)

Definition at line 137 of file fft.c.

◆ LDLfactor()

MAT * LDLfactor ( MAT A)

◆ LDLsolve()

VEC * LDLsolve ( MAT A,
VEC b,
VEC x 
)

◆ LDLupdate()

MAT* LDLupdate ( MAT A,
VEC u,
double  alpha 
)

◆ Lsolve()

VEC * Lsolve ( MAT A,
VEC b,
VEC x,
double  diag_val 
)

◆ LTsolve()

VEC * LTsolve ( MAT A,
VEC b,
VEC x,
double  diag_val 
)

◆ LUcondest()

double LUcondest ( MAT A,
PERM pivot 
)

◆ LUfactor()

MAT * LUfactor ( MAT A,
PERM pivot 
)

◆ LUsolve()

VEC * LUsolve ( MAT A,
PERM pivot,
VEC b,
VEC x 
)

◆ LUTsolve()

VEC * LUTsolve ( MAT A,
PERM ,
VEC ,
VEC  
)

◆ m_exp()

MAT* m_exp ( MAT ,
double  ,
MAT  
)

Definition at line 297 of file mfunc.c.

◆ m_inverse()

MAT * m_inverse ( MAT A,
MAT out 
)

Definition at line 179 of file lufactor.c.

◆ m_poly()

MAT* m_poly ( MAT ,
VEC ,
MAT  
)

Definition at line 311 of file mfunc.c.

◆ m_pow()

MAT* m_pow ( MAT ,
int  ,
MAT  
)

Definition at line 99 of file mfunc.c.

◆ makeH()

MAT * makeH ( MAT A,
MAT Hout 
)

Definition at line 133 of file hessen.c.

◆ makeHQ()

MAT * makeHQ ( MAT A,
VEC diag1,
VEC diag2,
MAT Qout 
)

◆ makeQ()

MAT* makeQ ( MAT A,
VEC diag,
MAT Qout 
)

◆ makeR()

MAT * makeR ( MAT A,
MAT Rout 
)

◆ MCHfactor()

MAT * MCHfactor ( MAT A,
double  tol 
)

◆ QRcondest()

double QRcondest ( MAT A)

Definition at line 449 of file qrfactor.c.

◆ QRCPfactor()

MAT * QRCPfactor ( MAT A,
VEC diag,
PERM pivot 
)

◆ QRCPsolve()

VEC * QRCPsolve ( MAT QR,
VEC diag,
PERM pivot,
VEC b,
VEC x 
)

◆ QRfactor()

MAT * QRfactor ( MAT A,
VEC diag 
)

◆ QRsolve()

VEC * QRsolve ( MAT A,
VEC ,
VEC b,
VEC x 
)

◆ QRTsolve()

VEC * QRTsolve ( MAT A,
VEC ,
VEC b,
VEC x 
)

◆ QRupdate()

MAT * QRupdate ( MAT Q,
MAT R,
VEC u,
VEC v 
)

Definition at line 87 of file update.c.

◆ rot_cols()

MAT* rot_cols ( MAT ,
u_int  ,
u_int  ,
double  ,
double  ,
MAT  
)

Definition at line 114 of file givens.c.

◆ rot_rows()

MAT* rot_rows ( MAT ,
u_int  ,
u_int  ,
double  ,
double  ,
MAT  
)

Definition at line 85 of file givens.c.

◆ rot_vec()

VEC* rot_vec ( VEC ,
u_int  ,
u_int  ,
double  ,
double  ,
VEC  
)

Definition at line 61 of file givens.c.

◆ schur()

MAT* schur ( MAT A,
MAT Q 
)

Definition at line 155 of file schur.c.

◆ schur_evals()

void schur_evals ( MAT A,
VEC re_part,
VEC im_part 
)

Definition at line 432 of file schur.c.

◆ schur_vecs()

MAT* schur_vecs ( MAT T,
MAT Q,
MAT X_re,
MAT X_im 
)

Definition at line 488 of file schur.c.

◆ svd()

VEC * svd ( MAT A,
MAT U,
MAT V,
VEC out 
)

Definition at line 350 of file svd.c.

◆ symmeig()

VEC * symmeig ( MAT A,
MAT Q,
VEC out 
)

Definition at line 174 of file symmeig.c.

◆ trieig()

VEC* trieig ( VEC a,
VEC b,
MAT Q 
)

◆ Usolve()

VEC * Usolve ( MAT A,
VEC b,
VEC x,
double  diag_val 
)

◆ UTsolve()

VEC * UTsolve ( MAT A,
VEC b,
VEC x,
double  diag_val 
)