RasterProcessTool/GF3CalibrationAndOrthLib/GF3CalibrationGeoCodingFunC...

73 lines
2.2 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#ifndef __GF3CALIBRATIONGEOCODINGFUNCUDA__H__
#define __GF3CALIBRATIONGEOCODINGFUNCUDA__H__
#include "gf3calibrationandorthlib_global.h"
#include "BaseConstVariable.h"
#include "GPUTool.cuh"
#include <cuda_runtime.h>
#include <device_launch_parameters.h>
#include <cublas_v2.h>
#include <cuComplex.h>
/** 核函数 *********************************************************************************************************************/
/// <summary>
/// 计算极化转换系数float
/// </summary>
/// <param name="inangle">入射角</param>
/// <param name="alpha">转换参数</param>
/// <returns></returns>
extern __device__ __host__ float Computrer_polartionConver_rpol_f(float inangle, float alpha = 1);
/// <summary>
/// 计算极化转换系数 (double)
/// </summary>
/// <param name="inangle">入射角</param>
/// <param name="alpha">转换参数</param>
/// <returns></returns>
extern __device__ __host__ double Computrer_polartionConver_rpol_d(double inangle, double alpha = 1);
/// <summary>
/// 后向散射系数变换函数
/// </summary>
/// <param name="insig">sigma0 (dB)</param>
/// <param name="inangle">入射角 (度)</param>
/// <param name="alpha">默认1基尔霍夫模型0.6为汤姆森</param>
/// <param name="isvv">true表示输入为VVfalse为HH</param>
/// <returns></returns>
extern __host__ __device__ double polartionConver_d(double insig, double inangle, double alpha = 1.0, bool isvv = true);
/// <summary>
/// 后向散射系数变换函数
/// </summary>
/// <param name="insig">sigma0 (dB)</param>
/// <param name="inangle">入射角 (度)</param>
/// <param name="alpha">默认1基尔霍夫模型0.6为汤姆森</param>
/// <param name="isvv">true表示输入为VVfalse为HH</param>
/// <returns></returns>
extern __host__ __device__ float polartionConver_f(float insig, float inangle, float alpha = 1.0, bool isvv = true);
/** 对外调用函数部分 ******************************************************************************************************************************/
extern "C" void GPUComputePolarizationConver_f(
float* insig, float* inangle, float* alpha,
bool isvv, int count,
float* outsig
);
extern "C" void GPUComputePolarizationConver_d(
double* insig, double* inangle, double* alpha,
bool isvv, int count,
double* outsig
);
#endif