纵轴代表计算的底数的limb长度,横轴为计算的指数。蓝色代表basecase,红色为win2方法。事实上这是个三维散点图的俯视图,z轴为时间,意味着,你看到哪种颜色,即该种算法在该数据点上的用时更长。可以发现,在更短的底数长度下,win2方法几乎一直更优秀,对于较长的底数,win2方法在较短的指数下并没有明显优势。这两点都与我们的预期相符。basecase即朴素的快速幂,对于指数恰好有更多1的情况,表现更糟糕一些(这是相对他自身而言)。下面这幅图更能体现两者的差距:
纵轴代表basecase-win2 除以 win2,这表征了,两者的差距相对大小,我们可以明显看出,在大部分数据上,win2的表现都要更好,且,即使差于basecase,也比没有落后太多。
因此,我们可以基本确定两个算法的主要阈值区间了,对于较短的底数,我们可以毫无负担的使用win2算法,对于更长的底数,当指数较大时,我们也将使用win2。进一步性能测试将会继续。
纵轴代表计算的底数的
limb长度,横轴为计算的指数。蓝色代表basecase,红色为win2方法。事实上这是个三维散点图的俯视图,z轴为时间,意味着,你看到哪种颜色,即该种算法在该数据点上的用时更长。可以发现,在更短的底数长度下,win2方法几乎一直更优秀,对于较长的底数,win2方法在较短的指数下并没有明显优势。这两点都与我们的预期相符。basecase即朴素的快速幂,对于指数恰好有更多1的情况,表现更糟糕一些(这是相对他自身而言)。下面这幅图更能体现两者的差距:纵轴代表
basecase-win2除以win2,这表征了,两者的差距相对大小,我们可以明显看出,在大部分数据上,win2的表现都要更好,且,即使差于basecase,也比没有落后太多。因此,我们可以基本确定两个算法的主要阈值区间了,对于较短的底数,我们可以毫无负担的使用
win2算法,对于更长的底数,当指数较大时,我们也将使用win2。进一步性能测试将会继续。