#ifndef _GPURTPC_H_
#define _GPURTPC_H_

#include "BaseConstVariable.h"
#include "GPUTool.cuh"
#include <cuda_runtime.h>
#include <device_launch_parameters.h>
#include <cublas_v2.h>
#include <cuComplex.h>


extern "C" struct  CUDASigmaParam {
	float p1;
	float p2;
	float p3;
	float p4;
	float p5;
	float p6;
};

extern "C" void SatelliteAntDirectNormal(float* RstX, float* RstY, float* RstZ, 
	float  antXaxisX, float  antXaxisY, float  antXaxisZ, 
	float  antYaxisX, float  antYaxisY, float  antYaxisZ, 
	float  antZaxisX, float  antZaxisY, float  antZaxisZ, 
	float  antDirectX, float  antDirectY, float  antDirectZ, 
	float* thetaAnt, float* phiAnt, long len);

extern "C" void AntPatternInterpGain(float* anttheta, float* antphi, float* gain, 
	float* antpattern, 
	float starttheta, float startphi, float dtheta, float dphi, int thetapoints, int phipoints,
	long len);

extern "C" void calculationEcho(float* sigma0, float* TransAnt, float* ReciveAnt,
	float* localangle, float* R, float* slopeangle,
	float nearRange, float Fs, float pt, float lamda, long FreqIDmax,
	cuComplex* echoAmp, long* FreqID,
	long len);


extern "C" void CUDAInterpSigma(
	long* demcls, float* sigmaAmp, float* localanglearr, long len,
	CUDASigmaParam* sigma0Paramslist, long sigmaparamslistlen);

#endif



