***** The environment variable FPTAYLOR_BASE is defined = '/home/roki/GIT/FPTaylor'
Loading configuration file: /home/roki/GIT/FPTaylor/default.cfg
FPTaylor, version 0.9.3+dev

Loading: /home/roki/GIT/paf/FPTaylor/Trid3.txt
Processing: trid

*************************************
Taylor form for: rnd32((rnd32((rnd32((rnd32((rnd32((rnd32((rnd32((rnd32((rnd32(x1) - rnd32(1))) * rnd32((rnd32(x1) - rnd32(1))))) + rnd32((rnd32(x2) * rnd32(x1))))) - rnd32((rnd32((rnd32(x2) - rnd32(1))) * rnd32((rnd32(x2) - rnd32(1))))))) + rnd32((rnd32(x3) * rnd32(x2))))) - rnd32((rnd32((rnd32(x3) - rnd32(1))) * rnd32((rnd32(x3) - rnd32(1))))))) + rnd32((rnd32(x4) * rnd32(x3))))) - rnd32((rnd32((rnd32(x4) - rnd32(1))) * rnd32((rnd32(x4) - rnd32(1)))))))

Conservative bound: [-60603.027110, 40201.019205]

Simplified rounding: rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1)))) + rnd32((rnd32(x2) * rnd32(x1))))) - rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x2) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x2) - 1)))))) + rnd32((rnd32(x3) * rnd32(x2))))) - rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x3) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x3) - 1)))))) + rnd32((rnd32(x4) * rnd32(x3))))) - rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x4) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x4) - 1))))))
Building Taylor forms...
Simplifying Taylor forms...
success
v0 = ((((((((x1 - 1) * (x1 - 1)) + (x2 * x1)) - ((x2 - 1) * (x2 - 1))) + (x3 * x2)) - ((x3 - 1) * (x3 - 1))) + (x4 * x3)) - ((x4 - 1) * (x4 - 1)))
-1 (90): exp = -24: (1337006139375617/288230376151711744)
1 (4): exp = -24: ((((x1 - 1) * floor_power2(x1)) + ((x1 - 1) * floor_power2(x1))) + (x2 * floor_power2(x1)))
2 (5): exp = -24: (((x1 - 1) * floor_power2(((x1 - 1) + interval(-3.81469726562500000000e-06, 3.81469726562500000000e-06)))) + ((x1 - 1) * floor_power2(((x1 - 1) + interval(-3.81469726562500000000e-06, 3.81469726562500000000e-06)))))
3 (8): exp = -24: floor_power2((((x1 - 1) * (x1 - 1)) + interval(-1.54113775352016091347e-03, 1.54113775352016091347e-03)))
4 (10): exp = -24: ((((x1 * floor_power2(x2)) + (-(((x2 - 1) * floor_power2(x2))))) + (-(((x2 - 1) * floor_power2(x2))))) + (x3 * floor_power2(x2)))
5 (13): exp = -24: floor_power2(((x2 * x1) + interval(-7.62939467676915228367e-04, 7.62939467676915228367e-04)))
6 (15): exp = -24: floor_power2(((((x1 - 1) * (x1 - 1)) + (x2 * x1)) + interval(-3.28063972119707657552e-03, 3.28063972119707657552e-03)))
7 (21): exp = -24: ((-(((x2 - 1) * floor_power2(((x2 - 1) + interval(-3.81469726562500000000e-06, 3.81469726562500000000e-06)))))) + (-(((x2 - 1) * floor_power2(((x2 - 1) + interval(-3.81469726562500000000e-06, 3.81469726562500000000e-06)))))))
8 (24): exp = -24: (-(floor_power2((((x2 - 1) * (x2 - 1)) + interval(-1.54113775352016091347e-03, 1.54113775352016091347e-03)))))
9 (26): exp = -24: floor_power2((((((x1 - 1) * (x1 - 1)) + (x2 * x1)) - ((x2 - 1) * (x2 - 1))) + interval(-6.28662122471723879003e-03, 6.28662122471723879003e-03)))
10 (28): exp = -24: ((((x2 * floor_power2(x3)) + (-(((x3 - 1) * floor_power2(x3))))) + (-(((x3 - 1) * floor_power2(x3))))) + (x4 * floor_power2(x3)))
11 (31): exp = -24: floor_power2(((x3 * x2) + interval(-7.62939467676915228367e-04, 7.62939467676915228367e-04)))
12 (33): exp = -24: floor_power2(((((((x1 - 1) * (x1 - 1)) + (x2 * x1)) - ((x2 - 1) * (x2 - 1))) + (x3 * x2)) + interval(-8.51440444239415401839e-03, 8.51440444239415401839e-03)))
13 (39): exp = -24: ((-(((x3 - 1) * floor_power2(((x3 - 1) + interval(-3.81469726562500000000e-06, 3.81469726562500000000e-06)))))) + (-(((x3 - 1) * floor_power2(((x3 - 1) + interval(-3.81469726562500000000e-06, 3.81469726562500000000e-06)))))))
14 (42): exp = -24: (-(floor_power2((((x3 - 1) * (x3 - 1)) + interval(-1.54113775352016091347e-03, 1.54113775352016091347e-03)))))
15 (44): exp = -24: floor_power2((((((((x1 - 1) * (x1 - 1)) + (x2 * x1)) - ((x2 - 1) * (x2 - 1))) + (x3 * x2)) - ((x3 - 1) * (x3 - 1))) + interval(-1.15203859459143166666e-02, 1.15203859459143166666e-02)))
16 (46): exp = -24: (((x3 * floor_power2(x4)) + (-(((x4 - 1) * floor_power2(x4))))) + (-(((x4 - 1) * floor_power2(x4)))))
17 (49): exp = -24: floor_power2(((x4 * x3) + interval(-7.62939467676915228367e-04, 7.62939467676915228367e-04)))
18 (51): exp = -24: floor_power2(((((((((x1 - 1) * (x1 - 1)) + (x2 * x1)) - ((x2 - 1) * (x2 - 1))) + (x3 * x2)) - ((x3 - 1) * (x3 - 1))) + (x4 * x3)) + interval(-1.47247316635912336297e-02, 1.47247316635912336297e-02)))
19 (57): exp = -24: ((-(((x4 - 1) * floor_power2(((x4 - 1) + interval(-3.81469726562500000000e-06, 3.81469726562500000000e-06)))))) + (-(((x4 - 1) * floor_power2(((x4 - 1) + interval(-3.81469726562500000000e-06, 3.81469726562500000000e-06)))))))
20 (60): exp = -24: (-(floor_power2((((x4 - 1) * (x4 - 1)) + interval(-1.54113775352016091347e-03, 1.54113775352016091347e-03)))))
21 (62): exp = -24: floor_power2((((((((((x1 - 1) * (x1 - 1)) + (x2 * x1)) - ((x2 - 1) * (x2 - 1))) + (x3 * x2)) - ((x3 - 1) * (x3 - 1))) + (x4 * x3)) - ((x4 - 1) * (x4 - 1))) + interval(-1.87072756671113962779e-02, 1.87072756671113962779e-02)))

Corresponding original subexpressions:
1: rnd32(x1)
2: rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1))
3: rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1))))
4: rnd32(x2)
5: rnd32((rnd32(x2) * rnd32(x1)))
6: rnd[32,ne,1.00,-24,0]((rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1)))) + rnd32((rnd32(x2) * rnd32(x1)))))
7: rnd[32,ne,1.00,-24,0]((rnd32(x2) - 1))
8: rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x2) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x2) - 1))))
9: rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1)))) + rnd32((rnd32(x2) * rnd32(x1))))) - rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x2) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x2) - 1))))))
10: rnd32(x3)
11: rnd32((rnd32(x3) * rnd32(x2)))
12: rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1)))) + rnd32((rnd32(x2) * rnd32(x1))))) - rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x2) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x2) - 1)))))) + rnd32((rnd32(x3) * rnd32(x2)))))
13: rnd[32,ne,1.00,-24,0]((rnd32(x3) - 1))
14: rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x3) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x3) - 1))))
15: rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1)))) + rnd32((rnd32(x2) * rnd32(x1))))) - rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x2) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x2) - 1)))))) + rnd32((rnd32(x3) * rnd32(x2))))) - rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x3) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x3) - 1))))))
16: rnd32(x4)
17: rnd32((rnd32(x4) * rnd32(x3)))
18: rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1)))) + rnd32((rnd32(x2) * rnd32(x1))))) - rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x2) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x2) - 1)))))) + rnd32((rnd32(x3) * rnd32(x2))))) - rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x3) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x3) - 1)))))) + rnd32((rnd32(x4) * rnd32(x3)))))
19: rnd[32,ne,1.00,-24,0]((rnd32(x4) - 1))
20: rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x4) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x4) - 1))))
21: rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd[32,ne,1.00,-24,0]((rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x1) - 1)))) + rnd32((rnd32(x2) * rnd32(x1))))) - rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x2) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x2) - 1)))))) + rnd32((rnd32(x3) * rnd32(x2))))) - rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x3) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x3) - 1)))))) + rnd32((rnd32(x4) * rnd32(x3))))) - rnd32((rnd[32,ne,1.00,-24,0]((rnd32(x4) - 1)) * rnd[32,ne,1.00,-24,0]((rnd32(x4) - 1))))))

bounds: [-5.295893e+04, 1.398168e+04]

Computing absolute errors
-1: exp = -24: 4.638672e-03 (low = 4.638672e-03, subopt = 0.0%)

Solving the exact optimization problem
exact bound (exp = -24): 2.930640e+05 (low = 2.905520e+05, subopt = 0.9%)
total2: 2.764864e-10 (low = 2.764864e-10, subopt = 0.0%)
exact total: 1.746798e-02 (low = 1.731825e-02, subopt = 0.9%)

Computing relative errors
**WARNING**: 
Cannot compute the relative error: values of the function are close to zero

Elapsed time: 4.35965
*************************************

-------------------------------------------------------------------------------
Problem: trid

Optimization lower bounds for error models:
The absolute error model (exact): 1.731824e-2 (0x1.1bbe004cp-6) (suboptimality = 0.9%)

Bounds (without rounding): [-5.295894e+4, 1.398168e+4]
Bounds (floating-point): [-5.295896e+4, 1.398170e+4]

Absolute error (exact): 1.746798e-2 (0x1.1e32004c00001p-6)

Elapsed time: 4.36


