1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
program printf_example;
{$mode objfpc}{$H+}
uses
math, gmp;
const
N = 2;
NBITS = 100;
var
f: mpf_t;
bits, digits: integer;
begin
mpf_init2(f, NBITS);
bits := mpf_get_prec(f);
digits := floor(bits * LOG_10_2);
mpf_sqrt_ui(f, N);
mp_printf('Sqrt(%d) to %d digits (%d bits) = %.*Fg'#10, N, digits, bits, digits, @f);
mpf_pow_ui(f, f, 2);
mp_printf('Squared back = %.*Fg'#10, digits, @f);
mpf_sub_ui(f, f, N);
mp_printf('Minus %d = %.*Fg'#10, N, digits, @f);
mpf_clear(f);
end.
|