expq3 (problem 3.4.2)

Time bar (total: 17.5s)

analyze400.0ms (2.3%)

Memory
-7.8MiB live, 168.2MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%25.4%74.6%0%0%0%0
0%0%25.4%74.6%0%0%0%1
0%0%25.4%74.6%0%0%0%2
0%0%25.4%74.6%0%0%0%3
0%0%25.4%74.6%0%0%0%4
0%0%25.4%74.6%0%0%0%5
0%0%25.4%74.6%0%0%0%6
0%0%25.4%74.6%0%0%0%7
0%0%25.4%74.6%0%0%0%8
0%0%25.4%74.6%0%0%0%9
4.8%1.2%23.8%74.6%0%0.4%0%10
4.8%1.2%23.8%74.6%0%0.4%0%11
4.8%1.2%23.8%74.6%0%0.4%0%12
Compiler

Compiled 54 to 37 computations (31.5% saved)

sample17.0s (96.9%)

Memory
16.3MiB live, 3 978.4MiB allocated
Samples
4.1s4 845×2valid-baseline
2.6s4 845×2valid-rival
2.1s545×1exit-sollya
1.6s819×0exit-sollya
958.0ms2 174×1valid-baseline
508.0ms2 174×1valid-rival
413.0ms4 845×2valid-sollya
402.0ms337×3valid-baseline
266.0ms337×3valid-rival
205.0ms25×2exit-sollya
189.0ms2 174×1valid-sollya
185.0ms545×1exit-baseline
117.0ms545×1exit-rival
108.0ms892×0valid-sollya
97.0ms892×0valid-baseline
89.0ms892×0valid-rival
89.0ms819×0exit-baseline
86.0ms819×0exit-rival
30.0ms337×3valid-sollya
13.0ms25×2exit-baseline
10.0ms25×2exit-rival
1.0ms0valid-rival+baseline-real
0.0ms0valid-rival+baseline-zero
0ms0sollya-faithful-roduning
0ms8 242×0sollya-correct-roduning
Bogosity

preprocess113.0ms (0.6%)

Memory
-6.8MiB live, 23.9MiB allocated
Algorithm
egg-herbie
Rules
662×times-frac
567×div-sub
499×fma-define
425×distribute-lft-in
424×distribute-rgt-in
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
095937
1292921
2754921
32307921
47707921
Stop Event
node limit
Calls
Call 1
Inputs
(/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 a b) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64))))
(/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 a b) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64))))
(/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 (neg.f64 a) b) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 (neg.f64 a) eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64))))
(/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 a (neg.f64 b)) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 (neg.f64 b) eps)) #s(literal 1 binary64))))
(/.f64 (*.f64 (neg.f64 eps) (-.f64 (exp.f64 (*.f64 (+.f64 a b) (neg.f64 eps))) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a (neg.f64 eps))) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b (neg.f64 eps))) #s(literal 1 binary64))))
(neg.f64 (/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 (neg.f64 a) b) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 (neg.f64 a) eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64)))))
(neg.f64 (/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 a (neg.f64 b)) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 (neg.f64 b) eps)) #s(literal 1 binary64)))))
(neg.f64 (/.f64 (*.f64 (neg.f64 eps) (-.f64 (exp.f64 (*.f64 (+.f64 a b) (neg.f64 eps))) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a (neg.f64 eps))) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b (neg.f64 eps))) #s(literal 1 binary64)))))
(/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 b a) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64))))
(/.f64 (*.f64 a (-.f64 (exp.f64 (*.f64 (+.f64 eps b) a)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 eps a)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b a)) #s(literal 1 binary64))))
(/.f64 (*.f64 b (-.f64 (exp.f64 (*.f64 (+.f64 a eps) b)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a b)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 eps b)) #s(literal 1 binary64))))
Outputs
(/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 a b) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64))))
(*.f64 (/.f64 eps (expm1.f64 (*.f64 eps b))) (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))))
(*.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (/.f64 eps (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))))
(/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 a b) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64))))
(*.f64 (/.f64 eps (expm1.f64 (*.f64 eps b))) (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))))
(*.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (/.f64 eps (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))))
(/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 (neg.f64 a) b) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 (neg.f64 a) eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64))))
(*.f64 (/.f64 eps (expm1.f64 (*.f64 eps (neg.f64 a)))) (/.f64 (expm1.f64 (*.f64 eps (+.f64 b (neg.f64 a)))) (expm1.f64 (*.f64 eps b))))
(*.f64 eps (/.f64 (/.f64 (expm1.f64 (*.f64 eps (-.f64 b a))) (expm1.f64 (*.f64 eps b))) (expm1.f64 (*.f64 a (neg.f64 eps)))))
(*.f64 eps (/.f64 (expm1.f64 (*.f64 eps (-.f64 b a))) (*.f64 (expm1.f64 (*.f64 eps b)) (expm1.f64 (*.f64 a (neg.f64 eps))))))
(*.f64 eps (/.f64 (expm1.f64 (*.f64 eps (-.f64 b a))) (*.f64 (expm1.f64 (*.f64 eps b)) (expm1.f64 (*.f64 eps (neg.f64 a))))))
(/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 a (neg.f64 b)) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 (neg.f64 b) eps)) #s(literal 1 binary64))))
(*.f64 eps (/.f64 (expm1.f64 (*.f64 eps (-.f64 a b))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps (neg.f64 b))))))
(*.f64 (/.f64 eps (expm1.f64 (*.f64 eps (neg.f64 b)))) (/.f64 (expm1.f64 (*.f64 eps (-.f64 a b))) (expm1.f64 (*.f64 eps a))))
(*.f64 (expm1.f64 (*.f64 eps (-.f64 a b))) (/.f64 eps (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps (neg.f64 b))))))
(/.f64 (*.f64 (neg.f64 eps) (-.f64 (exp.f64 (*.f64 (+.f64 a b) (neg.f64 eps))) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a (neg.f64 eps))) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b (neg.f64 eps))) #s(literal 1 binary64))))
(*.f64 (/.f64 (neg.f64 eps) (expm1.f64 (*.f64 eps (neg.f64 a)))) (/.f64 (expm1.f64 (*.f64 (+.f64 a b) (neg.f64 eps))) (expm1.f64 (*.f64 eps (neg.f64 b)))))
(*.f64 (expm1.f64 (*.f64 eps (neg.f64 (+.f64 a b)))) (/.f64 (neg.f64 eps) (*.f64 (expm1.f64 (*.f64 a (neg.f64 eps))) (expm1.f64 (*.f64 eps (neg.f64 b))))))
(*.f64 eps (/.f64 (expm1.f64 (*.f64 eps (neg.f64 (+.f64 a b)))) (*.f64 (expm1.f64 (*.f64 eps (neg.f64 b))) (neg.f64 (expm1.f64 (*.f64 a (neg.f64 eps)))))))
(*.f64 eps (/.f64 (expm1.f64 (*.f64 eps (-.f64 (neg.f64 b) a))) (*.f64 (expm1.f64 (*.f64 eps (neg.f64 a))) (neg.f64 (expm1.f64 (*.f64 eps (neg.f64 b)))))))
(neg.f64 (/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 (neg.f64 a) b) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 (neg.f64 a) eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64)))))
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (+.f64 b (neg.f64 a))))) (neg.f64 (*.f64 (expm1.f64 (*.f64 eps b)) (expm1.f64 (*.f64 eps (neg.f64 a))))))
(*.f64 (expm1.f64 (*.f64 eps (-.f64 b a))) (/.f64 eps (*.f64 (expm1.f64 (*.f64 eps b)) (neg.f64 (expm1.f64 (*.f64 a (neg.f64 eps)))))))
(*.f64 eps (/.f64 (expm1.f64 (*.f64 eps (-.f64 b a))) (*.f64 (expm1.f64 (*.f64 eps b)) (neg.f64 (expm1.f64 (*.f64 eps (neg.f64 a)))))))
(neg.f64 (/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 a (neg.f64 b)) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 (neg.f64 b) eps)) #s(literal 1 binary64)))))
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (-.f64 a b)))) (neg.f64 (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps (neg.f64 b))))))
(*.f64 eps (/.f64 (expm1.f64 (*.f64 eps (-.f64 a b))) (*.f64 (expm1.f64 (*.f64 eps a)) (neg.f64 (expm1.f64 (*.f64 eps (neg.f64 b)))))))
(*.f64 (expm1.f64 (*.f64 eps (-.f64 a b))) (/.f64 eps (*.f64 (expm1.f64 (*.f64 eps a)) (neg.f64 (expm1.f64 (*.f64 eps (neg.f64 b)))))))
(*.f64 (expm1.f64 (*.f64 eps (-.f64 a b))) (/.f64 (neg.f64 eps) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps (neg.f64 b))))))
(neg.f64 (/.f64 (*.f64 (neg.f64 eps) (-.f64 (exp.f64 (*.f64 (+.f64 a b) (neg.f64 eps))) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a (neg.f64 eps))) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b (neg.f64 eps))) #s(literal 1 binary64)))))
(/.f64 (*.f64 (neg.f64 eps) (expm1.f64 (*.f64 (+.f64 a b) (neg.f64 eps)))) (neg.f64 (*.f64 (expm1.f64 (*.f64 eps (neg.f64 a))) (expm1.f64 (*.f64 eps (neg.f64 b))))))
(/.f64 (*.f64 eps (expm1.f64 (*.f64 eps (neg.f64 (+.f64 a b))))) (*.f64 (expm1.f64 (*.f64 a (neg.f64 eps))) (expm1.f64 (*.f64 eps (neg.f64 b)))))
(*.f64 (expm1.f64 (*.f64 eps (neg.f64 (+.f64 a b)))) (/.f64 (/.f64 eps (expm1.f64 (*.f64 a (neg.f64 eps)))) (expm1.f64 (*.f64 eps (neg.f64 b)))))
(*.f64 eps (/.f64 (/.f64 (expm1.f64 (*.f64 eps (-.f64 (neg.f64 b) a))) (expm1.f64 (*.f64 eps (neg.f64 b)))) (expm1.f64 (*.f64 eps (neg.f64 a)))))
(/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 b a) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64))))
(*.f64 (/.f64 eps (expm1.f64 (*.f64 eps b))) (/.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (expm1.f64 (*.f64 eps a))))
(*.f64 (expm1.f64 (*.f64 eps (+.f64 a b))) (/.f64 eps (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 eps b)))))
(/.f64 (*.f64 a (-.f64 (exp.f64 (*.f64 (+.f64 eps b) a)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 eps a)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b a)) #s(literal 1 binary64))))
(*.f64 a (/.f64 (expm1.f64 (*.f64 a (+.f64 eps b))) (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 a b)))))
(*.f64 (expm1.f64 (*.f64 a (+.f64 eps b))) (/.f64 a (*.f64 (expm1.f64 (*.f64 eps a)) (expm1.f64 (*.f64 a b)))))
(/.f64 (*.f64 b (-.f64 (exp.f64 (*.f64 (+.f64 a eps) b)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a b)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 eps b)) #s(literal 1 binary64))))
(*.f64 (/.f64 b (expm1.f64 (*.f64 a b))) (/.f64 (expm1.f64 (*.f64 b (+.f64 eps a))) (expm1.f64 (*.f64 eps b))))
(*.f64 b (/.f64 (expm1.f64 (*.f64 b (+.f64 eps a))) (*.f64 (expm1.f64 (*.f64 eps b)) (expm1.f64 (*.f64 a b)))))
(*.f64 (expm1.f64 (*.f64 b (+.f64 eps a))) (/.f64 b (*.f64 (expm1.f64 (*.f64 eps b)) (expm1.f64 (*.f64 a b)))))
Symmetry

(sort a b)

Compiler

Compiled 27 to 17 computations (37% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 3 to 3 computations (0% saved)

prune1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
13.0%
(/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 a b) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64))))
Compiler

Compiled 54 to 34 computations (37% saved)

simplify3.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Algorithm
egg-herbie
Rules
*-commutative
+-commutative
unsub-neg
sub-neg
1-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02497
13997
24597
34897
45197
55697
Stop Event
saturated
Calls
Call 1
Inputs
(/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 a b) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64))))
Outputs
(/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 (+.f64 a b) eps)) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 a eps)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 b eps)) #s(literal 1 binary64))))
(/.f64 (*.f64 eps (-.f64 (exp.f64 (*.f64 eps (+.f64 a b))) #s(literal 1 binary64))) (*.f64 (-.f64 (exp.f64 (*.f64 eps a)) #s(literal 1 binary64)) (-.f64 (exp.f64 (*.f64 eps b)) #s(literal 1 binary64))))
(/.f64 (*.f64 eps (+.f64 (exp.f64 (*.f64 eps (+.f64 a b))) #s(literal -1 binary64))) (*.f64 (+.f64 (exp.f64 (*.f64 eps a)) #s(literal -1 binary64)) (+.f64 (exp.f64 (*.f64 eps b)) #s(literal -1 binary64))))

soundness0.0ms (0%)

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

Compiled 27 to 17 computations (37% saved)

preprocess31.0ms (0.2%)

Memory
2.3MiB live, 36.5MiB allocated
Remove

(sort a b)

Compiler

Compiled 236 to 150 computations (36.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...