2019-09-05 12:22:21 +08:00
|
|
|
|
#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"
|
2019-09-12 18:55:37 +08:00
|
|
|
|
//#include "unistd.h"
|
2019-09-05 12:22:21 +08:00
|
|
|
|
#include "vector"
|
|
|
|
|
#include "map"
|
|
|
|
|
#include "algorithm"
|
|
|
|
|
#include "ctime"
|
|
|
|
|
#include "omp.h"
|
|
|
|
|
#include "random"
|
|
|
|
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
2019-09-12 18:55:37 +08:00
|
|
|
|
//<2F><>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>
|
|
|
|
|
#define BDL_MAX 1e+30 ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
#define BDL_MIN -1e+30 ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ
|
|
|
|
|
#define PRECISION 16 ///< <20><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫʹ<D2AA>õ<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
#define ZERO 1e-16 ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
2019-09-05 12:22:21 +08:00
|
|
|
|
|
2019-09-12 18:55:37 +08:00
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define Pi (4.0*atan(1.0)) ///< Բ<><D4B2><EFBFBD><EFBFBD>
|
|
|
|
|
#define G0 6.67408e-3 ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>e-11<31><31><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD>λת<CEBB><D7AA><EFBFBD><EFBFBD>ȡά<C8A1>ȵ<EFBFBD>λΪm<CEAA><6D><EFBFBD>ܶȵ<DCB6>λΪg/cm^3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>G0<47><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ΪmGal
|
|
|
|
|
#define T0 5.0e+4 ///< <20>شų<D8B4>ƽ<EFBFBD><C6BD>ǿ<EFBFBD><C7BF>
|
|
|
|
|
//<2F>꺯<EFBFBD><EABAAF>
|
|
|
|
|
#define MAX(a,b) (a>b?a:b) ///< <20><><EFBFBD><EFBFBD>a<EFBFBD><61>b<EFBFBD><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
#define MIN(a,b) (a<b?a:b) ///< <20><><EFBFBD><EFBFBD>a<EFBFBD><61>b<EFBFBD><62><EFBFBD><EFBFBD>Сֵ
|
|
|
|
|
#define SetToBox(a,b,in) (MAX(a,MIN(b,in))) ///< <20><><EFBFBD><EFBFBD>a<EFBFBD><61>b֮<62><D6AE><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>in<69><6E>a<EFBFBD><61>b֮<62><D6AE><EFBFBD><EFBFBD>ֱ<EFBFBD>ӷ<EFBFBD><D3B7>أ<EFBFBD><D8A3><EFBFBD><EFBFBD>ؽϽ<D8BD><CFBD>ı߽<C4B1>ֵ
|
|
|
|
|
//<2F>ն<EFBFBD><D5B6><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>Ʒ<EFBFBD>
|
|
|
|
|
#define BOLDRED "\033[1m\033[31m" ///< <20><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ɫ<EFBFBD>Ӵ<EFBFBD>
|
|
|
|
|
#define BOLDGREEN "\033[1m\033[32m" ///< <20><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ɫ<EFBFBD>Ӵ<EFBFBD>
|
|
|
|
|
#define BOLDYELLOW "\033[1m\033[33m" ///< <20><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ɫ<EFBFBD>Ӵ<EFBFBD>
|
|
|
|
|
#define BOLDBLUE "\033[1m\033[34m" ///< <20><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ɫ<EFBFBD>Ӵ<EFBFBD>
|
|
|
|
|
#define UNDERLINE "\033[1m\033[4m" ///< <20><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD>ַ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>»<EFBFBD><C2BB><EFBFBD>
|
|
|
|
|
#define RESET "\033[0m" ///< <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define MOVEUP(x) printf("\033[%dA", (x)) ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ųx<C5B2><78>
|
|
|
|
|
#define MOVEDOWN(x) printf("\033[%dB", (x)) ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78>
|
|
|
|
|
#define MOVELEFT(x) printf("\033[%dD", (x)) ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD>ַ<EFBFBD>
|
|
|
|
|
#define MOVERIGHT(x) printf("\033[%dC", (x)) ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD>ַ<EFBFBD>
|
|
|
|
|
#define MOVETO(y,x) printf("\033[%d;%dH", (y), (x)) ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>y<EFBFBD>ַ<EFBFBD>,<2C><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>x<EFBFBD>ַ<EFBFBD>
|
|
|
|
|
#define CLEARLINE "\033[K" ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define CLEARALL "\033[2J" ///< <20><><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>ݽṹ
|
|
|
|
|
typedef vector<int> _1iArray; ///< <20><><EFBFBD><EFBFBD>һά<D2BB><CEAC><EFBFBD><EFBFBD>
|
|
|
|
|
typedef vector<double> _1dArray; ///< ˫<><CBAB><EFBFBD>ȸ<EFBFBD><C8B8><EFBFBD>һά<D2BB><CEAC><EFBFBD><EFBFBD>
|
|
|
|
|
typedef vector<string> _1sArray; ///< <20>ַ<EFBFBD><D6B7><EFBFBD>һά<D2BB><CEAC><EFBFBD><EFBFBD>
|
|
|
|
|
typedef vector<vector<int> > _2iArray; ///< <20><><EFBFBD>θ<EFBFBD><CEB8><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD>
|
|
|
|
|
typedef vector<vector<double> > _2dArray; ///< ˫<><CBAB><EFBFBD>ȸ<EFBFBD><C8B8><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD>
|
|
|
|
|
typedef map<int,int> _int2intMap; ///< <20><><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>ε<EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
//ģ<>Ϳ<EFBFBD><CDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2019-09-05 12:22:21 +08:00
|
|
|
|
struct modelist{
|
|
|
|
|
char mod_type[1024];
|
|
|
|
|
char val_type[1024];
|
|
|
|
|
char mod_para[1024];
|
|
|
|
|
double mod_value;
|
|
|
|
|
};
|
|
|
|
|
typedef vector<modelist> modelistArray;
|
2019-09-12 18:55:37 +08:00
|
|
|
|
//ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
|
2019-09-05 12:22:21 +08:00
|
|
|
|
struct cpoint{
|
|
|
|
|
int id = -1;
|
|
|
|
|
double x = BDL_MAX; double y = BDL_MAX; double z = BDL_MAX;
|
|
|
|
|
};
|
|
|
|
|
typedef vector<cpoint> cpointArray;
|
|
|
|
|
typedef map<string,cpoint> _str2pointMap;
|
2019-09-12 18:55:37 +08:00
|
|
|
|
//<2F>۲<EFBFBD><DBB2><EFBFBD>
|
2019-09-05 12:22:21 +08:00
|
|
|
|
struct obspoint : public cpoint{
|
|
|
|
|
double val = BDL_MAX; double dev = BDL_MAX;
|
|
|
|
|
};
|
|
|
|
|
typedef vector<obspoint> obspointArray;
|
2019-09-12 18:55:37 +08:00
|
|
|
|
//<2F><><EFBFBD><EFBFBD>
|
2019-09-05 12:22:21 +08:00
|
|
|
|
struct cube{
|
|
|
|
|
cpoint cen;
|
|
|
|
|
int ids[8] = {-1,-1,-1,-1,-1,-1,-1,-1};
|
|
|
|
|
double dx = BDL_MAX; double dy = BDL_MAX; double dz = BDL_MAX;
|
|
|
|
|
};
|
|
|
|
|
typedef vector<cube> cubeArray;
|
2019-09-12 18:55:37 +08:00
|
|
|
|
/*************************<2A><><EFBFBD>ݽṹ<DDBD><E1B9B9><EFBFBD><EFBFBD>********************************/
|
|
|
|
|
cpoint operator -(cpoint,cpoint); //ʸ<><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
double modCpoint(cpoint); //ʸ<><CAB8>ģ
|
|
|
|
|
/*************************ȫ<>ֺ<EFBFBD><D6BA><EFBFBD>********************************/
|
|
|
|
|
double arctg(double); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>atan<61><6E><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>atan <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>atan+pi
|
|
|
|
|
stringstream str2ss(string); //<2F><>stringת<67><D7AA>Ϊstringstream
|
|
|
|
|
string cpoint_id(cpoint); //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>cpoint<6E><74>λ<EFBFBD><CEBB>id
|
|
|
|
|
int open_infile(ifstream&,char*); //<2F><><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD>1
|
|
|
|
|
int open_outfile(ofstream&,char*); //<2F><><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD>1
|
|
|
|
|
double grid_interpolate(double,double,double,double,double,double,double,double,double,double); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
2019-09-05 12:22:21 +08:00
|
|
|
|
#endif
|