fabs fraction 2

Time bar (total: 3.4s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 8 to 8 computations (0% saved)

sample639.0ms (19%)

Memory
11.8MiB live, 1 078.1MiB allocated
Samples
413.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 193.0ms
ival-sub: 66.0ms (34.2% of total)
ival-div: 62.0ms (32.2% of total)
ival-fabs: 51.0ms (26.5% of total)
ival-true: 6.0ms (3.1% of total)
exact: 5.0ms (2.6% of total)
ival-assert: 3.0ms (1.6% of total)
Bogosity

explain206.0ms (6.1%)

Memory
24.3MiB live, 62.6MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-a
00-0-#s(literal 2 binary64)
00-0-(fabs.f64 (-.f64 a b))
00-0-(-.f64 a b)
00-0-b
00-0-(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
24.0ms512×0valid
Compiler

Compiled 58 to 28 computations (51.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-div: 4.0ms (37.6% of total)
ival-sub: 3.0ms (28.2% of total)
ival-fabs: 3.0ms (28.2% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess86.0ms (2.6%)

Memory
-20.2MiB live, 18.6MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01634
14430
28530
315430
421030
524230
625930
726930
066
096
1136
2206
3286
4476
5966
61516
71816
81966
91996
01996
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
Outputs
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
(*.f64 #s(literal 1/2 binary64) (fabs.f64 (-.f64 b a)))
Symmetry

(sort a b)

Compiler

Compiled 6 to 6 computations (0% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.8MiB live, 0.9MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
Compiler

Compiled 6 to 6 computations (0% saved)

simplify6.0ms (0.2%)

Memory
6.0MiB live, 6.0MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(-.f64 a b)
cost-diff0
(fabs.f64 (-.f64 a b))
cost-diff384
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0616
0916
11316
22016
32816
44716
59616
615116
718116
819616
919916
019916
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
(fabs.f64 (-.f64 a b))
(-.f64 a b)
a
b
#s(literal 2 binary64)
Outputs
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
(*.f64 #s(literal 1/2 binary64) (fabs.f64 (-.f64 b a)))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 b a))
(-.f64 a b)
a
b
#s(literal 2 binary64)

localize16.0ms (0.5%)

Memory
12.1MiB live, 12.1MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
accuracy0
(-.f64 a b)
accuracy0
(fabs.f64 (-.f64 a b))
Samples
11.0ms256×0valid
Compiler

Compiled 34 to 14 computations (58.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-sub: 2.0ms (39.8% of total)
ival-div: 2.0ms (39.8% of total)
ival-fabs: 1.0ms (19.9% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series93.0ms (2.8%)

Memory
-40.5MiB live, 4.0MiB allocated
Counts
3 → 72
Calls
Call 1
Inputs
#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())
#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())
#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())
Outputs
#s(alt (* 1/2 (fabs (- a b))) (taylor 0 b) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- a b))) (taylor 0 b) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- a b))) (taylor 0 b) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- a b))) (taylor 0 b) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor 0 b) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor 0 b) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor 0 b) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor 0 b) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt a (taylor 0 b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (+ a (* -1 b)) (taylor 0 b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (+ a (* -1 b)) (taylor 0 b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (+ a (* -1 b)) (taylor 0 b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- a b))) (taylor inf b) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- a b))) (taylor inf b) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- a b))) (taylor inf b) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- a b))) (taylor inf b) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor inf b) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor inf b) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor inf b) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor inf b) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (* -1 b) (taylor inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* b (- (/ a b) 1)) (taylor inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* b (- (/ a b) 1)) (taylor inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* b (- (/ a b) 1)) (taylor inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ a (* -1 b)))) (taylor -inf b) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ a (* -1 b)))) (taylor -inf b) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ a (* -1 b)))) (taylor -inf b) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ a (* -1 b)))) (taylor -inf b) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (+ a (* -1 b))) (taylor -inf b) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (+ a (* -1 b))) (taylor -inf b) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (+ a (* -1 b))) (taylor -inf b) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (+ a (* -1 b))) (taylor -inf b) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (* -1 b) (taylor -inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (+ 1 (* -1 (/ a b))))) (taylor -inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (+ 1 (* -1 (/ a b))))) (taylor -inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (+ 1 (* -1 (/ a b))))) (taylor -inf b) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- a b))) (taylor 0 a) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- a b))) (taylor 0 a) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- a b))) (taylor 0 a) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- a b))) (taylor 0 a) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor 0 a) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor 0 a) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor 0 a) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor 0 a) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (* -1 b) (taylor 0 a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (- a b) (taylor 0 a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (- a b) (taylor 0 a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (- a b) (taylor 0 a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- a b))) (taylor inf a) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- a b))) (taylor inf a) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- a b))) (taylor inf a) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- a b))) (taylor inf a) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor inf a) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor inf a) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor inf a) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (- a b)) (taylor inf a) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt a (taylor inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* a (+ 1 (* -1 (/ b a)))) (taylor inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* a (+ 1 (* -1 (/ b a)))) (taylor inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* a (+ 1 (* -1 (/ b a)))) (taylor inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ b (* -1 a))))) (taylor -inf a) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ b (* -1 a))))) (taylor -inf a) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ b (* -1 a))))) (taylor -inf a) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ b (* -1 a))))) (taylor -inf a) (#s(alt (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ b (* -1 a)))) (taylor -inf a) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ b (* -1 a)))) (taylor -inf a) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ b (* -1 a)))) (taylor -inf a) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ b (* -1 a)))) (taylor -inf a) (#s(alt (fabs.f64 (-.f64 a b)) (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt a (taylor -inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (- (/ b a) 1))) (taylor -inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (- (/ b a) 1))) (taylor -inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (- (/ b a) 1))) (taylor -inf a) (#s(alt (-.f64 a b) (patch (-.f64 a b) #<representation binary64>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
1.0ms
a
@inf
((/ (fabs (- a b)) 2) (fabs (- a b)) (- a b))
1.0ms
b
@inf
((/ (fabs (- a b)) 2) (fabs (- a b)) (- a b))
1.0ms
a
@-inf
((/ (fabs (- a b)) 2) (fabs (- a b)) (- a b))
0.0ms
b
@-inf
((/ (fabs (- a b)) 2) (fabs (- a b)) (- a b))
0.0ms
b
@0
((/ (fabs (- a b)) 2) (fabs (- a b)) (- a b))

simplify159.0ms (4.7%)

Memory
10.8MiB live, 86.9MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031303
183303
2191303
3547303
41604303
52527303
63437303
75036303
85542303
95918303
106439303
117114303
127863303
08019303
Stop Event
iter limit
node limit
Counts
72 → 69
Calls
Call 1
Inputs
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
a
(+ a (* -1 b))
(+ a (* -1 b))
(+ a (* -1 b))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
(* -1 b)
(* b (- (/ a b) 1))
(* b (- (/ a b) 1))
(* b (- (/ a b) 1))
(* 1/2 (fabs (+ a (* -1 b))))
(* 1/2 (fabs (+ a (* -1 b))))
(* 1/2 (fabs (+ a (* -1 b))))
(* 1/2 (fabs (+ a (* -1 b))))
(fabs (+ a (* -1 b)))
(fabs (+ a (* -1 b)))
(fabs (+ a (* -1 b)))
(fabs (+ a (* -1 b)))
(* -1 b)
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
(* -1 b)
(- a b)
(- a b)
(- a b)
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
a
(* a (+ 1 (* -1 (/ b a))))
(* a (+ 1 (* -1 (/ b a))))
(* a (+ 1 (* -1 (/ b a))))
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(fabs (neg (+ b (* -1 a))))
(fabs (neg (+ b (* -1 a))))
(fabs (neg (+ b (* -1 a))))
(fabs (neg (+ b (* -1 a))))
a
(* -1 (* a (- (/ b a) 1)))
(* -1 (* a (- (/ b a) 1)))
(* -1 (* a (- (/ b a) 1)))
Outputs
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
a
(+ a (* -1 b))
(-.f64 a b)
(+ a (* -1 b))
(-.f64 a b)
(+ a (* -1 b))
(-.f64 a b)
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(* -1 b)
(neg.f64 b)
(* b (- (/ a b) 1))
(-.f64 a b)
(* b (- (/ a b) 1))
(-.f64 a b)
(* b (- (/ a b) 1))
(-.f64 a b)
(* 1/2 (fabs (+ a (* -1 b))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ a (* -1 b))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ a (* -1 b))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ a (* -1 b))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs (+ a (* -1 b)))
(fabs.f64 (-.f64 a b))
(fabs (+ a (* -1 b)))
(fabs.f64 (-.f64 a b))
(fabs (+ a (* -1 b)))
(fabs.f64 (-.f64 a b))
(fabs (+ a (* -1 b)))
(fabs.f64 (-.f64 a b))
(* -1 b)
(neg.f64 b)
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(-.f64 a b)
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(-.f64 a b)
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(-.f64 a b)
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(* -1 b)
(neg.f64 b)
(- a b)
(-.f64 a b)
(- a b)
(-.f64 a b)
(- a b)
(-.f64 a b)
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
a
(* a (+ 1 (* -1 (/ b a))))
(-.f64 a b)
(* a (+ 1 (* -1 (/ b a))))
(-.f64 a b)
(* a (+ 1 (* -1 (/ b a))))
(-.f64 a b)
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs (neg (+ b (* -1 a))))
(fabs.f64 (-.f64 a b))
(fabs (neg (+ b (* -1 a))))
(fabs.f64 (-.f64 a b))
(fabs (neg (+ b (* -1 a))))
(fabs.f64 (-.f64 a b))
(fabs (neg (+ b (* -1 a))))
(fabs.f64 (-.f64 a b))
a
(* -1 (* a (- (/ b a) 1)))
(-.f64 a b)
(* -1 (* a (- (/ b a) 1)))
(-.f64 a b)
(* -1 (* a (- (/ b a) 1)))
(-.f64 a b)

rewrite204.0ms (6.1%)

Memory
-30.0MiB live, 173.1MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
0913
13813
220413
3179013
0863813
Stop Event
iter limit
node limit
iter limit
Counts
3 → 354
Calls
Call 1
Inputs
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
(fabs.f64 (-.f64 a b))
(-.f64 a b)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval94.0ms (2.8%)

Memory
-4.8MiB live, 112.5MiB allocated
Compiler

Compiled 9 939 to 1 448 computations (85.4% saved)

prune7.0ms (0.2%)

Memory
26.8MiB live, 26.8MiB allocated
Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New4221423
Fresh000
Picked101
Done000
Total4231424
Accuracy
100.0%
Counts
424 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
Compiler

Compiled 6 to 6 computations (0% saved)

simplify23.0ms (0.7%)

Memory
-33.7MiB live, 4.7MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(-.f64 b a)
cost-diff0
(fabs.f64 (-.f64 b a))
cost-diff0
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0616
0916
11416
22116
32916
44816
59516
615116
718216
819516
019516
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(-.f64 b a)
b
a
#s(literal 1/2 binary64)
Outputs
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) (fabs.f64 (-.f64 a b)))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 a b))
(-.f64 b a)
b
a
#s(literal 1/2 binary64)

localize16.0ms (0.5%)

Memory
22.6MiB live, 22.6MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(-.f64 b a)
accuracy0
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
accuracy0
(fabs.f64 (-.f64 b a))
Samples
11.0ms256×0valid
Compiler

Compiled 34 to 14 computations (58.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 2.0ms (41.5% of total)
ival-sub: 1.0ms (20.8% of total)
ival-fabs: 1.0ms (20.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series4.0ms (0.1%)

Memory
7.1MiB live, 7.1MiB allocated
Counts
3 → 72
Calls
Call 1
Inputs
#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())
#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())
#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())
Outputs
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 b) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 b) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 b) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 b) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 b) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 b) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 b) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 b) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor 0 b) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (- b a) (taylor 0 b) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (- b a) (taylor 0 b) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (- b a) (taylor 0 b) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf b) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf b) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf b) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf b) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf b) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf b) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf b) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf b) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt b (taylor inf b) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* b (+ 1 (* -1 (/ a b)))) (taylor inf b) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* b (+ 1 (* -1 (/ a b)))) (taylor inf b) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* b (+ 1 (* -1 (/ a b)))) (taylor inf b) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ a (* -1 b))))) (taylor -inf b) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ a (* -1 b))))) (taylor -inf b) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ a (* -1 b))))) (taylor -inf b) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ a (* -1 b))))) (taylor -inf b) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ a (* -1 b)))) (taylor -inf b) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ a (* -1 b)))) (taylor -inf b) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ a (* -1 b)))) (taylor -inf b) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ a (* -1 b)))) (taylor -inf b) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt b (taylor -inf b) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (- (/ a b) 1))) (taylor -inf b) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (- (/ a b) 1))) (taylor -inf b) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (- (/ a b) 1))) (taylor -inf b) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 a) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 a) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 a) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 a) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 a) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 a) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 a) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 a) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt b (taylor 0 a) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (+ b (* -1 a)) (taylor 0 a) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (+ b (* -1 a)) (taylor 0 a) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (+ b (* -1 a)) (taylor 0 a) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf a) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf a) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf a) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf a) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf a) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf a) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf a) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf a) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor inf a) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* a (- (/ b a) 1)) (taylor inf a) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* a (- (/ b a) 1)) (taylor inf a) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* a (- (/ b a) 1)) (taylor inf a) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ b (* -1 a)))) (taylor -inf a) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ b (* -1 a)))) (taylor -inf a) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ b (* -1 a)))) (taylor -inf a) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ b (* -1 a)))) (taylor -inf a) (#s(alt (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (+ b (* -1 a))) (taylor -inf a) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (+ b (* -1 a))) (taylor -inf a) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (+ b (* -1 a))) (taylor -inf a) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (fabs (+ b (* -1 a))) (taylor -inf a) (#s(alt (fabs.f64 (-.f64 b a)) (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor -inf a) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (+ 1 (* -1 (/ b a))))) (taylor -inf a) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (+ 1 (* -1 (/ b a))))) (taylor -inf a) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (+ 1 (* -1 (/ b a))))) (taylor -inf a) (#s(alt (-.f64 b a) (patch (-.f64 b a) #<representation binary64>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
1.0ms
a
@inf
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a))
0.0ms
b
@-inf
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a))
0.0ms
b
@inf
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a))
0.0ms
a
@-inf
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a))
0.0ms
b
@0
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a))

simplify140.0ms (4.2%)

Memory
-13.8MiB live, 71.2MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031303
183303
2191303
3546303
41599303
52511303
63421303
75018303
85525303
95901303
106422303
117095303
127850303
08006303
Stop Event
iter limit
node limit
Counts
72 → 69
Calls
Call 1
Inputs
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(* -1 a)
(- b a)
(- b a)
(- b a)
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
b
(* b (+ 1 (* -1 (/ a b))))
(* b (+ 1 (* -1 (/ a b))))
(* b (+ 1 (* -1 (/ a b))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
b
(* -1 (* b (- (/ a b) 1)))
(* -1 (* b (- (/ a b) 1)))
(* -1 (* b (- (/ a b) 1)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
b
(+ b (* -1 a))
(+ b (* -1 a))
(+ b (* -1 a))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(* -1 a)
(* a (- (/ b a) 1))
(* a (- (/ b a) 1))
(* a (- (/ b a) 1))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(* -1 a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(* -1 (* a (+ 1 (* -1 (/ b a)))))
Outputs
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(- b a)
(-.f64 b a)
(- b a)
(-.f64 b a)
(- b a)
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
b
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
b
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
b
(+ b (* -1 a))
(-.f64 b a)
(+ b (* -1 a))
(-.f64 b a)
(+ b (* -1 a))
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)

rewrite141.0ms (4.2%)

Memory
-8.8MiB live, 217.7MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
0913
12913
217413
3164213
0843713
Stop Event
iter limit
node limit
iter limit
Counts
3 → 304
Calls
Call 1
Inputs
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(-.f64 b a)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval65.0ms (1.9%)

Memory
12.6MiB live, 95.0MiB allocated
Compiler

Compiled 9 216 to 1 325 computations (85.6% saved)

prune8.0ms (0.2%)

Memory
20.4MiB live, 20.4MiB allocated
Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New3721373
Fresh000
Picked011
Done000
Total3722374
Accuracy
100.0%
Counts
374 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
52.1%
(*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64))
Compiler

Compiled 12 to 13 computations (-8.3% saved)

simplify7.0ms (0.2%)

Memory
-33.7MiB live, 5.2MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(neg.f64 a)
cost-diff0
#s(approx (- b a) (neg.f64 a))
cost-diff0
(fabs.f64 #s(approx (- b a) (neg.f64 a)))
cost-diff0
(*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0826
01126
11726
22226
32926
43826
55526
68126
711026
815726
917326
1018126
018126
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64))
(fabs.f64 #s(approx (- b a) (neg.f64 a)))
#s(approx (- b a) (neg.f64 a))
(neg.f64 a)
a
#s(literal 1/2 binary64)
Outputs
(*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) (fabs.f64 #s(approx (- b a) (neg.f64 a))))
(fabs.f64 #s(approx (- b a) (neg.f64 a)))
#s(approx (- b a) (neg.f64 a))
(neg.f64 a)
a
#s(literal 1/2 binary64)

localize20.0ms (0.6%)

Memory
2.9MiB live, 39.5MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64))
accuracy0
(neg.f64 a)
accuracy0
(fabs.f64 #s(approx (- b a) (neg.f64 a)))
accuracy31.088816873277302
#s(approx (- b a) (neg.f64 a))
Samples
12.0ms256×0valid
Compiler

Compiled 36 to 16 computations (55.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
ival-sub: 2.0ms (34.8% of total)
ival-mult: 2.0ms (34.8% of total)
ival-fabs: 1.0ms (17.4% of total)
ival-neg: 1.0ms (17.4% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0.1%)

Memory
9.3MiB live, 9.3MiB allocated
Counts
4 → 84
Calls
Call 1
Inputs
#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())
#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())
#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())
#s(alt (neg.f64 a) (patch (neg.f64 a) #<representation binary64>) () ())
Outputs
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 b) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 b) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 b) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 b) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor 0 b) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (- b a) (taylor 0 b) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (- b a) (taylor 0 b) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (- b a) (taylor 0 b) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf b) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf b) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf b) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf b) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt b (taylor inf b) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* b (+ 1 (* -1 (/ a b)))) (taylor inf b) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* b (+ 1 (* -1 (/ a b)))) (taylor inf b) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* b (+ 1 (* -1 (/ a b)))) (taylor inf b) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ a (* -1 b))))) (taylor -inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ a (* -1 b))))) (taylor -inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ a (* -1 b))))) (taylor -inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ a (* -1 b))))) (taylor -inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ a (* -1 b)))) (taylor -inf b) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ a (* -1 b)))) (taylor -inf b) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ a (* -1 b)))) (taylor -inf b) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ a (* -1 b)))) (taylor -inf b) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt b (taylor -inf b) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (- (/ a b) 1))) (taylor -inf b) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (- (/ a b) 1))) (taylor -inf b) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (- (/ a b) 1))) (taylor -inf b) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 a) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 a) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 a) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 a) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt b (taylor 0 a) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (+ b (* -1 a)) (taylor 0 a) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (+ b (* -1 a)) (taylor 0 a) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (+ b (* -1 a)) (taylor 0 a) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor 0 a) (#s(alt (neg.f64 a) (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor 0 a) (#s(alt (neg.f64 a) (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor 0 a) (#s(alt (neg.f64 a) (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor 0 a) (#s(alt (neg.f64 a) (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf a) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf a) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf a) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf a) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor inf a) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* a (- (/ b a) 1)) (taylor inf a) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* a (- (/ b a) 1)) (taylor inf a) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* a (- (/ b a) 1)) (taylor inf a) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor inf a) (#s(alt (neg.f64 a) (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor inf a) (#s(alt (neg.f64 a) (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor inf a) (#s(alt (neg.f64 a) (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor inf a) (#s(alt (neg.f64 a) (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ b (* -1 a)))) (taylor -inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ b (* -1 a)))) (taylor -inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ b (* -1 a)))) (taylor -inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ b (* -1 a)))) (taylor -inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (+ b (* -1 a))) (taylor -inf a) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (+ b (* -1 a))) (taylor -inf a) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (+ b (* -1 a))) (taylor -inf a) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (fabs (+ b (* -1 a))) (taylor -inf a) (#s(alt (fabs.f64 #s(approx (- b a) (neg.f64 a))) (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor -inf a) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (+ 1 (* -1 (/ b a))))) (taylor -inf a) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (+ 1 (* -1 (/ b a))))) (taylor -inf a) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (+ 1 (* -1 (/ b a))))) (taylor -inf a) (#s(alt #s(approx (- b a) (neg.f64 a)) (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor -inf a) (#s(alt (neg.f64 a) (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor -inf a) (#s(alt (neg.f64 a) (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor -inf a) (#s(alt (neg.f64 a) (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor -inf a) (#s(alt (neg.f64 a) (patch (neg.f64 a) #<representation binary64>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
0.0ms
a
@inf
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a) (neg a))
0.0ms
a
@-inf
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a) (neg a))
0.0ms
b
@inf
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a) (neg a))
0.0ms
b
@-inf
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a) (neg a))
0.0ms
b
@0
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a) (neg a))

simplify127.0ms (3.8%)

Memory
16.5MiB live, 127.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031327
183327
2191327
3546327
41599327
52511327
63421327
75018327
85525327
95901327
106422327
117095327
127850327
08006327
Stop Event
iter limit
node limit
Counts
84 → 81
Calls
Call 1
Inputs
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(* -1 a)
(- b a)
(- b a)
(- b a)
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
b
(* b (+ 1 (* -1 (/ a b))))
(* b (+ 1 (* -1 (/ a b))))
(* b (+ 1 (* -1 (/ a b))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
b
(* -1 (* b (- (/ a b) 1)))
(* -1 (* b (- (/ a b) 1)))
(* -1 (* b (- (/ a b) 1)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
b
(+ b (* -1 a))
(+ b (* -1 a))
(+ b (* -1 a))
(* -1 a)
(* -1 a)
(* -1 a)
(* -1 a)
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(* -1 a)
(* a (- (/ b a) 1))
(* a (- (/ b a) 1))
(* a (- (/ b a) 1))
(* -1 a)
(* -1 a)
(* -1 a)
(* -1 a)
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(* -1 a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(* -1 a)
(* -1 a)
(* -1 a)
(* -1 a)
Outputs
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(- b a)
(-.f64 b a)
(- b a)
(-.f64 b a)
(- b a)
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
b
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
b
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
b
(+ b (* -1 a))
(-.f64 b a)
(+ b (* -1 a))
(-.f64 b a)
(+ b (* -1 a))
(-.f64 b a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)

rewrite114.0ms (3.4%)

Memory
18.4MiB live, 172.3MiB allocated
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0824
01124
13224
216324
3157420
0976720
Stop Event
iter limit
node limit
iter limit
Counts
4 → 52
Calls
Call 1
Inputs
(*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64))
(fabs.f64 #s(approx (- b a) (neg.f64 a)))
#s(approx (- b a) (neg.f64 a))
(neg.f64 a)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval14.0ms (0.4%)

Memory
-0.4MiB live, 38.8MiB allocated
Compiler

Compiled 1 045 to 225 computations (78.5% saved)

prune7.0ms (0.2%)

Memory
-25.1MiB live, 14.2MiB allocated
Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New1321133
Fresh000
Picked101
Done011
Total1332135
Accuracy
100.0%
Counts
135 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
52.1%
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))
Compiler

Compiled 11 to 12 computations (-9.1% saved)

simplify6.0ms (0.2%)

Memory
6.9MiB live, 6.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
#s(approx (- b a) a)
cost-diff0
(fabs.f64 #s(approx (- b a) a))
cost-diff0
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0721
0921
11221
21721
32321
43221
54721
68021
710821
815521
917121
1017921
017921
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))
(fabs.f64 #s(approx (- b a) a))
#s(approx (- b a) a)
a
#s(literal 1/2 binary64)
Outputs
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) (fabs.f64 #s(approx (- b a) a)))
(fabs.f64 #s(approx (- b a) a))
#s(approx (- b a) a)
a
#s(literal 1/2 binary64)

localize17.0ms (0.5%)

Memory
24.8MiB live, 24.8MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))
accuracy0
(fabs.f64 #s(approx (- b a) a))
accuracy62.63409678642365
#s(approx (- b a) a)
Samples
11.0ms256×0valid
Compiler

Compiled 29 to 14 computations (51.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 2.0ms (41.6% of total)
ival-sub: 1.0ms (20.8% of total)
ival-fabs: 1.0ms (20.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series5.0ms (0.2%)

Memory
-37.3MiB live, 8.1MiB allocated
Counts
3 → 72
Calls
Call 1
Inputs
#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())
#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())
#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())
Outputs
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 b) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 b) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 b) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 b) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor 0 b) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (- b a) (taylor 0 b) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (- b a) (taylor 0 b) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (- b a) (taylor 0 b) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf b) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf b) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf b) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf b) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt b (taylor inf b) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* b (+ 1 (* -1 (/ a b)))) (taylor inf b) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* b (+ 1 (* -1 (/ a b)))) (taylor inf b) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* b (+ 1 (* -1 (/ a b)))) (taylor inf b) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ a (* -1 b))))) (taylor -inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ a (* -1 b))))) (taylor -inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ a (* -1 b))))) (taylor -inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (neg (+ a (* -1 b))))) (taylor -inf b) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ a (* -1 b)))) (taylor -inf b) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ a (* -1 b)))) (taylor -inf b) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ a (* -1 b)))) (taylor -inf b) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (neg (+ a (* -1 b)))) (taylor -inf b) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt b (taylor -inf b) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (- (/ a b) 1))) (taylor -inf b) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (- (/ a b) 1))) (taylor -inf b) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* b (- (/ a b) 1))) (taylor -inf b) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor 0 a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 a) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 a) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 a) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor 0 a) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt b (taylor 0 a) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (+ b (* -1 a)) (taylor 0 a) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (+ b (* -1 a)) (taylor 0 a) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (+ b (* -1 a)) (taylor 0 a) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (- b a))) (taylor inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf a) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf a) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf a) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (- b a)) (taylor inf a) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor inf a) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* a (- (/ b a) 1)) (taylor inf a) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* a (- (/ b a) 1)) (taylor inf a) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* a (- (/ b a) 1)) (taylor inf a) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ b (* -1 a)))) (taylor -inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ b (* -1 a)))) (taylor -inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ b (* -1 a)))) (taylor -inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (fabs (+ b (* -1 a)))) (taylor -inf a) (#s(alt (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (fabs (+ b (* -1 a))) (taylor -inf a) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (+ b (* -1 a))) (taylor -inf a) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (+ b (* -1 a))) (taylor -inf a) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (fabs (+ b (* -1 a))) (taylor -inf a) (#s(alt (fabs.f64 #s(approx (- b a) a)) (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt (* -1 a) (taylor -inf a) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (+ 1 (* -1 (/ b a))))) (taylor -inf a) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (+ 1 (* -1 (/ b a))))) (taylor -inf a) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt (* -1 (* a (+ 1 (* -1 (/ b a))))) (taylor -inf a) (#s(alt #s(approx (- b a) a) (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
0.0ms
b
@inf
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a))
0.0ms
a
@inf
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a))
0.0ms
b
@-inf
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a))
0.0ms
a
@-inf
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a))
0.0ms
b
@0
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a))

simplify139.0ms (4.1%)

Memory
35.9MiB live, 75.0MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031303
183303
2191303
3546303
41599303
52511303
63421303
75018303
85525303
95901303
106422303
117095303
127850303
08006303
Stop Event
iter limit
node limit
Counts
72 → 69
Calls
Call 1
Inputs
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(* -1 a)
(- b a)
(- b a)
(- b a)
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
b
(* b (+ 1 (* -1 (/ a b))))
(* b (+ 1 (* -1 (/ a b))))
(* b (+ 1 (* -1 (/ a b))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
b
(* -1 (* b (- (/ a b) 1)))
(* -1 (* b (- (/ a b) 1)))
(* -1 (* b (- (/ a b) 1)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
b
(+ b (* -1 a))
(+ b (* -1 a))
(+ b (* -1 a))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(* -1 a)
(* a (- (/ b a) 1))
(* a (- (/ b a) 1))
(* a (- (/ b a) 1))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(* -1 a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(* -1 (* a (+ 1 (* -1 (/ b a)))))
Outputs
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(- b a)
(-.f64 b a)
(- b a)
(-.f64 b a)
(- b a)
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
b
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
b
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
b
(+ b (* -1 a))
(-.f64 b a)
(+ b (* -1 a))
(-.f64 b a)
(+ b (* -1 a))
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)

rewrite363.0ms (10.8%)

Memory
-36.2MiB live, 142.0MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
0919
12719
214819
3137519
0964519
Stop Event
iter limit
node limit
iter limit
Counts
3 → 25
Calls
Call 1
Inputs
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))
(fabs.f64 #s(approx (- b a) a))
#s(approx (- b a) a)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval8.0ms (0.3%)

Memory
10.7MiB live, 10.7MiB allocated
Compiler

Compiled 720 to 105 computations (85.4% saved)

prune23.0ms (0.7%)

Memory
-26.5MiB live, 12.0MiB allocated
Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New94094
Fresh000
Picked011
Done011
Total94296
Accuracy
100.0%
Counts
96 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
52.1%
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))
Compiler

Compiled 34 to 29 computations (14.7% saved)

regimes11.0ms (0.3%)

Memory
19.5MiB live, 19.5MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
Outputs
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
Calls

5 calls:

2.0ms
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
2.0ms
(fabs.f64 (-.f64 a b))
2.0ms
(-.f64 a b)
2.0ms
b
2.0ms
a
Results
AccuracySegmentsBranch
100.0%1a
100.0%1b
100.0%1(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
100.0%1(fabs.f64 (-.f64 a b))
100.0%1(-.f64 a b)
Compiler

Compiled 15 to 17 computations (-13.3% saved)

regimes8.0ms (0.2%)

Memory
15.4MiB live, 15.5MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64))
Outputs
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))
Calls

5 calls:

2.0ms
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
2.0ms
(fabs.f64 (-.f64 a b))
2.0ms
(-.f64 a b)
2.0ms
a
1.0ms
b
Results
AccuracySegmentsBranch
52.1%1a
52.1%1b
52.1%1(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
52.1%1(fabs.f64 (-.f64 a b))
52.1%1(-.f64 a b)
Compiler

Compiled 15 to 17 computations (-13.3% saved)

simplify65.0ms (1.9%)

Memory
-29.9MiB live, 51.1MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01014
12214
24714
39914
418514
541314
698514
7217014
8448014
9654914
Stop Event
node limit
Calls
Call 1
Inputs
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))
Outputs
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/2 binary64) (fabs.f64 (-.f64 a b)))
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))

soundness394.0ms (11.7%)

Memory
12.0MiB live, 283.7MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031303
183303
2191303
3546303
41599303
52511303
63421303
75018303
85525303
95901303
106422303
117095303
127850303
08006303
0613
0913
13813
220413
3179013
0863813
0824
01124
13224
216324
3157420
0976720
Stop Event
done
iter limit
node limit
iter limit
iter limit
node limit
iter limit
iter limit
node limit
Compiler

Compiled 46 to 42 computations (8.7% saved)

preprocess116.0ms (3.4%)

Memory
-4.6MiB live, 75.6MiB allocated
Remove

(sort a b)

Compiler

Compiled 58 to 54 computations (6.9% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...