xComplex.h
/*******************************************************************/
/* */
/* filename : xComplex.h */
/* author : edison.shih/edisonx */
/* compiler : Visual C++ 2008 */
/* date : 2011.03.07 */
/* */
/* A.L.L. R.I.G.H.T.S. R.E.S.E.R.V.E. */
/* */
/*******************************************************************/
#ifndef X_COMPLEX_H_
#define X_COMPLEX_H_
typedef struct tagxcompolex{
double real;
double img;
}xComplex;
// ---------------------------------
// 加法運算
int comp_add(xComplex *rst,
const xComplex z1,
const xComplex z2);
// ---------------------------------
// rst+=z
int comp_adds(xComplex *rst,
const xComplex z);
// ---------------------------------
// 減法運算
int comp_sub(xComplex *rst,
const xComplex z1,
const xComplex z2);
// ---------------------------------
// rst-=z
int comp_subs(xComplex *rst,
const xComplex z);
// ---------------------------------
// 乘法運算
int comp_mul(xComplex *rst,
const xComplex z1,
const xComplex z2);
// ---------------------------------
// rst*=z
int comp_muls(xComplex *rst,
const xComplex z);
// ---------------------------------
// 除法運算
int comp_div(xComplex *rst,
const xComplex z1,
const xComplex z2,
const double eps);
// ---------------------------------
// rst/=z
int comp_divs(xComplex *rst,
const xComplex z,
const double eps);
// ---------------------------------
// 倒數運算
int comp_inv(xComplex *rst,
const xComplex z,
const double eps);
// ---------------------------------
// rst = 1/ rst
int comp_invs(xComplex *rst,
const double eps);
// ---------------------------------
// 負數運算
int comp_neg(xComplex *rst,
const xComplex z);
// ---------------------------------
// rst = -rst
int comp_negs(xComplex *rst);
// ---------------------------------
// 共軛運算
int comp_conj(xComplex *rst,
const xComplex z);
// ---------------------------------
// 複數顯示
void comp_dis(const xComplex z);
// ---------------------------------
// 複數比較
int comp_cmp(const xComplex z1,
const xComplex z2,
const double eps);
// ---------------------------------
// 模數
double comp_norm(const xComplex z);
// ---------------------------------
// 角度
double comp_sita(const xComplex z);
// ---------------------------------
// n 次根號
int comp_nroot(xComplex* rst,
const xComplex z,
const int n,
const double eps);
// ---------------------------------
// exp(z)
int comp_exp(xComplex *rst,
const xComplex z);
// ---------------------------------
// 整數次方, pow(z, n)
int comp_pown(xComplex *rst,
const xComplex z,
const int n);
// ---------------------------------
// log(z)
int comp_log(xComplex *rst,
const xComplex z);
// ---------------------------------
// 複數次方, z=pow(z1, z2)
int comp_pow(xComplex *rst,
const xComplex z1,
const xComplex z2);
// ---------------------------------
// sin(z)
int comp_sin(xComplex *rst,
const xComplex z);
// ---------------------------------
// cos(z)
int comp_cos(xComplex *rst,
const xComplex z);
// ---------------------------------
// sinh(z)
int comp_sinh(xComplex *rst,
const xComplex z);
// ---------------------------------
// cosh(z)
int comp_cosh(xComplex *rst,
const xComplex z);
#endif
