📄 ccompilecomplex.cls
字号:
End Sub
Public Function GetVersion() As Double ' 获得版本号
GetVersion = cmcx_GetVersion()
End Function
Public Function GetErrorCode() As Integer '返回错误代码号
GetErrorCode = cmcx_GetErrorCode(cmcxHandle)
End Function
Public Function GetExeCodeLength() As Integer '返回编译以后的程序指令区代码长度(字节)
GetExeCodeLength = cmcx_GetExeCodeLength(cmcxHandle)
End Function
Public Function GetExeParameterLength() As Integer '返回编译以后的程序数据区代码长度(字节)
GetExeParameterLength = cmcx_GetExeParameterLength(cmcxHandle)
End Function
Public Function ComplexToStr(ByVal ComplexReal As Double, ByVal ComplexImag As Double) As String
Dim strBuffer As String
strBuffer = String(60, " ")
Call VB_cmcx_ComplexToStr(ComplexReal, ComplexImag, strBuffer, 60)
ComplexToStr = strBuffer
End Function
Public Function StrToComplex(ByVal strValue As String, ByRef ComplexReal As Double, ByRef ComplexImag As Double) As Boolean
StrToComplex = VB_cmcx_StrToComplex(strValue, ComplexReal, ComplexImag)
End Function
Public Function GetCPUCount() As Double '获取当前CPU周期计数(CPU周期数)
GetCPUCount = VB_GetCPUCount()
End Function
' <<< 简要说明和帮助 >>>>
' --------------------------------------------------------------------------
'
' <<详细说明>>:
'
' 0.支持复数函数表达式的编译执行;
'
' 1.支持带复数参数编译,参数默认值为0+0*i;运行前请赋值;
'
' 2.常数可以用科学计数法表示,如: -1.4E-4=-0.00014;
' 系统定义的常量: 圆周率 PI=3.1415926535897932384626433832795...
' 逻辑真 true=1
' 逻辑假 false=0
' 当标识符为e时,系统默认值为 自然数
' 即 e=2.7182818284590452353602874713527...
' 但它和PI,true,false不同,e可以重新赋值, pi,true,false是系统常量,e是用户变量
'
' 3.使用多重括号并不会降低速度,特别是在不容易分清楚计算优先级的时候,请多使用括号;
'
' 4.表达式中函数名和参数名等不区分大小写;关键字中不允许插入空格等字符;
'
' 5.编译的文本长度几乎不受限制(只是受内存和编译时间等系统影响)
'
' 6.利用错误号功能可以将错误描述翻译为其他语言;
'
' 7.允许在表达式中使用注释(CCompileComplex.EnabledNote:=true;),注释写法为:
' 单行注释: 双斜杠// 开始到一行结束(即遇到回车换行符)
' 长段注释: '{'、'}' 或'/*'、'*/' 之间的部分
'
' 8.系统使用的标识符除去下面列出的函数名(包括别名)外还有 :
' 'PI'、'true'、'false'、'TCmCxSYS_IF_?'、'TCmCxSYS_Boolean??'、'TCmCxSYS_Const_*' 和 'TCmCxSYS_Function_i' 等,
' 自定义的标识符名称请不要再次使用它们; (即前缀不能为'TCmCxSYS_')
'
' 9.支持的复数函数:
'
' 这里的实数域为: R' , R'约为 (-1.1E+4932,-3.6E-4951) and [ 0 ] and (+3.6E-4951,+1.1E+4932)
' 当实数属于(+-3.6E-4951,0) 时认为实数等于0
'
' 复数的实部和虚部分别属于以上实数域R'
'
' 以下形参Z,Z1,Z2没有特别指明都属于复数;
' x属于实数(或为复数时虚部为零(不为零时忽略虚部))
' N为整数(N为小数时也进行同样的计算,或为复数时虚部为零(不为零时忽略虚部))
'
' (函数计算的结果和中间结果也不能超出实数域 R')
'
' 算符(函数)名称 书写格式和变量取值范围 说明
'
' + 加法 Z1+Z2 或者: Add(Z1,Z2)
' - 减法 Z1-Z2 或者: Sub(Z1,Z2)
' * 乘法 Z1*Z2 或者: Mul(Z1,Z2)
' / 除法 Z1/Z2 或者: Div(Z1,Z2) ; Z2<>0+0*i
' ^ 指数 Z1^Z2 或者: Power(Z1,Z2)、Z1**Z2 Z1^Z2
' PowerX 指数 PowerX(Z,x) Z^x
' XPower 指数 XPower(x,Z) x^Z
'
' ;复数参加布尔运算时就只考虑复数的实部
' ;比较运算产生的结果为逻辑值(真或假),即结果只可能为1或0
' = 等于 x=y (2=3-1) =true =1
' <> 不等于 x<>y (2<>3-1) =false =0
' < 小于 x<y (2<3) =true
' > 大于 x>y (2>3) =false
' <= 小于等于 x<=y (Abs(Z)>=0) =true
' >= 大于等于 x>=y (3>=PI) =false
'
' ;逻辑运算中 实部0表示 假(false),实部非0会被当作 真(true)来参加逻辑运算
' ;用大写X,Y表示逻辑值 (注意必须写扩号)
' ADD 逻辑与 (X) ADD (Y) (1>2) AND (true)=false
' OR 逻辑或 (X) OR (Y) (false) OR (true)=true
' XOR 逻辑异或 (X) XOR (Y) (true) XOR (true)=false
' NOT 逻辑非 NOT (X) NOT (1)=false
'
' Sqr 平方 Sqr(Z) 注意平方和开方的函数名称
' Sqr2Z 平方+ Sqr2Z(Z) Z^2+Z
' Sqr3 立方 Sqr3(Z)
' Sqr4 四方 Sqr4(Z)
' Sqrt 开方 Sqrt(Z)
' SqrtN 开N次方 SqrtN(Z,N) Z^(1/N)
'
' Exp 自然指数 Exp(Z)
' Ln 自然对数 Ln(Z)
' Log2 2的对数 Log2(Z)
' Log10 10的对数 Log10(Z) 或者: Log(Z)
' LogN N的对数 LogN(N,Z)
'
' Int 取整 Int(Z) 或者: Floor(Z) (向负穷大取整)
' Trunc 截断取整 Trunc(Z) (向零取整)
' Round 四舍五入 Round(Z) (四舍五入取整)
' Ceil 舍入取整 Ceil(Z) (向正穷大取整)
'
' Max 最大值函数 Max(Z1,Z2) (返回复数绝对值最大的复数)
' Min 最小值函数 Min(Z1,Z2) (返回复数绝对值最小的复数)
' MaxX 最大值函数 MaxX(Z1,Z2) (返回实部值最大的复数)
' MinX 最小值函数 MinX(Z1,Z2) (返回实部值最小的复数)
'
' Real 求实部 Real(Z)
' Imag 求虚部 Imag(Z)
' Abs 绝对值 Abs(Z) |Z|
' AbsSqr 绝对值平方 AbsSqr(Z) |Z|^2=x*x+y*y
' Arg 求复角 Arg(Z) 或: Angle(Z) 值属于 -PI~PI
' FromPolar极坐标到复数FromPolar(Z) 参数为极坐标 x=Z.x*Cos(Z.y) ; y:=Z.x*Sin(Z.y) ;
' ToPolar 复数到极坐标ToPolar(Z) x:=Sqrt(Z.x*Z.x+Z.y*Z.y) ; y:=ArcTan2(Z.y,Z.x);
' Conj 求共轭 Conj(Z)
' FLip 虚实交换 FLip(Z)
' Unity 归一化 Unity(Z) Z/|Z|
' Distance 距离 Distance(Z1,Z2) |Z1-Z2|
' Rev 倒数 Rev(Z)
' Sgn 符号函数 Sgn(Z)
' Random 随机函数 Random(Z) 或者:RND(Z)、Rand(Z)
' (要产生真正的随机数,而不是固定随机数序列,请在创建或编译完成后
' 取得表达式值之前调用一次CCompileComplex.SetRandomize();函数。)
'
' Sin 正弦 Sin(Z)
' Cos 余弦 Cos(Z)
' Tan 正切 Tan(Z) 或者: tg(Z)
' ArcSin 反正弦 ArcSin(Z)
' ArcCos 反余弦 ArcCos(Z)
' ArcTan 反正切 ArcTan(Z) 或者: Arctg(Z)
'
' Cot 余切 Cot(Z) 或者: Ctg(Z) Cot(Z)=1/Tan(Z)
' Sec 正割 Sec(Z) Sec(Z)=1/Cos(Z)
' Csc 余割 Csc(Z) Csc(Z)=1/Sin(Z)
' ArcCot 反余切函数 ArcCot(Z) 或者: ArcCtg(Z) ArcCot(Z)=ArcTan(1/Z)
' ArcSec 反正割函数 ArcSec(Z) ArcSec(Z)=ArcCos(1/Z)
' ArcCsc 反余割函数 ArcCsc(Z) ArcCsc(Z)=ArcSin(1/Z)
'
' SinH 双曲正弦 SinH(Z)
' CosH 双曲余弦 CosH(Z)
' TanH 双曲正切 TanH(Z) 或者: tgH(Z)
' ArcSinH 反双曲正弦 ArcSinH(Z)
' ArcCosH 反双曲余弦 ArcCosH(Z)
' ArcTanH 反双曲正切 ArcTanH(Z) 或者: ArctgH(Z)
'
' CotH 双曲余切 CotH(Z) 或者: CtgH(Z)
' SecH 双曲正割 SecH(Z)
' CscH 双曲余割 CscH(Z)
' ArcCotH 反双曲余切函数 ArcCotH(Z) 或者: ArcCtgH(Z)
' ArcSecH 反双曲正割函数 ArcSecH(Z)
' ArcCscH 反双曲余割函数 ArcCscH(Z)
'
' If 条件函数 If(s,r1,r2) If(True,2,3)=2; If(0,2,3)=3;
' (等价于高级语言的: If (s) Then Result:=r1 Else Result:=r2;)
'
' 10. 运算符优先级表:
' 由高到低
' () (包括各种函数)
' ^
' * \ / mod
' + -
' = <> < > <= >=
' AND、OR、XOR(NOT 可以看作函数)
'
' 11. 更强大的功能请参看类的接口函数
'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -