⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 float.txt

📁 miracl-大数运算库,大家使用有什么问题请多多提意见
💻 TXT
字号:

A new experimental fast multiprecison floating-point module is now available, 
implemented in float.cpp and float.h. The motivation was to speed up the CM 
program fir elliptic curves - see cm.txt

A new C++ class Float is defined, which can be used instead of Flash. The 
main advantage is that it uses asymptotically fast methods. If MR_KCM is 
defined in mirdef.h, then Karatsuba's method is used, otherwise FFT methods 
(see mrfast.c). Karatsuba is faster with precisions up to several thousands of 
words, beyond that the FFT is to be preferred.

A simple example is shown in the file fsample.cpp. Compare with sample.cpp 
which uses Flash arithmetic.

For a more useful example of use see cm.cpp, a fast replacement for the 
original cm.cpp which used Flash arithmetic. To support this application 
modules flpoly.h/.cpp and complex.h/.cpp have also been created, for Float 
polynomials and Complex arithmetic respectively.

There are a few restrictions:-

1) A full width base must be used.
2) The precision of FP arithmetic must be specified by a call to 
   setprecision(n). The precision will be 2^n words. Miracl must be 
   initialised to at least 2^n+2 words per big, either by mirsys(2^n+2,0) or 
   Miracl precision=2^n+2;
3) The basic miracl library must support flash arithmetic - that is MR_FLASH 
   must be defined in mirdef.h
4) Only very basic numeric output is supported. Output attempts to print a 
   decimal, but if the number x is very large or very small it will be output
   as x.2^n.

See float.h for the functions currently implemented.

Note that this class has been designed simply for raw speed. No particular 
care has been taken with respect to rounding errors. The rounding method is 
simple truncation. The last few digits of any calculation are probably in 
error.

A rudimentary Complex class based on Float can be found in complex.h and 
complex.cpp 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -