#include int mtxCpy(double* pMtx1, double* pMtx2, int row, int col); double norm(double* pMtx0, int cnt); void CrossMatrixGet(double element1[3][3], double B[3]); void qleft(double Q1[4][4], double qinn[4]); int mtxMtp(double* pMtx0, double* pMtx1, int row1, int col1, double* pMtx2, int row2, int col2); void euler2qua(double q[4], double euler_angle[3]); void CrossMatrixGet(double element1[3][3], double B[3]); double mtxDet(double* pMtx0, int n); void mtxInv(double* pMtx0, double* pMtx1, int n); void mtxT(double* pMtx0, double* pMtx1, int row, int col); void mtxAdd(double* pMtx0, double* pMtx1, double* pMtx2, int row, int col); void mtxSub(double* pMtx0, double* pMtx1, double* pMtx2, int row, int col); void TransQ(double Q[3][3], double q[4]); double randn(); void MtxJtoOGet(double MtxJtoO[3][3], double orbInfo[6]); void A2q(double q[4], double A[3][3]); int sign(double x); void qua2euler(double euler_angle[3], double q[4], double euler_angle_last[3]); void Fun_Mtx_ECI2LVLH(double* R, double* V, double* Mtx_ECI2LVLH); void FunECI2LVLH(double RLVLH[3], double RVLVLH[6], double RVChaECI[6], double RVTarECI[6]); void VecCross(double* pMtx0, double* pMtx1, double* pMtx2);