|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "iAlgMath_global.h"
|
|
|
|
|
|
|
|
|
|
|
|
class zxBessel;
|
|
|
|
|
|
|
|
|
|
|
|
// 本类的目的通过单例实现对XML文件解析之后的存储
|
|
|
|
|
|
class I_ALGMATH_EXPORT zxBesselInstance
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
// 获取对象,单例模式
|
|
|
|
|
|
static zxBesselInstance* getInstance();
|
|
|
|
|
|
|
|
|
|
|
|
// 关闭消耗
|
|
|
|
|
|
static void release();
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
zxBesselInstance();
|
|
|
|
|
|
~zxBesselInstance();
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
// 为了方便与MATLAB的统一,再次封装
|
|
|
|
|
|
// which 为0或1,分别对应I0I1K0K1
|
|
|
|
|
|
double besselk(int which, double x, bool* pOk = nullptr);
|
|
|
|
|
|
double besseli(int which, double x, bool* pOk = nullptr);
|
|
|
|
|
|
|
|
|
|
|
|
// 20220717 baiwp,去除积分,改用直接计算的方式(伪积分)
|
|
|
|
|
|
double besselk0_pseu(double x, bool* pOk = nullptr);
|
|
|
|
|
|
|
|
|
|
|
|
// 返回对象体
|
|
|
|
|
|
zxBessel* getBessel();
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
static zxBesselInstance* _instance;
|
|
|
|
|
|
|
|
|
|
|
|
zxBessel* m_pBessel;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#define _bslHelper zxBesselInstance::getInstance()
|
|
|
|
|
|
#define _getBessel zxBesselInstance::getInstance()->getBessel
|
|
|
|
|
|
|
|
|
|
|
|
#define _besselk zxBesselInstance::getInstance()->besselk
|
|
|
|
|
|
#define _besseli zxBesselInstance::getInstance()->besseli
|
|
|
|
|
|
|
|
|
|
|
|
#define _besselI0 zxBesselInstance::getInstance()->getBessel()->besselI0
|
|
|
|
|
|
#define _besselI1 zxBesselInstance::getInstance()->getBessel()->besselI1
|
|
|
|
|
|
#define _besselK0 zxBesselInstance::getInstance()->getBessel()->besselK0
|
|
|
|
|
|
#define _besselK1 zxBesselInstance::getInstance()->getBessel()->besselK1
|
|
|
|
|
|
|
|
|
|
|
|
#define _getbesselI0 zxBesselInstance::getInstance()->getBessel()->getbesselI0
|
|
|
|
|
|
#define _getbesselI1 zxBesselInstance::getInstance()->getBessel()->getbesselI1
|
|
|
|
|
|
#define _getbesselK0 zxBesselInstance::getInstance()->getBessel()->getbesselK0
|
|
|
|
|
|
#define _getbesselK1 zxBesselInstance::getInstance()->getBessel()->getbesselK1
|
|
|
|
|
|
|
|
|
|
|
|
#define _besselk0_pseu zxBesselInstance::getInstance()->besselk0_pseu
|
|
|
|
|
|
|