fabs fraction 2

Time bar (total: 3.1s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze0.0ms (0%)

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

sample605.0ms (19.4%)

Memory
10.3MiB live, 1 117.9MiB allocated
Samples
386.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 178.0ms
ival-sub: 60.0ms (33.7% of total)
ival-div: 58.0ms (32.6% of total)
ival-fabs: 46.0ms (25.8% of total)
ival-true: 6.0ms (3.4% of total)
exact: 5.0ms (2.8% of total)
ival-assert: 3.0ms (1.7% of total)
Bogosity

explain53.0ms (1.7%)

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

Compiled 42 to 22 computations (47.6% saved)

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

preprocess22.0ms (0.7%)

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

(sort a b)

Compiler

Compiled 6 to 6 computations (0% saved)

eval0.0ms (0%)

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

localize20.0ms (0.6%)

Memory
-15.9MiB live, 27.1MiB allocated
Localize:

Found 3 expressions of interest:

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

Compiled 18 to 8 computations (55.6% saved)

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

6 calls:

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

simplify125.0ms (4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
031303
183303
2191303
3550303
41643303
52492303
63376303
74963303
85472303
95848303
106369303
117037303
127792303
08020303
Stop Event
iter limit
node limit
Counts
72 → 69
Calls
Call 1
Inputs
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
a
(+ a (* -1 b))
(+ a (* -1 b))
(+ a (* -1 b))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
(* -1 b)
(* b (- (/ a b) 1))
(* b (- (/ a b) 1))
(* b (- (/ a b) 1))
(* 1/2 (fabs (+ a (* -1 b))))
(* 1/2 (fabs (+ a (* -1 b))))
(* 1/2 (fabs (+ a (* -1 b))))
(* 1/2 (fabs (+ a (* -1 b))))
(fabs (+ a (* -1 b)))
(fabs (+ a (* -1 b)))
(fabs (+ a (* -1 b)))
(fabs (+ a (* -1 b)))
(* -1 b)
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
(* -1 b)
(- a b)
(- a b)
(- a b)
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(* 1/2 (fabs (- a b)))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
(fabs (- a b))
a
(* a (+ 1 (* -1 (/ b a))))
(* a (+ 1 (* -1 (/ b a))))
(* a (+ 1 (* -1 (/ b a))))
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(fabs (neg (+ b (* -1 a))))
(fabs (neg (+ b (* -1 a))))
(fabs (neg (+ b (* -1 a))))
(fabs (neg (+ b (* -1 a))))
a
(* -1 (* a (- (/ b a) 1)))
(* -1 (* a (- (/ b a) 1)))
(* -1 (* a (- (/ b a) 1)))
Outputs
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
a
(+ a (* -1 b))
(-.f64 a b)
(+ a (* -1 b))
(-.f64 a b)
(+ a (* -1 b))
(-.f64 a b)
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(* -1 b)
(neg.f64 b)
(* b (- (/ a b) 1))
(-.f64 a b)
(* b (- (/ a b) 1))
(-.f64 a b)
(* b (- (/ a b) 1))
(-.f64 a b)
(* 1/2 (fabs (+ a (* -1 b))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ a (* -1 b))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ a (* -1 b))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ a (* -1 b))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs (+ a (* -1 b)))
(fabs.f64 (-.f64 a b))
(fabs (+ a (* -1 b)))
(fabs.f64 (-.f64 a b))
(fabs (+ a (* -1 b)))
(fabs.f64 (-.f64 a b))
(fabs (+ a (* -1 b)))
(fabs.f64 (-.f64 a b))
(* -1 b)
(neg.f64 b)
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(-.f64 a b)
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(-.f64 a b)
(* -1 (* b (+ 1 (* -1 (/ a b)))))
(-.f64 a b)
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(* -1 b)
(neg.f64 b)
(- a b)
(-.f64 a b)
(- a b)
(-.f64 a b)
(- a b)
(-.f64 a b)
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- a b)))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
(fabs (- a b))
(fabs.f64 (-.f64 a b))
a
(* a (+ 1 (* -1 (/ b a))))
(-.f64 a b)
(* a (+ 1 (* -1 (/ b a))))
(-.f64 a b)
(* a (+ 1 (* -1 (/ b a))))
(-.f64 a b)
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ b (* -1 a)))))
(*.f64 (fabs.f64 (-.f64 a b)) #s(literal 1/2 binary64))
(fabs (neg (+ b (* -1 a))))
(fabs.f64 (-.f64 a b))
(fabs (neg (+ b (* -1 a))))
(fabs.f64 (-.f64 a b))
(fabs (neg (+ b (* -1 a))))
(fabs.f64 (-.f64 a b))
(fabs (neg (+ b (* -1 a))))
(fabs.f64 (-.f64 a b))
a
(* -1 (* a (- (/ b a) 1)))
(-.f64 a b)
(* -1 (* a (- (/ b a) 1)))
(-.f64 a b)
(* -1 (* a (- (/ b a) 1)))
(-.f64 a b)

rewrite517.0ms (16.6%)

Memory
-8.6MiB live, 151.4MiB 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>

eval77.0ms (2.5%)

Memory
-48.6MiB live, 81.1MiB allocated
Compiler

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

prune8.0ms (0.3%)

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

localize17.0ms (0.5%)

Memory
-12.7MiB live, 26.1MiB 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 18 to 8 computations (55.6% saved)

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

6 calls:

TimeVariablePointExpression
1.0ms
a
@inf
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a))
0.0ms
b
@-inf
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a))
0.0ms
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
@0
((* (fabs (- b a)) 1/2) (fabs (- b a)) (- b a))

simplify150.0ms (4.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
031303
183303
2191303
3548303
41608303
52447303
63328303
74914303
85422303
95798303
106319303
116978303
127739303
08116303
Stop Event
iter limit
node limit
Counts
72 → 69
Calls
Call 1
Inputs
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(* -1 a)
(- b a)
(- b a)
(- b a)
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
b
(* b (+ 1 (* -1 (/ a b))))
(* b (+ 1 (* -1 (/ a b))))
(* b (+ 1 (* -1 (/ a b))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
b
(* -1 (* b (- (/ a b) 1)))
(* -1 (* b (- (/ a b) 1)))
(* -1 (* b (- (/ a b) 1)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
b
(+ b (* -1 a))
(+ b (* -1 a))
(+ b (* -1 a))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(* -1 a)
(* a (- (/ b a) 1))
(* a (- (/ b a) 1))
(* a (- (/ b a) 1))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(* -1 a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(* -1 (* a (+ 1 (* -1 (/ b a)))))
Outputs
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(- b a)
(-.f64 b a)
(- b a)
(-.f64 b a)
(- b a)
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
b
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
b
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
b
(+ b (* -1 a))
(-.f64 b a)
(+ b (* -1 a))
(-.f64 b a)
(+ b (* -1 a))
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)

rewrite187.0ms (6%)

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

eval46.0ms (1.5%)

Memory
1.0MiB live, 74.4MiB allocated
Compiler

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

prune9.0ms (0.3%)

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

Compiled 12 to 13 computations (-8.3% saved)

simplify6.0ms (0.2%)

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

localize22.0ms (0.7%)

Memory
-33.5MiB live, 17.1MiB 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)))
accuracy29.060694958676567
#s(approx (- b a) (neg.f64 a))
Samples
12.0ms256×0valid
Compiler

Compiled 19 to 9 computations (52.6% saved)

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

series4.0ms (0.1%)

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

6 calls:

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

simplify128.0ms (4.1%)

Memory
21.7MiB live, 127.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031327
183327
2191327
3548327
41608327
52447327
63328327
74914327
85422327
95798327
106319327
116978327
127739327
08116327
Stop Event
iter limit
node limit
Counts
84 → 81
Calls
Call 1
Inputs
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(* -1 a)
(- b a)
(- b a)
(- b a)
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
b
(* b (+ 1 (* -1 (/ a b))))
(* b (+ 1 (* -1 (/ a b))))
(* b (+ 1 (* -1 (/ a b))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
b
(* -1 (* b (- (/ a b) 1)))
(* -1 (* b (- (/ a b) 1)))
(* -1 (* b (- (/ a b) 1)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
b
(+ b (* -1 a))
(+ b (* -1 a))
(+ b (* -1 a))
(* -1 a)
(* -1 a)
(* -1 a)
(* -1 a)
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(* -1 a)
(* a (- (/ b a) 1))
(* a (- (/ b a) 1))
(* a (- (/ b a) 1))
(* -1 a)
(* -1 a)
(* -1 a)
(* -1 a)
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(* -1 a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(* -1 a)
(* -1 a)
(* -1 a)
(* -1 a)
Outputs
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(- b a)
(-.f64 b a)
(- b a)
(-.f64 b a)
(- b a)
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
b
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
b
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
b
(+ b (* -1 a))
(-.f64 b a)
(+ b (* -1 a))
(-.f64 b a)
(+ b (* -1 a))
(-.f64 b a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)
(* -1 a)
(neg.f64 a)

rewrite125.0ms (4%)

Memory
-4.7MiB live, 155.1MiB 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>

eval27.0ms (0.9%)

Memory
5.2MiB live, 48.8MiB allocated
Compiler

Compiled 1 045 to 225 computations (78.5% saved)

prune8.0ms (0.3%)

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

Compiled 11 to 12 computations (-9.1% saved)

simplify6.0ms (0.2%)

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

localize18.0ms (0.6%)

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

Compiled 17 to 8 computations (52.9% saved)

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

series3.0ms (0.1%)

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

6 calls:

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

simplify133.0ms (4.3%)

Memory
34.4MiB live, 142.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031303
183303
2191303
3548303
41608303
52447303
63328303
74914303
85422303
95798303
106319303
116978303
127739303
08116303
Stop Event
iter limit
node limit
Counts
72 → 69
Calls
Call 1
Inputs
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(* -1 a)
(- b a)
(- b a)
(- b a)
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
b
(* b (+ 1 (* -1 (/ a b))))
(* b (+ 1 (* -1 (/ a b))))
(* b (+ 1 (* -1 (/ a b))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
(fabs (neg (+ a (* -1 b))))
b
(* -1 (* b (- (/ a b) 1)))
(* -1 (* b (- (/ a b) 1)))
(* -1 (* b (- (/ a b) 1)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
b
(+ b (* -1 a))
(+ b (* -1 a))
(+ b (* -1 a))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(* 1/2 (fabs (- b a)))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(fabs (- b a))
(* -1 a)
(* a (- (/ b a) 1))
(* a (- (/ b a) 1))
(* a (- (/ b a) 1))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(* 1/2 (fabs (+ b (* -1 a))))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(fabs (+ b (* -1 a)))
(* -1 a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(* -1 (* a (+ 1 (* -1 (/ b a)))))
Outputs
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(- b a)
(-.f64 b a)
(- b a)
(-.f64 b a)
(- b a)
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
b
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* b (+ 1 (* -1 (/ a b))))
(-.f64 b a)
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (neg (+ a (* -1 b)))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
(fabs (neg (+ a (* -1 b))))
(fabs.f64 (-.f64 b a))
b
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* -1 (* b (- (/ a b) 1)))
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
b
(+ b (* -1 a))
(-.f64 b a)
(+ b (* -1 a))
(-.f64 b a)
(+ b (* -1 a))
(-.f64 b a)
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (- b a)))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(fabs (- b a))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* a (- (/ b a) 1))
(-.f64 b a)
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(* 1/2 (fabs (+ b (* -1 a))))
(*.f64 (fabs.f64 (-.f64 b a)) #s(literal 1/2 binary64))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(fabs (+ b (* -1 a)))
(fabs.f64 (-.f64 b a))
(* -1 a)
(neg.f64 a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)
(* -1 (* a (+ 1 (* -1 (/ b a)))))
(-.f64 b a)

rewrite114.0ms (3.7%)

Memory
-26.2MiB live, 174.1MiB 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>

eval9.0ms (0.3%)

Memory
16.9MiB live, 16.9MiB allocated
Compiler

Compiled 770 to 121 computations (84.3% saved)

prune6.0ms (0.2%)

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

Compiled 34 to 29 computations (14.7% saved)

regimes11.0ms (0.3%)

Memory
27.2MiB live, 27.2MiB 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 a b)
2.0ms
(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
2.0ms
(fabs.f64 (-.f64 a b))
2.0ms
b
2.0ms
a
Results
AccuracySegmentsBranch
100.0%1a
100.0%1b
100.0%1(/.f64 (fabs.f64 (-.f64 a b)) #s(literal 2 binary64))
100.0%1(fabs.f64 (-.f64 a b))
100.0%1(-.f64 a b)
Compiler

Compiled 15 to 17 computations (-13.3% saved)

regimes27.0ms (0.9%)

Memory
-38.4MiB live, 24.9MiB 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:

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

Compiled 15 to 17 computations (-13.3% saved)

simplify95.0ms (3.1%)

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

soundness460.0ms (14.8%)

Memory
-6.8MiB live, 224.8MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031303
183303
2191303
3548303
41608303
52447303
63328303
74914303
85422303
95798303
106319303
116978303
127739303
08116303
0824
01124
13224
216324
3157620
0974720
0613
0913
13813
220413
3179613
0863213
Stop Event
done
iter limit
node limit
iter limit
iter limit
node limit
iter limit
iter limit
node limit
Compiler

Compiled 46 to 42 computations (8.7% saved)

preprocess60.0ms (1.9%)

Memory
11.6MiB live, 56.3MiB allocated
Remove

(sort a b)

Compiler

Compiled 58 to 54 computations (6.9% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...