有点惊讶 :)我想我应该分享并提出一个非反问的问题。 - 页 21

 
Renat:

很容易从一个失败的声明跳到另一个。

当你有一个具有有理数据类型 的处理器,当另一组SSExxx命令可以比double更快地处理它们时,那么你就可以把有理数带到关于加快计算速度的讨论中。当你发表用不同方法计算SMA的测试,并显示赢了一倍以上,那么它将是一个实践的演讲。

同时,原来关于通过改用整数来加速实际数学计算的说法已经失败。

你说什么?我没有跳过任何东西。如果你只读了一半的内容。唉。关于有理数,我已经说了大约20次。但直到我指出这是分数,没有人理解。:)我告诉你,这很荒唐。唉。:(


:)失败了--我说的是整数和点的概念,而点永远是分母。13000分,如果一个点等于10000 - 那么数值就是=13000/10000=1.3 :)

 
Academic:

你在做什么?我没有跳过任何地方。如果你只读了一半的内容。我很抱歉。我已经跟你说过二十次关于合理的蓄水池的事了。但直到我指出这是分数,没有人理解。:)我告诉你,这很荒唐。唉。:(


:)失败了--我说的是整数和点的概念,而点永远是分母。13000分,如果一个点等于10000 - 那么数值就是=13000/10000=1.3 :)

你建议处理三个8字节的长条(整数部分+分母+分子)而不是8字节的双数。而如果你开始把长线切成短线,你会在相当充分的计算中得到溢出。

即使是三个ints,那些也不只一次了。

 
Urain:
你建议处理三个8字节的长条(整数部分+分母+分子)而不是8字节的双数。如果你开始把长线切成短线,你会在相当充分的计算中得到溢出的结果。

你选择了最糟糕的方式来实现它。鉴于你告诉我的情况,这并不符合事实。我们中的哪一个更了解?

有一个以公里为单位的数字--它是int32 而且它不需要其他东西。你只是不必把它与另一个维度的数值相加。:)如果你想要比千米更精确的数据,就去找纳米。:)并将其作为一个整数来存储。:)

 

TheXpert:

其次,我非常怀疑用双数进行算术会比用有理数进行算术慢。

Wapchet的速度较慢。但他给我们提供了错误的链接。

1.BOOST中的实现在每次操作时都会对其进行标准化处理。这不一定要在每一个人身上做,因为这很昂贵。最好是在分母溢出的真正威胁下才这样做。

2.还原到一个共同的分母(更确切地说,计算最大的公除数)不是由最快的算法在那里完成的。到目前为止,它的速度更快。

经过纠正,他对有理数的速度是正确的。

如果有算术运算 重载的话,我就会在mql中设置它们。如果没有它,我的语法将非常乏味(功能),所以忘了它吧......С++ :-)

--

但是,如果在处理器层面有支持,那就真的很酷了......

 
MetaDriver:

Wapchetta的速度较慢。只是他给出的链接是错误的。

1.在BOOST中的实现是在对数字的每一次操作中对其进行标准化。你不必对每一个人都这样做,因为这很昂贵。最好是在分母溢出的真正威胁下才这样做。

2.还原到一个共同的分母(更确切地说,计算最大的公除数)不是由最快的算法在那里完成的。到目前为止,有一个更快的。

话虽如此,他对比率的速度是正确的。

如果有算术运算 重载的话,我就会在mql中设置它们。但如果没有它,我会得到非常乏味的语法(功能),所以忘了它吧...С++ :-)

--

但是,如果在CPU层面有支持,那就真的很酷了......

算术本身比较慢,因为我们仍然要处理浮点(这是如果我们比较纯双数和长数的算术),如果我们把双数转换成整数算术,我们就会失去。仅仅是重复性的NOD计算就需要log(N)操作,更不用说每一次乘法操作都需要如果检查溢出。然后再进行4次除法(两次除以NOD,提取整数部分和小数余数)。

除此之外,你还需要分配更多的内存来存储这些乱七八糟的东西,而不是你所需要的。

 
MetaDriver:

Wapchet的速度较慢。只有他引用的链接是不幸的。

证明?在我眼里,你当然比原作者更有权威性,但这是一个强有力的声明。

因此,我希望看到比较性的测试。

 
Urain:

算术本身比较慢,因为它仍然要处理浮点(如果你比较纯双数和长数的算术,那就是如此)。

1. 如果你把双数转换为整数运算,你就输了。

2. 仅仅是重复性的NOD计算就需要log(N)操作,更不用说

3. 每个乘法运算都需要如果检查溢出。

4. 然后再进行4次除法(两次除以NOD并提取整数部分和小数余数)。

5. 另外,在这一切之上,你仍然需要分配更多的内存来存储所有这些废话,而不是采取所需的。

1.这是对每一次拍摄的一次性操作。损失不大,那么收益就很稳固。:)我假设原始商是经过一次对数处理,并转换为整数表示。

2.这是对的。虽然它的速度很快,因为有一个快速的算法,使用比特移位。

3.不超过溢出的检查。

4.整数部分根本不需要分配。分数作为一对长条存储,如果可能的话,作为一对英特存储。

5.如果存储为一对长条,则数量完全相同,如果有足够的英特,则数量为一半(这取决于算法的要求)。

如果我们考虑到主要的内存消费者是一个报价,那么用整数表示,空间上的收益是不可否认的。

虽然主要观点不是在节省内存,而是在加速。这是更重要的。

--

院士的问题不在于他是错的。是他让别人看错了。

这就是刺激在场的人,拒绝健康的想法......伴随着肮脏的水...:(

 
TheXpert:

因此,我希望看到比较性测试。

我会试一试的。在mql5上,如果到了那一步...:)

我只是需要一些时间。我将不得不写一个图书馆。

 
MetaDriver:

我会试一试的。在mql5中,如果涉及到这个问题...:)

为了什么?接受C++。

MetaDriver

这位学者的问题不在于他是错的。是他让别人看错了。

问题是他认为自己比别人更聪明,并不断试图让别人出丑。

而他搞砸了。在一些地方,很多。

 
MetaDriver:

这位学者的问题不在于他是错的。是他让别人看起来不对。

这就是刺激在场的人,拒绝健康的想法......。伴随着肮脏的水...:(

我没有进入任何人的头脑。但我是倒置的。:)谁一直在打电话咨询 "我是否应该顺应主题"?:)

然后,我是一个人的人,是一个人的人......:)好吧,不要来找我。

这有什么区别? 有什么可讨论的?IMHO - 一切都保持在原来的胚胎水平。所以我没有任何问题--就像我不存在一样。:)