图像缩略图

一个大的小数类

version 1.15 (1.39 MB) by 约翰D 'Errico
高精度浮点算术,在Matlab中写的新类

21下载

更新2018年3月21日

查看许可协议

我经常看到人们要求一种能够提供16位以上精度的工具。MATLAB本身只允许在标准算术中使用双打或单打,所以这是正常的极限。事实是,大多数时候,如果你不能用替身,你就做错了。良好的数值分析实践远比任何高精度的工具更有价值。即便如此,有时您还是需要一些额外的精度。你们中的一些人会想要在巨大的数字沙盒中玩。虽然有些人可能会使用Ben Barrowes编写的工具,但HPF是纯用MATLAB编写的,所以不需要编译。对于你们所有人,不管你们的理由是什么,我提供HPF,一种高精度浮点工具。
事实上,我编写HPF的原因是出于我自己的目的。我想学习使用MATLAB中几年前发布的classdef工具。此外,我还想尝试构建这样一个工具,作为我不久前编写的VPI工具的自然扩展。我想学习一些处理大量数字的技巧。其结果是HPF。
关于HPF如何与用户交互,我已经介绍了一些想法。例如,HPF可以在用户选择的任何小数位数中工作。您可以将位数设置为默认值。因此,如果你想在所有计算中始终使用30个十进制数字,使用2个保护数字,那么在命令提示符处输入:
DefaultNumberOfDigits 30 2
从现在开始,HPF将始终在32位精度的十进制数字中工作,并报告前30位数字,因此内部将使用两个保护数字。例如,
派=高通滤波器(π)
饼=
3.14159265358979323846264338328
经验(饼图-3)
ans =.
1.15210724618790693014572854771
HPF将在下次启动MATLAB时调用此状态。不过,您可以通过指定不同的位数来覆盖默认状态。
HPF('e',12)
ans =.
2.71828182846
我已经将e和pi的值存储为HPF的一部分,精确到500,000位。事实上,这些数字是由HPF本身产生的。
最后,为了速度和效率,HPF以Migits的形式存储所有数字,Migits是十进制数字的集合。这在乘法速度上产生了巨大的好处,因为conv就是为此目的而使用的。我们可以在这里看到:
派。Migits
ans =.
[3141 5926 5358 9793 2384 6264 3383 2795]

好的一点是,Migits的使用对大多数用户来说是透明的。但是,如果你想在你的倍数中获得更多的速度,那么你可以通过输入以下命令来提高速度:

defaultdecimalbase 6.

从现在开始,HPF将在内部使用100万migts,我称之为6- migts。唯一的问题是,您将被限制使用超过36000个十进制数字。速度是有代价的。

HPF的另一个很好的使用是提取MATLAB用于存储自己数字的确切十进制形式。例如,Matlab在输入像1.23等类似的内部时,Matlab在内部存储了什么数字?

高通滤波器(1.23,55岁)
ans =.
1.229999999999999982236431605997495353221893310546875000

HPF现在是完整的吗?当然不是。HPF目前代表了近7000行MATLAB代码,以数十种方法的形式提供给类。事实上,在几年的时间里,你会发现我工作了数百个小时。但我还没有写大量可能对某些人有用的东西。例如:根,eig, chol, det, rank,反斜杠,gamma等。HPF不支持复数。金宝app即便如此,我希望有些人会发现这是有用的,即使只是为了学习一些我在其建筑中使用的技巧。其中一些技巧在HPF.pdf中有描述。

例如,乘法最好由conv在MATLAB中完成。但是除法需要更多的工作,所以这里我使用一个牛顿格式,它只使用加法和乘法,并且是二次收敛的。类似的技巧也适用于平方根。

或者,研究我的指数函数如何工作。在这里,我使用了一些技巧来提高指数系列的收敛速度。当然,有明显的范围减少技巧,但我已经在那里走了一步。我还采用了不同的方式对指数(以及正弦和余弦系列)进行求和最小化分割。

人们对高功率滤波器的方法进行了大量的思考和研究。这些想法被记录在HPFMod.pdf文件中,由Derek O’connor增强。非常感谢。pdf也是一种手册,对于那些想要真正理解这个工具的人来说。

HPF可能永远不会成为我认为的最终形式,因为我确信还有一些bug没有被发现。尽管如此,在我执行的数千个测试中,该工具运行得相当好。对于那些尝试HPF并发现bug的人,请给我发邮件,我将立即修复它。

引用作为

约翰D 'Errico(2020)。一个大的小数类(//www.tatmou.com/matlabcentral/fileexchange/36534-hpf-a-big-decimal-class), MATLAB中央文件交换。检索

意见及评分(53

理查德

谢谢你,约翰!

Bug报告——我在mod(hpf(-1),1), ceil(hpf(1))和floor(hpf(-1))中遇到错误

托托

嗨,约翰。我非常喜欢高频(和vpi)。我注意到,
HPF(' - 1',[16 0])+ HPF(' - 1E-20',[16 0])
给出ans = 1。你能告诉我为什么这个符号变了吗?

Cemil Kozkurt

Srighakollapu瓦里米

你好,我想知道我是否可以将hpf值传递给其他函数,这些函数是否可以返回hpf值?

Luis Mendo

约翰D 'Errico

请注意,如果您尝试表格找到fabio

高通滤波器(1/3)

MATLAB首先创建1/3为双精度。然后将结果传递给HPF。这失败,因为1/3已经损坏垃圾超过16位左右。法比奥发现,

Fabio Sacchi.

对,我找到了方式....(:-)
F =高通滤波器(' 1 ',100)/ 3
F =
0.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333

Fabio Sacchi.

ops,此比率的结果:
高通滤波器(1/3)
是这样的:
ans = 0.3333333333333333148296162562473909929394721984863281250000000000
当然有一个解释,但是....这是错误的! !
我可以用其他方式使用hpf吗(最好更精确)

埃里希

幂函数不处理负整数指数。我没有像David Verrelli那样创建一个新函数,而是修改了hpf中的幂函数。m(从第4807行开始)(所有引用变量yneg的代码都是我添加的)

% y是小的整数
如果isa (y,高通滤波器)
% y足够小,可以安全地转换为打火石
y =双(y);
结尾

yneg = false;
如果y < 0
y=-y;
yneg = true;
结尾

% y是一个整数,但不是0、1或inf或nan
所以把y转换成二进制,通过重复的平方形成x的幂
ybin=dec2bin(y)='1';

如果ybin(结束)
结果=高通滤波器(x, NDig);
别的
结果=hpf('1',NDig);
结尾
xsq=x*x;
对于i=(numel(ybin)-1):-1:1
如果ybin(i)
结果=结果。* XSQ;
结尾
如果>是1
xsq = xsq。* xsq;
结尾
结尾
如果yneg
Result = 1 ./ Result;
结尾
结尾

末端%函数功率

约瑟夫·柯克

嗨,约翰,这次投稿太棒了!伟大的工作!

我可能在第2997行发现了一个bug:
k=查找(D~=0,'1','last');
应该是
k = find(D ~= 0,1,'最后');

Libor Seda

大卫Verrelli

一个附加函数,保存为savehpf.m,以将一个hpf数据阵列保存到选项卡分隔的文本文件中。肯定会改善这一点,例如包括逗号分隔变量(CSV)的选项。
~~~~~~~~~~

%输出HPF数组数据到ASCII文件
%相当于
%save(outfile,varname,'-ascii',' - double',' - tabs')
%输入参数:
%Outfile输出文件名(以及,可选地,路径)
% arrayHPF变量数组(不超过二维)
%输出变量:
%Res Boolean函数成功标志

%魏瑞利(MQ), 2016-02-21

函数res = saveHPF(outFile, arrayHPF)
res=假;

FID = FOPEN(外汇,'W');

numRows = size(arrayHPF, 1);
for row = 1: numRows
numCols = size(arrayHPF, 2);
for col = 1: numCols
如果col〜= numcols,
fprintf(fid, ' '%s\t', num2str(arrayHPF(row, col))); / /输出
别的
fprintf(fid, '%s\r\n', num2str(arrayHPF(row, col))); / /设置数组
结束;
结束;
结束;

fclose(fid);

res = true;
结尾

~~~~~~~~~~
(许可证:CC)

大卫Verrelli

另一个功能,保存为powerHPF。m对允许为负指数的HPF参数执行逐个元素的指数运算。很可能还有进一步改善的空间。
~~~~~~~~~~

%计算指数y可能为负的HPF参数的元素级功率
%魏瑞利(MQ), 2016-02-21

函数结果= powerHPF(x,y)

numX=长度(x(:);
numY =长度(y (:));

numEls=最大值(numX,numY);

%结果= nan * hpf(0 (numEls, 1));
结果= hpf(nan(numEls, 1));
for i = 1: numEls
如果numX==1,
elsX = 1;
别的
elsX =我;
结束;

如果numY == 1,
elsY = 1;
别的
elsY =我;
结束;

xVal = x (elsX);
yVal = y (elsY);

如果yVal < 0,
结果(i) = 1 / (xVal ^ -yVal);
别的
result (i) = xVal ^ yVal;
结束;
结束;

如果numX > 1,
结果=重塑(结果,大小(x));
elseif numY > 1,
结果=重塑(结果,大小(y));
结束;

结尾

~~~~~~~~~~
(许可证:CC)

大卫Verrelli

在HPF.M中的EPS函数的代码中显然存在一个小错误

大约在1587行,我相信这个命令
d(i)= eps(x(i));
应修改为
D (i) =每股收益(X (i));

大卫Verrelli

这是一个非常有用和广泛的贡献。它比我预期的更容易使用,因为它是作为一个类实现的。

与任何重大项目一样,有机会添加更多功能;也可能有几个不会影响大多数用户的小错误。我将在此处的单独评论中扩展这些点。
-DIV

Eneru Y

我遇到了fprintf, norm(), ecc的问题。:“函数没有为‘hpf’输入定义。”

约翰D 'Errico

肖恩,

我承认,将HPF扩展到复杂平面将是一个好主意。我想如果我从头开始这样写的话,复杂HPF将是我今天的选择。几秒钟前,我曾想过我可以简单地在上面扩展一个新类。然而,有太多地方的代码需要updated,然后仔细测试,等等。例如,SQRT或LOG,它们都明确捕获负输入。

可悲的是,我承认我花了也许至少一半人年编写这套代码(然后几个人像在几年重写它,因为我写了整个工具箱三次,有三个微妙不同的实现决定我觉得是最好的实现。)我担心的是,我将被迫在一年的时间里投入另一大部分时间,选择在复杂的飞机上稳健稳定的算法,然后测试所有算法。贝塞尔函数也有一些有趣的特点。

所以,我真的很抱歉,虽然我非常喜欢写HPF,但我不能再写了。我将听从下一个希望编写类似HPF的工具版本的人的建议。欢迎任何希望这样做的人使用HPF的任何和所有内容,以及在我的实现中使用的任何想法。

好约翰
我已经想玩一阵子了

我也支持……
贝塞尔/复杂方法

但是,如果你什么都不做,5颗星

约翰D 'Errico

对不起,现在不行。我没有在HPF中实现贝塞尔函数,除非只有正Z,否则贝塞尔函数会得到复数结果。由于我没有实现HPF的复杂版本,这也将是一个问题。

埃里克·迪亚兹

有没有办法让这个式子适用于特殊的贝塞利函数?

约翰D 'Errico

我修复了这个问题,并发布了修复,我确定。我知道我把它修好了。

但是,可以想到我犯了一个错误,并且没有正确更新文件,或者您可能正在使用旧版本。同样,近期FEX有一个问题,其中我上传的文件没有得到妥善发布,所以可能是他们的错。:)

所以我刚刚上传了当前版本。正如我刚才测试的那样,您的示例应该给出正确的结果。

Hpf (-1, [20 0]) + Hpf (-1e-21, [20 0])
ans =.
-1

丹尼斯Grebenkov

亲爱的约翰,
谢谢你的代码!正如斯蒂芬·卢卡斯指出的那样,我有着同样的符号转换问题:命令
> hpf(-1, [20 0]) + hpf(-1e-21, [20 0])
返回+1,而不是-1。
我有什么可以做的吗?

最好的问候,
丹尼斯

PS:对复数运算的扩展将会很棒……

约翰D 'Errico

你好埃里克,

它应该是:

倒数=倒数(hpf(den,结果(1).位数));

我会把补丁贴出来。

v = 1:5;
d =高通滤波器(23日17);

诉/ d
ans =.
HPF大小阵列:1 5
|1,1| 0.043478260869565217
| 1 2 | 0.086956521739130435
| 3 | 0.13043478260869565
1 | 4 | 0.17391304347826087
|1,5| 0.21739130434782609

埃里克·本克勒

亲爱的约翰,
在hpf的5061行,我收到一个错误消息(不恰当的索引矩阵引用。)m,当用双类型向量Nx1除以标量hpf时:
倒数=倒数(hpf(den,num(1).NumberOfDigits));%这不应该是结果(1)而不是num(1),或者只是倒数(den)吗?

最好的问候,
埃里克

埃里克·本克勒

斯蒂芬·卢卡斯

我可爱的贡献,但我有一个我没有得到预期结果的例子。考虑:
a=hpf('0.1');b=hpf('1e-400');c=b-a,d=b-a
在默认精度(64 4),由于圆形OFF,我会期待(并且想要!)两种情况下的答案为-0.1。但MATLAB返回0.1,而不是-0.1。
如果我用b=hpf('1e-50')就得到了正确答案。

路易kovalevsky

泰国诉黄平君

谢谢你的快速回复。不幸的是,今天我仍然无法从官方下载中获得更新版本。你能把它寄给我吗?非常感谢。

约翰D 'Errico

是的,这确实是一个错误,现在是固定的。我现在上传了一个新版本(今天出现我希望。)

所以随着新版本的发布,100位精度…

exp(高通滤波器(-2.22222222222222222222222222 e - 137, 100))
ans =.
1

在200位数字中,我们看到了和1的微小差别,正如预期的那样。

exp(高通滤波器(-2.22222222222222222222222222 e - 137, 200))
ans =.
0.99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999997777777777777777777777777780000000000000000000000000000000000000

此版本添加了一个新的玩具:RAT功能,用于HPF。因此,对于PI的100位理性分数近似值......

[N,D]=大鼠(hpf('pi',100),hpf('1e-101'))
n =
394372834342725903069943709807632345074473102456264
D =
125532772013612015195543173729505082616186012726141

N / D
ans =.
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068

高通滤波器(“π”,100年)
ans =.
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068

泰国诉黄平君

你好约翰,
你能帮我检查一下下面表达式的结果吗。我在Linux Mint 13 Maya x64中得到了-1。也许这是一只虫子?谢谢

exp(高通滤波器(-2.22222222222222222222222222 e - 137))

邵阳

亚当

非常感谢。

约翰D 'Errico

亚当,

我会给你10到1个(或更多)你有太老的Matlab释放来使用它。对不起,但它是使用2012年的编写的,它使用该发布的一些功能。您获得的错误与您从旧版本中所看到的内容一致。

你需要升级你的MATLAB版本。

约翰

亚当

亲爱的约翰D 'Errico

我下载了你的程序,但当我告诉MatLab计算以下行时:
派=高通滤波器(π)
我得到错误与下一个消息:
文件:高通滤波器。m行:863列:9
表达式或语句不正确——可能是不平衡的(、{或[。

我不知道问题出在哪里。我完全按照你在ReadMe.rtf文件中写的做了。你有什么想法吗?

谢谢你的回复。

约翰D 'Errico

拉杰-你没在听我说。HPF不能与MATLAB版本的FZERO一起使用。这是行不通的。我需要重写FZERO来实现这一点,而我从来没有这样做过。我之前说过。

为什么您希望找到不存在的代码的演示?

这并不是说不可能重写FZERO,而是说我没有选择这样做。

拉吉拉吉

嗨,约翰,
谢谢你花时间回复。

然而,在你的文件"hpf_demo。,我找不到任何演示使用FZERO与HPF。

你指的是这份文件吗?

约翰D 'Errico

嗨拉吉,

问题在于fzero,它明确测试其参数,以查看它是一个双重,而不是像HPF这样的浮点数字类。实际上,Fzero甚至无法在单个输入上运行。

f = @sin;
fzero (f,高通滤波器(50))
使用fzero时出错(第128行)
FZERO只接受double类型的输入。

为了使它工作,我需要编写重载的FZERO,或者TMW需要允许FZERO接受非双输入的起始值。

(注意,如果我提供了重载的fzero,那么您尝试调用fzero的方式将不起作用,因为MATLAB将始终使用基础版本。为了调用重载操作符,需要传入正确类的变量。请参阅我尝试使用FZERO进行HPF输入的示例案例。)

拉吉拉吉

这里可能是我遇到的申请:

f1 = @ (x) ((5 * x + 7)) +高通滤波器(9 * 10 ^ 15 + 6 * 10 ^ 6)
fzero (f1, [0.00])

拉吉拉吉

嗨,约翰,

我们能在f0中使用这个函数吗?下面是测试用例:

f1 = @ (x)高通滤波器(5 * x + 7)
f2 = @(x)(5 * x + 7)

fzero (f2, [0.00])
fzero (f1, [0.00])

感谢你的回应。

谢谢!

约翰D 'Errico

嗨,山崎,

看起来你有一些误解。您需要欣赏的是Matlab如何使用数字作为解释语言。还有当涉及不同类时的任务如何工作。

首先,当你这样做的时候。。。

V =乐趣(1 + 2.3);

这里Matlab执行操作1 + 2.3,作为双倍。结果将是3.3(大约),但这将是一个双重的。然后该结果被传递给函数乐趣。这里有趣可能是任何功能,包括对HPF的调用,创建HPF号码。

这同样适用于……

V =高通滤波器(1.4);

MATLAB FIRST取数字1.4。它将其存储为double。请注意,1.4并不完全可以作为double类型存储。实际上,1.4在MATLAB中的表示是…

X=hpf(1.4)
X =
1.399999999999999911182158029987476766109466552734375000000000000

记住,在MATLAB中,数字是以二进制形式存储的。如果你真的想要1.4,你需要这样做

x = HPF('1.4')
X =
1.4

这里X正好是1.4,以小数形式存储在HPF中。

当你做类似于

1.4 +高通滤波器(1)

这里1是一个整数,因此HPF能够将该精确值存储为整数1的HPF版本。但是,再加上1.4,记住MATLAB是一种解释语言。同样的,MATLAB也有一个问题,因为MATLAB把1.4看成一个双倍数,只有到那时它才意识到它必须把这个数加到一个HPF数上。

1.4 +高通滤波器(1)
ans =.
2.399999999999999911182158029987476766109466552734375000000000000

所以这工作正常:

高通滤波器(1.4)+ 1
ans =.
2.4

2.4确实是内部确切的陈述。

接下来,您会遇到另一个问题,因为如果变量E已经作为double存在。看看这里发生了什么:

E = 0(1、2);
E(1) =高通滤波器(“1.4”)
E =
1.4 0

谁E
Name Size Bytes类属性
e1x2 16双

E是双人的。它不是HPF号码。事实上,E并没有精确地表示为1.4。因此,如果我再看一下为E存储的值,它是错误的数字,而不是真正的十进制1.4。由于E已经存在,并且您选择将HPF值插入E的第一个元素,所以MATLAB决定将其转换回双精度。

高通滤波器(E (1))
ans =.
HPF元素:(1,1)
1.399999999999999911182158029987476766109466552734375000000000000

在你的最后一个例子中,我不知道你做了什么。我的猜测是你迷茫,并没有真正拥有你展示我的东西。

同样,您必须小心MATLAB对您正在处理的数字所做的工作。这些都是我在设计高功率滤波器时完全无法控制的。请记住,MATLAB是一种类似于其他编程语言的语言(但不同于我们在电影中看到的语言)。它有严格的规则来决定你传递给它什么,它不能知道你想让它做的不是你告诉它做的。

Yamasani拉胡尔

你好约翰
我被一个严重的问题困扰着。HPF在正常情况下正常工作,但当试图存储我的数字在一个数组,它是四舍五入的数字

例如:E=1.4+hpf(0.0022311223344556)
> > E = 1.402233112233445566
但是,如果
E(1) = 1.4 +高通滤波器(0.002233112233445566)
> > E () = 1.4
请帮我

约翰D 'Errico

我已经尽可能快地编写了这个工具,实际上,为了在速度和性能上取得最好的妥协,我使用了3种不同的基本方案来编写整个工具。这是最好的选择。

当您处理足够大的数字时,将DefaultDecimalBase设置为6可能会有所帮助,尽管对于只有100位左右的小数字来说差别不大。

Yamasani拉胡尔

这是非凡的
但是这个工具的处理太慢了

德里克。奥康纳

这真是太棒了。我希望我在教数值算法的时候有HPF。

下面是我用来测试所有这些包的一些函数:

function cond1SSH = TestSSH;
在海面高度问题上测试John D’errico的HPF。
欲了解更多信息,请参见:http://www.scribd.com/doc/26135665/

%下载数据http://www.derekroconnor.net/na/notes/etaana.dat
%(纯文本文件),然后导入到SSHData.mat
德里克·奥康纳2012年9月10日

加载('SSHData.mat');

[m, n] =大小(SSHData);n = max (m, n);

d=20:30时
shpc=总和(hpf(SSHData,d));
shpc disp ([shpc.NumberOfDigits(1)。Migits shpc.Exponent]);
结尾

cond1SSH=n*sum(abs(SSHData))/abs(sum(SSHData));
DISP(['条件数据数:']);DISP(COND1SSH);

函数z =剩余(d);

测试John D’errico的高频脉冲
德里克·奥康纳2012年9月10日

x =高通滤波器(77617,d);% d =要使用的位数
y =高通滤波器(33096,d);

z=(33375/100)*y^6+x^2*(11*x^2*y^2-y^6-121*y^4-2)+(55/10)*y^8+x/(2*y);
%正确答案:z = -54767/66192

功能z = judd(d)
测试John D’errico的高频脉冲
德里克·奥康纳2012年9月10日

x =高通滤波器(192119201,d);% d =要使用的位数
y =高通滤波器(35675640,d);
z =(1682 * x * y ^ 4 + 3 * x ^ 3 + 29 * x * y ^ 2 - 2 * x ^ 5 + 832)/ 107751;
%正确答案:z = 1783

乔纳森

这是优秀的!我的代码需要更精确的计算。我下载了你的高频电波课程。完全不需要修改代码,只需要修改输入参数的类,我的回归测试就能正常工作。像这样的课程应该是这样的。

谢谢!

杰夫

大卫·威尔逊

约翰D 'Errico

嗨,迈克尔,

这并不是要真正替代VPI,因为VPI工具完全集中于大整数。在HPF中,你会发现我没有给你工具去分解整数,或者检验质数,模逆,模根,或者一个powermod函数。

在这里,我将重点放在数值方法上,因此我提供了三角函数、指数、对数、erf等的计算。HPF可能用于绕过双精度浮点数的动态范围限制,或者用于迫切希望在给定数字中工作的人。对于学生来说,这似乎是一个学习数学精度问题的好工具。此外,我发现当我们将数字表示为IEEE 754 double时,HPF在显示MATLAB存储的内容时非常有用。(我自己版本的工具,如num2strexact,不需要编译。)它是一个很好的工具来测试一个算法,以确定一个问题是否由于缺乏数值精度。我甚至听说过一个版本的chol将运行HPF数字。

总的来说,我希望HPF的大多数用户最多使用30到50位左右的数字,除了那些喜欢在巨大的数字沙箱中玩的人。

至于VPI,我计划提供一个新版本来提供减速带。(当我这样做的时候,我想尝试一些二次筛选分解方案来更新因子。)我一直在思考我是否应该保留旧的VPI,对于那些使用旧版本MATLAB的用户来说。

顺便说一下,VPI的减速带可以来自两个来源之一。例如,我可以将VPI重写为现有Big Integer工具的包装类。当我写HPF时,我看到了这样一个问题。(事实上,我用三个不同的版本编写了HPF,选择了migit版本,因为它运行得最快。)或者,理论上我可以编写新的VPI版本来使用migits,就像现在使用HPF一样。微量的问题是,它们对尾数长度不变的数字很有效。

问题是可以用migits操作的数字的大小是有限制的,整数算术可能导致整数增长到任意大。因此,我将被迫将migits的规模限制在相当小的范围内。因此,使用3-migits,可以生成多达数亿个十进制数字的整数。在可以想象的未来,这肯定是足够的,但也许有一天它可能是一个限制。(有些人总是想挑战任何计算工具的极限。)

最后,VPI的混合版本比我的HPF实现更简单(也更高效),因为它不会被迫以固定的位数工作。在处理纯整数时,不需要保护数字。(migital是一个词吗?我想现在是了。)

我愿意接受人们在这些问题上提出的任何建议。现在投票。

约翰

迈克尔

John,你能否向现有的VPI用户评论一下,这是否是VPI的正式继承者,以及我们是否/何时应该进行切换?

彼得

和往常一样,约翰做得很好

更新

1.15

修复wen将数字解析为“nnn”形式的字符串的错误。

1.14.0.0

修复字符串解析错误

1.13.0.0

重新发布一个修复问题的版本:

Hpf (-1, [20 0]) + Hpf (-1e-21, [20 0])

1.13.0.0

重新上传,删除虚假产品列出的要求。下载188bet金宝搏

1.13.0.0

固定划分问题

1.12.0.0.

修复√6

1.11.0.0

标记为工具箱

1.10.0.0

修复了exp中的错误(其实际上是由于加上的错误,所以也是固定的。)
增加了rat和int2str函数。

1.9.0.0

小bug修复。Tan(0)固定,cot和cot加起来。文档更新。

1.8.0.0

这个版本修复了一个bug。它还修复了一个非常大的指数的错误。最后,我将指数字段更改为int64,因此现在允许使用相当大的指数。

1.7.0.0

修正了最后的修正,以修复底部的标志。

1.6.0.0

Fix plus -由Djordje Petrovic找到

1.5.0.0.

固定的eq.m,添加HPFmod2

1.4.0.0

进一步更新HPF pdf文件

1.3.0.0.

新的。pdf文件由Derek O'Connor提供。

1.2.0.0

添加静态方法,1,0,eye, 10。一些小的文档更改。

1.1.0.0

许多维修和更新-移动高频。M进入@hpf,使新方法可以轻松添加。

MATLAB版本兼容性
创建R2012a
与任何版本兼容
平台的兼容性
窗户 马科斯 Linux.
类别

HighPrecisionFloat / html /