#ifndef __NRVECTS_H__ #define __NRVECTS_H__ #ifdef __cplusplus extern "C" { #endif #include #include /* removed #include "nr.h" #include "nrutil.h" */ #include "little-nr.h" #include "io_RT.h" typedef double * NRVectP ; typedef double ** NRMatrix33P ; typedef double AllocateNRVect3[4] ; int LargestElementIndex (NRVectP v, int N) ; void PermuteEigenValsVecsSoLargestLast (NRVectP EigenVals, NRMatrix33P EigenVecs) ; void CyclicPermuteVecMat (NRVectP EigenVals, NRMatrix33P EigenVecs) ; NRVectP CopyNRVect3_1to2 (NRVectP from, NRVectP to) ; void RotateXYZby1(NRMatrix33P R, NRVectP x, NRVectP y, NRVectP z, int n) ; void TranslateXYZby1(NRVectP v, NRVectP x, NRVectP y, NRVectP z, int n) ; NRMatrix33P NR_CalcI33(NRMatrix33P C, NRVectP x, NRVectP y, NRVectP z, int n) ; NRMatrix33P NR_CalcCovarMat33(NRMatrix33P C, NRVectP x, NRVectP y, NRVectP z, int n) ; void DiagMatrix33 (NRMatrix33P Cd, NRVectP Eigenvalues, NRMatrix33P Eigenvectors) ; double * VectTranslate_1by2 (double *v, double * u) ; double * VectRotate_1by2 (double * u, double ** R) ; NRMatrix33P Rot_ZtoU_YtoZxV(NRVectP u1, NRVectP u2, NRVectP v1, NRVectP v2) ; NRMatrix33P IdentityMatrix(NRMatrix33P R) ; void NR_SimpPrintMat33 (NRMatrix33P M) ; double ** NR_mkrotmat(NRMatrix33P M, NRVectP v, double t) ; double NRVect_Covar(NRVectP v, NRVectP u, int n) ; double NRVect_Mean(NRVectP v, int n) ; double NRVect_SumSq(NRVectP v, int n) ; void NRVect_Print(NRVectP v, int n) ; NRVectP NR_perp_dir_1eq2x3(NRVectP prod,NRVectP v1, NRVectP v2) ; NRVectP NR_cross_1eq2x3(NRVectP prod, NRVectP v1, NRVectP v2) ; NRVectP NR_Normalize (NRVectP v) ; /* For all nr routines I will use ROT[row][col] */ NRMatrix33P NR_MakeMat1WithVect234(NRMatrix33P M, NRVectP v1, NRVectP v2, NRVectP v3) ; double NR_length(NRVectP v) ; double NR_dotprod(NRVectP u, NRVectP v) ; double NR_dotprod(NRVectP u, NRVectP v) ; NRVectP NR_GetXYZVector(NRVectP M, FILE * stream, char * string, char * TheDefault) ; double ** Transpose(double ** M) ; double * VectSub_1is2minus3 (double *w, double * u, double * v) ; double * VectRotate_1is2times3 (double * v, double ** R, double * u) ; #ifdef __cplusplus } #endif #endif /* !__NRVECTS_H__ */