📄 ccompilecomplex.h
字号:
//设置随机函数Random()的初始种子值
void SetRandomize(int RandomSeed);
//是否允许使用注释 (默认false)
void SetEnabledNote(bool Value);
//是否要优化常数浮点除法运算 (默认true)
void SetEnabledOptimizeDiv(bool Value);
//是否要优化堆栈 (默认true)
void SetEnabledOptimizeStack(bool Value);
//是否要优化常数运算 (默认true)
void SetEnabledOptimizeConst(bool Value);
// 获得版本号
static double GetVersion();
//返回错误代码号
int GetErrorCode();
//返回编译以后的程序指令区代码长度(字节)
int GetExeCodeLength();
//返回编译以后的程序数据区代码长度(字节)
int GetExeParameterLength();
};
/*
(*
<<详细说明>>:
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. 更强大的功能请参看类的接口函数
*/
#endif // !defined(HSS_CCOMPILECOMPLEX_H__39855E25_8C8B_4800_ACF7_D2199F6B3276__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -