#ifndef _HEAD_FUNC_H #define _HEAD_FUNC_H #include "iostream" #include "fstream" #include "sstream" #include "string.h" #include "cmath" #include "iomanip" #include "stdio.h" #include "stdlib.h" #include "unistd.h" #include "vector" #include "map" #include "algorithm" #include "ctime" #include "omp.h" #include "random" using namespace std; //数学常量 #define BDL_MAX 1e+30 #define BDL_MIN -1e+30 #define ZERO 1e-20 //物理常量 #define WGS84_PoleRadius 6356752.314//WGS84椭球极半径 #define WGS84_EquatorRadius 6378137.0//WGS84椭球长半径 #define EarthRadius 6371000.0 #define MoonRadius 1738000.0 #define Pi (4.0*atan(1.0)) //宏函数 #define MAX(a,b) (a>b?a:b) #define MIN(a,b) (a _1iArray; typedef vector _1dArray; typedef vector _1sArray; typedef vector > _2iArray; typedef vector > _2dArray; typedef map _i2iMap; struct spoint{ int id = -1; double phi = BDL_MAX, theta = BDL_MAX, rad = BDL_MAX; }; typedef vector spointArray; struct obspoint : spoint{ double val = BDL_MAX, dev = BDL_MAX; }; typedef vector obspointArray; /*************************全局函数********************************/ double sign(double); stringstream str2ss(string); //将string转换为stringstream int open_infile(ifstream&,char*); //测试打开输入文件 如果成功则返回0并输出信息 否则返回1 int open_outfile(ofstream&,char*); //测试打开输出文件 如果成功则返回0并输出信息 否则返回1 double ellipRadius(double,double,double); //计算一个参考椭球或者参考球在指定纬度位置的半径 /*************************球谐系数操作********************************/ //计算伴随勒让德函数递推系数 _2dArray get_Anm_array(int); _2dArray get_Bnm_array(int); #endif