2024-03-27 升级说明
-----------------------------------
修订:多fmarray参数函数当fmarray维度不匹配扩展维度时的问题。
说明:修正复数FMarray不同维矩阵进行计算产生的异常。
-----------------------------------
修订:jdbc驱动jar包对sqlserver支持的更新问题。
说明:修正jdbc包在sqlserver支持上的异常问题。
-----------------------------------
升级:为更好地支持TSNETDB及符号计算等特殊应用,并对GPU、NPU等扩展计算提供基础支撑,升级如下:
在原有算符重载以及TS-SQL重载的基础之上,TSL对象现新增二进制函数重载的支持,例如重载abs/sin/cos等。
说明:本次升级既支持二进制类用C等语言扩展重载对象的函数(为GPU/NPU等计算提供支撑),也支持TSL开发而成的类重载二进制函数的支持。
对于TSL开发的对象,支持用类方法实现,方法前使用和算法重载一样的operator前缀,参数个数和原始被重载的二进制函数一致。
同时也支持用对象成员函数实现,参数个数比原始被重载的二进制函数少1个,会以第一个参数的对象实例调用该成员函数。
重载二进制函数模式,支持变参,例如trystrtoint等具有变参返回的函数。
下面为TSL类重载二进制函数的具体案例:
c:=new c();
echo abs(c),"\r\n";
echo roundto(c,-2),"\r\n";
echo "ret=",trystrtoint(c,i)," i=",i,"\r\n";
echo strtoint(c),"\r\n";
echo class(c).strtoint(c),"\r\n"; //operator方法依旧允许被直接调用
type c=class
fa;
fb;
public
function create();
begin
fa:=-1111.135;
fb:="2345";
end;
function operator abs(); //单参数的abs成员方法无参数
begin
return ::abs(fa);
end;
function operator roundto(pr); //两个参数的roundto成员方法只需要一个参数
begin
echo "abs:",self.abs(),"\r\n"; //在函数中调用和二进制同名函数需使用self.
return ::roundto(fa,pr); //::明确调用全局方法
end;
function operator trystrtoint(v);//重载支持变参返回v
begin
return ::trystrtoint(fb,v);
end;
class function operator strtoint(v);//重载支持类方法保持和原始函数定义的参数一致
begin
return ::strtoint(v.fb);
end;
end;