Кіріспе
C кітапханасы, кез келген дәлдіктегі үзіліс нүктелік арифметика үшін.
GNU көп дәлдікті үзіліс нүктелік сенімді кітапханасы (GNU MPFR) – GNU Multi Precision кітапханасы негізінде дұрыс дөңгелектеумен кез келген дәлдіктегі екілік үзіліс нүктелік есептеулерді жүзеге асыруға арналған GNU портативті C кітапханасы.
Кітапхана
MPFR есептеулері тиімді әрі жақсы анықталған семантикаға ие: функциялар барлық мүмкін операндар бойынша толыққанды сипатталған және нәтижелер платформаға тәуелді емес. Бұл ANSI/IEEE 754 стандартының белгілі бір дәлдіктегі қозғалмалы нүктелі арифметикаға (әсіресе дұрыс дөңгелектеу және қателіктер) қатысты идеяларын көшіру арқылы іске асырылады. Оның негізгі мүмкіндіктері: Арнайы сандарды қолдау: таңбаланған нөлдер (+0 және −0), шексіздіктер және сан емес (бір ғана NaN қолдау көрсетіледі: MPFR тыныш NaN және сигналдық NaN арасындағы айырмашылықты ажыратпайды). Әр санның өзіндік дәлдігі бар (биттермен, өйткені MPFR 2-ші радиксті пайдаланады). Қозғалмалы нүктелі нәтижелер мақсатты айнымалының дәлдігіне сәйкес бес қолдау көрсетілетін дөңгелектеу режимінің бірінде дұрыс дөңгелектеумен есептеледі (IEEE 754 1985-тен төртін қоса алғанда). Қолдау көрсетілетін функциялар: MPFR C99-дан барлық математикалық функцияларды және басқа да кең таралған математикалық функцияларды жүзеге асырады: табиғи, 2-ші және 10-дық негіздегі логарифм және экспонента, log(1+x) және exp(x)−1 функциялары (log1p және expm1), алты тригонометриялық және гиперболалық функциялар және олардың кері функциялары, гамма, зета және қателік функциялары, арифметикалық-геометриялық орташа, қуат (xy) функциясы. Барлық функциялар толық диапазонында дұрыс дөңгелектеумен есептеледі. Кішкентай сандар (subnormal numbers) қолдау көрсетілмейді, бірақ mpfr subnormalize функциясымен имитациялануы мүмкін. MPFR программаның немесе өрнектің барлық сандарының дәлдігін қадағалай алмайды; бұл оның мақсаты емес. Arb, MPFI сияқты интервалдық арифметикалық пакеттер немесе MPFR негізінде құрылған iRRAM сияқты нақты RAM жүзеге асырулары пайдаланушы үшін мұны істей алады. MPFR GNU Multiple Precision Arithmetic Library (GMP) кітапханасына тәуелді. MPFR GNU Compiler Collection (GCC) құрастыру үшін қажет. MPFR басқа да бағдарламалық жасақтамалармен қолданылады, мысалы ALGLIB, CGAL, FLINT, GNOME Calculator, Julia тілінің жүзеге асырылуы, Magma компьютерлік алгебра жүйесі, Maple, GNU MPC және GNU Octave.
Support for special numbers: signed zeros (+0 and −0), infinities and not a number (a single NaN is supported: MPFR does not differentiate between quiet NaNs and signaling NaNs). Each number has its own precision (in bits since MPFR uses radix 2). The floating point results are correctly rounded to the precision of the target variable, in one of the five supported rounding modes (including the four from IEEE 754 1985). Supported functions: MPFR implements all mathematical functions from C99 and other usual mathematical functions: the logarithm and exponential in natural base, base 2 and base 10, the log(1+x) and exp(x)−1 functions (log1p and expm1), the six trigonometric and hyperbolic functions and their inverses, the gamma, zeta and error functions, the arithmetic–geometric mean, the power (xy) function. All those functions are correctly rounded over their complete range. Subnormal numbers are not supported, but can be emulated with the mpfr subnormalize function. MPFR is not able to track the accuracy of numbers in a whole program or expression; this is not its goal. Interval arithmetic packages like Arb, MPFI, or Real RAM implementations like iRRAM, which may be based on MPFR, can do that for the user. MPFR is dependent upon the GNU Multiple Precision Arithmetic Library (GMP). MPFR is needed to build the GNU Compiler Collection (GCC). Other software uses MPFR, such as ALGLIB, CGAL, FLINT, GNOME Calculator, the Julia language implementation, the Magma computer algebra system, Maple, GNU MPC, and GNU Octave.