Details

Time bar (total: 3.3s)

analyze55.0ms (1.7%)

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)

sample764.0ms (23.4%)

Results
727.0ms8256×body256valid
22.0ms260×body256infinite
Bogosity

preprocess28.0ms (0.8%)

Algorithm
egg-herbie
Rules
284×rational.json-simplify-43
272×rational.json-simplify-2
110×rational.json-simplify-55
46×rational.json-simplify-54
32×rational.json-simplify-12
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01346
12746
23946
36846
412746
526046
642146
745546
845946
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))))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(*.f64 (*.f64 a a) (*.f64 b (neg.f64 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))))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(*.f64 (*.f64 a a) (*.f64 b (neg.f64 b)))
Symmetry

(sort a b)

Compiler

Compiled 12 to 8 computations (33.3% saved)

simplify30.0ms (0.9%)

Algorithm
egg-herbie
Rules
300×rational.json-simplify-43
270×rational.json-simplify-2
102×rational.json-simplify-55
52×rational.json-simplify-54
30×rational.json-simplify-12
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0923
11723
22423
34023
47323
515223
628523
742523
846223
946223
Stop Event
saturated
Counts
1 → 7
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 (*.f64 a b) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(*.f64 (*.f64 b b) (neg.f64 (*.f64 a a)))
(*.f64 b (*.f64 b (neg.f64 (*.f64 a a))))

eval1.0ms (0%)

Compiler

Compiled 58 to 21 computations (63.8% saved)

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New437
Fresh101
Picked000
Done000
Total538
Error
2.5b
Counts
8 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
23.4b
(*.f64 (*.f64 b b) (neg.f64 (*.f64 a a)))
17.4b
(*.f64 b (*.f64 b (neg.f64 (*.f64 a a))))
5.1b
(neg.f64 (*.f64 a (*.f64 (*.f64 a b) b)))
Compiler

Compiled 30 to 18 computations (40% saved)

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 a b) b)
4.9b
(*.f64 a (*.f64 (*.f64 a b) b))
Compiler

Compiled 27 to 6 computations (77.8% saved)

series5.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite97.0ms (3%)

Algorithm
batch-egg-rewrite
Rules
1754×rational.json-5
1752×exponential.json-3
1752×rational.json-1
1752×rational.json-2
1752×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0732
16232
221132
376932
4323932
Stop Event
node limit
Counts
2 → 62
Calls
Call 1
Inputs
(*.f64 a (*.f64 (*.f64 a b) b))
(*.f64 (*.f64 a b) b)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 b (*.f64 a b))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (*.f64 b (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 a (*.f64 b (*.f64 a b))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (*.f64 b (*.f64 a b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a b) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 b (*.f64 a b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 a (*.f64 b (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (neg.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (fabs.f64 a) (*.f64 b (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) a))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (-.f64 0 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (neg.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (fabs.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (/.f64 a (fabs.f64 (/.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) a))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (neg.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (fabs.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (/.f64 a (fabs.f64 (/.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) (neg.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) (/.f64 a (fabs.f64 (/.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) a))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (neg.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (fabs.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (/.f64 a (fabs.f64 (/.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 b) (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (fabs.f64 b) (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 b (fabs.f64 (/.f64 b b))) (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 a b) (neg.f64 (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 a b) (fabs.f64 (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 a b) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (fabs.f64 (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (neg.f64 (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (neg.f64 (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (fabs.f64 (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 a (neg.f64 (*.f64 b (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 a (*.f64 b (*.f64 b (fabs.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 a (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 a) (*.f64 b (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 a) (neg.f64 (*.f64 b (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 a) (*.f64 b (*.f64 b (fabs.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 a) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (fabs.f64 a) (neg.f64 (*.f64 b (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (fabs.f64 a) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (*.f64 b (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (neg.f64 (*.f64 b (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (*.f64 b (*.f64 b (fabs.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 a b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 b (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 b (*.f64 a b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 a b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 a b)) (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 a b)) 1)))))

simplify209.0ms (6.4%)

Algorithm
egg-herbie
Rules
1840×rational.json-simplify-47
898×rational.json-simplify-2
842×rational.json-simplify-104
814×rational.json-simplify-49
680×rational.json-simplify-76
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01501766
13481766
27181766
321151766
441161766
575901766
Stop Event
node limit
Counts
110 → 68
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 b (*.f64 a b))) 0)
(+.f64 0 (*.f64 a (*.f64 b (*.f64 a b))))
(-.f64 (*.f64 a (*.f64 b (*.f64 a b))) 0)
(/.f64 (*.f64 a (*.f64 b (*.f64 a b))) 1)
(/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a b) (*.f64 a b)))
(pow.f64 (*.f64 a (*.f64 b (*.f64 a b))) 1)
(fabs.f64 (*.f64 a (*.f64 b (*.f64 a b))))
(fabs.f64 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (neg.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))
(fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (*.f64 a b)))
(fabs.f64 (*.f64 (fabs.f64 a) (*.f64 b (*.f64 a b))))
(fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) a))
(fabs.f64 (-.f64 0 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))))
(fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (neg.f64 a)))
(fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (fabs.f64 a)))
(fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (/.f64 a (fabs.f64 (/.f64 a a)))))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) a))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (neg.f64 a)))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (fabs.f64 a)))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (/.f64 a (fabs.f64 (/.f64 a a)))))
(fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) (neg.f64 a)))
(fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) (/.f64 a (fabs.f64 (/.f64 a a)))))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) a))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (neg.f64 a)))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (fabs.f64 a)))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (/.f64 a (fabs.f64 (/.f64 a a)))))
(fabs.f64 (*.f64 (neg.f64 b) (*.f64 b (*.f64 a a))))
(fabs.f64 (*.f64 (fabs.f64 b) (*.f64 b (*.f64 a a))))
(fabs.f64 (*.f64 (/.f64 b (fabs.f64 (/.f64 b b))) (*.f64 b (*.f64 a a))))
(fabs.f64 (*.f64 (*.f64 a b) (neg.f64 (*.f64 a b))))
(fabs.f64 (*.f64 (*.f64 a b) (fabs.f64 (*.f64 a b))))
(fabs.f64 (*.f64 (*.f64 a b) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (*.f64 a b)))
(fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (fabs.f64 (*.f64 a b))))
(fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (neg.f64 (*.f64 a b))))
(fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (*.f64 a b)))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (neg.f64 (*.f64 a b))))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (fabs.f64 (*.f64 a b))))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(fabs.f64 (*.f64 a (neg.f64 (*.f64 b (*.f64 a b)))))
(fabs.f64 (*.f64 a (*.f64 b (*.f64 b (fabs.f64 a)))))
(fabs.f64 (*.f64 a (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(fabs.f64 (*.f64 (neg.f64 a) (*.f64 b (*.f64 a b))))
(fabs.f64 (*.f64 (neg.f64 a) (neg.f64 (*.f64 b (*.f64 a b)))))
(fabs.f64 (*.f64 (neg.f64 a) (*.f64 b (*.f64 b (fabs.f64 a)))))
(fabs.f64 (*.f64 (neg.f64 a) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(fabs.f64 (*.f64 (fabs.f64 a) (neg.f64 (*.f64 b (*.f64 a b)))))
(fabs.f64 (*.f64 (fabs.f64 a) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (*.f64 b (*.f64 a b))))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (neg.f64 (*.f64 b (*.f64 a b)))))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (*.f64 b (*.f64 b (fabs.f64 a)))))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(fabs.f64 (/.f64 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))
(+.f64 (*.f64 b (*.f64 a b)) 0)
(+.f64 0 (*.f64 b (*.f64 a b)))
(-.f64 (*.f64 b (*.f64 a b)) 0)
(/.f64 (*.f64 b (*.f64 a b)) 1)
(/.f64 (*.f64 b (*.f64 a b)) (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))
(pow.f64 (*.f64 b (*.f64 a b)) 1)
Outputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a 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 b (*.f64 a b))) 0)
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(+.f64 0 (*.f64 a (*.f64 b (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(-.f64 (*.f64 a (*.f64 b (*.f64 a b))) 0)
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(/.f64 (*.f64 a (*.f64 b (*.f64 a b))) 1)
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a b) (*.f64 a b)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a (*.f64 b (*.f64 a b))) 1)
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 a (*.f64 b (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (neg.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (*.f64 a b)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (fabs.f64 a) (*.f64 b (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) a))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (-.f64 0 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (neg.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (fabs.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (/.f64 a (fabs.f64 (/.f64 a a)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) a))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (neg.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (fabs.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (/.f64 a (fabs.f64 (/.f64 a a)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) (neg.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) (/.f64 a (fabs.f64 (/.f64 a a)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) a))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (neg.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (fabs.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (/.f64 a (fabs.f64 (/.f64 a a)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (neg.f64 b) (*.f64 b (*.f64 a a))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (fabs.f64 b) (*.f64 b (*.f64 a a))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (/.f64 b (fabs.f64 (/.f64 b b))) (*.f64 b (*.f64 a a))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (*.f64 a b) (neg.f64 (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (*.f64 a b) (fabs.f64 (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (*.f64 a b) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (*.f64 a b)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (fabs.f64 (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (neg.f64 (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (*.f64 a b)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (neg.f64 (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (fabs.f64 (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 a (neg.f64 (*.f64 b (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 a (*.f64 b (*.f64 b (fabs.f64 a)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 a (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (neg.f64 a) (*.f64 b (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (neg.f64 a) (neg.f64 (*.f64 b (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (neg.f64 a) (*.f64 b (*.f64 b (fabs.f64 a)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (neg.f64 a) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (fabs.f64 a) (neg.f64 (*.f64 b (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (fabs.f64 a) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (*.f64 b (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (neg.f64 (*.f64 b (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (*.f64 b (*.f64 b (fabs.f64 a)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(fabs.f64 (/.f64 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(+.f64 (*.f64 b (*.f64 a b)) 0)
(*.f64 a (*.f64 b b))
(+.f64 0 (*.f64 b (*.f64 a b)))
(*.f64 a (*.f64 b b))
(-.f64 (*.f64 b (*.f64 a b)) 0)
(*.f64 a (*.f64 b b))
(/.f64 (*.f64 b (*.f64 a b)) 1)
(*.f64 a (*.f64 b b))
(/.f64 (*.f64 b (*.f64 a b)) (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))
(*.f64 a (*.f64 b b))
(pow.f64 (*.f64 b (*.f64 a b)) 1)
(*.f64 a (*.f64 b b))

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
5.8b
(*.f64 b (*.f64 b (neg.f64 (*.f64 a a))))
10.9b
(*.f64 b (neg.f64 (*.f64 a a)))
Compiler

Compiled 25 to 6 computations (76% saved)

series4.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite120.0ms (3.7%)

Algorithm
batch-egg-rewrite
Rules
954×rational.json-simplify-49
794×rational.json-simplify-47
788×rational.json-simplify-50
764×rational.json-simplify-54
592×rational.json-simplify-76
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0940
18140
227440
399340
4431940
Stop Event
node limit
Counts
2 → 20
Calls
Call 1
Inputs
(*.f64 b (neg.f64 (*.f64 a a)))
(*.f64 b (*.f64 b (neg.f64 (*.f64 a a))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 b (neg.f64 a))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (*.f64 b (neg.f64 a))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 a (*.f64 b (neg.f64 a))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 a (*.f64 b (neg.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 a (*.f64 b (neg.f64 a))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (*.f64 b (neg.f64 a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (*.f64 b (neg.f64 a))) (/.f64 (*.f64 b (*.f64 a a)) (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 a a)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 b (neg.f64 a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 a (*.f64 b (neg.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 b (*.f64 a a)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 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 -.f64 (-.f64 0 (-.f64 -1 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) (/.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 b (*.f64 b (*.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 b (*.f64 b (*.f64 a a))))))))

simplify258.0ms (7.9%)

Algorithm
egg-herbie
Rules
1644×rational.json-simplify-47
970×rational.json-simplify-43
910×rational.json-simplify-54
678×rational.json-simplify-42
630×rational.json-simplify-79
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0491354
11131258
22521258
36411234
421481234
544051234
667691234
779781234
Stop Event
node limit
Counts
68 → 39
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(+.f64 (*.f64 a (*.f64 b (neg.f64 a))) 0)
(+.f64 0 (*.f64 a (*.f64 b (neg.f64 a))))
(-.f64 (*.f64 a (*.f64 b (neg.f64 a))) 0)
(-.f64 0 (neg.f64 (*.f64 a (*.f64 b (neg.f64 a)))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 a (*.f64 b (neg.f64 a))))) 1)
(/.f64 (*.f64 a (*.f64 b (neg.f64 a))) 1)
(/.f64 (*.f64 a (*.f64 b (neg.f64 a))) (/.f64 (*.f64 b (*.f64 a a)) (*.f64 b (*.f64 a a))))
(/.f64 (*.f64 b (*.f64 a a)) -1)
(pow.f64 (*.f64 a (*.f64 b (neg.f64 a))) 1)
(neg.f64 (neg.f64 (*.f64 a (*.f64 b (neg.f64 a)))))
(neg.f64 (*.f64 b (*.f64 a a)))
(+.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 0)
(+.f64 0 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))))
(-.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 0)
(-.f64 0 (*.f64 b (*.f64 b (*.f64 a a))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))))) 1)
(/.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 1)
(/.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) (/.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 b (*.f64 b (*.f64 a a)))))
(pow.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 1)
(neg.f64 (*.f64 b (*.f64 b (*.f64 a a))))
Outputs
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(+.f64 (*.f64 a (*.f64 b (neg.f64 a))) 0)
(*.f64 a (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 a b))
(+.f64 0 (*.f64 a (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 a b))
(-.f64 (*.f64 a (*.f64 b (neg.f64 a))) 0)
(*.f64 a (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 a b))
(-.f64 0 (neg.f64 (*.f64 a (*.f64 b (neg.f64 a)))))
(*.f64 a (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 a b))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 a (*.f64 b (neg.f64 a))))) 1)
(*.f64 a (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 a b))
(/.f64 (*.f64 a (*.f64 b (neg.f64 a))) 1)
(*.f64 a (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 a b))
(/.f64 (*.f64 a (*.f64 b (neg.f64 a))) (/.f64 (*.f64 b (*.f64 a a)) (*.f64 b (*.f64 a a))))
(*.f64 a (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 a b))
(/.f64 (*.f64 b (*.f64 a a)) -1)
(*.f64 a (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 a b))
(pow.f64 (*.f64 a (*.f64 b (neg.f64 a))) 1)
(*.f64 a (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 a b))
(neg.f64 (neg.f64 (*.f64 a (*.f64 b (neg.f64 a)))))
(*.f64 a (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 a b))
(neg.f64 (*.f64 b (*.f64 a a)))
(*.f64 a (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 a b))
(+.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 0)
(*.f64 b (*.f64 a (*.f64 b (neg.f64 a))))
(*.f64 b (*.f64 a (*.f64 a (neg.f64 b))))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(+.f64 0 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))))
(*.f64 b (*.f64 a (*.f64 b (neg.f64 a))))
(*.f64 b (*.f64 a (*.f64 a (neg.f64 b))))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(-.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 0)
(*.f64 b (*.f64 a (*.f64 b (neg.f64 a))))
(*.f64 b (*.f64 a (*.f64 a (neg.f64 b))))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(-.f64 0 (*.f64 b (*.f64 b (*.f64 a a))))
(*.f64 b (*.f64 a (*.f64 b (neg.f64 a))))
(*.f64 b (*.f64 a (*.f64 a (neg.f64 b))))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))))) 1)
(*.f64 b (*.f64 a (*.f64 b (neg.f64 a))))
(*.f64 b (*.f64 a (*.f64 a (neg.f64 b))))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(/.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 1)
(*.f64 b (*.f64 a (*.f64 b (neg.f64 a))))
(*.f64 b (*.f64 a (*.f64 a (neg.f64 b))))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(/.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) (/.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 b (*.f64 b (*.f64 a a)))))
(/.f64 (*.f64 b (*.f64 a (*.f64 a (neg.f64 b)))) (/.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 b (*.f64 b (*.f64 a a)))))
(/.f64 (*.f64 a (*.f64 a (*.f64 (neg.f64 b) b))) (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (*.f64 a (*.f64 b (*.f64 a b)))))
(/.f64 (*.f64 a (*.f64 (neg.f64 a) (*.f64 b b))) (/.f64 (*.f64 a b) (*.f64 a b)))
(*.f64 (*.f64 a (*.f64 b (*.f64 b (neg.f64 a)))) (/.f64 (*.f64 a b) (*.f64 a b)))
(*.f64 (*.f64 a (*.f64 (neg.f64 a) (*.f64 b b))) (/.f64 (*.f64 a b) (*.f64 a b)))
(pow.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 1)
(*.f64 b (*.f64 a (*.f64 b (neg.f64 a))))
(*.f64 b (*.f64 a (*.f64 a (neg.f64 b))))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(neg.f64 (*.f64 b (*.f64 b (*.f64 a a))))
(*.f64 b (*.f64 a (*.f64 b (neg.f64 a))))
(*.f64 b (*.f64 a (*.f64 a (neg.f64 b))))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))

localize8.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
22.9b
(*.f64 (*.f64 b b) (neg.f64 (*.f64 a a)))
Compiler

Compiled 22 to 6 computations (72.7% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite129.0ms (4%)

Algorithm
batch-egg-rewrite
Rules
1086×rational.json-simplify-49
864×rational.json-simplify-47
852×rational.json-simplify-50
782×rational.json-simplify-54
578×rational.json-simplify-58
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0923
18123
227823
3102223
4463923
Stop Event
node limit
Counts
1 → 12
Calls
Call 1
Inputs
(*.f64 (*.f64 b b) (neg.f64 (*.f64 a a)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 b (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) (/.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 b (*.f64 b (*.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 b (*.f64 a a))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 b (*.f64 b (*.f64 a a))))))))

simplify236.0ms (7.2%)

Algorithm
egg-herbie
Rules
1812×rational.json-simplify-47
1132×rational.json-simplify-104
886×rational.json-simplify-2
734×rational.json-simplify-49
722×rational.json-simplify-1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
036780
177732
2161732
3417708
41323708
53777708
66178708
77684708
Stop Event
node limit
Counts
36 → 25
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(+.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) 0)
(+.f64 0 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))))
(-.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) 0)
(-.f64 0 (neg.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))))
(-.f64 0 (*.f64 b (*.f64 b (*.f64 a a))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))))) 1)
(/.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) 1)
(/.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) (/.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 b (*.f64 b (*.f64 a a)))))
(/.f64 (*.f64 b (*.f64 b (*.f64 a a))) -1)
(pow.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) 1)
(neg.f64 (neg.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))))
(neg.f64 (*.f64 b (*.f64 b (*.f64 a a))))
Outputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(+.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) 0)
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(neg.f64 (*.f64 (*.f64 a b) (*.f64 a b)))
(+.f64 0 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))))
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(neg.f64 (*.f64 (*.f64 a b) (*.f64 a b)))
(-.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) 0)
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(neg.f64 (*.f64 (*.f64 a b) (*.f64 a b)))
(-.f64 0 (neg.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))))
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(neg.f64 (*.f64 (*.f64 a b) (*.f64 a b)))
(-.f64 0 (*.f64 b (*.f64 b (*.f64 a a))))
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(neg.f64 (*.f64 (*.f64 a b) (*.f64 a b)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))))) 1)
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(neg.f64 (*.f64 (*.f64 a b) (*.f64 a b)))
(/.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) 1)
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(neg.f64 (*.f64 (*.f64 a b) (*.f64 a b)))
(/.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) (/.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 b (*.f64 b (*.f64 a a)))))
(/.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) (/.f64 (*.f64 b (*.f64 a (*.f64 a b))) (*.f64 b (*.f64 a (*.f64 a b)))))
(/.f64 (*.f64 a (*.f64 b (*.f64 b (neg.f64 a)))) (/.f64 (*.f64 b (*.f64 b (*.f64 a a))) (*.f64 b (*.f64 b (*.f64 a a)))))
(/.f64 (*.f64 a (*.f64 b (*.f64 b (neg.f64 a)))) (/.f64 (*.f64 (*.f64 b b) (*.f64 a a)) (*.f64 (*.f64 b b) (*.f64 a a))))
(/.f64 (*.f64 a (*.f64 a (*.f64 b (neg.f64 b)))) (/.f64 (*.f64 a b) (*.f64 a b)))
(/.f64 (neg.f64 (*.f64 (*.f64 a b) (*.f64 a b))) (/.f64 (*.f64 a b) (*.f64 a b)))
(*.f64 (neg.f64 (*.f64 (*.f64 a b) (*.f64 a b))) (/.f64 (*.f64 a b) (*.f64 a b)))
(/.f64 (*.f64 b (*.f64 b (*.f64 a a))) -1)
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(neg.f64 (*.f64 (*.f64 a b) (*.f64 a b)))
(pow.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a))) 1)
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(neg.f64 (*.f64 (*.f64 a b) (*.f64 a b)))
(neg.f64 (neg.f64 (*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))))
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(neg.f64 (*.f64 (*.f64 a b) (*.f64 a b)))
(neg.f64 (*.f64 b (*.f64 b (*.f64 a a))))
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(neg.f64 (*.f64 (*.f64 a b) (*.f64 a b)))

eval18.0ms (0.6%)

Compiler

Compiled 1672 to 401 computations (76% saved)

prune23.0ms (0.7%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New1293132
Fresh000
Picked101
Done022
Total1305135
Error
0.1b
Counts
135 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
6.0b
(*.f64 b (*.f64 (neg.f64 a) (*.f64 a b)))
17.4b
(*.f64 b (*.f64 b (neg.f64 (*.f64 a a))))
15.1b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
0.3b
(neg.f64 (*.f64 (*.f64 a b) (*.f64 a b)))
5.1b
(neg.f64 (*.f64 a (*.f64 (*.f64 a b) b)))
Compiler

Compiled 50 to 29 computations (42% saved)

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 5 computations (77.3% saved)

series1.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))

rewrite93.0ms (2.9%)

Algorithm
batch-egg-rewrite
Rules
1896×rational.json-5
1894×exponential.json-3
1894×rational.json-1
1894×rational.json-2
1894×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0619
15519
221119
379319
4351119
Stop Event
node limit
Counts
1 → 65
Calls
Call 1
Inputs
(*.f64 (*.f64 a b) (*.f64 a b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 b (*.f64 a b))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a (*.f64 b (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 a (*.f64 b (*.f64 a b))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (*.f64 b (*.f64 a b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a b) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 b (*.f64 a b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 a (*.f64 b (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (neg.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) a))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 a b) (fabs.f64 (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (fabs.f64 a) (*.f64 b (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 a (*.f64 b (*.f64 b (fabs.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (-.f64 0 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (-.f64 0 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 a (neg.f64 (*.f64 b (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 a (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (fabs.f64 a) (neg.f64 (*.f64 b (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (fabs.f64 a) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 a) (*.f64 b (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 a) (*.f64 b (*.f64 b (fabs.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 a) (neg.f64 (*.f64 b (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 a) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (*.f64 b (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (*.f64 b (*.f64 b (fabs.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (neg.f64 (*.f64 b (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (fabs.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (neg.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (/.f64 a (fabs.f64 (/.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) (neg.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) (/.f64 a (fabs.f64 (/.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) a))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (fabs.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (neg.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (/.f64 a (fabs.f64 (/.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) a))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (fabs.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (neg.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (/.f64 a (fabs.f64 (/.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 a b) (neg.f64 (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 a b) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (neg.f64 (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (fabs.f64 (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (fabs.f64 (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (neg.f64 (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (neg.f64 b) (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (fabs.f64 b) (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (/.f64 b (fabs.f64 (/.f64 b b))) (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a b) (fabs.f64 (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (/.f64 (*.f64 a b) (*.f64 a b)) (fabs.f64 (/.f64 (/.f64 (*.f64 a b) (*.f64 a b)) (/.f64 (*.f64 a b) (*.f64 a b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (fabs.f64 (*.f64 a b)) (neg.f64 (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a (+.f64 b b)) (*.f64 (fabs.f64 (*.f64 a b)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (-.f64 0 (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))))))

simplify124.0ms (3.8%)

Algorithm
egg-herbie
Rules
1722×rational.json-simplify-47
1164×rational.json-simplify-104
974×rational.json-simplify-76
848×rational.json-simplify-49
836×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01721547
14091547
28121547
321401547
444391547
Stop Event
node limit
Counts
89 → 69
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 b (*.f64 a b))) 0)
(+.f64 0 (*.f64 a (*.f64 b (*.f64 a b))))
(-.f64 (*.f64 a (*.f64 b (*.f64 a b))) 0)
(/.f64 (*.f64 a (*.f64 b (*.f64 a b))) 1)
(/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a b) (*.f64 a b)))
(pow.f64 (*.f64 a (*.f64 b (*.f64 a b))) 1)
(fabs.f64 (*.f64 a (*.f64 b (*.f64 a b))))
(fabs.f64 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (neg.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))
(fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) a))
(fabs.f64 (*.f64 (*.f64 a b) (fabs.f64 (*.f64 a b))))
(fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (*.f64 a b)))
(fabs.f64 (*.f64 (fabs.f64 a) (*.f64 b (*.f64 a b))))
(fabs.f64 (*.f64 a (*.f64 b (*.f64 b (fabs.f64 a)))))
(fabs.f64 (-.f64 0 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))))
(fabs.f64 (-.f64 0 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(fabs.f64 (*.f64 a (neg.f64 (*.f64 b (*.f64 a b)))))
(fabs.f64 (*.f64 a (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(fabs.f64 (*.f64 (fabs.f64 a) (neg.f64 (*.f64 b (*.f64 a b)))))
(fabs.f64 (*.f64 (fabs.f64 a) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(fabs.f64 (*.f64 (neg.f64 a) (*.f64 b (*.f64 a b))))
(fabs.f64 (*.f64 (neg.f64 a) (*.f64 b (*.f64 b (fabs.f64 a)))))
(fabs.f64 (*.f64 (neg.f64 a) (neg.f64 (*.f64 b (*.f64 a b)))))
(fabs.f64 (*.f64 (neg.f64 a) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (*.f64 b (*.f64 a b))))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (*.f64 b (*.f64 b (fabs.f64 a)))))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (neg.f64 (*.f64 b (*.f64 a b)))))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (fabs.f64 a)))
(fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (neg.f64 a)))
(fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (/.f64 a (fabs.f64 (/.f64 a a)))))
(fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) (neg.f64 a)))
(fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) (/.f64 a (fabs.f64 (/.f64 a a)))))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) a))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (fabs.f64 a)))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (neg.f64 a)))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (/.f64 a (fabs.f64 (/.f64 a a)))))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) a))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (fabs.f64 a)))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (neg.f64 a)))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (/.f64 a (fabs.f64 (/.f64 a a)))))
(fabs.f64 (*.f64 (*.f64 a b) (neg.f64 (*.f64 a b))))
(fabs.f64 (*.f64 (*.f64 a b) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (neg.f64 (*.f64 a b))))
(fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (*.f64 a b)))
(fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (fabs.f64 (*.f64 a b))))
(fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (*.f64 a b)))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (fabs.f64 (*.f64 a b))))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (neg.f64 (*.f64 a b))))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(fabs.f64 (*.f64 (neg.f64 b) (*.f64 a (*.f64 a b))))
(fabs.f64 (*.f64 (fabs.f64 b) (*.f64 a (*.f64 a b))))
(fabs.f64 (*.f64 (/.f64 b (fabs.f64 (/.f64 b b))) (*.f64 a (*.f64 a b))))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))))))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a b) (fabs.f64 (*.f64 a b)))))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (/.f64 (*.f64 a b) (*.f64 a b)) (fabs.f64 (/.f64 (/.f64 (*.f64 a b) (*.f64 a b)) (/.f64 (*.f64 a b) (*.f64 a b)))))))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (fabs.f64 (*.f64 a b)) (neg.f64 (*.f64 a b)))))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a (+.f64 b b)) (*.f64 (fabs.f64 (*.f64 a b)) 2))))
(fabs.f64 (/.f64 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))
(fabs.f64 (/.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (-.f64 0 (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
Outputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(+.f64 (*.f64 a (*.f64 b (*.f64 a b))) 0)
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(+.f64 0 (*.f64 a (*.f64 b (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(-.f64 (*.f64 a (*.f64 b (*.f64 a b))) 0)
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(/.f64 (*.f64 a (*.f64 b (*.f64 a b))) 1)
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a b) (*.f64 a b)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(pow.f64 (*.f64 a (*.f64 b (*.f64 a b))) 1)
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 a (*.f64 b (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (neg.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) a))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (*.f64 a b) (fabs.f64 (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (*.f64 a b)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (fabs.f64 a) (*.f64 b (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 a (*.f64 b (*.f64 b (fabs.f64 a)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (-.f64 0 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (-.f64 0 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 a (neg.f64 (*.f64 b (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 a (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (fabs.f64 a) (neg.f64 (*.f64 b (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (fabs.f64 a) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (neg.f64 a) (*.f64 b (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (neg.f64 a) (*.f64 b (*.f64 b (fabs.f64 a)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (neg.f64 a) (neg.f64 (*.f64 b (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (neg.f64 a) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (*.f64 b (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (*.f64 b (*.f64 b (fabs.f64 a)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (neg.f64 (*.f64 b (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (/.f64 a (fabs.f64 (/.f64 a a))) (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b)))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (fabs.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (neg.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (*.f64 b (*.f64 a b)) (/.f64 a (fabs.f64 (/.f64 a a)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) (neg.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (*.f64 b (*.f64 b (fabs.f64 a))) (/.f64 a (fabs.f64 (/.f64 a a)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) a))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (fabs.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (neg.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (neg.f64 (*.f64 b (*.f64 a b))) (/.f64 a (fabs.f64 (/.f64 a a)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) a))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (fabs.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (neg.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (/.f64 (*.f64 b (*.f64 a b)) (fabs.f64 (/.f64 (*.f64 b (*.f64 a b)) (*.f64 b (*.f64 a b))))) (/.f64 a (fabs.f64 (/.f64 a a)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (*.f64 a b) (neg.f64 (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (*.f64 a b) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (neg.f64 (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (fabs.f64 (*.f64 a b)) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (*.f64 a b)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (fabs.f64 (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (neg.f64 (*.f64 a b)) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (*.f64 a b)))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (fabs.f64 (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (neg.f64 (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (/.f64 (*.f64 a b) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (neg.f64 b) (*.f64 a (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (fabs.f64 b) (*.f64 a (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (*.f64 (/.f64 b (fabs.f64 (/.f64 b b))) (*.f64 a (*.f64 a b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a b) (fabs.f64 (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (/.f64 (*.f64 a b) (*.f64 a b)) (fabs.f64 (/.f64 (/.f64 (*.f64 a b) (*.f64 a b)) (/.f64 (*.f64 a b) (*.f64 a b)))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (fabs.f64 (*.f64 a b)) (neg.f64 (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (/.f64 (*.f64 a (+.f64 b b)) (*.f64 (fabs.f64 (*.f64 a b)) 2))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (/.f64 (neg.f64 (*.f64 a (*.f64 b (*.f64 a b)))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (/.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))) (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(fabs.f64 (/.f64 (*.f64 a (*.f64 b (*.f64 a b))) (-.f64 0 (fabs.f64 (/.f64 (*.f64 a b) (*.f64 a b))))))
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a b) (*.f64 a b))

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
4.9b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
9.5b
(*.f64 (*.f64 b b) (neg.f64 a))
Compiler

Compiled 23 to 6 computations (73.9% saved)

series2.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite116.0ms (3.5%)

Algorithm
batch-egg-rewrite
Rules
1354×rational.json-simplify-49
906×rational.json-simplify-47
696×rational.json-simplify-58
624×rational.json-simplify-43
526×rational.json-simplify-55
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0940
18340
229440
3109940
4494140
Stop Event
node limit
Counts
2 → 21
Calls
Call 1
Inputs
(*.f64 (*.f64 b b) (neg.f64 a))
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 b (neg.f64 a))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 b (*.f64 b (neg.f64 a))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 b (*.f64 b (neg.f64 a))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 b (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 b (*.f64 b (neg.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 b (*.f64 b (neg.f64 a))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 b (neg.f64 a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 b (neg.f64 a))) (/.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 b a)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 b (neg.f64 a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 b (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 b (*.f64 b (neg.f64 a)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 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 -.f64 (-.f64 0 (-.f64 -1 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) (/.f64 (*.f64 b (neg.f64 a)) (*.f64 b (neg.f64 a))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 b (*.f64 b (*.f64 a a))))))))

simplify238.0ms (7.3%)

Algorithm
egg-herbie
Rules
1106×rational.json-simplify-2
788×rational.json-simplify-41
768×rational.json-simplify-49
682×rational.json-simplify-43
674×rational.json-simplify-42
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0531323
11161227
22431227
36361227
419751227
549341227
665981227
779011227
Stop Event
node limit
Counts
69 → 35
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(+.f64 (*.f64 b (*.f64 b (neg.f64 a))) 0)
(+.f64 0 (*.f64 b (*.f64 b (neg.f64 a))))
(-.f64 (*.f64 b (*.f64 b (neg.f64 a))) 0)
(-.f64 0 (*.f64 b (*.f64 b a)))
(-.f64 0 (neg.f64 (*.f64 b (*.f64 b (neg.f64 a)))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 b (*.f64 b (neg.f64 a))))) 1)
(/.f64 (*.f64 b (*.f64 b (neg.f64 a))) 1)
(/.f64 (*.f64 b (*.f64 b (neg.f64 a))) (/.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a))))
(/.f64 (*.f64 b (*.f64 b a)) -1)
(pow.f64 (*.f64 b (*.f64 b (neg.f64 a))) 1)
(neg.f64 (*.f64 b (*.f64 b a)))
(neg.f64 (neg.f64 (*.f64 b (*.f64 b (neg.f64 a)))))
(+.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 0)
(+.f64 0 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))))
(-.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 0)
(-.f64 0 (*.f64 b (*.f64 b (*.f64 a a))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))))) 1)
(/.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 1)
(/.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) (/.f64 (*.f64 b (neg.f64 a)) (*.f64 b (neg.f64 a))))
(pow.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 1)
(neg.f64 (*.f64 b (*.f64 b (*.f64 a a))))
Outputs
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (pow.f64 b 2) (neg.f64 a))
(*.f64 a (neg.f64 (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(+.f64 (*.f64 b (*.f64 b (neg.f64 a))) 0)
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 b b))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(+.f64 0 (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 b b))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(-.f64 (*.f64 b (*.f64 b (neg.f64 a))) 0)
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 b b))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(-.f64 0 (*.f64 b (*.f64 b a)))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 b b))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(-.f64 0 (neg.f64 (*.f64 b (*.f64 b (neg.f64 a)))))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 b b))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 b (*.f64 b (neg.f64 a))))) 1)
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 b b))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(/.f64 (*.f64 b (*.f64 b (neg.f64 a))) 1)
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 b b))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(/.f64 (*.f64 b (*.f64 b (neg.f64 a))) (/.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a))))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 b b))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(/.f64 (*.f64 b (*.f64 b a)) -1)
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 b b))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(pow.f64 (*.f64 b (*.f64 b (neg.f64 a))) 1)
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 b b))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 b (*.f64 b a)))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 b b))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (neg.f64 (*.f64 b (*.f64 b (neg.f64 a)))))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 (neg.f64 a) (*.f64 b b))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(+.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 0)
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(*.f64 a (*.f64 a (neg.f64 (*.f64 b b))))
(+.f64 0 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(*.f64 a (*.f64 a (neg.f64 (*.f64 b b))))
(-.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 0)
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(*.f64 a (*.f64 a (neg.f64 (*.f64 b b))))
(-.f64 0 (*.f64 b (*.f64 b (*.f64 a a))))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(*.f64 a (*.f64 a (neg.f64 (*.f64 b b))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))))) 1)
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(*.f64 a (*.f64 a (neg.f64 (*.f64 b b))))
(/.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 1)
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(*.f64 a (*.f64 a (neg.f64 (*.f64 b b))))
(/.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) (/.f64 (*.f64 b (neg.f64 a)) (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(*.f64 a (*.f64 a (neg.f64 (*.f64 b b))))
(pow.f64 (*.f64 b (*.f64 a (*.f64 b (neg.f64 a)))) 1)
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(*.f64 a (*.f64 a (neg.f64 (*.f64 b b))))
(neg.f64 (*.f64 b (*.f64 b (*.f64 a a))))
(*.f64 a (*.f64 b (*.f64 b (neg.f64 a))))
(*.f64 a (*.f64 (neg.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(*.f64 a (*.f64 a (neg.f64 (*.f64 b b))))

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (neg.f64 a) (*.f64 a b))
5.8b
(*.f64 b (*.f64 (neg.f64 a) (*.f64 a b)))
Compiler

Compiled 23 to 6 computations (73.9% saved)

series1.0ms (0%)

Counts
2 → 48
Calls

12 calls:

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

rewrite112.0ms (3.4%)

Algorithm
batch-egg-rewrite
Rules
1392×rational.json-simplify-49
874×rational.json-simplify-47
674×rational.json-simplify-58
608×rational.json-simplify-43
514×rational.json-5
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0940
18540
230640
3113340
4483240
Stop Event
node limit
Counts
2 → 21
Calls
Call 1
Inputs
(*.f64 b (*.f64 (neg.f64 a) (*.f64 a b)))
(*.f64 (neg.f64 a) (*.f64 a b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 b (*.f64 a (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) (/.f64 (*.f64 b a) (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 a (*.f64 b a))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 b (*.f64 a (*.f64 b a))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 a (neg.f64 a))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 b (*.f64 a (neg.f64 a))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 b (*.f64 a (neg.f64 a))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 b (*.f64 a (neg.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 b (*.f64 a (neg.f64 a))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 a (neg.f64 a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (*.f64 a (neg.f64 a))) (/.f64 (*.f64 b (*.f64 a (neg.f64 a))) (*.f64 b (*.f64 a (neg.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (*.f64 b a)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 a (neg.f64 a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 b (*.f64 a (neg.f64 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 a (*.f64 b a)))))))

simplify152.0ms (4.7%)

Algorithm
egg-herbie
Rules
1900×rational.json-simplify-47
1238×rational.json-simplify-43
868×rational.json-simplify-1
636×rational.json-simplify-42
486×exponential.json-simplify-26
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0501353
11121257
22581257
37351257
430241257
562401257
Stop Event
node limit
Counts
69 → 38
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(+.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) 0)
(+.f64 0 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))))
(-.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) 0)
(-.f64 0 (*.f64 b (*.f64 a (*.f64 b a))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))))) 1)
(/.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) 1)
(/.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) (/.f64 (*.f64 b a) (*.f64 b a)))
(/.f64 (*.f64 b (*.f64 a (*.f64 b a))) -1)
(pow.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) 1)
(neg.f64 (*.f64 b (*.f64 a (*.f64 b a))))
(+.f64 (*.f64 b (*.f64 a (neg.f64 a))) 0)
(+.f64 0 (*.f64 b (*.f64 a (neg.f64 a))))
(-.f64 (*.f64 b (*.f64 a (neg.f64 a))) 0)
(-.f64 0 (neg.f64 (*.f64 b (*.f64 a (neg.f64 a)))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 b (*.f64 a (neg.f64 a))))) 1)
(/.f64 (*.f64 b (*.f64 a (neg.f64 a))) 1)
(/.f64 (*.f64 b (*.f64 a (neg.f64 a))) (/.f64 (*.f64 b (*.f64 a (neg.f64 a))) (*.f64 b (*.f64 a (neg.f64 a)))))
(/.f64 (*.f64 a (*.f64 b a)) -1)
(pow.f64 (*.f64 b (*.f64 a (neg.f64 a))) 1)
(neg.f64 (neg.f64 (*.f64 b (*.f64 a (neg.f64 a)))))
(neg.f64 (*.f64 a (*.f64 b a)))
Outputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (pow.f64 (*.f64 a b) 2))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(*.f64 -1 (*.f64 (pow.f64 a 2) b))
(*.f64 (pow.f64 a 2) (neg.f64 b))
(+.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) 0)
(*.f64 b (*.f64 b (*.f64 a (neg.f64 a))))
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
(*.f64 (*.f64 b (*.f64 a a)) (neg.f64 b))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 (neg.f64 (*.f64 a a)) (*.f64 b b))
(+.f64 0 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))))
(*.f64 b (*.f64 b (*.f64 a (neg.f64 a))))
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
(*.f64 (*.f64 b (*.f64 a a)) (neg.f64 b))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 (neg.f64 (*.f64 a a)) (*.f64 b b))
(-.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) 0)
(*.f64 b (*.f64 b (*.f64 a (neg.f64 a))))
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
(*.f64 (*.f64 b (*.f64 a a)) (neg.f64 b))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 (neg.f64 (*.f64 a a)) (*.f64 b b))
(-.f64 0 (*.f64 b (*.f64 a (*.f64 b a))))
(*.f64 b (*.f64 b (*.f64 a (neg.f64 a))))
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
(*.f64 (*.f64 b (*.f64 a a)) (neg.f64 b))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 (neg.f64 (*.f64 a a)) (*.f64 b b))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))))) 1)
(*.f64 b (*.f64 b (*.f64 a (neg.f64 a))))
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
(*.f64 (*.f64 b (*.f64 a a)) (neg.f64 b))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 (neg.f64 (*.f64 a a)) (*.f64 b b))
(/.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) 1)
(*.f64 b (*.f64 b (*.f64 a (neg.f64 a))))
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
(*.f64 (*.f64 b (*.f64 a a)) (neg.f64 b))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 (neg.f64 (*.f64 a a)) (*.f64 b b))
(/.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) (/.f64 (*.f64 b a) (*.f64 b a)))
(/.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) (/.f64 (*.f64 a b) (*.f64 a b)))
(/.f64 (*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b)) (/.f64 (*.f64 a b) (*.f64 a b)))
(*.f64 (*.f64 b (*.f64 b (*.f64 a a))) (/.f64 (*.f64 a (neg.f64 b)) (*.f64 a b)))
(*.f64 (*.f64 a (*.f64 a (*.f64 (neg.f64 b) b))) (/.f64 (*.f64 a b) (*.f64 a b)))
(*.f64 (*.f64 b (*.f64 a (*.f64 a b))) (/.f64 (*.f64 a (neg.f64 b)) (*.f64 a b)))
(/.f64 (*.f64 b (*.f64 a (*.f64 b a))) -1)
(*.f64 b (*.f64 b (*.f64 a (neg.f64 a))))
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
(*.f64 (*.f64 b (*.f64 a a)) (neg.f64 b))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 (neg.f64 (*.f64 a a)) (*.f64 b b))
(pow.f64 (*.f64 b (*.f64 b (*.f64 a (neg.f64 a)))) 1)
(*.f64 b (*.f64 b (*.f64 a (neg.f64 a))))
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
(*.f64 (*.f64 b (*.f64 a a)) (neg.f64 b))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 (neg.f64 (*.f64 a a)) (*.f64 b b))
(neg.f64 (*.f64 b (*.f64 a (*.f64 b a))))
(*.f64 b (*.f64 b (*.f64 a (neg.f64 a))))
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
(*.f64 (*.f64 b (*.f64 a a)) (neg.f64 b))
(*.f64 a (*.f64 a (*.f64 (neg.f64 b) b)))
(*.f64 (neg.f64 (*.f64 a a)) (*.f64 b b))
(+.f64 (*.f64 b (*.f64 a (neg.f64 a))) 0)
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(+.f64 0 (*.f64 b (*.f64 a (neg.f64 a))))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(-.f64 (*.f64 b (*.f64 a (neg.f64 a))) 0)
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(-.f64 0 (neg.f64 (*.f64 b (*.f64 a (neg.f64 a)))))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 b (*.f64 a (neg.f64 a))))) 1)
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(/.f64 (*.f64 b (*.f64 a (neg.f64 a))) 1)
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(/.f64 (*.f64 b (*.f64 a (neg.f64 a))) (/.f64 (*.f64 b (*.f64 a (neg.f64 a))) (*.f64 b (*.f64 a (neg.f64 a)))))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(/.f64 (*.f64 a (*.f64 b a)) -1)
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(pow.f64 (*.f64 b (*.f64 a (neg.f64 a))) 1)
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(neg.f64 (neg.f64 (*.f64 b (*.f64 a (neg.f64 a)))))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))
(neg.f64 (*.f64 a (*.f64 b a)))
(*.f64 b (*.f64 a (neg.f64 a)))
(*.f64 a (*.f64 a (neg.f64 b)))

eval24.0ms (0.7%)

Compiler

Compiled 1809 to 464 computations (74.4% saved)

prune22.0ms (0.7%)

Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New1420142
Fresh000
Picked011
Done044
Total1425147
Error
0.1b
Counts
147 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
6.0b
(*.f64 b (*.f64 (neg.f64 a) (*.f64 a b)))
17.4b
(*.f64 b (*.f64 b (neg.f64 (*.f64 a a))))
15.1b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
0.3b
(neg.f64 (*.f64 (*.f64 a b) (*.f64 a b)))
5.1b
(neg.f64 (*.f64 a (*.f64 (*.f64 a b) b)))
Compiler

Compiled 50 to 29 computations (42% saved)

regimes25.0ms (0.8%)

Accuracy

Total -23.3b remaining (-7302%)

Threshold costs -23.3b (-7302%)

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

5 calls:

5.0ms
b
5.0ms
a
5.0ms
(*.f64 (*.f64 (*.f64 a a) b) b)
4.0ms
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
4.0ms
(*.f64 a a)
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 88 to 40 computations (54.5% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01146
Stop Event
done
saturated
Calls
Call 1
Inputs
(neg.f64 (*.f64 (*.f64 a b) (*.f64 a b)))
(neg.f64 (*.f64 a (*.f64 (*.f64 a b) b)))
Outputs
(neg.f64 (*.f64 (*.f64 a b) (*.f64 a b)))
(neg.f64 (*.f64 a (*.f64 (*.f64 a b) b)))
Compiler

Compiled 20 to 11 computations (45% saved)

soundness305.0ms (9.3%)

Algorithm
egg-herbie
Rules
1812×rational.json-simplify-47
1132×rational.json-simplify-104
886×rational.json-simplify-2
734×rational.json-simplify-49
722×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0923
11723
22423
34023
47323
515223
628523
742523
846223
946223
036780
177732
2161732
3417708
41323708
53777708
66178708
77684708
Stop Event
node limit
saturated
Compiler

Compiled 185 to 64 computations (65.4% saved)

end20.0ms (0.6%)

Remove

(sort a b)

Compiler

Compiled 38 to 18 computations (52.6% saved)

Profiling

Loading profile data...