/* This is the header file for functions that allow to perform */ /* vector calculus with complex vectors */ #ifndef vec_h #define vec_h #include #include typedef struct VEC { dcomplex v[3]; } vec; vec Vini(dcomplex x, dcomplex y, dcomplex z); vec Vpolar(double magn, double th, double phi); double polar_angle(vec t); double azimut_angle(vec t); vec Vunit( int i); vec Vspherunit( int lam); dcomplex Vspher( vec a, int lam); void Vecho( vec a); vec Vadd(vec a, vec b); vec Vsub(vec a, vec b); vec Vconjg( vec a); dcomplex Vscalar( vec a, vec b); double Vnorm( vec a); vec Vcross( vec a, vec b); vec VRmul( vec a, double b); vec VCmul( vec a, dcomplex b); double dsign(double a); vec pauli(double row, double col); double unitm(double s1, double s2); double antisymm3_epsilon(int i, int j, int k); #endif