Numeric.AD.Rank1.Halley:findZero from ad-4.2.4

Time bar (total: 12.7s)

analyze3.0s (23.3%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%199.6%-99.6%0%0%0%1
0%0%399.2%-299.2%0%0%0%2
0%0%798.4%-698.4%0%0%0%3
0%0%1596.9%-1496.9%0%0%0%4
0%0%3193.8%-3093.8%0%0%0%5
0%0%6387.5%-6287.5%0%0%0%6
0%0%12775%-12675%0%0%0%7
0%0%25550%-25450%0%0%0%8
0%0%51100.1%-51000.1%0%0%0%9
0%0%102200.1%-102100.1%0%0%0%10
0%0%204400.3%-204300.3%0%0%0%11
0%0%408800.6%-408700.6%0%0%0%12
Compiler

Compiled 22 to 15 computations (31.8% saved)

sample7.7s (61%)

Results
2.3s3142×body2048valid
2.2s2223×body8192exit
1.6s1911×body4096valid
808.0ms1294×body1024valid
503.0ms1445×body256valid
383.0ms464×body512valid
Bogosity

preprocess77.0ms (0.6%)

Algorithm
egg-herbie
Rules
1254×div-sub
1204×sub-neg
840×fma-def
706×associate-/r/
600×neg-mul-1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
070559
1224537
2568527
32080459
46584459
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 x (/.f64 (*.f64 (*.f64 y 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 y t))))
(-.f64 (neg.f64 x) (/.f64 (*.f64 (*.f64 y 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 y t))))
(-.f64 x (/.f64 (*.f64 (*.f64 (neg.f64 y) 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 (neg.f64 y) t))))
(-.f64 x (/.f64 (*.f64 (*.f64 y 2) (neg.f64 z)) (-.f64 (*.f64 (*.f64 (neg.f64 z) 2) (neg.f64 z)) (*.f64 y t))))
(-.f64 x (/.f64 (*.f64 (*.f64 y 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 y (neg.f64 t)))))
(-.f64 y (/.f64 (*.f64 (*.f64 x 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 x t))))
(-.f64 z (/.f64 (*.f64 (*.f64 y 2) x) (-.f64 (*.f64 (*.f64 x 2) x) (*.f64 y t))))
(-.f64 t (/.f64 (*.f64 (*.f64 y 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 y x))))
(-.f64 x (/.f64 (*.f64 (*.f64 z 2) y) (-.f64 (*.f64 (*.f64 y 2) y) (*.f64 z t))))
(-.f64 x (/.f64 (*.f64 (*.f64 t 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 t y))))
(-.f64 x (/.f64 (*.f64 (*.f64 y 2) t) (-.f64 (*.f64 (*.f64 t 2) t) (*.f64 y z))))
Outputs
(-.f64 x (/.f64 (*.f64 (*.f64 y 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 y t))))
(-.f64 x (/.f64 (*.f64 y 2) (/.f64 (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 y t)) z)))
(+.f64 x (/.f64 (*.f64 y -2) (/.f64 (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 y t)) z)))
(+.f64 x (*.f64 (/.f64 (*.f64 y -2) (fma.f64 2 (*.f64 z z) (neg.f64 (*.f64 y t)))) z))
(fma.f64 (/.f64 y (+.f64 (*.f64 z -2) (*.f64 (/.f64 t z) y))) 2 x)
(-.f64 (neg.f64 x) (/.f64 (*.f64 (*.f64 y 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 y t))))
(-.f64 (neg.f64 x) (/.f64 (*.f64 y 2) (/.f64 (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 y t)) z)))
(fma.f64 -1 x (/.f64 (*.f64 y -2) (/.f64 (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 y t)) z)))
(-.f64 (*.f64 (/.f64 (*.f64 y -2) (fma.f64 2 (*.f64 z z) (neg.f64 (*.f64 y t)))) z) x)
(-.f64 (*.f64 y (/.f64 2 (+.f64 (*.f64 z -2) (*.f64 (/.f64 t z) y)))) x)
(-.f64 x (/.f64 (*.f64 (*.f64 (neg.f64 y) 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 (neg.f64 y) t))))
(-.f64 x (/.f64 (*.f64 z (neg.f64 (*.f64 y 2))) (+.f64 (*.f64 z (*.f64 2 z)) (*.f64 y t))))
(-.f64 x (*.f64 (/.f64 (*.f64 y -2) (fma.f64 z (*.f64 2 z) (*.f64 y t))) z))
(+.f64 x (*.f64 (/.f64 y (fma.f64 y t (*.f64 2 (*.f64 z z)))) (*.f64 2 z)))
(fma.f64 (/.f64 y (+.f64 (*.f64 2 z) (*.f64 (/.f64 t z) y))) 2 x)
(-.f64 x (/.f64 (*.f64 (*.f64 y 2) (neg.f64 z)) (-.f64 (*.f64 (*.f64 (neg.f64 z) 2) (neg.f64 z)) (*.f64 y t))))
(-.f64 x (/.f64 (*.f64 y 2) (/.f64 (fma.f64 (*.f64 2 (neg.f64 z)) (neg.f64 z) (*.f64 t (neg.f64 y))) (neg.f64 z))))
(-.f64 x (/.f64 y (/.f64 (fma.f64 (neg.f64 z) (*.f64 z -2) (*.f64 t (neg.f64 y))) (*.f64 z -2))))
(-.f64 x (*.f64 (/.f64 (*.f64 y -2) (fma.f64 2 (*.f64 z z) (neg.f64 (*.f64 y t)))) z))
(fma.f64 (/.f64 y (-.f64 (*.f64 2 z) (*.f64 (/.f64 t z) y))) 2 x)
(-.f64 x (/.f64 (*.f64 (*.f64 y 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 y (neg.f64 t)))))
(-.f64 x (/.f64 (*.f64 y (*.f64 2 z)) (+.f64 (*.f64 z (*.f64 2 z)) (*.f64 y t))))
(+.f64 x (*.f64 (/.f64 (*.f64 y -2) (fma.f64 z (*.f64 2 z) (*.f64 y t))) z))
(fma.f64 (/.f64 (*.f64 y -2) (fma.f64 y t (*.f64 2 (*.f64 z z)))) z x)
(fma.f64 z (/.f64 (*.f64 y -2) (fma.f64 y t (*.f64 2 (*.f64 z z)))) x)
(-.f64 y (/.f64 (*.f64 (*.f64 x 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 x t))))
(-.f64 y (/.f64 (*.f64 x 2) (/.f64 (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 x t)) z)))
(-.f64 y (/.f64 x (/.f64 (/.f64 (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 x t)) z) 2)))
(+.f64 y (/.f64 (*.f64 z (*.f64 x -2)) (-.f64 (*.f64 2 (*.f64 z z)) (*.f64 x t))))
(+.f64 y (*.f64 (/.f64 x (-.f64 (*.f64 2 z) (*.f64 (/.f64 t z) x))) -2))
(-.f64 z (/.f64 (*.f64 (*.f64 y 2) x) (-.f64 (*.f64 (*.f64 x 2) x) (*.f64 y t))))
(-.f64 z (/.f64 (*.f64 y 2) (/.f64 (-.f64 (*.f64 x (*.f64 x 2)) (*.f64 y t)) x)))
(-.f64 z (/.f64 x (/.f64 (-.f64 (*.f64 x (*.f64 x 2)) (*.f64 y t)) (*.f64 y 2))))
(+.f64 z (*.f64 (/.f64 (*.f64 y -2) (-.f64 (*.f64 x (*.f64 x 2)) (*.f64 y t))) x))
(+.f64 z (*.f64 (/.f64 y (-.f64 (*.f64 x 2) (/.f64 t (/.f64 x y)))) -2))
(-.f64 t (/.f64 (*.f64 (*.f64 y 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 y x))))
(-.f64 t (/.f64 (*.f64 y (*.f64 2 z)) (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 x y))))
(+.f64 t (/.f64 (*.f64 y -2) (/.f64 (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 x y)) z)))
(+.f64 t (/.f64 (*.f64 y -2) (/.f64 (-.f64 (*.f64 2 (*.f64 z z)) (*.f64 x y)) z)))
(+.f64 t (*.f64 (/.f64 y (-.f64 (*.f64 2 z) (*.f64 (/.f64 y z) x))) -2))
(-.f64 x (/.f64 (*.f64 (*.f64 z 2) y) (-.f64 (*.f64 (*.f64 y 2) y) (*.f64 z t))))
(-.f64 x (/.f64 (*.f64 y (*.f64 2 z)) (-.f64 (*.f64 y (*.f64 y 2)) (*.f64 z t))))
(+.f64 x (/.f64 (*.f64 y (*.f64 z -2)) (-.f64 (*.f64 2 (*.f64 y y)) (*.f64 z t))))
(+.f64 x (*.f64 (/.f64 (*.f64 z -2) (fma.f64 y (*.f64 y 2) (*.f64 t (neg.f64 z)))) y))
(+.f64 x (*.f64 (/.f64 z (-.f64 (*.f64 y 2) (*.f64 z (/.f64 t y)))) -2))
(-.f64 x (/.f64 (*.f64 (*.f64 t 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 t y))))
(-.f64 x (/.f64 (*.f64 t (*.f64 2 z)) (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 y t))))
(-.f64 x (/.f64 (*.f64 (*.f64 2 z) t) (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 y t))))
(-.f64 x (*.f64 (/.f64 z (fma.f64 2 (*.f64 z z) (neg.f64 (*.f64 y t)))) (*.f64 2 t)))
(+.f64 x (*.f64 (/.f64 t (-.f64 (*.f64 2 z) (*.f64 (/.f64 t z) y))) -2))
(-.f64 x (/.f64 (*.f64 (*.f64 y 2) t) (-.f64 (*.f64 (*.f64 t 2) t) (*.f64 y z))))
(-.f64 x (/.f64 (*.f64 y 2) (/.f64 (-.f64 (*.f64 t (*.f64 2 t)) (*.f64 y z)) t)))
(+.f64 x (/.f64 (*.f64 y -2) (/.f64 (-.f64 (*.f64 2 (*.f64 t t)) (*.f64 y z)) t)))
(-.f64 x (/.f64 2 (/.f64 (-.f64 (*.f64 2 t) (*.f64 (/.f64 z t) y)) y)))
Compiler

Compiled 25 to 18 computations (28% saved)

simplify68.0ms (0.5%)

Algorithm
egg-herbie
Rules
994×*-commutative
944×div-sub
886×cancel-sign-sub-inv
858×sub-neg
852×associate-*l/
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01549
13549
27949
319743
455637
5151237
6382737
7744837
Stop Event
node limit
Counts
1 → 8
Calls
Call 1
Inputs
(-.f64 x (/.f64 (*.f64 (*.f64 y 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 y t))))
Outputs
(-.f64 x (/.f64 (*.f64 (*.f64 y 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 y t))))
(-.f64 x (/.f64 (*.f64 y 2) (/.f64 (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 y t)) z)))
(-.f64 x (/.f64 (*.f64 y 2) (/.f64 (fma.f64 z (*.f64 2 z) (*.f64 y (neg.f64 t))) z)))
(+.f64 x (*.f64 (/.f64 (*.f64 y -2) (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 y t))) z))
(-.f64 x (*.f64 2 (/.f64 y (-.f64 (/.f64 z 1/2) (*.f64 (/.f64 t z) y)))))
(-.f64 x (/.f64 z (fma.f64 z (/.f64 z y) (/.f64 (neg.f64 t) 2))))
(+.f64 x (/.f64 -2 (-.f64 (*.f64 z (/.f64 2 y)) (/.f64 t z))))
(-.f64 x (/.f64 y (fma.f64 (/.f64 y z) (/.f64 (neg.f64 t) 2) z)))

eval2.0ms (0%)

Compiler

Compiled 126 to 70 computations (44.4% saved)

prune5.0ms (0%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New448
Fresh101
Picked000
Done000
Total549
Accurracy
100.0%
Counts
9 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
94.0%
(-.f64 x (/.f64 (*.f64 y 2) (/.f64 (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 y t)) z)))
98.7%
(-.f64 x (/.f64 z (fma.f64 z (/.f64 z y) (/.f64 (neg.f64 t) 2))))
99.2%
(-.f64 x (*.f64 2 (/.f64 y (-.f64 (/.f64 z 1/2) (*.f64 (/.f64 t z) y)))))
99.9%
(+.f64 x (/.f64 -2 (-.f64 (*.f64 z (/.f64 2 y)) (/.f64 t z))))
94.0%
(-.f64 x (/.f64 (*.f64 y 2) (/.f64 (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 y t)) z)))
98.7%
(-.f64 x (/.f64 z (fma.f64 z (/.f64 z y) (/.f64 (neg.f64 t) 2))))
99.2%
(-.f64 x (*.f64 2 (/.f64 y (-.f64 (/.f64 z 1/2) (*.f64 (/.f64 t z) y)))))
99.9%
(+.f64 x (/.f64 -2 (-.f64 (*.f64 z (/.f64 2 y)) (/.f64 t z))))
Compiler

Compiled 148 to 100 computations (32.4% saved)

localize1.6s (12.3%)

Compiler

Compiled 238 to 107 computations (55% saved)

eval0.0ms (0%)

Compiler

Compiled 4 to 4 computations (0% saved)

prune4.0ms (0%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New000
Fresh000
Picked044
Done000
Total044
Accurracy
100.0%
Counts
4 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
94.0%
(-.f64 x (/.f64 (*.f64 y 2) (/.f64 (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 y t)) z)))
98.7%
(-.f64 x (/.f64 z (fma.f64 z (/.f64 z y) (/.f64 (neg.f64 t) 2))))
99.2%
(-.f64 x (*.f64 2 (/.f64 y (-.f64 (/.f64 z 1/2) (*.f64 (/.f64 t z) y)))))
99.9%
(+.f64 x (/.f64 -2 (-.f64 (*.f64 z (/.f64 2 y)) (/.f64 t z))))
Compiler

Compiled 153 to 96 computations (37.3% saved)

regimes38.0ms (0.3%)

Accuracy

Total -5.8b remaining (-7794.5%)

Threshold costs -5.8b (-7794.5%)

Counts
5 → 1
Calls
Call 1
Inputs
(+.f64 x (/.f64 -2 (-.f64 (*.f64 z (/.f64 2 y)) (/.f64 t z))))
(-.f64 x (*.f64 2 (/.f64 y (-.f64 (/.f64 z 1/2) (*.f64 (/.f64 t z) y)))))
(-.f64 x (/.f64 (*.f64 y 2) (/.f64 (-.f64 (*.f64 z (*.f64 2 z)) (*.f64 y t)) z)))
(-.f64 x (/.f64 (*.f64 (*.f64 y 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 y t))))
(-.f64 x (/.f64 z (fma.f64 z (/.f64 z y) (/.f64 (neg.f64 t) 2))))
Outputs
(+.f64 x (/.f64 -2 (-.f64 (*.f64 z (/.f64 2 y)) (/.f64 t z))))
Calls

6 calls:

11.0ms
(/.f64 (*.f64 (*.f64 y 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 y t)))
8.0ms
y
5.0ms
(-.f64 x (/.f64 (*.f64 (*.f64 y 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 y t))))
4.0ms
x
4.0ms
z
Results
AccuracySegmentsBranch
99.9%1x
99.9%1y
99.9%1z
99.9%1t
99.9%1(-.f64 x (/.f64 (*.f64 (*.f64 y 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 y t))))
99.9%1(/.f64 (*.f64 (*.f64 y 2) z) (-.f64 (*.f64 (*.f64 z 2) z) (*.f64 y t)))
Compiler

Compiled 139 to 89 computations (36% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative
sub-neg
*-commutative
neg-mul-1
neg-sub0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01437
11937
22637
33037
43337
53437
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 x (/.f64 -2 (-.f64 (*.f64 z (/.f64 2 y)) (/.f64 t z))))
Outputs
(+.f64 x (/.f64 -2 (-.f64 (*.f64 z (/.f64 2 y)) (/.f64 t z))))
Compiler

Compiled 17 to 12 computations (29.4% saved)

soundness194.0ms (1.5%)

Rules
994×*-commutative
944×div-sub
886×cancel-sign-sub-inv
858×sub-neg
852×associate-*l/
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01549
13549
27949
319743
455637
5151237
6382737
7744837
Stop Event
node limit
Compiler

Compiled 319 to 163 computations (48.9% saved)

end0.0ms (0%)

preprocess41.0ms (0.3%)

Compiler

Compiled 110 to 76 computations (30.9% saved)

Profiling

Loading profile data...