#include <math.h>
struct complex
{
double re;
double im;
};
typedef struct complex complex;
extern complex Complex (double a, double b);
extern complex Cadd (complex a, complex b);
extern complex Csub (complex a, complex b);
extern complex Cmul (complex a, complex b);
extern complex Conj (complex a);
extern complex Cdiv (complex a, complex b);
extern double Cabs (complex a);
extern complex Csqrt (complex a);
extern complex RCmul (double a, complex b);
extern complex Cexp (complex a);
extern complex Clog (complex a);
extern complex ** pscmatrix (int dim); // mallocs a square complex matrix
extern void free_pscmatrix (complex **m); // frees the square complex matrix
extern void dump_pscmatrix (complex **m, int dim); // prints a square complex matrix
extern void copy_pscmatrix (complex **from, complex **to, int dim); // copies
extern void dump_complexVector (complex *vec, int dim);
extern int ComplexInvertMatrix (complex **a, int n, double *dwork, int *indx, complex **a_inv, complex *col);
extern int ComplexLUDecompose (complex **a, int n, double *vv, int *indx, double *pd);
extern void ComplexLUBackSubst (complex **a, int n, int *indx, complex *b);
|