Details

Time bar (total: 1.1s)

analyze50.0ms (4.4%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
28.6%25%62.4%0.1%12.5%0%0%6
46.2%37.5%43.7%0.1%18.7%0%0%7
57.7%46.8%34.3%0.1%18.7%0%0%8
69.4%53.1%23.4%0.1%23.4%0%0%9
76.5%58.5%18%0.1%23.4%0%0%10
83.7%62%12.1%0.1%25.8%0%0%11
87.6%65%9.2%0.1%25.8%0%0%12
Compiler

Compiled 11 to 7 computations (36.4% saved)

sample699.0ms (61.4%)

Results
665.0ms8256×body256valid
23.0ms292×body256infinite
Bogosity

preprocess9.0ms (0.8%)

Algorithm
egg-herbie
Rules
76×rational.json-simplify-2
62×rational.json-simplify-31
rational.json-simplify-9
swap-a-b
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01346
12046
22846
34446
46846
59046
69346
022
122
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
0
Call 2
Inputs
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
(neg.f64 (*.f64 (*.f64 (*.f64 b b) a) a))
Outputs
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
(neg.f64 (*.f64 b (*.f64 (*.f64 a a) b)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
(neg.f64 (*.f64 (*.f64 (*.f64 b b) a) a))
(neg.f64 (*.f64 b (*.f64 (*.f64 a a) b)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
Symmetry

(sort a b)

Compiler

Compiled 12 to 8 computations (33.3% saved)

simplify5.0ms (0.5%)

Algorithm
egg-herbie
Rules
74×rational.json-simplify-2
62×rational.json-simplify-31
rational.json-simplify-9
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0923
11323
21823
32923
45223
57923
68823
78923
Stop Event
saturated
Counts
1 → 5
Calls
Call 1
Inputs
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
Outputs
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
(neg.f64 (*.f64 b (*.f64 (*.f64 a a) b)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))

eval1.0ms (0.1%)

Compiler

Compiled 42 to 18 computations (57.1% saved)

prune2.0ms (0.2%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New145
Fresh011
Picked000
Done000
Total156
Error
1.9b
Counts
6 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
17.6b
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
22.6b
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
4.3b
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
16.5b
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
Compiler

Compiled 40 to 24 computations (40% saved)

localize7.0ms (0.7%)

Local error

Found 2 expressions with local error:

NewErrorProgram
4.0b
(*.f64 a (*.f64 a (*.f64 b b)))
11.6b
(*.f64 a (*.f64 b b))
Compiler

Compiled 27 to 6 computations (77.8% saved)

series4.0ms (0.3%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
a
@0
(*.f64 a (*.f64 b b))
1.0ms
b
@inf
(*.f64 a (*.f64 b b))
0.0ms
a
@inf
(*.f64 a (*.f64 b b))
0.0ms
b
@0
(*.f64 a (*.f64 a (*.f64 b b)))
0.0ms
b
@0
(*.f64 a (*.f64 b b))

rewrite6.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
38×rational.json-simplify-2
30×bool.json-1
26×rational.json-1
26×rational.json-2
24×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0732
13632
27132
39132
49732
Stop Event
saturated
Counts
2 → 4
Calls
Call 1
Inputs
(*.f64 a (*.f64 b b))
(*.f64 a (*.f64 a (*.f64 b b)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 b b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 a (*.f64 b b)) (*.f64 a (*.f64 b b)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 b (*.f64 a a))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 b (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 b (*.f64 b (*.f64 a a))))))))

simplify13.0ms (1.1%)

Algorithm
egg-herbie
Rules
20×rational.json-simplify-2
10×rational.json-simplify-31
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
019856
128856
234856
337856
Stop Event
saturated
Counts
52 → 11
Calls
Call 1
Inputs
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(+.f64 (*.f64 a (*.f64 b b)) 0)
(+.f64 0 (*.f64 a (*.f64 b b)))
(+.f64 (*.f64 b (*.f64 b (*.f64 a a))) 0)
(+.f64 0 (*.f64 b (*.f64 b (*.f64 a a))))
Outputs
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 b 2) (pow.f64 a 2))
(+.f64 (*.f64 a (*.f64 b b)) 0)
(+.f64 (*.f64 b (*.f64 a b)) 0)
(+.f64 0 (*.f64 a (*.f64 b b)))
(+.f64 (*.f64 a (*.f64 b b)) 0)
(+.f64 (*.f64 b (*.f64 a b)) 0)
(+.f64 (*.f64 b (*.f64 b (*.f64 a a))) 0)
(+.f64 0 (*.f64 b (*.f64 a (*.f64 b a))))
(+.f64 0 (*.f64 a (*.f64 b (*.f64 a b))))
(+.f64 0 (*.f64 (*.f64 a b) (*.f64 a b)))
(+.f64 0 (*.f64 b (*.f64 b (*.f64 a a))))
(+.f64 0 (*.f64 b (*.f64 a (*.f64 b a))))
(+.f64 0 (*.f64 a (*.f64 b (*.f64 a b))))
(+.f64 0 (*.f64 (*.f64 a b) (*.f64 a b)))

localize7.0ms (0.6%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 b (*.f64 a b))
4.0b
(*.f64 a (*.f64 b (*.f64 a b)))
Compiler

Compiled 27 to 6 computations (77.8% saved)

series1.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
a
@0
(*.f64 a (*.f64 b (*.f64 a b)))
0.0ms
a
@inf
(*.f64 a (*.f64 b (*.f64 a b)))
0.0ms
b
@-inf
(*.f64 a (*.f64 b (*.f64 a b)))
0.0ms
a
@-inf
(*.f64 a (*.f64 b (*.f64 a b)))
0.0ms
b
@inf
(*.f64 a (*.f64 b (*.f64 a b)))

rewrite6.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
38×rational.json-simplify-2
28×bool.json-1
24×rational.json-1
24×rational.json-2
24×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0732
13932
27732
39132
49332
Stop Event
saturated
Counts
2 → 4
Calls
Call 1
Inputs
(*.f64 a (*.f64 b (*.f64 a b)))
(*.f64 b (*.f64 a b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (*.f64 a (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 a (*.f64 a (*.f64 b b))) (*.f64 a (*.f64 a (*.f64 b b))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 b b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 a (*.f64 b b)) (*.f64 a (*.f64 b b)))))))

simplify12.0ms (1.1%)

Algorithm
egg-herbie
Rules
20×rational.json-simplify-2
10×rational.json-simplify-31
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
017856
123856
229856
334856
435856
Stop Event
saturated
Counts
52 → 7
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(+.f64 0 (*.f64 a (*.f64 a (*.f64 b b))))
(+.f64 (*.f64 a (*.f64 b b)) 0)
(+.f64 0 (*.f64 a (*.f64 b b)))
Outputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0)
(+.f64 0 (*.f64 a (*.f64 a (*.f64 b b))))
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0)
(+.f64 (*.f64 a (*.f64 b b)) 0)
(+.f64 0 (*.f64 a (*.f64 b b)))
(+.f64 (*.f64 a (*.f64 b b)) 0)

localize7.0ms (0.6%)

Local error

Found 1 expressions with local error:

NewErrorProgram
21.8b
(*.f64 (*.f64 a a) (*.f64 b b))
Compiler

Compiled 25 to 6 computations (76% saved)

series0.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
b
@inf
(*.f64 (*.f64 a a) (*.f64 b b))
0.0ms
a
@inf
(*.f64 (*.f64 a a) (*.f64 b b))
0.0ms
a
@0
(*.f64 (*.f64 a a) (*.f64 b b))
0.0ms
a
@-inf
(*.f64 (*.f64 a a) (*.f64 b b))
0.0ms
b
@-inf
(*.f64 (*.f64 a a) (*.f64 b b))

rewrite7.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
36×rational.json-simplify-2
28×bool.json-1
24×rational.json-1
24×rational.json-2
24×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
13519
26819
38219
49119
59419
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 a a) (*.f64 b b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (*.f64 a (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 a (*.f64 a (*.f64 b b))) (*.f64 a (*.f64 a (*.f64 b b))))))))

simplify9.0ms (0.8%)

Algorithm
egg-herbie
Rules
18×rational.json-simplify-2
10×rational.json-simplify-31
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014506
119506
225506
330506
431506
Stop Event
saturated
Counts
26 → 4
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(+.f64 0 (*.f64 a (*.f64 a (*.f64 b b))))
Outputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0)
(+.f64 0 (*.f64 a (*.f64 a (*.f64 b b))))
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0)

localize7.0ms (0.6%)

Local error

Found 2 expressions with local error:

NewErrorProgram
6.2b
(*.f64 (*.f64 (*.f64 a a) b) b)
10.6b
(*.f64 (*.f64 a a) b)
Compiler

Compiled 27 to 6 computations (77.8% saved)

series2.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
b
@0
(*.f64 (*.f64 a a) b)
0.0ms
a
@inf
(*.f64 (*.f64 a a) b)
0.0ms
b
@-inf
(*.f64 (*.f64 a a) b)
0.0ms
a
@0
(*.f64 (*.f64 a a) b)
0.0ms
b
@inf
(*.f64 (*.f64 a a) b)

rewrite6.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
34×rational.json-simplify-2
30×bool.json-1
26×rational.json-1
26×rational.json-2
24×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0732
13432
26432
38232
49432
59832
Stop Event
saturated
Counts
2 → 4
Calls
Call 1
Inputs
(*.f64 (*.f64 a a) b)
(*.f64 (*.f64 (*.f64 a a) b) b)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 a b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 a (*.f64 a b)) (*.f64 a (*.f64 a b)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a b) (*.f64 a b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (*.f64 a b) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (*.f64 a b) (*.f64 a b)) (*.f64 (*.f64 a b) (*.f64 a b)))))))

simplify15.0ms (1.3%)

Algorithm
egg-herbie
Rules
20×rational.json-simplify-2
10×rational.json-simplify-31
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
017856
123856
228856
332856
434856
535856
Stop Event
saturated
Counts
52 → 7
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(+.f64 0 (*.f64 a (*.f64 a b)))
(+.f64 (*.f64 (*.f64 a b) (*.f64 a b)) 0)
(+.f64 0 (*.f64 (*.f64 a b) (*.f64 a b)))
Outputs
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(+.f64 0 (*.f64 a (*.f64 a b)))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(+.f64 (*.f64 (*.f64 a b) (*.f64 a b)) 0)
(+.f64 0 (*.f64 (*.f64 a b) (*.f64 a b)))
(+.f64 0 (*.f64 a (*.f64 a (*.f64 b b))))
(+.f64 0 (*.f64 (*.f64 a b) (*.f64 a b)))
(+.f64 0 (*.f64 a (*.f64 a (*.f64 b b))))

eval4.0ms (0.4%)

Compiler

Compiled 276 to 132 computations (52.2% saved)

prune4.0ms (0.4%)

Pruning

6 alts after pruning (2 fresh and 4 done)

PrunedKeptTotal
New27229
Fresh000
Picked011
Done033
Total27633
Error
0.1b
Counts
33 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.3b
(neg.f64 (+.f64 (*.f64 (*.f64 a b) (*.f64 a b)) 0))
6.4b
(neg.f64 (+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0))
17.6b
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
22.6b
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
4.3b
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
16.5b
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
Compiler

Compiled 64 to 39 computations (39.1% saved)

localize10.0ms (0.8%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 a (*.f64 a b))
6.2b
(*.f64 b (*.f64 a (*.f64 a b)))
Compiler

Compiled 39 to 11 computations (71.8% saved)

series1.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
b
@0
(*.f64 b (*.f64 a (*.f64 a b)))
0.0ms
a
@inf
(*.f64 b (*.f64 a (*.f64 a b)))
0.0ms
b
@inf
(*.f64 b (*.f64 a (*.f64 a b)))
0.0ms
a
@-inf
(*.f64 b (*.f64 a (*.f64 a b)))
0.0ms
b
@-inf
(*.f64 b (*.f64 a (*.f64 a b)))

rewrite7.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
34×rational.json-simplify-2
28×bool.json-1
24×rational.json-1
24×rational.json-2
24×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0732
13732
27332
39032
49432
Stop Event
saturated
Counts
2 → 4
Calls
Call 1
Inputs
(*.f64 b (*.f64 a (*.f64 a b)))
(*.f64 a (*.f64 a b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a a) (*.f64 b b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (*.f64 a a) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (*.f64 a a) (*.f64 b b)) (*.f64 (*.f64 a a) (*.f64 b b)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 a a)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 b (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 b (*.f64 a a)) (*.f64 b (*.f64 a a)))))))

simplify11.0ms (1%)

Algorithm
egg-herbie
Rules
22×rational.json-simplify-2
12×rational.json-simplify-31
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
018856
125856
232856
337856
Stop Event
saturated
Counts
52 → 11
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(+.f64 (*.f64 (*.f64 a a) (*.f64 b b)) 0)
(+.f64 0 (*.f64 (*.f64 a a) (*.f64 b b)))
(+.f64 (*.f64 b (*.f64 a a)) 0)
(+.f64 0 (*.f64 b (*.f64 a a)))
Outputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(+.f64 (*.f64 (*.f64 a a) (*.f64 b b)) 0)
(+.f64 (*.f64 b (*.f64 a (*.f64 b a))) 0)
(+.f64 (*.f64 a (*.f64 b (*.f64 a b))) 0)
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(+.f64 0 (*.f64 (*.f64 a a) (*.f64 b b)))
(+.f64 (*.f64 b (*.f64 a (*.f64 b a))) 0)
(+.f64 (*.f64 a (*.f64 b (*.f64 a b))) 0)
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(+.f64 (*.f64 b (*.f64 a a)) 0)
(+.f64 0 (*.f64 a (*.f64 b a)))
(+.f64 0 (*.f64 a (*.f64 a b)))
(+.f64 0 (*.f64 b (*.f64 a a)))
(+.f64 0 (*.f64 a (*.f64 b a)))
(+.f64 0 (*.f64 a (*.f64 a b)))

localize8.0ms (0.7%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 a b) (*.f64 a b))
Compiler

Compiled 34 to 10 computations (70.6% saved)

series0.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
a
@0
(*.f64 (*.f64 a b) (*.f64 a b))
0.0ms
b
@-inf
(*.f64 (*.f64 a b) (*.f64 a b))
0.0ms
a
@-inf
(*.f64 (*.f64 a b) (*.f64 a b))
0.0ms
a
@inf
(*.f64 (*.f64 a b) (*.f64 a b))
0.0ms
b
@inf
(*.f64 (*.f64 a b) (*.f64 a b))

rewrite6.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
34×rational.json-simplify-2
28×bool.json-1
24×rational.json-1
24×rational.json-2
24×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0619
13119
26219
37619
48519
59319
69519
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 a b) (*.f64 a b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (*.f64 a (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 a (*.f64 a (*.f64 b b))) (*.f64 a (*.f64 a (*.f64 b b))))))))

simplify9.0ms (0.8%)

Algorithm
egg-herbie
Rules
18×rational.json-simplify-2
10×rational.json-simplify-31
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014506
119506
225506
330506
431506
Stop Event
saturated
Counts
26 → 4
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(+.f64 0 (*.f64 a (*.f64 a (*.f64 b b))))
Outputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0)
(+.f64 0 (*.f64 a (*.f64 a (*.f64 b b))))
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0)

eval4.0ms (0.4%)

Compiler

Compiled 176 to 103 computations (41.5% saved)

prune4.0ms (0.3%)

Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New15015
Fresh000
Picked011
Done055
Total15621
Error
0.1b
Counts
21 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.3b
(neg.f64 (+.f64 (*.f64 (*.f64 a b) (*.f64 a b)) 0))
6.4b
(neg.f64 (+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0))
17.6b
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
22.6b
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
4.3b
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
16.5b
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
Compiler

Compiled 64 to 39 computations (39.1% saved)

regimes20.0ms (1.7%)

Counts
6 → 1
Calls
Call 1
Inputs
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
(neg.f64 (+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0))
(neg.f64 (+.f64 (*.f64 (*.f64 a b) (*.f64 a b)) 0))
Outputs
(neg.f64 (+.f64 (*.f64 (*.f64 a b) (*.f64 a b)) 0))
Calls

5 calls:

5.0ms
a
4.0ms
b
3.0ms
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
3.0ms
(*.f64 a a)
2.0ms
(*.f64 (*.f64 (*.f64 a a) b) b)
Results
ErrorSegmentsBranch
0.3b1a
0.3b1b
0.3b1(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
0.3b1(*.f64 (*.f64 (*.f64 a a) b) b)
0.3b1(*.f64 a a)
Compiler

Compiled 84 to 43 computations (48.8% saved)

regimes51.0ms (4.5%)

Counts
5 → 4
Calls
Call 1
Inputs
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
(neg.f64 (+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0))
Outputs
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
(neg.f64 (+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0))
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
(neg.f64 (+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0))
Calls

5 calls:

21.0ms
a
9.0ms
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
8.0ms
b
7.0ms
(*.f64 a a)
6.0ms
(*.f64 (*.f64 (*.f64 a a) b) b)
Results
ErrorSegmentsBranch
1.4b4a
2.2b2b
2.0b3(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
2.0b3(*.f64 (*.f64 (*.f64 a a) b) b)
2.0b3(*.f64 a a)
Compiler

Compiled 74 to 39 computations (47.3% saved)

bsearch37.0ms (3.3%)

Algorithm
binary-search
Steps
TimeLeftRight
7.0ms
3.4014833382904116e-227
6.334888648682051e-227
12.0ms
-1.137982313024533e-218
-7.317145906532026e-223
17.0ms
-5.008698584916191e+162
-1.1684995343158884e+161
Results
27.0ms304×body256valid
6.0ms73×body256infinite
Compiler

Compiled 471 to 314 computations (33.3% saved)

regimes34.0ms (3%)

Counts
4 → 3
Calls
Call 1
Inputs
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
Outputs
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
Calls

5 calls:

10.0ms
a
7.0ms
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
6.0ms
(*.f64 a a)
5.0ms
(*.f64 (*.f64 (*.f64 a a) b) b)
4.0ms
b
Results
ErrorSegmentsBranch
3.0b3a
4.3b1b
2.1b3(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
2.1b3(*.f64 (*.f64 (*.f64 a a) b) b)
2.0b3(*.f64 a a)
Compiler

Compiled 64 to 34 computations (46.9% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
6.182022691556239e+301
1.0671168013163975e+302
0.0ms
2.6700745346028007e-293
6.744581938749718e-292
Compiler

Compiled 15 to 10 computations (33.3% saved)

regimes11.0ms (0.9%)

Accuracy

Total -18.4b remaining (-431.8%)

Threshold costs -18.4b (-431.8%)

Counts
3 → 1
Calls
Call 1
Inputs
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
Outputs
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
Calls

3 calls:

4.0ms
a
3.0ms
b
2.0ms
(*.f64 a a)
Results
ErrorSegmentsBranch
4.3b1a
4.3b1b
4.3b1(*.f64 a a)
Compiler

Compiled 37 to 20 computations (45.9% saved)

simplify4.0ms (0.4%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043305
Stop Event
done
saturated
Calls
Call 1
Inputs
(neg.f64 (+.f64 (*.f64 (*.f64 a b) (*.f64 a b)) 0))
(if (<=.f64 a -3800000000000000243330347953378717112725330102098422907412430913845775035719496007929949971179362882031637353115564779561510223204910144216708426037346518370877440) (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))) (if (<=.f64 a -107310050539825/198722315814490743699069374523200327072881410190937166225798660867334521943856241450352436330066749177662429529232777370389962245646696242104868771205271185818170236930668787910433956560844600937633663896795708000114284397288455405568) (neg.f64 (+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0)) (if (<=.f64 a 5334411546303883/106688230926077668385277628651540124754316133157054530566340124988224595805082113144342915213944868651886878569494931847134220826465909841285813696837293280737522521272224232935409252574589024395663440258174185631707051968599623380658622038016) (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))) (neg.f64 (+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0)))))
(if (<=.f64 (*.f64 a a) 2247116418577895/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304) (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))) (if (<=.f64 (*.f64 a a) 100000000000000007629703079084894925347346855150656811701601734206211380288125794484142188964691784076639747577138548761372210387844799938291815611350519830750167649856488981626536368095414607314235151058373458986890825155659063617715863205282622390509284183439858617103083735673849899204570498157510656) (neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b)) (neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))))
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
Outputs
(neg.f64 (+.f64 (*.f64 (*.f64 a b) (*.f64 a b)) 0))
(if (<=.f64 a -3800000000000000243330347953378717112725330102098422907412430913845775035719496007929949971179362882031637353115564779561510223204910144216708426037346518370877440) (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))) (if (<=.f64 a -107310050539825/198722315814490743699069374523200327072881410190937166225798660867334521943856241450352436330066749177662429529232777370389962245646696242104868771205271185818170236930668787910433956560844600937633663896795708000114284397288455405568) (neg.f64 (+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0)) (if (<=.f64 a 5334411546303883/106688230926077668385277628651540124754316133157054530566340124988224595805082113144342915213944868651886878569494931847134220826465909841285813696837293280737522521272224232935409252574589024395663440258174185631707051968599623380658622038016) (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))) (neg.f64 (+.f64 (*.f64 b (*.f64 a (*.f64 a b))) 0)))))
(if (<=.f64 (*.f64 a a) 2247116418577895/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304) (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))) (if (<=.f64 (*.f64 a a) 100000000000000007629703079084894925347346855150656811701601734206211380288125794484142188964691784076639747577138548761372210387844799938291815611350519830750167649856488981626536368095414607314235151058373458986890825155659063617715863205282622390509284183439858617103083735673849899204570498157510656) (neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b)) (neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))))
(neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
Compiler

Compiled 120 to 58 computations (51.7% saved)

soundness0.0ms (0%)

end36.0ms (3.2%)

Remove

(sort a b)

Compiler

Compiled 136 to 55 computations (59.6% saved)

Profiling

Loading profile data...