2isqrt (example 3.6)

Time bar (total: 4.9s)

analyze22.0ms (0.4%)

Memory
6.6MiB live, 6.6MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%25%75%0%0%0%0
100%25%0%75%0%0%0%1
Compiler

Compiled 26 to 19 computations (26.9% saved)

sample4.8s (97.3%)

Memory
55.2MiB live, 1 583.1MiB allocated
Samples
1.0s3 621×1168valid-baseline
631.0ms2 738×584valid-baseline
479.0ms3 621×1168valid-rival
436.0ms3 621×1168valid-sollya
297.0ms2 738×584valid-rival
290.0ms2 738×584valid-sollya
209.0ms1 194×292valid-baseline
129.0ms1 194×292valid-rival
72.0ms1 194×292valid-sollya
68.0ms591×146valid-baseline
60.0ms591×146valid-rival
32.0ms591×146valid-sollya
7.0ms111×73valid-baseline
6.0ms111×73valid-sollya
6.0ms111×73valid-rival
0.0ms1168valid-sollya+baseline-real
Precisions
Click to see Rival histograms. Total time spent on operations: 802.0ms
ival-sqrt: 258.0ms (32.2% of total)
ival-div: 233.0ms (29.1% of total)
ival-add: 108.0ms (13.5% of total)
adjust: 108.0ms (13.5% of total)
ival-sub: 77.0ms (9.6% of total)
...in/eval/compile.rkt:110:19: 7.0ms (0.9% of total)
ival-true: 7.0ms (0.9% of total)
ival-assert: 4.0ms (0.5% of total)
Precisions
Click to see Base histograms. Total time spent on operations: 1.3s
ival-sqrt: 468.0ms (36.9% of total)
ival-div: 459.0ms (36.2% of total)
ival-add: 163.0ms (12.9% of total)
ival-sub: 142.0ms (11.2% of total)
const: 34.0ms (2.7% of total)
Bogosity

preprocess67.0ms (1.4%)

Memory
5.3MiB live, 20.6MiB allocated
Algorithm
egg-herbie
Rules
97×fma-define
86×fmm-def
41×sub-neg
28×associate--r+
28×neg-mul-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
021176
137168
272164
3129164
4204164
5316164
6419164
7509164
8586164
9640164
10683164
11691164
12693164
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 x)) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 x #s(literal 1 binary64)))))
(-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 x)) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 x #s(literal 1 binary64)))))
(-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 (neg.f64 x))) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 (neg.f64 x) #s(literal 1 binary64)))))
(neg.f64 (-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 (neg.f64 x))) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 (neg.f64 x) #s(literal 1 binary64))))))
Outputs
(-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 x)) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 x #s(literal 1 binary64)))))
(-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 x)) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) x))))
(+.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 x)) (/.f64 #s(literal -1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) x))))
(-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 x)) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 x #s(literal 1 binary64)))))
(-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 x)) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) x))))
(+.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 x)) (/.f64 #s(literal -1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) x))))
(-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 (neg.f64 x))) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 (neg.f64 x) #s(literal 1 binary64)))))
(-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 (neg.f64 x))) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (neg.f64 x)))))
(+.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 (neg.f64 x))) (/.f64 #s(literal -1 binary64) (sqrt.f64 (-.f64 #s(literal 1 binary64) x))))
(-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 (neg.f64 x))) (/.f64 #s(literal 1 binary64) (sqrt.f64 (-.f64 #s(literal 1 binary64) x))))
(neg.f64 (-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 (neg.f64 x))) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 (neg.f64 x) #s(literal 1 binary64))))))
(neg.f64 (-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 (neg.f64 x))) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) (neg.f64 x))))))
(neg.f64 (+.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 (neg.f64 x))) (/.f64 #s(literal -1 binary64) (sqrt.f64 (-.f64 #s(literal 1 binary64) x)))))
(+.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 (-.f64 #s(literal 1 binary64) x))) (/.f64 #s(literal -1 binary64) (sqrt.f64 (neg.f64 x))))
Compiler

Compiled 12 to 8 computations (33.3% saved)

eval0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Compiler

Compiled 1 to 1 computations (0% saved)

prune1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
37.6%
(-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 x)) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 x #s(literal 1 binary64)))))
Compiler

Compiled 24 to 16 computations (33.3% saved)

simplify3.0ms (0.1%)

Memory
0.6MiB live, 0.6MiB allocated
Algorithm
egg-herbie
Rules
neg-mul-1
unsub-neg
+-commutative
sub-neg
*-rgt-identity
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01339
12139
22939
33539
44239
55439
67039
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 x)) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 x #s(literal 1 binary64)))))
Outputs
(-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 x)) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 x #s(literal 1 binary64)))))
(-.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 x)) (/.f64 #s(literal 1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) x))))
(+.f64 (/.f64 #s(literal 1 binary64) (sqrt.f64 x)) (/.f64 #s(literal -1 binary64) (sqrt.f64 (+.f64 #s(literal 1 binary64) x))))

soundness0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Stop Event
fuel
Compiler

Compiled 12 to 9 computations (25% saved)

preprocess38.0ms (0.8%)

Memory
-8.8MiB live, 40.5MiB allocated
Compiler

Compiled 100 to 66 computations (34% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...