fabs fraction 2

Time bar (total: 3.5s)

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)

sample876.0ms (25.3%)

Memory
21.9MiB live, 709.5MiB allocated
Samples
517.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 238.0ms
ival-div: 135.0ms (56.8% of total)
ival-sub: 50.0ms (21% of total)
ival-fabs: 41.0ms (17.3% of total)
ival-true: 5.0ms (2.1% of total)
exact: 5.0ms (2.1% of total)
ival-assert: 3.0ms (1.3% of total)
Bogosity

explain105.0ms (3%)

Memory
24.6MiB live, 72.9MiB 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
78.0ms512×0valid
Compiler

Compiled 58 to 28 computations (51.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
ival-sub: 3.0ms (32.2% of total)
ival-div: 3.0ms (32.2% of total)
ival-fabs: 2.0ms (21.5% 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.5%)

Memory
-11.7MiB live, 26.0MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01634
14430
28530
315430
420930
523630
625330
726330
066
096
1136
2206
3286
4476
5966
61496
71716
81836
91866
01866
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
Outputs
(*.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.3MiB live, 0.3MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.0MiB live, 1.0MiB 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.5MiB live, 6.5MiB 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
614916
717116
818316
918616
018616
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 #s(literal 1/2 binary64) (fabs.f64 (-.f64 b a)))
(fabs.f64 (-.f64 b a))
(-.f64 a b)
a
b
#s(literal 2 binary64)

localize57.0ms (1.6%)

Memory
-14.7MiB live, 23.4MiB 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
52.0ms256×0valid
Compiler

Compiled 34 to 14 computations (58.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 45.0ms
ival-sub: 42.0ms (93.5% of total)
ival-div: 2.0ms (4.5% of total)
ival-fabs: 1.0ms (2.2% 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.1%)

Memory
7.2MiB live, 7.2MiB allocated
Counts
3 → 72
Calls
Call 1
Inputs
#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 a b)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (-.f64 a b) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (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))

simplify131.0ms (3.8%)

Memory
0.8MiB live, 96.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031303
183303
2191303
3550303
41646303
52490303
63372303
74957303
85464303
95840303
106361303
117027303
127785303
08013303
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
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
a
(-.f64 a b)
(-.f64 a b)
(-.f64 a b)
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
(neg.f64 b)
(-.f64 a b)
(-.f64 a b)
(-.f64 a b)
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
(neg.f64 b)
(-.f64 a b)
(-.f64 a b)
(-.f64 a b)
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
(neg.f64 b)
(-.f64 a b)
(-.f64 a b)
(-.f64 a b)
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
a
(-.f64 a b)
(-.f64 a b)
(-.f64 a b)
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
(fabs.f64 (-.f64 a b))
a
(-.f64 a b)
(-.f64 a b)
(-.f64 a b)

rewrite148.0ms (4.3%)

Memory
6.8MiB live, 236.0MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
0913
13813
220413
3179613
0863213
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>

eval52.0ms (1.5%)

Memory
1.4MiB live, 122.2MiB allocated
Compiler

Compiled 10 242 to 1 452 computations (85.8% saved)

prune10.0ms (0.3%)

Memory
-7.4MiB live, 29.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)

simplify6.0ms (0.2%)

Memory
10.0MiB live, 10.0MiB 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
614916
717216
818216
018216
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 #s(literal 1/2 binary64) (fabs.f64 (-.f64 a b)))
(fabs.f64 (-.f64 a b))
(-.f64 b a)
b
a
#s(literal 1/2 binary64)

localize18.0ms (0.5%)

Memory
-5.0MiB live, 33.5MiB 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
12.0ms256×0valid
Compiler

Compiled 34 to 14 computations (58.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 4.0ms
ival-mult: 2.0ms (45.3% of total)
ival-sub: 1.0ms (22.7% of total)
ival-fabs: 1.0ms (22.7% 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.1%)

Memory
8.6MiB live, 8.6MiB allocated
Counts
3 → 72
Calls
Call 1
Inputs
#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 (-.f64 b a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (-.f64 b a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (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
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
b
@0
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a))

simplify193.0ms (5.5%)

Memory
-10.7MiB live, 73.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031303
183303
2191303
3548303
41608303
52452303
63335303
74921303
85426303
95802303
106323303
116991303
127745303
08004303
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
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(neg.f64 a)
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
b
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
b
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
b
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(neg.f64 a)
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(neg.f64 a)
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)

rewrite242.0ms (7%)

Memory
-43.7MiB live, 253.7MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
0913
12913
217413
3164813
0843613
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>

eval47.0ms (1.3%)

Memory
36.8MiB live, 111.6MiB allocated
Compiler

Compiled 9 519 to 1 329 computations (86% saved)

prune11.0ms (0.3%)

Memory
-2.6MiB live, 34.8MiB 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))
49.6%
(*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64))
Compiler

Compiled 15 to 14 computations (6.7% saved)

simplify10.0ms (0.3%)

Memory
-31.5MiB live, 15.7MiB 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
68226
711026
815326
916826
1017626
017626
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 #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)

localize38.0ms (1.1%)

Memory
4.8MiB live, 43.0MiB 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)))
accuracy32.83526455812729
#s(approx (- b a) (neg.f64 a))
Samples
12.0ms256×0valid
Compiler

Compiled 45 to 17 computations (62.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 2.0ms (36.6% of total)
ival-sub: 1.0ms (18.3% of total)
ival-fabs: 1.0ms (18.3% of total)
ival-neg: 1.0ms (18.3% 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
10.2MiB live, 10.2MiB allocated
Counts
4 → 84
Calls
Call 1
Inputs
#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())
#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (neg.f64 a) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) (neg.f64 a))) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (- b a) (neg.f64 a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (neg.f64 a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (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))

simplify146.0ms (4.2%)

Memory
8.6MiB live, 125.3MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031327
183327
2191327
3548327
41608327
52452327
63335327
74921327
85426327
95802327
106323327
116991327
127745327
08004327
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
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(neg.f64 a)
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
b
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
b
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
b
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(neg.f64 a)
(neg.f64 a)
(neg.f64 a)
(neg.f64 a)
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(neg.f64 a)
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(neg.f64 a)
(neg.f64 a)
(neg.f64 a)
(neg.f64 a)
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(neg.f64 a)
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(neg.f64 a)
(neg.f64 a)
(neg.f64 a)
(neg.f64 a)

rewrite120.0ms (3.5%)

Memory
3.0MiB live, 172.4MiB allocated
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0824
01124
13224
216324
3157620
0974720
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>

eval19.0ms (0.6%)

Memory
-15.3MiB live, 22.7MiB allocated
Compiler

Compiled 1 600 to 230 computations (85.6% saved)

prune7.0ms (0.2%)

Memory
13.6MiB live, 13.6MiB 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))
49.6%
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))
Compiler

Compiled 14 to 13 computations (7.1% saved)

simplify6.0ms (0.2%)

Memory
7.7MiB live, 7.7MiB 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
710521
814721
916221
1017021
017021
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 #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)

localize19.0ms (0.6%)

Memory
-6.7MiB live, 31.1MiB 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.446766132595705
#s(approx (- b a) a)
Samples
13.0ms256×0valid
Compiler

Compiled 38 to 15 computations (60.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-mult: 5.0ms (66.4% of total)
ival-sub: 1.0ms (13.3% of total)
ival-fabs: 1.0ms (13.3% 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.6MiB live, 7.6MiB allocated
Counts
3 → 72
Calls
Call 1
Inputs
#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())
#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 b) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf b) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf b) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 a) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf a) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch (fabs.f64 #s(approx (- b a) a)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (patch #s(approx (- b a) a) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf a) (#s(alt #<batchref> (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
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
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))

simplify127.0ms (3.7%)

Memory
1.8MiB live, 81.6MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031303
183303
2191303
3548303
41608303
52452303
63335303
74921303
85426303
95802303
106323303
116991303
127745303
08004303
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
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(neg.f64 a)
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
b
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
b
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
b
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(neg.f64 a)
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(fabs.f64 (-.f64 b a))
(neg.f64 a)
(-.f64 b a)
(-.f64 b a)
(-.f64 b a)

rewrite120.0ms (3.4%)

Memory
-11.1MiB live, 218.4MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
0919
12719
214819
3137519
0969419
Stop Event
iter limit
node limit
iter limit
Counts
3 → 30
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>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval173.0ms (5%)

Memory
-11.5MiB live, 26.3MiB allocated
Compiler

Compiled 1 208 to 125 computations (89.7% saved)

prune6.0ms (0.2%)

Memory
14.9MiB live, 14.9MiB allocated
Pruning

2 alts after pruning (0 fresh and 2 done)

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

Compiled 43 to 31 computations (27.9% saved)

regimes11.0ms (0.3%)

Memory
20.9MiB live, 20.9MiB 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
a
2.0ms
b
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)

regimes93.0ms (2.7%)

Memory
-26.0MiB live, 18.0MiB 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:

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

Compiled 15 to 17 computations (-13.3% saved)

simplify23.0ms (0.7%)

Memory
13.4MiB live, 51.3MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01014
11614
22314
32814
43114
53214
Stop Event
saturated
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 #s(literal 1/2 binary64) (fabs.f64 (-.f64 a b)))
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))

soundness520.0ms (15%)

Memory
-10.5MiB live, 268.4MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
0913
13813
220413
3179613
0863213
0824
01124
13224
216324
3157620
0974720
031303
183303
2191303
3548303
41608303
52452303
63335303
74921303
85426303
95802303
106323303
116991303
127745303
08004303
Stop Event
done
iter limit
node limit
iter limit
node limit
iter limit
iter limit
node limit
iter limit
Compiler

Compiled 52 to 44 computations (15.4% saved)

preprocess25.0ms (0.7%)

Memory
13.0MiB live, 49.1MiB allocated
Remove

(sort a b)

Compiler

Compiled 64 to 56 computations (12.5% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...