fabs fraction 2

Time bar (total: 2.7s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze0.0ms (0%)

Memory
0.4MiB live, 0.4MiB 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)

sample663.0ms (24.1%)

Memory
37.7MiB live, 1 080.4MiB allocated
Samples
454.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 219.0ms
ival-sub: 87.0ms (39.7% of total)
ival-div: 67.0ms (30.5% of total)
ival-fabs: 50.0ms (22.8% of total)
ival-true: 6.0ms (2.7% of total)
exact: 5.0ms (2.3% of total)
ival-assert: 3.0ms (1.4% of total)
Bogosity

explain277.0ms (10.1%)

Memory
21.7MiB live, 97.0MiB 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
23.0ms512×0valid
Compiler

Compiled 58 to 28 computations (51.7% saved)

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

preprocess34.0ms (1.2%)

Memory
-34.6MiB live, 27.3MiB 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.7MiB live, 0.7MiB allocated
Compiler

Compiled 6 to 6 computations (0% saved)

prune0.0ms (0%)

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

Compiled 6 to 6 computations (0% saved)

simplify6.0ms (0.2%)

Memory
7.8MiB live, 7.8MiB 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 #s(literal 1/2 binary64) (fabs.f64 (-.f64 b a)))
Iterations

Useful iterations: 0 (0.0ms)

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

localize20.0ms (0.7%)

Memory
-3.4MiB live, 32.8MiB allocated
Localize:

Found 3 expressions of interest:

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

Compiled 34 to 14 computations (58.8% saved)

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

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

simplify124.0ms (4.5%)

Memory
-15.0MiB live, 96.0MiB 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 → 72
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)

rewrite150.0ms (5.4%)

Memory
49.5MiB live, 238.5MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
0913
12913
217413
3164613
0844413
Stop Event
iter limit
node limit
iter limit
Counts
3 → 304
Calls
Call 1
Inputs
(*.f64 #s(literal 1/2 binary64) (fabs.f64 (-.f64 b a)))
(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>

eval50.0ms (1.8%)

Memory
-16.1MiB live, 141.4MiB allocated
Compiler

Compiled 9 543 to 1 333 computations (86% saved)

prune7.0ms (0.3%)

Memory
-17.4MiB live, 21.9MiB allocated
Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New3742376
Fresh000
Picked011
Done000
Total3743377
Accuracy
100.0%
Counts
377 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 #s(literal 1/2 binary64) (fabs.f64 (-.f64 b a)))
52.4%
(*.f64 #s(literal 1/2 binary64) (fabs.f64 #s(approx (- b a) (neg.f64 a))))
50.3%
(*.f64 #s(literal 1/2 binary64) (fabs.f64 #s(approx (- b a) b)))
Compiler

Compiled 23 to 21 computations (8.7% saved)

simplify7.0ms (0.2%)

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

Found 7 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 #s(literal 1/2 binary64) (fabs.f64 #s(approx (- b a) (neg.f64 a))))
cost-diff0
#s(approx (- b a) b)
cost-diff0
(fabs.f64 #s(approx (- b a) b))
cost-diff0
(*.f64 #s(literal 1/2 binary64) (fabs.f64 #s(approx (- b a) b)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01147
01647
12347
22847
33547
44447
56147
68747
711347
815647
917147
1017947
017947
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 #s(literal 1/2 binary64) (fabs.f64 #s(approx (- b a) b)))
#s(literal 1/2 binary64)
(fabs.f64 #s(approx (- b a) b))
#s(approx (- b a) b)
b
(*.f64 #s(literal 1/2 binary64) (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
Outputs
(*.f64 (fabs.f64 #s(approx (- b a) b)) #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(fabs.f64 #s(approx (- b a) b))
#s(approx (- b a) b)
b
(*.f64 (fabs.f64 #s(approx (- b a) (neg.f64 a))) #s(literal 1/2 binary64))
#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

localize50.0ms (1.8%)

Memory
-3.9MiB live, 34.6MiB allocated
Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 #s(literal 1/2 binary64) (fabs.f64 #s(approx (- b a) (neg.f64 a))))
accuracy0
(neg.f64 a)
accuracy0
(fabs.f64 #s(approx (- b a) (neg.f64 a)))
accuracy30.98229156336083
#s(approx (- b a) (neg.f64 a))
accuracy0
(*.f64 #s(literal 1/2 binary64) (fabs.f64 #s(approx (- b a) b)))
accuracy0
(fabs.f64 #s(approx (- b a) b))
accuracy32.39346718443281
#s(approx (- b a) b)
Samples
15.0ms256×0valid
Compiler

Compiled 81 to 20 computations (75.3% saved)

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

simplify163.0ms (5.9%)

Memory
-31.0MiB live, 113.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031630
183630
2191630
3548630
41608630
52452630
63335630
74921630
85426630
95802630
106323630
116991630
127745630
08004630
Stop Event
iter limit
node limit
Counts
156 → 156
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))
(* -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 (- 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 (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))
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/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/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))
(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))
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)
(*.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)
(*.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)

rewrite121.0ms (4.4%)

Memory
5.5MiB live, 167.7MiB allocated
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01143
01643
14043
217543
3160739
0968839
Stop Event
iter limit
node limit
iter limit
Counts
7 → 74
Calls
Call 1
Inputs
(*.f64 #s(literal 1/2 binary64) (fabs.f64 #s(approx (- b a) b)))
(fabs.f64 #s(approx (- b a) b))
#s(approx (- b a) b)
(*.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)
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>

eval48.0ms (1.7%)

Memory
1.2MiB live, 39.1MiB allocated
Compiler

Compiled 2 733 to 304 computations (88.9% saved)

prune5.0ms (0.2%)

Memory
18.9MiB live, 18.9MiB allocated
Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New2291230
Fresh000
Picked112
Done011
Total2303233
Accuracy
100.0%
Counts
233 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
52.4%
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))
100.0%
(*.f64 #s(literal 1/2 binary64) (fabs.f64 (-.f64 b a)))
50.3%
(*.f64 #s(literal 1/2 binary64) (fabs.f64 #s(approx (- b a) b)))
Compiler

Compiled 22 to 20 computations (9.1% saved)

simplify6.0ms (0.2%)

Memory
6.6MiB live, 6.6MiB 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)

localize95.0ms (3.5%)

Memory
-13.6MiB live, 30.2MiB 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.44996800549719
#s(approx (- b a) a)
Samples
19.0ms256×0valid
Compiler

Compiled 38 to 15 computations (60.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-sub: 2.0ms (39.8% of total)
ival-mult: 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)

series3.0ms (0.1%)

Memory
4.0MiB live, 4.0MiB 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))

simplify164.0ms (6%)

Memory
3.3MiB live, 76.4MiB 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 → 72
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)

rewrite129.0ms (4.7%)

Memory
8.0MiB live, 128.6MiB 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>

eval31.0ms (1.1%)

Memory
-20.8MiB live, 16.3MiB allocated
Compiler

Compiled 1 232 to 128 computations (89.6% saved)

prune4.0ms (0.1%)

Memory
9.9MiB live, 9.9MiB allocated
Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New1020102
Fresh000
Picked011
Done022
Total1023105
Accuracy
100.0%
Counts
105 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
52.4%
(*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64))
100.0%
(*.f64 #s(literal 1/2 binary64) (fabs.f64 (-.f64 b a)))
50.3%
(*.f64 #s(literal 1/2 binary64) (fabs.f64 #s(approx (- b a) b)))
Compiler

Compiled 59 to 41 computations (30.5% saved)

regimes15.0ms (0.6%)

Memory
-12.9MiB live, 23.7MiB allocated
Counts
5 → 1
Calls
Call 1
Inputs
(*.f64 #s(literal 1/2 binary64) (fabs.f64 #s(approx (- b a) b)))
(*.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) (neg.f64 a))))
(*.f64 #s(literal 1/2 binary64) (fabs.f64 (-.f64 b a)))
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
Outputs
(*.f64 #s(literal 1/2 binary64) (fabs.f64 (-.f64 b a)))
Calls

5 calls:

5.0ms
b
2.0ms
(fabs.f64 (-.f64 a b))
2.0ms
(-.f64 a b)
2.0ms
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
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)

regimes29.0ms (1.1%)

Memory
-2.7MiB live, 46.4MiB allocated
Counts
3 → 2
Calls
Call 1
Inputs
(*.f64 #s(literal 1/2 binary64) (fabs.f64 #s(approx (- b a) b)))
(*.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) (neg.f64 a))))
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) b)))
Calls

5 calls:

14.0ms
a
9.0ms
b
2.0ms
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
2.0ms
(fabs.f64 (-.f64 a b))
2.0ms
(-.f64 a b)
Results
AccuracySegmentsBranch
83.5%2a
78.8%2b
62.0%4(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
62.0%4(fabs.f64 (-.f64 a b))
62.0%4(-.f64 a b)
Compiler

Compiled 15 to 17 computations (-13.3% saved)

regimes7.0ms (0.3%)

Memory
16.9MiB live, 16.9MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

5 calls:

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

Compiled 15 to 17 computations (-13.3% saved)

bsearch16.0ms (0.6%)

Memory
-14.1MiB live, 23.8MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
14.0ms
-1.2032434674938515e-56
-1.2746636092953156e-59
Samples
9.0ms128×0valid
Compiler

Compiled 137 to 139 computations (-1.5% saved)

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

simplify31.0ms (1.1%)

Memory
12.2MiB live, 50.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01634
12334
23034
33534
43834
53934
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 #s(literal 1/2 binary64) (fabs.f64 (-.f64 b a)))
(if (<=.f64 a #s(literal -4593802368423799/3533694129556768659166595001485837031654967793751237916243212402585239552 binary64)) (*.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) b))))
(*.f64 #s(literal 1/2 binary64) (fabs.f64 #s(approx (- b a) b)))
Outputs
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(if (<=.f64 a #s(literal -4593802368423799/3533694129556768659166595001485837031654967793751237916243212402585239552 binary64)) (*.f64 (fabs.f64 #s(approx (- b a) a)) #s(literal 1/2 binary64)) (*.f64 (fabs.f64 #s(approx (- b a) b)) #s(literal 1/2 binary64)))
(*.f64 (fabs.f64 #s(approx (- b a) b)) #s(literal 1/2 binary64))

soundness456.0ms (16.6%)

Memory
1.5MiB live, 267.7MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01143
01643
14043
217543
3160739
0968839
031303
183303
2191303
3548303
41608303
52452303
63335303
74921303
85426303
95802303
106323303
116991303
127745303
08004303
066
096
1136
2206
3286
4476
5966
61496
71716
81836
91866
01866
Stop Event
done
iter limit
saturated
iter limit
iter limit
node limit
iter limit
node limit
iter limit
Compiler

Compiled 137 to 85 computations (38% saved)

preprocess30.0ms (1.1%)

Memory
9.1MiB live, 82.2MiB allocated
Remove

(sort a b)

Compiler

Compiled 116 to 80 computations (31% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...