Details

Time bar (total: 16.5s)

analyze3.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
50%50%50%0%0%0%0%3
66.7%50%25%0%25%0%0%4
83.3%62.5%12.5%0%25%0%0%5
90.9%62.5%6.2%0%31.2%0%0%6
95.5%65.6%3.1%0%31.2%0%0%7
97.7%65.6%1.6%0%32.8%0%0%8
98.8%66.4%0.8%0%32.8%0%0%9
99.4%66.4%0.4%0%33.2%0%0%10
99.7%66.6%0.2%0%33.2%0%0%11
99.9%66.6%0.1%0%33.3%0%0%12
Compiler

Compiled 11 to 8 computations (27.3% saved)

sample9.0s (54.3%)

Results
9.0s8256×body256valid
1.0ms12×body256infinite
Bogosity

preprocess126.0ms (0.8%)

Algorithm
egg-herbie
Rules
1812×rational.json-simplify-35
1350×rational.json-simplify-53
1028×rational.json-simplify-39
866×rational.json-simplify-59
602×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0925
11325
21925
34125
419525
5198525
6594025
7781425
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
Outputs
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
Compiler

Compiled 11 to 8 computations (27.3% saved)

simplify130.0ms (0.8%)

Algorithm
egg-herbie
Rules
1812×rational.json-simplify-35
1350×rational.json-simplify-53
1028×rational.json-simplify-39
866×rational.json-simplify-59
602×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0925
11325
21925
34125
419525
5198525
6594025
7781425
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
Outputs
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))

eval1.0ms (0%)

Compiler

Compiled 19 to 13 computations (31.6% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.1b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
0.2b
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
Compiler

Compiled 20 to 14 computations (30% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 x (-.f64 3 (*.f64 x 2)))
0.2b
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
Compiler

Compiled 28 to 20 computations (28.6% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
0.0ms
x
@0
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
0.0ms
x
@0
(*.f64 x (-.f64 3 (*.f64 x 2)))
0.0ms
x
@-inf
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
0.0ms
x
@-inf
(*.f64 x (-.f64 3 (*.f64 x 2)))

rewrite88.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1858×bool.json-1
1858×bool.json-2
1806×rational.json-1
1388×bool.json-3
730×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0944
18944
223144
347344
495944
5225244
6580744
Stop Event
node limit
Counts
2 → 21
Calls
Call 1
Inputs
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
(*.f64 x (-.f64 3 (*.f64 x 2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 3 (+.f64 x x)) (/.f64 (*.f64 x x) 2)) (*.f64 (-.f64 3 (+.f64 x x)) (/.f64 (*.f64 x x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x (*.f64 2 (-.f64 3 (+.f64 x x))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 8)) (*.f64 2 (*.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (-.f64 3 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x 1/2)) (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (-.f64 3 (+.f64 x x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 8)) (*.f64 2 (*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (-.f64 3 (+.f64 x x))) (*.f64 x (-.f64 3 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (-.f64 3 (+.f64 x x))) (*.f64 x (-.f64 3 (+.f64 x x))))))))

simplify106.0ms (0.6%)

Algorithm
egg-herbie
Rules
1222×rational.json-simplify-2
934×rational.json-simplify-19
924×rational.json-simplify-41
762×rational.json-simplify-54
668×rational.json-simplify-59
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0641041
11501041
23211041
310281041
430181041
555911041
668351041
Stop Event
node limit
Counts
45 → 33
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(*.f64 -2 (pow.f64 x 2))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(*.f64 -2 (pow.f64 x 2))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 0)
(+.f64 0 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))))
(+.f64 (*.f64 (-.f64 3 (+.f64 x x)) (/.f64 (*.f64 x x) 2)) (*.f64 (-.f64 3 (+.f64 x x)) (/.f64 (*.f64 x x) 2)))
(-.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 0)
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
(/.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 1)
(/.f64 (*.f64 x (*.f64 x (*.f64 2 (-.f64 3 (+.f64 x x))))) 2)
(/.f64 (*.f64 x (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 4))) 4)
(/.f64 (*.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 8)) (*.f64 2 (*.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 8))) 32)
(+.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 0)
(+.f64 0 (*.f64 x (-.f64 3 (+.f64 x x))))
(+.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x 1/2)) (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x 1/2)))
(-.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 0)
(/.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 1)
(/.f64 (*.f64 x (*.f64 2 (-.f64 3 (+.f64 x x)))) 2)
(/.f64 (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 4)) 4)
(/.f64 (*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 8)) (*.f64 2 (*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 8))) 32)
Outputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x))
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x))
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x))
(+.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 0)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(+.f64 0 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(+.f64 (*.f64 (-.f64 3 (+.f64 x x)) (/.f64 (*.f64 x x) 2)) (*.f64 (-.f64 3 (+.f64 x x)) (/.f64 (*.f64 x x) 2)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(-.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 0)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 1)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (*.f64 x (*.f64 x (*.f64 2 (-.f64 3 (+.f64 x x))))) 2)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (*.f64 x (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 4))) 4)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (*.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 8) 8)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 8)) 16)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 8)) (*.f64 2 (*.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 8))) 32)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(+.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 0)
(*.f64 x (-.f64 3 (+.f64 x x)))
(+.f64 0 (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 x (-.f64 3 (+.f64 x x)))
(+.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x 1/2)) (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x 1/2)))
(*.f64 x (-.f64 3 (+.f64 x x)))
(-.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 0)
(*.f64 x (-.f64 3 (+.f64 x x)))
(/.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 1)
(*.f64 x (-.f64 3 (+.f64 x x)))
(/.f64 (*.f64 x (*.f64 2 (-.f64 3 (+.f64 x x)))) 2)
(*.f64 x (-.f64 3 (+.f64 x x)))
(/.f64 (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 4)) 4)
(*.f64 x (-.f64 3 (+.f64 x x)))
(/.f64 (*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 8) 8)
(*.f64 x (-.f64 3 (+.f64 x x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 8)) 16)
(*.f64 x (-.f64 3 (+.f64 x x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 8)) (*.f64 2 (*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 8))) 32)
(*.f64 x (-.f64 3 (+.f64 x x)))

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
Compiler

Compiled 24 to 15 computations (37.5% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
0.0ms
x
@inf
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
0.0ms
x
@-inf
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))

rewrite145.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1706×bool.json-1
1706×bool.json-2
1676×rational.json-1
1676×rational.json-2
1318×bool.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0925
19025
224625
355825
4176825
5569025
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 (+.f64 x x) (*.f64 (*.f64 x x) (/.f64 (*.f64 x x) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 (*.f64 x 4) (*.f64 (*.f64 x x) (/.f64 (*.f64 x x) x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 x x) (-.f64 3 (+.f64 x x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 3 (+.f64 x x))) (*.f64 2 (/.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) (*.f64 (-.f64 3 (+.f64 x x)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 3 (+.f64 x x)) (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x x) (*.f64 (-.f64 3 (+.f64 x x)) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x x) (*.f64 (-.f64 3 (+.f64 x x)) 4))) (*.f64 2 (*.f64 (*.f64 x x) (*.f64 (-.f64 3 (+.f64 x x)) 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 3 (+.f64 x x))) (-.f64 0 (/.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))) (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))) (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))))))))

simplify78.0ms (0.5%)

Algorithm
egg-herbie
Rules
866×rational.json-simplify-41
806×rational.json-simplify-2
782×rational.json-simplify-54
778×rational.json-simplify-59
518×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056668
1172668
2512668
32255668
45378668
Stop Event
node limit
Counts
26 → 19
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))) 0)
(+.f64 0 (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))))
(-.f64 (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))) 0)
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 (+.f64 x x) (*.f64 (*.f64 x x) (/.f64 (*.f64 x x) x))) 2))
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 (*.f64 x 4) (*.f64 (*.f64 x x) (/.f64 (*.f64 x x) x))) 4))
(/.f64 (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))) 1)
(/.f64 (*.f64 x (*.f64 (+.f64 x x) (-.f64 3 (+.f64 x x)))) 2)
(/.f64 (*.f64 2 (-.f64 3 (+.f64 x x))) (*.f64 2 (/.f64 1 (*.f64 x x))))
(/.f64 (*.f64 (*.f64 x x) (*.f64 (-.f64 3 (+.f64 x x)) 4)) 4)
(/.f64 (*.f64 (-.f64 3 (+.f64 x x)) (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x x) (*.f64 (-.f64 3 (+.f64 x x)) 4))) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x x) (*.f64 (-.f64 3 (+.f64 x x)) 4))) (*.f64 2 (*.f64 (*.f64 x x) (*.f64 (-.f64 3 (+.f64 x x)) 4)))) 16)
(/.f64 (neg.f64 (-.f64 3 (+.f64 x x))) (-.f64 0 (/.f64 1 (*.f64 x x))))
Outputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))) 0)
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(+.f64 0 (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))))
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(-.f64 (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))) 0)
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 (+.f64 x x) (*.f64 (*.f64 x x) (/.f64 (*.f64 x x) x))) 2))
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 (*.f64 x 4) (*.f64 (*.f64 x x) (/.f64 (*.f64 x x) x))) 4))
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(/.f64 (*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x))) 1)
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(/.f64 (*.f64 x (*.f64 (+.f64 x x) (-.f64 3 (+.f64 x x)))) 2)
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(/.f64 (*.f64 2 (-.f64 3 (+.f64 x x))) (*.f64 2 (/.f64 1 (*.f64 x x))))
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(/.f64 (*.f64 (*.f64 x x) (*.f64 (-.f64 3 (+.f64 x x)) 4)) 4)
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(/.f64 (*.f64 (-.f64 3 (+.f64 x x)) (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(/.f64 (*.f64 2 (*.f64 (*.f64 x x) (*.f64 (-.f64 3 (+.f64 x x)) 4))) 8)
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x x) (*.f64 (-.f64 3 (+.f64 x x)) 4))) (*.f64 2 (*.f64 (*.f64 x x) (*.f64 (-.f64 3 (+.f64 x x)) 4)))) 16)
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(/.f64 (neg.f64 (-.f64 3 (+.f64 x x))) (-.f64 0 (/.f64 1 (*.f64 x x))))
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))

eval12.0ms (0.1%)

Compiler

Compiled 656 to 377 computations (42.5% saved)

prune11.0ms (0.1%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New46652
Fresh000
Picked011
Done011
Total46854
Error
0.0b
Counts
54 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
1.4b
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
0.2b
(/.f64 (*.f64 (-.f64 3 (+.f64 x x)) (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
0.1b
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
0.2b
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
0.2b
(*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x)))
0.2b
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
18.6b
(*.f64 x (*.f64 3 x))
23.6b
(*.f64 -2 (pow.f64 x 3))
Compiler

Compiled 144 to 104 computations (27.8% saved)

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 -2 (pow.f64 x 3))
0.0b
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
0.2b
(*.f64 3 (pow.f64 x 2))
Compiler

Compiled 32 to 25 computations (21.9% saved)

series4.0ms (0%)

Counts
3 → 3
Calls

9 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
0.0ms
x
@inf
(*.f64 3 (pow.f64 x 2))
0.0ms
x
@0
(*.f64 3 (pow.f64 x 2))
0.0ms
x
@-inf
(*.f64 -2 (pow.f64 x 3))
0.0ms
x
@inf
(*.f64 -2 (pow.f64 x 3))

rewrite116.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1850×bool.json-1
1850×bool.json-2
1332×rational.json-simplify-35
1184×rational.json-1
1184×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01157
110757
226257
351057
4105657
5231157
6472557
7751457
Stop Event
node limit
Counts
3 → 50
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x 2) (*.f64 2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (pow.f64 x 2)) (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 2) 3/2) (*.f64 (pow.f64 x 2) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 12) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 12)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 12))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 12)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 12)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 12))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 3 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 3 (pow.f64 x 2)) (*.f64 3 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 3 (pow.f64 x 2)) (*.f64 3 (pow.f64 x 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (neg.f64 (pow.f64 x 3)) (*.f64 (pow.f64 x 2) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (pow.f64 x 3) -4) (*.f64 (pow.f64 x 2) 6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -2 (pow.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -2 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 2 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (pow.f64 x 3)) (neg.f64 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 2 (pow.f64 x 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -2 (pow.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 2 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -2 (pow.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (pow.f64 x 3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) -4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) -8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) 4) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 3) -8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 2 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 -2 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 -2 (pow.f64 x 3)) (*.f64 -2 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -2 (pow.f64 x 3)) (*.f64 -2 (pow.f64 x 3)))))))

simplify757.0ms (4.6%)

Algorithm
egg-herbie
Rules
4736×rational.json-simplify-43
3984×rational.json-simplify-35
1278×rational.json-simplify-2
1228×rational.json-simplify-1
700×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01051049
12271049
25191049
313441049
426831049
535341049
637291049
739091049
841211049
943091049
1044491049
1147001049
1248261049
1348551049
1448641049
1548651049
1648651049
1749761049
1850871049
1951981049
2053091049
2154201049
2255311049
2356421049
2457531049
2558641049
2659751049
2760861049
2860861049
Stop Event
node limit
Counts
53 → 53
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 3 (pow.f64 x 2)) 0)
(+.f64 0 (*.f64 3 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (pow.f64 x 2))
(+.f64 (*.f64 (pow.f64 x 2) 3/2) (*.f64 (pow.f64 x 2) 3/2))
(-.f64 (*.f64 3 (pow.f64 x 2)) 0)
(/.f64 (*.f64 3 (pow.f64 x 2)) 1)
(/.f64 (*.f64 (pow.f64 x 2) 6) 2)
(/.f64 (*.f64 (pow.f64 x 2) 12) 4)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 12)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 12))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 12)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 12)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 12))))) 64)
(-.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 0)
(*.f64 2 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 1/2))
(*.f64 2 (+.f64 (neg.f64 (pow.f64 x 3)) (*.f64 (pow.f64 x 2) 3/2)))
(*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 1)
(*.f64 1 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))))
(*.f64 (*.f64 2 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 4))
(*.f64 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 4) 1/4)
(*.f64 1/2 (*.f64 2 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 3) -4) (*.f64 (pow.f64 x 2) 6)))
(*.f64 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 4))
(*.f64 (/.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 4) 4)
(/.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 1)
(/.f64 (*.f64 2 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))) 2)
(/.f64 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 8)))) 64)
(+.f64 (*.f64 -2 (pow.f64 x 3)) 0)
(+.f64 0 (*.f64 -2 (pow.f64 x 3)))
(+.f64 -1 (-.f64 1 (*.f64 2 (pow.f64 x 3))))
(+.f64 (neg.f64 (pow.f64 x 3)) (neg.f64 (pow.f64 x 3)))
(+.f64 (-.f64 1 (*.f64 2 (pow.f64 x 3))) -1)
(-.f64 (*.f64 -2 (pow.f64 x 3)) 0)
(-.f64 0 (*.f64 2 (pow.f64 x 3)))
(/.f64 (*.f64 -2 (pow.f64 x 3)) 1)
(/.f64 (*.f64 2 (pow.f64 x 3)) -1)
(/.f64 (*.f64 (pow.f64 x 3) -4) 2)
(/.f64 (*.f64 (pow.f64 x 3) -8) 4)
(/.f64 (*.f64 (pow.f64 x 3) 4) -2)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 3) -8)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -8)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -8))))) 64)
(neg.f64 (*.f64 2 (pow.f64 x 3)))
Outputs
(*.f64 3 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (*.f64 2 (pow.f64 x 2)))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) 0)
(*.f64 3 (pow.f64 x 2))
(+.f64 0 (*.f64 3 (pow.f64 x 2)))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 (pow.f64 x 2) 3/2) (*.f64 (pow.f64 x 2) 3/2))
(*.f64 3 (pow.f64 x 2))
(-.f64 (*.f64 3 (pow.f64 x 2)) 0)
(*.f64 3 (pow.f64 x 2))
(/.f64 (*.f64 3 (pow.f64 x 2)) 1)
(*.f64 3 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) 6) 2)
(*.f64 3 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) 12) 4)
(*.f64 3 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) 12)) 8)
(*.f64 3 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 12))) 16)
(*.f64 3 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 12)))) 32)
(*.f64 3 (pow.f64 x 2))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 12)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) 12))))) 64)
(*.f64 3 (pow.f64 x 2))
(-.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 0)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 2 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 1/2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 2 (+.f64 (neg.f64 (pow.f64 x 3)) (*.f64 (pow.f64 x 2) 3/2)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 1)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 1 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 (*.f64 2 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))) 1/2)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 4 (/.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 4) 1/4)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 1/2 (*.f64 2 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 3) -4) (*.f64 (pow.f64 x 2) 6)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 1/2) 2)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 (/.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 4) 4)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(/.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 1)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(/.f64 (*.f64 2 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))) 2)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(/.f64 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 4) 4)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(/.f64 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 8) 8)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 8)) 16)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 8))) 32)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3))) 8)))) 64)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 -2 (pow.f64 x 3)) 0)
(*.f64 -2 (pow.f64 x 3))
(+.f64 0 (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 -1 (-.f64 1 (*.f64 2 (pow.f64 x 3))))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (neg.f64 (pow.f64 x 3)) (neg.f64 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (-.f64 1 (*.f64 2 (pow.f64 x 3))) -1)
(*.f64 -2 (pow.f64 x 3))
(-.f64 (*.f64 -2 (pow.f64 x 3)) 0)
(*.f64 -2 (pow.f64 x 3))
(-.f64 0 (*.f64 2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(/.f64 (*.f64 -2 (pow.f64 x 3)) 1)
(*.f64 -2 (pow.f64 x 3))
(/.f64 (*.f64 2 (pow.f64 x 3)) -1)
(*.f64 -2 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) -4) 2)
(*.f64 -2 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) -8) 4)
(*.f64 -2 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) 4) -2)
(*.f64 -2 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 3) -8)) 8)
(*.f64 -2 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -8))) 16)
(*.f64 -2 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -8)))) 32)
(*.f64 -2 (pow.f64 x 3))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) -8))))) 64)
(*.f64 -2 (pow.f64 x 3))
(neg.f64 (*.f64 2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))

localize4.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 x (*.f64 3 x))
Compiler

Compiled 11 to 7 computations (36.4% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.f64 x (*.f64 3 x))
0.0ms
x
@inf
(*.f64 x (*.f64 3 x))
0.0ms
x
@-inf
(*.f64 x (*.f64 3 x))

rewrite87.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
2176×bool.json-1
1084×rational.json-simplify-35
914×bool.json-2
884×rational.json-1
884×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
16313
218813
340613
487413
5259613
6759013
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 x (*.f64 3 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x x) (*.f64 (*.f64 x x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x x) 2) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x 3/2)) (*.f64 x (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) 6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) 12) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (*.f64 x 3)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x 3)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x 3)) 8)) (*.f64 2 (*.f64 (*.f64 x (*.f64 x 3)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 x 3)) (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 x 3)) (*.f64 x (*.f64 x 3)))))))

simplify114.0ms (0.7%)

Algorithm
egg-herbie
Rules
1080×rational.json-simplify-54
1080×rational.json-simplify-1
936×rational.json-simplify-39
790×rational.json-simplify-19
754×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045338
1103338
2271338
31049338
44576338
57540338
Stop Event
node limit
Counts
26 → 17
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 x (*.f64 x 3)) 0)
(+.f64 0 (*.f64 x (*.f64 x 3)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 x x) 2))
(+.f64 (*.f64 (*.f64 x x) 2) (*.f64 x x))
(+.f64 (*.f64 x (*.f64 x 3/2)) (*.f64 x (*.f64 x 3/2)))
(-.f64 (*.f64 x (*.f64 x 3)) 0)
(/.f64 (*.f64 x (*.f64 x 3)) 1)
(/.f64 (*.f64 (*.f64 x x) 6) 2)
(/.f64 (*.f64 (*.f64 x x) 12) 4)
(/.f64 (*.f64 (*.f64 x (*.f64 x 3)) 8) 8)
(/.f64 (*.f64 3 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x 3)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x 3)) 8)) (*.f64 2 (*.f64 (*.f64 x (*.f64 x 3)) 8))) 32)
(fabs.f64 (*.f64 x (*.f64 x 3)))
Outputs
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 x (*.f64 x 3)) 0)
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))
(+.f64 0 (*.f64 x (*.f64 x 3)))
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))
(+.f64 (*.f64 x x) (*.f64 (*.f64 x x) 2))
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))
(+.f64 (*.f64 (*.f64 x x) 2) (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))
(+.f64 (*.f64 x (*.f64 x 3/2)) (*.f64 x (*.f64 x 3/2)))
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))
(-.f64 (*.f64 x (*.f64 x 3)) 0)
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))
(/.f64 (*.f64 x (*.f64 x 3)) 1)
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))
(/.f64 (*.f64 (*.f64 x x) 6) 2)
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))
(/.f64 (*.f64 (*.f64 x x) 12) 4)
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))
(/.f64 (*.f64 (*.f64 x (*.f64 x 3)) 8) 8)
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))
(/.f64 (*.f64 3 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x 3)) 8)) 16)
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x 3)) 8)) (*.f64 2 (*.f64 (*.f64 x (*.f64 x 3)) 8))) 32)
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))
(fabs.f64 (*.f64 x (*.f64 x 3)))
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(/.f64 1 (*.f64 x x))
1.3b
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
Compiler

Compiled 31 to 14 computations (54.8% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(/.f64 1 (*.f64 x x))
0.0ms
x
@0
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
0.0ms
x
@inf
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
0.0ms
x
@-inf
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
0.0ms
x
@inf
(/.f64 1 (*.f64 x x))

rewrite75.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1920×bool.json-1
1920×bool.json-2
1888×rational.json-1
1674×bool.json-3
798×rational.json-simplify-61
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01044
111444
239338
3118238
4516938
Stop Event
node limit
Counts
2 → 72
Calls
Call 1
Inputs
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
(/.f64 1 (*.f64 x x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (*.f64 x 1/2) (-.f64 3 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 2 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (*.f64 (*.f64 x (/.f64 1 x)) (-.f64 3 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (/.f64 (*.f64 x x) (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 2 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 x (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 x x) (/.f64 2 (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x x)) (*.f64 (-.f64 3 (+.f64 x x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x x)) (*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x x)) (/.f64 2 (/.f64 4 (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (/.f64 (*.f64 x x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (*.f64 (/.f64 (*.f64 x x) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (*.f64 1/2 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (/.f64 1 (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x x) 4) (/.f64 1 (*.f64 2 (/.f64 2 (-.f64 3 (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x x) 4) (/.f64 1 (/.f64 4 (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x (+.f64 x x))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 3 (+.f64 x x)) 4) (/.f64 1 (*.f64 (/.f64 1 (*.f64 x x)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) (-.f64 3 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 x) (*.f64 (*.f64 (fabs.f64 x) (-.f64 3 (+.f64 x x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 3 (+.f64 x x))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 -1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (/.f64 1 (/.f64 (/.f64 1 x) (+.f64 (+.f64 x x) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 x x)) (+.f64 (+.f64 x x) -3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 x x) -3) (/.f64 1 (/.f64 -1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 x x)) (/.f64 x (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 x (fabs.f64 x))) (/.f64 (fabs.f64 x) (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 (+.f64 x x) (-.f64 3 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (fabs.f64 x) (-.f64 3 (+.f64 x x))) (fabs.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 2 x)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x x) 2) (*.f64 (-.f64 3 (+.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (fabs.f64 x)) (/.f64 (fabs.f64 x) (/.f64 2 (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 1 x)) (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 3 (+.f64 x x)) 1/2) (*.f64 x (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 (/.f64 1 x) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 x (*.f64 (*.f64 x x) (*.f64 x (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 x x) (*.f64 (*.f64 x x) (*.f64 x (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (/.f64 1 (*.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x x)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 x (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (*.f64 x x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 x) (/.f64 1 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (*.f64 x x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 x) (/.f64 (fabs.f64 x) (*.f64 (*.f64 x x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 -1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 x) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 x) (*.f64 x x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 (*.f64 x x) (*.f64 x x))) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (*.f64 (*.f64 x x) (*.f64 x x))) (/.f64 (*.f64 x x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (/.f64 (+.f64 x x) (*.f64 (*.f64 x x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (/.f64 2 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (fabs.f64 x)) (/.f64 (fabs.f64 x) (*.f64 (*.f64 x x) (*.f64 x (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 1 x)) (/.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 -1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (/.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (/.f64 1 (*.f64 x x)) (/.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 1 (*.f64 x x)) (/.f64 1 (*.f64 x x)))))))

simplify89.0ms (0.5%)

Algorithm
egg-herbie
Rules
1438×rational.json-simplify-44
1406×rational.json-simplify-47
1280×rational.json-simplify-61
998×rational.json-simplify-43
872×rational.json-simplify-35
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01652078
14242046
211762034
374192034
Stop Event
node limit
Counts
96 → 97
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(+.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 0)
(+.f64 0 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))
(-.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 0)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (+.f64 x x) (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 2 x)))
(*.f64 (+.f64 x x) (*.f64 (*.f64 x 1/2) (-.f64 3 (+.f64 x x))))
(*.f64 (+.f64 x x) (*.f64 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 2 x)) 1))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 1 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 (*.f64 x x) (*.f64 (*.f64 x (/.f64 1 x)) (-.f64 3 (+.f64 x x))))
(*.f64 (*.f64 x x) (/.f64 (*.f64 x x) (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 1)
(*.f64 2 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 2 (*.f64 x x))))
(*.f64 2 (/.f64 x (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x)))))
(*.f64 2 (/.f64 (*.f64 x x) (/.f64 2 (-.f64 3 (+.f64 x x)))))
(*.f64 2 (/.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 2))
(*.f64 (*.f64 x (+.f64 x x)) (*.f64 (-.f64 3 (+.f64 x x)) 1/2))
(*.f64 (*.f64 x (+.f64 x x)) (*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 1/2) 1))
(*.f64 (*.f64 x (+.f64 x x)) (/.f64 2 (/.f64 4 (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (/.f64 (*.f64 x x) 2))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (*.f64 (/.f64 (*.f64 x x) 2) 1))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (*.f64 1/2 (*.f64 x x)))
(*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (/.f64 1 (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 (*.f64 x x) 4) (/.f64 1 (*.f64 2 (/.f64 2 (-.f64 3 (+.f64 x x))))))
(*.f64 (*.f64 (*.f64 x x) 4) (/.f64 1 (/.f64 4 (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x (+.f64 x x))) 1/2)
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 4) (/.f64 1 (*.f64 (/.f64 1 (*.f64 x x)) 4)))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) (-.f64 3 (+.f64 x x))))
(*.f64 (fabs.f64 x) (*.f64 (*.f64 (fabs.f64 x) (-.f64 3 (+.f64 x x))) 1))
(*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) x)
(*.f64 -1 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 -1 (*.f64 x x))))
(*.f64 (neg.f64 x) (/.f64 1 (/.f64 (/.f64 1 x) (+.f64 (+.f64 x x) -3))))
(*.f64 (neg.f64 (*.f64 x x)) (+.f64 (+.f64 x x) -3))
(*.f64 (+.f64 (+.f64 x x) -3) (/.f64 1 (/.f64 -1 (*.f64 x x))))
(*.f64 (*.f64 x (*.f64 x x)) (/.f64 x (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 x (*.f64 x (fabs.f64 x))) (/.f64 (fabs.f64 x) (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 x 1/2) (*.f64 (+.f64 x x) (-.f64 3 (+.f64 x x))))
(*.f64 1/2 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x (+.f64 x x))))
(*.f64 (*.f64 (fabs.f64 x) (-.f64 3 (+.f64 x x))) (fabs.f64 x))
(*.f64 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 2 x)) (+.f64 x x))
(*.f64 (/.f64 (*.f64 x x) 2) (*.f64 (-.f64 3 (+.f64 x x)) 2))
(*.f64 (*.f64 2 (fabs.f64 x)) (/.f64 (fabs.f64 x) (/.f64 2 (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 x (/.f64 1 x)) (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 1/2) (*.f64 x (+.f64 x x)))
(+.f64 (/.f64 1 (*.f64 x x)) 0)
(+.f64 0 (/.f64 1 (*.f64 x x)))
(-.f64 (/.f64 1 (*.f64 x x)) 0)
(*.f64 x (/.f64 (/.f64 1 x) (*.f64 x x)))
(*.f64 (+.f64 x x) (/.f64 x (*.f64 (*.f64 x x) (*.f64 x (+.f64 x x)))))
(*.f64 1 (/.f64 1 (*.f64 x x)))
(*.f64 (*.f64 x x) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 x x))))
(*.f64 (/.f64 1 (*.f64 x x)) 1)
(*.f64 2 (/.f64 (*.f64 x x) (*.f64 (*.f64 x x) (*.f64 x (+.f64 x x)))))
(*.f64 2 (/.f64 (/.f64 1 (*.f64 x x)) 2))
(*.f64 (*.f64 x (+.f64 x x)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 x (+.f64 x x)))))
(*.f64 (/.f64 2 (*.f64 x x)) 1/2)
(*.f64 (/.f64 1 x) (/.f64 1 x))
(*.f64 (/.f64 2 x) (/.f64 1 (+.f64 x x)))
(*.f64 (*.f64 (/.f64 1 (*.f64 x x)) 4) 1/4)
(*.f64 (fabs.f64 x) (/.f64 (fabs.f64 x) (*.f64 (*.f64 x x) (*.f64 x x))))
(*.f64 -1 (/.f64 -1 (*.f64 x x)))
(*.f64 (/.f64 -1 x) (/.f64 -1 x))
(*.f64 (/.f64 (/.f64 1 x) (*.f64 x x)) x)
(*.f64 (/.f64 1 (*.f64 (*.f64 x x) (*.f64 x x))) (*.f64 x x))
(*.f64 (/.f64 2 (*.f64 (*.f64 x x) (*.f64 x x))) (/.f64 (*.f64 x x) 2))
(*.f64 (*.f64 x 1/2) (/.f64 (+.f64 x x) (*.f64 (*.f64 x x) (*.f64 x x))))
(*.f64 1/2 (/.f64 2 (*.f64 x x)))
(*.f64 (*.f64 2 (fabs.f64 x)) (/.f64 (fabs.f64 x) (*.f64 (*.f64 x x) (*.f64 x (+.f64 x x)))))
(*.f64 (*.f64 x (/.f64 1 x)) (/.f64 1 (*.f64 x x)))
(fabs.f64 (/.f64 1 (*.f64 x x)))
(fabs.f64 (/.f64 -1 (*.f64 x x)))
Outputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(+.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 0)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(+.f64 0 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(-.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 0)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (+.f64 x x) (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 2 x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (+.f64 x x) (*.f64 (*.f64 x 1/2) (-.f64 3 (+.f64 x x))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (+.f64 x x) (*.f64 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 2 x)) 1))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 1 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x x) (*.f64 (*.f64 x (/.f64 1 x)) (-.f64 3 (+.f64 x x))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x x) (/.f64 (*.f64 x x) (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 1)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 2 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 2 (*.f64 x x))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 2 (/.f64 x (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 2 (/.f64 (*.f64 x x) (/.f64 2 (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 2 (/.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 2))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x (+.f64 x x)) (*.f64 (-.f64 3 (+.f64 x x)) 1/2))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x (+.f64 x x)) (*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 1/2) 1))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x (+.f64 x x)) (/.f64 2 (/.f64 4 (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (/.f64 (*.f64 x x) 2))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (*.f64 (/.f64 (*.f64 x x) 2) 1))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (*.f64 1/2 (*.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (/.f64 1 (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 (*.f64 x x) 4) (/.f64 1 (*.f64 2 (/.f64 2 (-.f64 3 (+.f64 x x))))))
(*.f64 (*.f64 (*.f64 x x) 4) (/.f64 1/2 (/.f64 2 (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 x (*.f64 x 4)) (/.f64 (-.f64 3 (+.f64 x x)) 4))
(*.f64 x (*.f64 (*.f64 x 4) (/.f64 (+.f64 x (-.f64 x 3)) -4)))
(*.f64 (*.f64 (*.f64 x x) 4) (/.f64 1 (/.f64 4 (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 (*.f64 x x) 4) (/.f64 1/2 (/.f64 2 (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 x (*.f64 x 4)) (/.f64 (-.f64 3 (+.f64 x x)) 4))
(*.f64 x (*.f64 (*.f64 x 4) (/.f64 (+.f64 x (-.f64 x 3)) -4)))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x (+.f64 x x))) 1/2)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 4) (/.f64 1 (*.f64 (/.f64 1 (*.f64 x x)) 4)))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 4) (/.f64 1 (*.f64 4 (/.f64 (/.f64 1 x) x))))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 4) (/.f64 (*.f64 x x) 4))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 4 (*.f64 x (/.f64 x 4))))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) (-.f64 3 (+.f64 x x))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (fabs.f64 x) (*.f64 (*.f64 (fabs.f64 x) (-.f64 3 (+.f64 x x))) 1))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) x)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 -1 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 -1 (*.f64 x x))))
(*.f64 -1 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 -1 x) x)))
(neg.f64 (*.f64 x (/.f64 x (/.f64 1 (+.f64 x (-.f64 x 3))))))
(neg.f64 (*.f64 x (/.f64 (+.f64 x (-.f64 x 3)) (/.f64 1 x))))
(*.f64 x (neg.f64 (/.f64 (+.f64 x (-.f64 x 3)) (/.f64 1 x))))
(*.f64 (neg.f64 x) (/.f64 1 (/.f64 (/.f64 1 x) (+.f64 (+.f64 x x) -3))))
(*.f64 (neg.f64 x) (/.f64 (+.f64 (+.f64 x x) -3) (/.f64 (/.f64 1 x) 1)))
(*.f64 (neg.f64 x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x)))
(*.f64 (neg.f64 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (neg.f64 (*.f64 x x)) (+.f64 (+.f64 x x) -3))
(*.f64 (+.f64 (+.f64 x x) -3) (neg.f64 (*.f64 x x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(*.f64 x (*.f64 (neg.f64 x) (+.f64 x (+.f64 x -3))))
(*.f64 (+.f64 (+.f64 x x) -3) (/.f64 1 (/.f64 -1 (*.f64 x x))))
(*.f64 (+.f64 (+.f64 x x) -3) (neg.f64 (*.f64 x x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(*.f64 x (*.f64 (neg.f64 x) (+.f64 x (+.f64 x -3))))
(*.f64 (*.f64 x (*.f64 x x)) (/.f64 x (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x (*.f64 x (fabs.f64 x))) (/.f64 (fabs.f64 x) (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 x (*.f64 x (fabs.f64 x))) (/.f64 (-.f64 3 (+.f64 x x)) (fabs.f64 x)))
(*.f64 x (*.f64 (*.f64 x (fabs.f64 x)) (/.f64 (-.f64 3 (+.f64 x x)) (fabs.f64 x))))
(*.f64 (*.f64 x 1/2) (*.f64 (+.f64 x x) (-.f64 3 (+.f64 x x))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 1/2 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x (+.f64 x x))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 (fabs.f64 x) (-.f64 3 (+.f64 x x))) (fabs.f64 x))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 2 x)) (+.f64 x x))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (/.f64 (*.f64 x x) 2) (*.f64 (-.f64 3 (+.f64 x x)) 2))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 2 (fabs.f64 x)) (/.f64 (fabs.f64 x) (/.f64 2 (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x (/.f64 1 x)) (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 1/2) (*.f64 x (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(+.f64 (/.f64 1 (*.f64 x x)) 0)
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(+.f64 0 (/.f64 1 (*.f64 x x)))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(-.f64 (/.f64 1 (*.f64 x x)) 0)
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 x (/.f64 (/.f64 1 x) (*.f64 x x)))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 (+.f64 x x) (/.f64 x (*.f64 (*.f64 x x) (*.f64 x (+.f64 x x)))))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 1 (/.f64 1 (*.f64 x x)))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 (*.f64 x x) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 x x))))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 1 (*.f64 x x)) 1)
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 2 (/.f64 (*.f64 x x) (*.f64 (*.f64 x x) (*.f64 x (+.f64 x x)))))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 2 (/.f64 (/.f64 1 (*.f64 x x)) 2))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 (*.f64 x (+.f64 x x)) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 x (+.f64 x x)))))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 2 (*.f64 x x)) 1/2)
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 1 x) (/.f64 1 x))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 2 x) (/.f64 1 (+.f64 x x)))
(*.f64 (/.f64 2 x) (/.f64 1/2 x))
(*.f64 (*.f64 (/.f64 1 (*.f64 x x)) 4) 1/4)
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 (fabs.f64 x) (/.f64 (fabs.f64 x) (*.f64 (*.f64 x x) (*.f64 x x))))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 -1 (/.f64 -1 (*.f64 x x)))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 -1 x) (/.f64 -1 x))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 (/.f64 1 x) (*.f64 x x)) x)
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 1 (*.f64 (*.f64 x x) (*.f64 x x))) (*.f64 x x))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 2 (*.f64 (*.f64 x x) (*.f64 x x))) (/.f64 (*.f64 x x) 2))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 (*.f64 x 1/2) (/.f64 (+.f64 x x) (*.f64 (*.f64 x x) (*.f64 x x))))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 1/2 (/.f64 2 (*.f64 x x)))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 (*.f64 2 (fabs.f64 x)) (/.f64 (fabs.f64 x) (*.f64 (*.f64 x x) (*.f64 x (+.f64 x x)))))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(*.f64 (*.f64 x (/.f64 1 x)) (/.f64 1 (*.f64 x x)))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(fabs.f64 (/.f64 1 (*.f64 x x)))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))
(fabs.f64 (/.f64 -1 (*.f64 x x)))
(/.f64 (/.f64 1 x) x)
(/.f64 1 (*.f64 x x))

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 -2 (pow.f64 x 3))
Compiler

Compiled 12 to 9 computations (25% saved)

localize46.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (pow.f64 x 2) -2)
0.0b
(+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x))
0.2b
(*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x)))
Compiler

Compiled 36 to 27 computations (25% saved)

series2.0ms (0%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x)))
0.0ms
x
@inf
(*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x)))
0.0ms
x
@inf
(*.f64 (pow.f64 x 2) -2)
0.0ms
x
@-inf
(*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x)))
0.0ms
x
@0
(*.f64 (pow.f64 x 2) -2)

rewrite121.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1960×bool.json-1
1332×rational.json-simplify-35
1244×bool.json-2
1192×rational.json-1
1192×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01169
110869
226369
351369
4106369
5234269
6479169
7775969
Stop Event
node limit
Counts
3 → 48
Calls
Call 1
Inputs
(*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x)))
(+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x))
(*.f64 (pow.f64 x 2) -2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) (*.f64 x 1/2)) (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (*.f64 (+.f64 (*.f64 x 3/2) (neg.f64 (pow.f64 x 2))) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x 8) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x 3/2) (neg.f64 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x 6) (*.f64 (pow.f64 x 2) -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 2) -2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 x 2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (pow.f64 x 2)) (neg.f64 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 2 (pow.f64 x 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 x 2) -2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (pow.f64 x 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) -4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) -8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) 4) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 2) -8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 2 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (pow.f64 x 2) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (pow.f64 x 2) -2) (*.f64 (pow.f64 x 2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (pow.f64 x 2) -2) (*.f64 (pow.f64 x 2) -2))))))

simplify584.0ms (3.5%)

Algorithm
egg-herbie
Rules
4276×rational.json-simplify-2
2710×rational.json-simplify-35
2352×rational.json-simplify-53
1014×rational.json-simplify-1
748×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01141802
12501802
26311802
317611802
434921802
540231802
642341802
744441802
846521802
948501802
1055611802
1157131802
1257181802
1357521802
1457601802
1557761802
1657801802
1759081802
1860361802
1961641802
2075021802
Stop Event
node limit
Counts
84 → 62
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(*.f64 -2 (pow.f64 x 2))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(*.f64 -2 (pow.f64 x 2))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 2))
(+.f64 (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 0)
(+.f64 0 (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))))
(+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) (*.f64 x 1/2)) (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) (*.f64 x 1/2)))
(-.f64 (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 0)
(/.f64 (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 1)
(/.f64 (*.f64 4 (*.f64 (+.f64 (*.f64 x 3/2) (neg.f64 (pow.f64 x 2))) x)) 2)
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) (*.f64 x 4)) 4)
(/.f64 (*.f64 (*.f64 x 8) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)))))) 64)
(-.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 0)
(*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 1/2))
(*.f64 2 (+.f64 (*.f64 x 3/2) (neg.f64 (pow.f64 x 2))))
(*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 1)
(*.f64 1 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)))
(*.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 4) 1/4)
(*.f64 1/2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))))
(*.f64 1/2 (+.f64 (*.f64 x 6) (*.f64 (pow.f64 x 2) -4)))
(*.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 4))
(*.f64 (/.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 4) 4)
(/.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 1)
(/.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 2)
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 8)))) 64)
(+.f64 (*.f64 (pow.f64 x 2) -2) 0)
(+.f64 0 (*.f64 (pow.f64 x 2) -2))
(+.f64 -1 (-.f64 1 (*.f64 2 (pow.f64 x 2))))
(+.f64 (neg.f64 (pow.f64 x 2)) (neg.f64 (pow.f64 x 2)))
(+.f64 (-.f64 1 (*.f64 2 (pow.f64 x 2))) -1)
(-.f64 (*.f64 (pow.f64 x 2) -2) 0)
(-.f64 0 (*.f64 2 (pow.f64 x 2)))
(/.f64 (*.f64 (pow.f64 x 2) -2) 1)
(/.f64 (*.f64 2 (pow.f64 x 2)) -1)
(/.f64 (*.f64 (pow.f64 x 2) -4) 2)
(/.f64 (*.f64 (pow.f64 x 2) -8) 4)
(/.f64 (*.f64 (pow.f64 x 2) 4) -2)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) -8)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -8)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -8))))) 64)
(neg.f64 (*.f64 2 (pow.f64 x 2)))
Outputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 -2 (pow.f64 x 3)) (*.f64 3 (pow.f64 x 2)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 -2 (pow.f64 x 3)) (*.f64 3 (pow.f64 x 2)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 -2 (pow.f64 x 3)) (*.f64 3 (pow.f64 x 2)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 -2 (pow.f64 x 3)) (*.f64 3 (pow.f64 x 2)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 -2 (pow.f64 x 3)) (*.f64 3 (pow.f64 x 2)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 -2 (pow.f64 x 3)) (*.f64 3 (pow.f64 x 2)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 -2 (pow.f64 x 3)) (*.f64 3 (pow.f64 x 2)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 -2 (pow.f64 x 3)) (*.f64 3 (pow.f64 x 2)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 -2 (pow.f64 x 3)) (*.f64 3 (pow.f64 x 2)))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 3 x) (*.f64 -2 (pow.f64 x 2)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(*.f64 -2 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -2)
(+.f64 (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 0)
(*.f64 x (+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2)))
(+.f64 0 (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))))
(*.f64 x (+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2)))
(+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) (*.f64 x 1/2)) (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) (*.f64 x 1/2)))
(*.f64 x (+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2)))
(-.f64 (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 0)
(*.f64 x (+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2)))
(/.f64 (*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 1)
(*.f64 x (+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2)))
(/.f64 (*.f64 4 (*.f64 (+.f64 (*.f64 x 3/2) (neg.f64 (pow.f64 x 2))) x)) 2)
(*.f64 (*.f64 x (+.f64 (*.f64 x 3/2) (neg.f64 (pow.f64 x 2)))) 2)
(*.f64 2 (*.f64 x (+.f64 (*.f64 x 3/2) (neg.f64 (pow.f64 x 2)))))
(*.f64 (+.f64 (*.f64 x 3/2) (neg.f64 (pow.f64 x 2))) (+.f64 x x))
(*.f64 x (*.f64 2 (+.f64 (*.f64 x 3/2) (neg.f64 (pow.f64 x 2)))))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) (*.f64 x 4)) 4)
(*.f64 x (+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2)))
(/.f64 (*.f64 (*.f64 x 8) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 8)
(*.f64 x (+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)))) 16)
(*.f64 x (+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))))) 32)
(*.f64 x (+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)))))) 64)
(*.f64 x (+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2)))
(-.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 0)
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 1/2))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(*.f64 2 (+.f64 (*.f64 x 3/2) (neg.f64 (pow.f64 x 2))))
(*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 1)
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(*.f64 1 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(*.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 1/2)
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(*.f64 4 (/.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 4))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(*.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 4) 1/4)
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(*.f64 1/2 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(*.f64 1/2 (+.f64 (*.f64 x 6) (*.f64 (pow.f64 x 2) -4)))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(*.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 1/2) 2)
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 4))
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(*.f64 (/.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 4) 4)
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(/.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 1)
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(/.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3))) 2)
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 4) 4)
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 8) 8)
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 8)) 16)
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 8))) 32)
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 x 3)) 8)))) 64)
(+.f64 (*.f64 3 x) (*.f64 (pow.f64 x 2) -2))
(+.f64 (*.f64 (pow.f64 x 2) -2) 0)
(*.f64 (pow.f64 x 2) -2)
(+.f64 0 (*.f64 (pow.f64 x 2) -2))
(*.f64 (pow.f64 x 2) -2)
(+.f64 -1 (-.f64 1 (*.f64 2 (pow.f64 x 2))))
(*.f64 (pow.f64 x 2) -2)
(+.f64 (neg.f64 (pow.f64 x 2)) (neg.f64 (pow.f64 x 2)))
(*.f64 (pow.f64 x 2) -2)
(+.f64 (-.f64 1 (*.f64 2 (pow.f64 x 2))) -1)
(*.f64 (pow.f64 x 2) -2)
(-.f64 (*.f64 (pow.f64 x 2) -2) 0)
(*.f64 (pow.f64 x 2) -2)
(-.f64 0 (*.f64 2 (pow.f64 x 2)))
(*.f64 (pow.f64 x 2) -2)
(/.f64 (*.f64 (pow.f64 x 2) -2) 1)
(*.f64 (pow.f64 x 2) -2)
(/.f64 (*.f64 2 (pow.f64 x 2)) -1)
(*.f64 (pow.f64 x 2) -2)
(/.f64 (*.f64 (pow.f64 x 2) -4) 2)
(*.f64 (pow.f64 x 2) -2)
(/.f64 (*.f64 (pow.f64 x 2) -8) 4)
(*.f64 (pow.f64 x 2) -2)
(/.f64 (*.f64 (pow.f64 x 2) 4) -2)
(*.f64 (pow.f64 x 2) -2)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) -8)) 8)
(*.f64 (pow.f64 x 2) -2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -8))) 16)
(*.f64 (pow.f64 x 2) -2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -8)))) 32)
(*.f64 (pow.f64 x 2) -2)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -8))))) 64)
(*.f64 (pow.f64 x 2) -2)
(neg.f64 (*.f64 2 (pow.f64 x 2)))
(*.f64 (pow.f64 x 2) -2)

eval94.0ms (0.6%)

Compiler

Compiled 3319 to 2270 computations (31.6% saved)

prune34.0ms (0.2%)

Pruning

12 alts after pruning (6 fresh and 6 done)

PrunedKeptTotal
New2406246
Fresh101
Picked101
Done066
Total24212254
Error
0b
Counts
254 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
1.4b
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 1 x) x))
1.4b
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
0.1b
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
0.2b
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
37.5b
(*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (/.f64 1 (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))
0.2b
(*.f64 (*.f64 x (/.f64 1 x)) (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))
0.2b
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
0.2b
(*.f64 (neg.f64 x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x)))
0.2b
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
18.6b
(*.f64 x (*.f64 3 x))
18.6b
(*.f64 3 (*.f64 x x))
23.6b
(*.f64 -2 (pow.f64 x 3))
Compiler

Compiled 212 to 137 computations (35.4% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (+.f64 x -3))
0.2b
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
Compiler

Compiled 27 to 13 computations (51.9% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
0.0ms
x
@0
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
0.0ms
x
@-inf
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
0.0ms
x
@-inf
(+.f64 x (+.f64 x -3))
0.0ms
x
@inf
(+.f64 x (+.f64 x -3))

rewrite102.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1098×bool.json-1
1098×bool.json-2
1064×rational.json-simplify-2
1058×rational.json-1
1058×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01042
110542
229442
364342
4140142
5349442
6778742
Stop Event
node limit
Counts
2 → 29
Calls
Call 1
Inputs
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(+.f64 x (+.f64 x -3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -1/2))) (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 (*.f64 x x) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (/.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -4)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -4))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -4))))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -4)))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))) (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))) (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (+.f64 x -3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (+.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (+.f64 x -3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x -3)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 -3 (+.f64 -3 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x -3)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (+.f64 x -3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (+.f64 x -3)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x -3)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 x (+.f64 x -3)) (+.f64 x (+.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 x (+.f64 x -3)) (+.f64 x (+.f64 x -3)))))))

simplify94.0ms (0.6%)

Algorithm
egg-herbie
Rules
1476×rational.json-simplify-2
1456×rational.json-simplify-35
886×rational.json-simplify-19
880×rational.json-simplify-43
760×rational.json-simplify-51
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0841061
11841039
25711039
321531039
444911039
566171039
Stop Event
node limit
Counts
53 → 50
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
-3
(-.f64 (*.f64 2 x) 3)
(-.f64 (*.f64 2 x) 3)
(-.f64 (*.f64 2 x) 3)
(*.f64 2 x)
(-.f64 (*.f64 2 x) 3)
(-.f64 (*.f64 2 x) 3)
(-.f64 (*.f64 2 x) 3)
(*.f64 2 x)
(-.f64 (*.f64 2 x) 3)
(-.f64 (*.f64 2 x) 3)
(-.f64 (*.f64 2 x) 3)
(+.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))) 0)
(+.f64 0 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))))
(+.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -1/2))) (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -1/2))))
(-.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))) 0)
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))) 1)
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 (*.f64 x x) -2)) 2)
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -4))) 4)
(/.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (/.f64 1 (*.f64 x x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -4)))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -4))))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -4))))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -4)))))) 32)
(neg.f64 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(-.f64 (+.f64 x (+.f64 x -3)) 0)
(*.f64 (+.f64 x (+.f64 x -3)) 1)
(*.f64 1 (+.f64 x (+.f64 x -3)))
(*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) 1/2))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) 1/2)
(*.f64 4 (/.f64 (+.f64 x (+.f64 x -3)) 4))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) 4) 1/4)
(*.f64 1/2 (+.f64 -3 (+.f64 -3 (*.f64 x 4))))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 x -3)) 4))
(*.f64 (/.f64 (+.f64 x (+.f64 x -3)) 4) 4)
(/.f64 (+.f64 x (+.f64 x -3)) 1)
(/.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) 2)
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) 4)))) 32)
Outputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
-3
(-.f64 (*.f64 2 x) 3)
(-.f64 (*.f64 x 2) 3)
(-.f64 (+.f64 x x) 3)
(+.f64 x (-.f64 x 3))
(-.f64 (*.f64 2 x) 3)
(-.f64 (*.f64 x 2) 3)
(-.f64 (+.f64 x x) 3)
(+.f64 x (-.f64 x 3))
(-.f64 (*.f64 2 x) 3)
(-.f64 (*.f64 x 2) 3)
(-.f64 (+.f64 x x) 3)
(+.f64 x (-.f64 x 3))
(*.f64 2 x)
(*.f64 x 2)
(+.f64 x x)
(-.f64 (*.f64 2 x) 3)
(-.f64 (*.f64 x 2) 3)
(-.f64 (+.f64 x x) 3)
(+.f64 x (-.f64 x 3))
(-.f64 (*.f64 2 x) 3)
(-.f64 (*.f64 x 2) 3)
(-.f64 (+.f64 x x) 3)
(+.f64 x (-.f64 x 3))
(-.f64 (*.f64 2 x) 3)
(-.f64 (*.f64 x 2) 3)
(-.f64 (+.f64 x x) 3)
(+.f64 x (-.f64 x 3))
(*.f64 2 x)
(*.f64 x 2)
(+.f64 x x)
(-.f64 (*.f64 2 x) 3)
(-.f64 (*.f64 x 2) 3)
(-.f64 (+.f64 x x) 3)
(+.f64 x (-.f64 x 3))
(-.f64 (*.f64 2 x) 3)
(-.f64 (*.f64 x 2) 3)
(-.f64 (+.f64 x x) 3)
(+.f64 x (-.f64 x 3))
(-.f64 (*.f64 2 x) 3)
(-.f64 (*.f64 x 2) 3)
(-.f64 (+.f64 x x) 3)
(+.f64 x (-.f64 x 3))
(+.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))) 0)
(*.f64 x (*.f64 (neg.f64 x) (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(+.f64 0 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))))
(*.f64 x (*.f64 (neg.f64 x) (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(+.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -1/2))) (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -1/2))))
(*.f64 x (*.f64 (neg.f64 x) (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(-.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))) 0)
(*.f64 x (*.f64 (neg.f64 x) (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x))) 1)
(*.f64 x (*.f64 (neg.f64 x) (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 (*.f64 x x) -2)) 2)
(*.f64 x (*.f64 (neg.f64 x) (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -4))) 4)
(*.f64 x (*.f64 (neg.f64 x) (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(/.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (/.f64 1 (*.f64 x x)))
(/.f64 (*.f64 x x) (/.f64 1 (neg.f64 (+.f64 x (+.f64 x -3)))))
(/.f64 (*.f64 x x) (/.f64 -1 (+.f64 x (+.f64 x -3))))
(/.f64 (+.f64 x (+.f64 x -3)) (/.f64 -1 (*.f64 x x)))
(*.f64 x (/.f64 x (/.f64 -1 (+.f64 x (+.f64 x -3)))))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -4)))) 8)
(*.f64 x (*.f64 (neg.f64 x) (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -4))))) 16)
(*.f64 x (*.f64 (neg.f64 x) (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -4))))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (*.f64 x -4)))))) 32)
(*.f64 x (*.f64 (neg.f64 x) (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(neg.f64 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (neg.f64 x) (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(-.f64 (+.f64 x (+.f64 x -3)) 0)
(+.f64 x (+.f64 x -3))
(*.f64 (+.f64 x (+.f64 x -3)) 1)
(+.f64 x (+.f64 x -3))
(*.f64 1 (+.f64 x (+.f64 x -3)))
(+.f64 x (+.f64 x -3))
(*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) 1/2))
(+.f64 x (+.f64 x -3))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) 1/2)
(*.f64 1/2 (+.f64 -3 (+.f64 -3 (*.f64 x 4))))
(*.f64 1/2 (+.f64 (*.f64 x 4) -6))
(*.f64 4 (/.f64 (+.f64 x (+.f64 x -3)) 4))
(+.f64 x (+.f64 x -3))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) 4) 1/4)
(+.f64 x (+.f64 x -3))
(*.f64 1/2 (+.f64 -3 (+.f64 -3 (*.f64 x 4))))
(*.f64 1/2 (+.f64 (*.f64 x 4) -6))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) 1/2) 2)
(+.f64 x (+.f64 x -3))
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 x -3)) 4))
(+.f64 x (+.f64 x -3))
(*.f64 (/.f64 (+.f64 x (+.f64 x -3)) 4) 4)
(+.f64 x (+.f64 x -3))
(/.f64 (+.f64 x (+.f64 x -3)) 1)
(+.f64 x (+.f64 x -3))
(/.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) 2)
(/.f64 (+.f64 (*.f64 x 4) -6) 2)
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) 4) 4)
(+.f64 x (+.f64 x -3))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) 4)) 8)
(+.f64 x (+.f64 x -3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) 4))) 16)
(+.f64 x (+.f64 x -3))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) 4)))) 32)
(+.f64 x (+.f64 x -3))

localize4.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 3 (*.f64 x x))
Compiler

Compiled 11 to 5 computations (54.5% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(*.f64 3 (*.f64 x x))
0.0ms
x
@0
(*.f64 3 (*.f64 x x))
0.0ms
x
@-inf
(*.f64 3 (*.f64 x x))

rewrite373.0ms (2.3%)

Algorithm
batch-egg-rewrite
Rules
1562×bool.json-1
1562×bool.json-2
1530×rational.json-1
1530×rational.json-2
1530×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
16413
220313
348513
4160613
5523913
Stop Event
node limit
Counts
1 → 12
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x x) (*.f64 x (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 x x)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) 6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) 12) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x x) 12)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x x) 12)) (*.f64 2 (*.f64 (*.f64 x x) 12))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 3 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 3 (*.f64 x x)) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 3 (*.f64 x x)) (*.f64 3 (*.f64 x x)))))))

simplify90.0ms (0.5%)

Algorithm
egg-herbie
Rules
1760×rational.json-simplify-19
1252×rational.json-simplify-35
884×rational.json-simplify-40
776×rational.json-simplify-2
738×rational.json-simplify-38
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
038384
191384
2235384
31510312
46342312
Stop Event
node limit
Counts
24 → 15
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 x x) (*.f64 x (+.f64 x x)))
(+.f64 (*.f64 3 (*.f64 x x)) 0)
(+.f64 0 (*.f64 3 (*.f64 x x)))
(+.f64 (*.f64 x (+.f64 x x)) (*.f64 x x))
(-.f64 (*.f64 3 (*.f64 x x)) 0)
(/.f64 (*.f64 3 (*.f64 x x)) 1)
(/.f64 (*.f64 (*.f64 x x) 6) 2)
(/.f64 (*.f64 (*.f64 x x) 12) 4)
(/.f64 (*.f64 3 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x x) 12)) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x x) 12)) (*.f64 2 (*.f64 (*.f64 x x) 12))) 16)
(fabs.f64 (*.f64 3 (*.f64 x x)))
Outputs
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 x x) (*.f64 x (+.f64 x x)))
(*.f64 x (+.f64 x (+.f64 x x)))
(*.f64 3 (*.f64 x x))
(+.f64 (*.f64 3 (*.f64 x x)) 0)
(*.f64 x (+.f64 x (+.f64 x x)))
(*.f64 3 (*.f64 x x))
(+.f64 0 (*.f64 3 (*.f64 x x)))
(*.f64 x (+.f64 x (+.f64 x x)))
(*.f64 3 (*.f64 x x))
(+.f64 (*.f64 x (+.f64 x x)) (*.f64 x x))
(*.f64 x (+.f64 x (+.f64 x x)))
(*.f64 3 (*.f64 x x))
(-.f64 (*.f64 3 (*.f64 x x)) 0)
(*.f64 x (+.f64 x (+.f64 x x)))
(*.f64 3 (*.f64 x x))
(/.f64 (*.f64 3 (*.f64 x x)) 1)
(*.f64 x (+.f64 x (+.f64 x x)))
(*.f64 3 (*.f64 x x))
(/.f64 (*.f64 (*.f64 x x) 6) 2)
(*.f64 x (+.f64 x (+.f64 x x)))
(*.f64 3 (*.f64 x x))
(/.f64 (*.f64 (*.f64 x x) 12) 4)
(*.f64 x (+.f64 x (+.f64 x x)))
(*.f64 3 (*.f64 x x))
(/.f64 (*.f64 3 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
(*.f64 x (+.f64 x (+.f64 x x)))
(*.f64 3 (*.f64 x x))
(/.f64 (*.f64 2 (*.f64 (*.f64 x x) 12)) 8)
(*.f64 x (+.f64 x (+.f64 x x)))
(*.f64 3 (*.f64 x x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x x) 12)) (*.f64 2 (*.f64 (*.f64 x x) 12))) 16)
(*.f64 x (+.f64 x (+.f64 x x)))
(*.f64 3 (*.f64 x x))
(fabs.f64 (*.f64 3 (*.f64 x x)))
(*.f64 x (+.f64 x (+.f64 x x)))
(*.f64 3 (*.f64 x x))

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (/.f64 1 x) x)
1.3b
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 1 x) x))
Compiler

Compiled 31 to 17 computations (45.2% saved)

series0.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 1 x) x))
0.0ms
x
@inf
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 1 x) x))
0.0ms
x
@-inf
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 1 x) x))
0.0ms
x
@inf
(/.f64 (/.f64 1 x) x)
0.0ms
x
@0
(/.f64 (/.f64 1 x) x)

rewrite474.0ms (2.9%)

Algorithm
batch-egg-rewrite
Rules
1984×bool.json-1
1984×bool.json-2
1714×bool.json-3
708×rational.json-simplify-47
700×rational.json-simplify-35
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01044
111444
240738
3136438
4531238
Stop Event
node limit
Counts
2 → 90
Calls
Call 1
Inputs
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 1 x) x))
(/.f64 (/.f64 1 x) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 1 (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 1/2 (*.f64 x (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (/.f64 1 (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (/.f64 1/2 (/.f64 1 x)) (-.f64 3 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 x (/.f64 2 (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 x (*.f64 2 (/.f64 1 (-.f64 3 (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 2 (*.f64 (/.f64 2 x) (/.f64 2 (-.f64 3 (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (/.f64 (*.f64 x x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (*.f64 (/.f64 (*.f64 x x) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (*.f64 1/2 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 2 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 x (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (+.f64 x x) (*.f64 2 (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (+.f64 x x) (*.f64 (/.f64 2 x) (/.f64 2 (-.f64 3 (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (/.f64 1 (/.f64 1 (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (*.f64 (/.f64 1 (/.f64 1 (-.f64 3 (+.f64 x x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (/.f64 2 (/.f64 2 (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (/.f64 (*.f64 x x) (*.f64 x (/.f64 x (-.f64 3 (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x x)) (/.f64 1 (/.f64 2 (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x x)) (/.f64 1 (*.f64 2 (/.f64 1 (-.f64 3 (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (/.f64 1 (*.f64 x (/.f64 x (-.f64 3 (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (/.f64 1 (*.f64 2 (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (/.f64 1 (*.f64 (/.f64 2 x) (/.f64 2 (-.f64 3 (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 3 (+.f64 x x)) 4) (/.f64 1 (*.f64 (/.f64 (/.f64 1 x) x) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 3 (+.f64 x x))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 3 (+.f64 x x))) (/.f64 1 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 2)) (/.f64 1/2 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 -1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (/.f64 1 (/.f64 (/.f64 1 x) (+.f64 (+.f64 x x) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (/.f64 1 (neg.f64 (/.f64 1 (*.f64 x (-.f64 3 (+.f64 x x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x x)) (/.f64 1 (/.f64 (/.f64 2 x) (+.f64 (+.f64 x x) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 x x) -3) (/.f64 1 (/.f64 (/.f64 -1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) (-.f64 3 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 x) (/.f64 (fabs.f64 x) (/.f64 1 (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 x x)) (/.f64 x (*.f64 x (/.f64 x (-.f64 3 (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 1 x)) (*.f64 x (-.f64 3 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x)))) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x x) 2) (*.f64 (-.f64 3 (+.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 1 (-.f64 3 (+.f64 x x)))) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (/.f64 1 x)) (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (/.f64 1 x) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (/.f64 1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (/.f64 1 x) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 x (*.f64 (*.f64 x x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 2 (*.f64 x (*.f64 x (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 (+.f64 x x) (*.f64 2 (*.f64 (*.f64 x x) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 1 (*.f64 x (*.f64 x (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 x (*.f64 2 (*.f64 (*.f64 x x) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (/.f64 1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 x) x) (/.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 x) (/.f64 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 x) (*.f64 (/.f64 1/2 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 x) (*.f64 1/2 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 2 x) x) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 2 x) x) (/.f64 x (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (/.f64 1 x) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 x (*.f64 x (*.f64 x (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (/.f64 (/.f64 1 x) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (/.f64 2 (*.f64 2 (*.f64 (*.f64 x x) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x x)) (/.f64 1 (*.f64 2 (*.f64 (*.f64 x x) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 x) 4) (/.f64 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (/.f64 1 x) x) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 (/.f64 1 x) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 (/.f64 2 x) (neg.f64 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 x) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 2 x)) (/.f64 1 (neg.f64 (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 x) (/.f64 (fabs.f64 x) (*.f64 (*.f64 x x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 1 x)) (/.f64 x (*.f64 (*.f64 x x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (/.f64 (/.f64 2 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 x) (/.f64 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (/.f64 1 x)) (/.f64 (+.f64 x x) (*.f64 (*.f64 x x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (/.f64 1 x)) (fabs.f64 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (/.f64 2 x)) (fabs.f64 (/.f64 1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (/.f64 1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (/.f64 -1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (neg.f64 (*.f64 x x)) (*.f64 (*.f64 x x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (/.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x and (/.f64 (/.f64 1 x) x) (/.f64 (/.f64 1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 (/.f64 1 x) x) (/.f64 (/.f64 1 x) x))))))

simplify399.0ms (2.4%)

Algorithm
egg-herbie
Rules
1330×rational.json-simplify-35
1050×rational.json-simplify-51
850×rational.json-simplify-49
816×rational.json-simplify-46
742×rational.json-simplify-43
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02112550
15812498
216022412
353482408
Stop Event
node limit
Counts
114 → 123
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(+.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 0)
(+.f64 0 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))))
(-.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 0)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (+.f64 x x) (/.f64 1 (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x)))))
(*.f64 (+.f64 x x) (*.f64 1/2 (*.f64 x (-.f64 3 (+.f64 x x)))))
(*.f64 (+.f64 x x) (*.f64 (/.f64 1 (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x)))) 1))
(*.f64 (+.f64 x x) (*.f64 (/.f64 1/2 (/.f64 1 x)) (-.f64 3 (+.f64 x x))))
(*.f64 (+.f64 x x) (/.f64 x (/.f64 2 (-.f64 3 (+.f64 x x)))))
(*.f64 (+.f64 x x) (/.f64 x (*.f64 2 (/.f64 1 (-.f64 3 (+.f64 x x))))))
(*.f64 (+.f64 x x) (/.f64 2 (*.f64 (/.f64 2 x) (/.f64 2 (-.f64 3 (+.f64 x x))))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 1 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 1)
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (/.f64 (*.f64 x x) 2))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (*.f64 (/.f64 (*.f64 x x) 2) 1))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (*.f64 1/2 (*.f64 x x)))
(*.f64 2 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 2 x) x)))
(*.f64 2 (/.f64 x (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x)))))
(*.f64 2 (/.f64 (+.f64 x x) (*.f64 2 (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x))))))
(*.f64 2 (/.f64 (+.f64 x x) (*.f64 (/.f64 2 x) (/.f64 2 (-.f64 3 (+.f64 x x))))))
(*.f64 2 (/.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 2))
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 (*.f64 x x) (/.f64 1 (/.f64 1 (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 x x) (*.f64 (/.f64 1 (/.f64 1 (-.f64 3 (+.f64 x x)))) 1))
(*.f64 (*.f64 x x) (/.f64 2 (/.f64 2 (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 x x) (/.f64 (*.f64 x x) (*.f64 x (/.f64 x (-.f64 3 (+.f64 x x))))))
(*.f64 (*.f64 x (+.f64 x x)) (/.f64 1 (/.f64 2 (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 x (+.f64 x x)) (/.f64 1 (*.f64 2 (/.f64 1 (-.f64 3 (+.f64 x x))))))
(*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (/.f64 1 (*.f64 x (/.f64 x (-.f64 3 (+.f64 x x))))))
(*.f64 (*.f64 x 4) (/.f64 1 (*.f64 2 (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x))))))
(*.f64 (*.f64 x 4) (/.f64 1 (*.f64 (/.f64 2 x) (/.f64 2 (-.f64 3 (+.f64 x x))))))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 4) (/.f64 1 (*.f64 (/.f64 (/.f64 1 x) x) 4)))
(*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) x)
(*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) (/.f64 1 (/.f64 1 x)))
(*.f64 (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 2)) (/.f64 1/2 (/.f64 1 x)))
(*.f64 -1 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 -1 x) x)))
(*.f64 (neg.f64 x) (/.f64 1 (/.f64 (/.f64 1 x) (+.f64 (+.f64 x x) -3))))
(*.f64 (neg.f64 x) (/.f64 1 (neg.f64 (/.f64 1 (*.f64 x (-.f64 3 (+.f64 x x)))))))
(*.f64 (neg.f64 (+.f64 x x)) (/.f64 1 (/.f64 (/.f64 2 x) (+.f64 (+.f64 x x) -3))))
(*.f64 (+.f64 (+.f64 x x) -3) (/.f64 1 (/.f64 (/.f64 -1 x) x)))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) (-.f64 3 (+.f64 x x))))
(*.f64 (fabs.f64 x) (/.f64 (fabs.f64 x) (/.f64 1 (-.f64 3 (+.f64 x x)))))
(*.f64 (*.f64 x (*.f64 x x)) (/.f64 x (*.f64 x (/.f64 x (-.f64 3 (+.f64 x x))))))
(*.f64 (/.f64 1 (/.f64 1 x)) (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (*.f64 x (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 2))) 1/2)
(*.f64 1/2 (*.f64 x (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 2))))
(*.f64 (/.f64 1 (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x)))) (+.f64 x x))
(*.f64 (/.f64 (*.f64 x x) 2) (*.f64 (-.f64 3 (+.f64 x x)) 2))
(*.f64 (/.f64 1 (/.f64 1 (-.f64 3 (+.f64 x x)))) (*.f64 x x))
(*.f64 (/.f64 1/2 (/.f64 1 x)) (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 2)))
(+.f64 (/.f64 (/.f64 1 x) x) 0)
(+.f64 0 (/.f64 (/.f64 1 x) x))
(-.f64 (/.f64 (/.f64 1 x) x) 0)
(*.f64 x (/.f64 x (*.f64 (*.f64 x x) (*.f64 x x))))
(*.f64 x (/.f64 2 (*.f64 x (*.f64 x (+.f64 x x)))))
(*.f64 x (/.f64 (+.f64 x x) (*.f64 2 (*.f64 (*.f64 x x) (*.f64 x x)))))
(*.f64 (+.f64 x x) (/.f64 1 (*.f64 x (*.f64 x (+.f64 x x)))))
(*.f64 (+.f64 x x) (/.f64 x (*.f64 2 (*.f64 (*.f64 x x) (*.f64 x x)))))
(*.f64 1 (/.f64 (/.f64 1 x) x))
(*.f64 (/.f64 1 x) (/.f64 1 x))
(*.f64 (/.f64 (/.f64 1 x) x) 1)
(*.f64 (/.f64 (/.f64 1 x) x) (/.f64 x x))
(*.f64 (/.f64 2 x) (/.f64 1/2 x))
(*.f64 (/.f64 2 x) (*.f64 (/.f64 1/2 x) 1))
(*.f64 (/.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(*.f64 (/.f64 (/.f64 2 x) x) 1/2)
(*.f64 (/.f64 (/.f64 2 x) x) (/.f64 x (+.f64 x x)))
(*.f64 2 (/.f64 (/.f64 1 x) (+.f64 x x)))
(*.f64 2 (/.f64 x (*.f64 x (*.f64 x (+.f64 x x)))))
(*.f64 2 (/.f64 (/.f64 (/.f64 1 x) x) 2))
(*.f64 (*.f64 x x) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 x x))))
(*.f64 (*.f64 x x) (/.f64 2 (*.f64 2 (*.f64 (*.f64 x x) (*.f64 x x)))))
(*.f64 (*.f64 x (+.f64 x x)) (/.f64 1 (*.f64 2 (*.f64 (*.f64 x x) (*.f64 x x)))))
(*.f64 (*.f64 (/.f64 1 x) 4) (/.f64 1 (*.f64 x 4)))
(*.f64 (*.f64 (/.f64 (/.f64 1 x) x) 4) 1/4)
(*.f64 -1 (/.f64 (/.f64 1 x) (neg.f64 x)))
(*.f64 -1 (/.f64 (/.f64 2 x) (neg.f64 (+.f64 x x))))
(*.f64 (/.f64 -1 x) (/.f64 -1 x))
(*.f64 (neg.f64 (/.f64 2 x)) (/.f64 1 (neg.f64 (+.f64 x x))))
(*.f64 (fabs.f64 x) (/.f64 (fabs.f64 x) (*.f64 (*.f64 x x) (*.f64 x x))))
(*.f64 (/.f64 1 (/.f64 1 x)) (/.f64 x (*.f64 (*.f64 x x) (*.f64 x x))))
(*.f64 1/2 (/.f64 (/.f64 2 x) x))
(*.f64 (/.f64 1/2 x) (/.f64 2 x))
(*.f64 (/.f64 1/2 (/.f64 1 x)) (/.f64 (+.f64 x x) (*.f64 (*.f64 x x) (*.f64 x x))))
(*.f64 (fabs.f64 (/.f64 1 x)) (fabs.f64 (/.f64 1 x)))
(*.f64 (fabs.f64 (/.f64 2 x)) (fabs.f64 (/.f64 1/2 x)))
(fabs.f64 (/.f64 (/.f64 1 x) x))
(fabs.f64 (/.f64 (/.f64 -1 x) x))
(fabs.f64 (/.f64 (neg.f64 (*.f64 x x)) (*.f64 (*.f64 x x) (*.f64 x x))))
Outputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(+.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 0)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(+.f64 0 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(-.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 0)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (+.f64 x x) (/.f64 1 (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (+.f64 x x) (*.f64 1/2 (*.f64 x (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (+.f64 x x) (*.f64 (/.f64 1 (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x)))) 1))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (+.f64 x x) (*.f64 (/.f64 1/2 (/.f64 1 x)) (-.f64 3 (+.f64 x x))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (+.f64 x x) (/.f64 x (/.f64 2 (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (+.f64 x x) (/.f64 x (*.f64 2 (/.f64 1 (-.f64 3 (+.f64 x x))))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (+.f64 x x) (/.f64 2 (*.f64 (/.f64 2 x) (/.f64 2 (-.f64 3 (+.f64 x x))))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 1 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 1)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (/.f64 (*.f64 x x) 2))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (*.f64 (/.f64 (*.f64 x x) 2) 1))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (*.f64 1/2 (*.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 2 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 2 x) x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 2 (/.f64 x (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 2 (/.f64 (+.f64 x x) (*.f64 2 (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x))))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 2 (/.f64 (+.f64 x x) (*.f64 (/.f64 2 x) (/.f64 2 (-.f64 3 (+.f64 x x))))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 2 (/.f64 (*.f64 x (*.f64 x (-.f64 3 (+.f64 x x)))) 2))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x x) (/.f64 1 (/.f64 1 (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x x) (*.f64 (/.f64 1 (/.f64 1 (-.f64 3 (+.f64 x x)))) 1))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x x) (/.f64 2 (/.f64 2 (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x x) (/.f64 (*.f64 x x) (*.f64 x (/.f64 x (-.f64 3 (+.f64 x x))))))
(*.f64 (*.f64 x x) (*.f64 x (/.f64 x (*.f64 x (/.f64 x (-.f64 3 (+.f64 x x)))))))
(*.f64 (*.f64 x x) (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 x (*.f64 x (/.f64 x x)))))
(*.f64 (*.f64 x (*.f64 x x)) (/.f64 (-.f64 3 (+.f64 x x)) x))
(*.f64 x (*.f64 x (*.f64 x (/.f64 (-.f64 3 (+.f64 x x)) x))))
(*.f64 (*.f64 x (+.f64 x x)) (/.f64 1 (/.f64 2 (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x (+.f64 x x)) (/.f64 1 (*.f64 2 (/.f64 1 (-.f64 3 (+.f64 x x))))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (/.f64 1 (*.f64 x (/.f64 x (-.f64 3 (+.f64 x x))))))
(*.f64 (*.f64 x x) (*.f64 x (/.f64 x (*.f64 x (/.f64 x (-.f64 3 (+.f64 x x)))))))
(*.f64 (*.f64 x x) (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 x (*.f64 x (/.f64 x x)))))
(*.f64 (*.f64 x (*.f64 x x)) (/.f64 (-.f64 3 (+.f64 x x)) x))
(*.f64 x (*.f64 x (*.f64 x (/.f64 (-.f64 3 (+.f64 x x)) x))))
(*.f64 (*.f64 x 4) (/.f64 1 (*.f64 2 (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x))))))
(*.f64 (*.f64 x 4) (/.f64 1/2 (/.f64 2 (*.f64 x (-.f64 3 (+.f64 x x))))))
(*.f64 x (*.f64 4 (/.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 4)))
(*.f64 (*.f64 x (/.f64 (-.f64 3 (+.f64 x x)) 4)) (*.f64 x 4))
(*.f64 (/.f64 (+.f64 x (-.f64 x 3)) (/.f64 -4 x)) (*.f64 x 4))
(*.f64 (*.f64 x 4) (/.f64 1 (*.f64 (/.f64 2 x) (/.f64 2 (-.f64 3 (+.f64 x x))))))
(*.f64 (*.f64 x 4) (/.f64 1/2 (/.f64 2 (*.f64 x (-.f64 3 (+.f64 x x))))))
(*.f64 x (*.f64 4 (/.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 4)))
(*.f64 (*.f64 x (/.f64 (-.f64 3 (+.f64 x x)) 4)) (*.f64 x 4))
(*.f64 (/.f64 (+.f64 x (-.f64 x 3)) (/.f64 -4 x)) (*.f64 x 4))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 4) (/.f64 1 (*.f64 (/.f64 (/.f64 1 x) x) 4)))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 4) (/.f64 1 (*.f64 4 (/.f64 1 (*.f64 x x)))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 4 (/.f64 (*.f64 x x) 4)))
(*.f64 (*.f64 (-.f64 3 (+.f64 x x)) 4) (*.f64 x (/.f64 x 4)))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 4 (*.f64 x (/.f64 x 4))))
(*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) x)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x (-.f64 3 (+.f64 x x))) (/.f64 1 (/.f64 1 x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 2)) (/.f64 1/2 (/.f64 1 x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 -1 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 -1 x) x)))
(neg.f64 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 -1 (*.f64 x x))))
(neg.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x (neg.f64 x))))
(/.f64 x (/.f64 (/.f64 1 x) (-.f64 3 (+.f64 x x))))
(*.f64 (neg.f64 x) (/.f64 1 (/.f64 (/.f64 1 x) (+.f64 (+.f64 x x) -3))))
(*.f64 (neg.f64 x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x)))
(*.f64 x (*.f64 (neg.f64 x) (+.f64 (+.f64 x x) -3)))
(*.f64 (neg.f64 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (neg.f64 x) (/.f64 1 (neg.f64 (/.f64 1 (*.f64 x (-.f64 3 (+.f64 x x)))))))
(*.f64 -1 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 -1 x) x)))
(neg.f64 (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 -1 (*.f64 x x))))
(neg.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x (neg.f64 x))))
(/.f64 x (/.f64 (/.f64 1 x) (-.f64 3 (+.f64 x x))))
(*.f64 (neg.f64 (+.f64 x x)) (/.f64 1 (/.f64 (/.f64 2 x) (+.f64 (+.f64 x x) -3))))
(*.f64 (neg.f64 (+.f64 x x)) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 x)))
(*.f64 (*.f64 x -2) (*.f64 (+.f64 (+.f64 x x) -3) (*.f64 x 1/2)))
(*.f64 (*.f64 x -2) (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x 1/2)))
(*.f64 (+.f64 (+.f64 x x) -3) (/.f64 1 (/.f64 (/.f64 -1 x) x)))
(*.f64 (neg.f64 x) (/.f64 1 (/.f64 (/.f64 1 x) (+.f64 (+.f64 x x) -3))))
(*.f64 (neg.f64 x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x)))
(*.f64 x (*.f64 (neg.f64 x) (+.f64 (+.f64 x x) -3)))
(*.f64 (neg.f64 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) (-.f64 3 (+.f64 x x))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (fabs.f64 x) (/.f64 (fabs.f64 x) (/.f64 1 (-.f64 3 (+.f64 x x)))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x (*.f64 x x)) (/.f64 x (*.f64 x (/.f64 x (-.f64 3 (+.f64 x x))))))
(*.f64 (*.f64 x x) (*.f64 x (/.f64 x (*.f64 x (/.f64 x (-.f64 3 (+.f64 x x)))))))
(*.f64 (*.f64 x x) (/.f64 (-.f64 3 (+.f64 x x)) (/.f64 x (*.f64 x (/.f64 x x)))))
(*.f64 (*.f64 x (*.f64 x x)) (/.f64 (-.f64 3 (+.f64 x x)) x))
(*.f64 x (*.f64 x (*.f64 x (/.f64 (-.f64 3 (+.f64 x x)) x))))
(*.f64 (/.f64 1 (/.f64 1 x)) (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (*.f64 x (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 2))) 1/2)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 1/2 (*.f64 x (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 2))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (/.f64 1 (/.f64 (/.f64 2 x) (-.f64 3 (+.f64 x x)))) (+.f64 x x))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (/.f64 (*.f64 x x) 2) (*.f64 (-.f64 3 (+.f64 x x)) 2))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (/.f64 1 (/.f64 1 (-.f64 3 (+.f64 x x)))) (*.f64 x x))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 (/.f64 1/2 (/.f64 1 x)) (*.f64 x (*.f64 (-.f64 3 (+.f64 x x)) 2)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(+.f64 (/.f64 (/.f64 1 x) x) 0)
(/.f64 1 (*.f64 x x))
(+.f64 0 (/.f64 (/.f64 1 x) x))
(/.f64 1 (*.f64 x x))
(-.f64 (/.f64 (/.f64 1 x) x) 0)
(/.f64 1 (*.f64 x x))
(*.f64 x (/.f64 x (*.f64 (*.f64 x x) (*.f64 x x))))
(/.f64 1 (*.f64 x x))
(*.f64 x (/.f64 2 (*.f64 x (*.f64 x (+.f64 x x)))))
(/.f64 1 (*.f64 x x))
(*.f64 x (/.f64 (+.f64 x x) (*.f64 2 (*.f64 (*.f64 x x) (*.f64 x x)))))
(/.f64 1 (*.f64 x x))
(*.f64 (+.f64 x x) (/.f64 1 (*.f64 x (*.f64 x (+.f64 x x)))))
(/.f64 1 (*.f64 x x))
(*.f64 (+.f64 x x) (/.f64 x (*.f64 2 (*.f64 (*.f64 x x) (*.f64 x x)))))
(/.f64 1 (*.f64 x x))
(*.f64 1 (/.f64 (/.f64 1 x) x))
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 1 x) (/.f64 1 x))
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 (/.f64 1 x) x) 1)
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 (/.f64 1 x) x) (/.f64 x x))
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 2 x) (/.f64 1/2 x))
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 2 x) (*.f64 (/.f64 1/2 x) 1))
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(*.f64 1/2 (*.f64 (/.f64 1 x) (/.f64 2 x)))
(*.f64 1/2 (/.f64 2 (*.f64 x x)))
(*.f64 (/.f64 (/.f64 2 x) x) 1/2)
(*.f64 1/2 (*.f64 (/.f64 1 x) (/.f64 2 x)))
(*.f64 (/.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(*.f64 1/2 (/.f64 2 (*.f64 x x)))
(*.f64 (/.f64 (/.f64 2 x) x) (/.f64 x (+.f64 x x)))
(/.f64 1 (*.f64 x x))
(*.f64 2 (/.f64 (/.f64 1 x) (+.f64 x x)))
(/.f64 1 (*.f64 x x))
(*.f64 2 (/.f64 x (*.f64 x (*.f64 x (+.f64 x x)))))
(/.f64 1 (*.f64 x x))
(*.f64 2 (/.f64 (/.f64 (/.f64 1 x) x) 2))
(/.f64 1 (*.f64 x x))
(*.f64 (*.f64 x x) (/.f64 1 (*.f64 (*.f64 x x) (*.f64 x x))))
(/.f64 1 (*.f64 x x))
(*.f64 (*.f64 x x) (/.f64 2 (*.f64 2 (*.f64 (*.f64 x x) (*.f64 x x)))))
(/.f64 1 (*.f64 x x))
(*.f64 (*.f64 x (+.f64 x x)) (/.f64 1 (*.f64 2 (*.f64 (*.f64 x x) (*.f64 x x)))))
(/.f64 1 (*.f64 x x))
(*.f64 (*.f64 (/.f64 1 x) 4) (/.f64 1 (*.f64 x 4)))
(*.f64 (/.f64 1 x) (*.f64 4 (/.f64 1/4 x)))
(*.f64 4 (/.f64 (/.f64 1/4 x) x))
(*.f64 (*.f64 (/.f64 (/.f64 1 x) x) 4) 1/4)
(/.f64 1 (*.f64 x x))
(*.f64 -1 (/.f64 (/.f64 1 x) (neg.f64 x)))
(/.f64 1 (*.f64 x x))
(*.f64 -1 (/.f64 (/.f64 2 x) (neg.f64 (+.f64 x x))))
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 -1 x) (/.f64 -1 x))
(/.f64 1 (*.f64 x x))
(*.f64 (neg.f64 (/.f64 2 x)) (/.f64 1 (neg.f64 (+.f64 x x))))
(/.f64 1 (*.f64 x x))
(*.f64 (fabs.f64 x) (/.f64 (fabs.f64 x) (*.f64 (*.f64 x x) (*.f64 x x))))
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 1 (/.f64 1 x)) (/.f64 x (*.f64 (*.f64 x x) (*.f64 x x))))
(/.f64 1 (*.f64 x x))
(*.f64 1/2 (/.f64 (/.f64 2 x) x))
(*.f64 1/2 (*.f64 (/.f64 1 x) (/.f64 2 x)))
(*.f64 (/.f64 2 x) (*.f64 1/2 (/.f64 1 x)))
(*.f64 1/2 (/.f64 2 (*.f64 x x)))
(*.f64 (/.f64 1/2 x) (/.f64 2 x))
(/.f64 1 (*.f64 x x))
(*.f64 (/.f64 1/2 (/.f64 1 x)) (/.f64 (+.f64 x x) (*.f64 (*.f64 x x) (*.f64 x x))))
(*.f64 (/.f64 x 2) (/.f64 (+.f64 x x) (*.f64 (*.f64 x x) (*.f64 x x))))
(/.f64 (*.f64 x 1/2) (/.f64 (*.f64 x x) (*.f64 2 (/.f64 1 x))))
(*.f64 (*.f64 x 1/2) (*.f64 2 (/.f64 (/.f64 1 (*.f64 x x)) x)))
(*.f64 (fabs.f64 (/.f64 1 x)) (fabs.f64 (/.f64 1 x)))
(/.f64 1 (*.f64 x x))
(*.f64 (fabs.f64 (/.f64 2 x)) (fabs.f64 (/.f64 1/2 x)))
(/.f64 1 (*.f64 x x))
(fabs.f64 (/.f64 (/.f64 1 x) x))
(/.f64 1 (*.f64 x x))
(fabs.f64 (/.f64 (/.f64 -1 x) x))
(/.f64 1 (*.f64 x x))
(fabs.f64 (/.f64 (neg.f64 (*.f64 x x)) (*.f64 (*.f64 x x) (*.f64 x x))))
(/.f64 1 (*.f64 x x))

localize16.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (+.f64 x -3))
0.2b
(*.f64 (neg.f64 x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x)))
0.3b
(/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x))
Compiler

Compiled 38 to 24 computations (36.8% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x))
0.0ms
x
@inf
(/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x))
0.0ms
x
@-inf
(/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x))
0.0ms
x
@inf
(*.f64 (neg.f64 x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x)))
0.0ms
x
@-inf
(*.f64 (neg.f64 x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x)))

rewrite412.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
1506×rational.json-simplify-35
1132×bool.json-1
1132×bool.json-2
1096×rational.json-1
1096×rational.json-2
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01260
113560
241848
3107948
4337248
Stop Event
node limit
Counts
2 → 94
Calls
Call 1
Inputs
(/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x))
(*.f64 (neg.f64 x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 x (+.f64 x -3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 x (+.f64 x -3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 x (+.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 x (/.f64 x (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x -3)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x (+.f64 x -3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (neg.f64 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 x (/.f64 2 (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 x (+.f64 x (+.f64 x -3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (+.f64 x (+.f64 x -3)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (/.f64 1 (/.f64 x (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (/.f64 1 (/.f64 4 (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x -3)) (+.f64 x x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x -3)) 4) (/.f64 1 (*.f64 (/.f64 1 x) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (/.f64 (*.f64 x -2) (/.f64 1 (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x (+.f64 x -3)) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 2) (+.f64 -3 (+.f64 -3 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x -3)) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 -3 (+.f64 -3 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x -2) (/.f64 1 (+.f64 x (+.f64 x -3)))) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (/.f64 2 (+.f64 x (+.f64 x -3)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (/.f64 x (+.f64 x (+.f64 x -3)))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 x (+.f64 x (+.f64 x -3)))) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 4 (+.f64 x (+.f64 x -3)))) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 x (+.f64 x -3))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 (/.f64 1 x) 4)) (*.f64 (+.f64 x (+.f64 x -3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (+.f64 x (+.f64 x -3))) (*.f64 x (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (+.f64 x (+.f64 x -3))) (*.f64 x (+.f64 x (+.f64 x -3))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (*.f64 -1 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (neg.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x -3)) (/.f64 (/.f64 -1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 x) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 (/.f64 2 x) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 (/.f64 -1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (+.f64 (/.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)) (/.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (*.f64 -2 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (/.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (+.f64 (*.f64 -1 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (*.f64 -1 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (+.f64 (neg.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (neg.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (+.f64 (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x) (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (-.f64 0 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (+.f64 (/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)) (/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4) (*.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) -4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4) (/.f64 (/.f64 4 (+.f64 x (+.f64 x -3))) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4) (+.f64 (*.f64 -2 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (*.f64 -2 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4) (+.f64 (/.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (neg.f64 x)) (/.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x -3)) (+.f64 x x)) (*.f64 2 (/.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x -3)) (+.f64 x x)) (/.f64 -2 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x -3)) 4) (+.f64 (/.f64 (/.f64 2 x) (neg.f64 x)) (/.f64 (/.f64 2 x) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (/.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -4) (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -4) (*.f64 4 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) 4) (+.f64 (*.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) -4) (*.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) -4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) 4) (+.f64 (/.f64 (/.f64 4 (+.f64 x (+.f64 x -3))) (neg.f64 x)) (/.f64 (/.f64 4 (+.f64 x (+.f64 x -3))) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (*.f64 x -4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (neg.f64 x)) (/.f64 1 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -2) (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x 4)) (/.f64 -4 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x 4)) (+.f64 (/.f64 -2 x) (/.f64 -2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x -3)) -2) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) -2)) (/.f64 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x -4)) (+.f64 (*.f64 4 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (*.f64 4 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 (+.f64 x x) 4)) (+.f64 (/.f64 -4 x) (/.f64 -4 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (*.f64 x -4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 x x) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x 4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x -4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x))) (/.f64 2 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)) (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (*.f64 x -4))) (*.f64 2 (*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (*.f64 x -4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 (+.f64 x x) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (/.f64 (+.f64 x x) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 (*.f64 x 4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (/.f64 (*.f64 x 4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 (*.f64 x -4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (/.f64 (*.f64 x -4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 x (neg.f64 x))) (/.f64 -1 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))))))

simplify146.0ms (0.9%)

Algorithm
egg-herbie
Rules
1472×rational.json-simplify-35
958×rational.json-simplify-49
948×rational.json-simplify-41
756×rational.json-simplify-50
716×rational.json-simplify-46
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
02113176
15743140
216273120
345683084
460473078
579053078
Stop Event
node limit
Counts
118 → 132
Calls
Call 1
Inputs
(*.f64 -3 x)
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 x (+.f64 x (+.f64 x -3))) 0)
(+.f64 0 (*.f64 x (+.f64 x (+.f64 x -3))))
(-.f64 (*.f64 x (+.f64 x (+.f64 x -3))) 0)
(*.f64 x (+.f64 x (+.f64 x -3)))
(*.f64 x (/.f64 x (/.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 (+.f64 x (+.f64 x -3)) x)
(*.f64 1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) 1)
(*.f64 (neg.f64 x) (neg.f64 (+.f64 x (+.f64 x -3))))
(*.f64 -1 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 x 2))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (*.f64 x 1/2))
(*.f64 2 (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 x)))
(*.f64 2 (/.f64 x (/.f64 2 (+.f64 x (+.f64 x -3)))))
(*.f64 2 (/.f64 (*.f64 x (+.f64 x (+.f64 x -3))) 2))
(*.f64 (+.f64 x x) (*.f64 (+.f64 x (+.f64 x -3)) 1/2))
(*.f64 (*.f64 x x) (/.f64 1 (/.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 x 4) (/.f64 1 (/.f64 4 (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) (+.f64 x x)) 1/2)
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) 4) (/.f64 1 (*.f64 (/.f64 1 x) 4)))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)) -1)
(*.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (neg.f64 x))
(*.f64 -1/2 (/.f64 (*.f64 x -2) (/.f64 1 (+.f64 x (+.f64 x -3)))))
(*.f64 1/2 (*.f64 (+.f64 x (+.f64 x -3)) (+.f64 x x)))
(*.f64 (/.f64 x 2) (+.f64 -3 (+.f64 -3 (*.f64 x 4))))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) 1/2) (+.f64 x x))
(*.f64 (*.f64 x 1/2) (+.f64 -3 (+.f64 -3 (*.f64 x 4))))
(*.f64 (/.f64 (*.f64 x -2) (/.f64 1 (+.f64 x (+.f64 x -3)))) -1/2)
(*.f64 (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 x)) 2)
(*.f64 (/.f64 x (/.f64 2 (+.f64 x (+.f64 x -3)))) 2)
(*.f64 (/.f64 x (/.f64 x (+.f64 x (+.f64 x -3)))) x)
(*.f64 (/.f64 1 (/.f64 x (+.f64 x (+.f64 x -3)))) (*.f64 x x))
(*.f64 (/.f64 1 (/.f64 4 (+.f64 x (+.f64 x -3)))) (*.f64 x 4))
(*.f64 (/.f64 (*.f64 x (+.f64 x (+.f64 x -3))) 2) 2)
(*.f64 (/.f64 1 (*.f64 (/.f64 1 x) 4)) (*.f64 (+.f64 x (+.f64 x -3)) 4))
(neg.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(+.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 0)
(+.f64 0 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))
(-.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 0)
(/.f64 x (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x))
(/.f64 x (*.f64 -1 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))
(/.f64 x (neg.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))
(/.f64 (+.f64 x (+.f64 x -3)) (/.f64 (/.f64 -1 x) x))
(/.f64 1 (/.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)))
(/.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (/.f64 -1 x))
(/.f64 (neg.f64 x) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))
(/.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 1)
(/.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 (/.f64 2 x) (neg.f64 x)))
(/.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 (/.f64 -1 x) x)))
(/.f64 2 (/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)))
(/.f64 2 (+.f64 (/.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)) (/.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) (neg.f64 x))))
(/.f64 (+.f64 x x) (*.f64 -2 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))
(/.f64 (+.f64 x x) (/.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (neg.f64 x)))
(/.f64 (+.f64 x x) (+.f64 (*.f64 -1 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (*.f64 -1 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))))
(/.f64 (+.f64 x x) (+.f64 (neg.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (neg.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))))
(/.f64 (+.f64 x x) (+.f64 (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x) (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x)))
(/.f64 (+.f64 x x) (-.f64 0 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))))
(/.f64 4 (+.f64 (/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)) (/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x))))
(/.f64 (*.f64 x 4) (*.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) -4))
(/.f64 (*.f64 x 4) (/.f64 (/.f64 4 (+.f64 x (+.f64 x -3))) (neg.f64 x)))
(/.f64 (*.f64 x 4) (+.f64 (*.f64 -2 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (*.f64 -2 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))))
(/.f64 (*.f64 x 4) (+.f64 (/.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (neg.f64 x)) (/.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (neg.f64 x))))
(/.f64 (*.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)) -2) 2)
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (+.f64 x x)) (*.f64 2 (/.f64 -1 x)))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (+.f64 x x)) (/.f64 -2 x))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) 4) (+.f64 (/.f64 (/.f64 2 x) (neg.f64 x)) (/.f64 (/.f64 2 x) (neg.f64 x))))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)) (/.f64 1 x))
(/.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (/.f64 1 (*.f64 x x)))
(/.f64 (*.f64 x -4) (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))))
(/.f64 (*.f64 x -4) (*.f64 4 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))
(/.f64 (*.f64 (+.f64 x x) 4) (+.f64 (*.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) -4) (*.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) -4)))
(/.f64 (*.f64 (+.f64 x x) 4) (+.f64 (/.f64 (/.f64 4 (+.f64 x (+.f64 x -3))) (neg.f64 x)) (/.f64 (/.f64 4 (+.f64 x (+.f64 x -3))) (neg.f64 x))))
(/.f64 (*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (*.f64 x -4)) 4)
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)) -1)
(/.f64 (*.f64 x (neg.f64 x)) (/.f64 1 (+.f64 x (+.f64 x -3))))
(/.f64 (*.f64 x -2) (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x 4)) (/.f64 -4 x))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x 4)) (+.f64 (/.f64 -2 x) (/.f64 -2 x)))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) -2) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (*.f64 x x))))
(/.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) -2)) (/.f64 2 x))
(/.f64 (*.f64 2 (*.f64 x -4)) (+.f64 (*.f64 4 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (*.f64 4 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 (+.f64 x x) 4)) (+.f64 (/.f64 -4 x) (/.f64 -4 x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (*.f64 x -4))) 8)
(/.f64 (/.f64 (+.f64 x x) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) -2)
(/.f64 (/.f64 (*.f64 x 4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) -4)
(/.f64 (/.f64 (*.f64 x -4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) 4)
(/.f64 (+.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x))) (/.f64 2 (+.f64 x (+.f64 x -3))))
(/.f64 (+.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)) (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x))) -2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (*.f64 x -4))) (*.f64 2 (*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (*.f64 x -4)))) 16)
(/.f64 (+.f64 (/.f64 (+.f64 x x) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (/.f64 (+.f64 x x) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))) -4)
(/.f64 (+.f64 (/.f64 (*.f64 x 4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (/.f64 (*.f64 x 4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))) -8)
(/.f64 (+.f64 (/.f64 (*.f64 x -4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (/.f64 (*.f64 x -4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))) 8)
(/.f64 (neg.f64 (*.f64 x (neg.f64 x))) (/.f64 -1 (+.f64 x (+.f64 x -3))))
(neg.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
Outputs
(*.f64 -3 x)
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(+.f64 (*.f64 -3 x) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(+.f64 (*.f64 -3 x) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(+.f64 (*.f64 -3 x) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(+.f64 (*.f64 -3 x) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(+.f64 (*.f64 -3 x) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(+.f64 (*.f64 -3 x) (*.f64 2 (pow.f64 x 2)))
(*.f64 2 (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(+.f64 (*.f64 -3 x) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(+.f64 (*.f64 -3 x) (*.f64 2 (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 -3 x))
(+.f64 (*.f64 -3 x) (*.f64 2 (pow.f64 x 2)))
(*.f64 3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) 3)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 x (+.f64 x (+.f64 x -3))) 0)
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(+.f64 0 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(-.f64 (*.f64 x (+.f64 x (+.f64 x -3))) 0)
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 x (+.f64 x (+.f64 x -3)))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 x (/.f64 x (/.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (+.f64 x (+.f64 x -3)) x)
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) 1)
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (neg.f64 x) (neg.f64 (+.f64 x (+.f64 x -3))))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 -1 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 x 2))
(*.f64 (+.f64 (*.f64 x 4) -6) (/.f64 x 2))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (*.f64 x 1/2))
(*.f64 x (*.f64 1/2 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))))
(*.f64 x (*.f64 (+.f64 (*.f64 x 4) -6) 1/2))
(*.f64 2 (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 x)))
(*.f64 2 (/.f64 x (/.f64 2 (+.f64 x (+.f64 -3 x)))))
(*.f64 2 (/.f64 (+.f64 -3 (+.f64 x x)) (/.f64 2 x)))
(*.f64 2 (/.f64 x (/.f64 2 (+.f64 -3 (+.f64 x x)))))
(*.f64 2 (/.f64 x (/.f64 2 (+.f64 x (+.f64 x -3)))))
(*.f64 2 (/.f64 x (/.f64 2 (+.f64 x (+.f64 -3 x)))))
(*.f64 2 (/.f64 (+.f64 -3 (+.f64 x x)) (/.f64 2 x)))
(*.f64 2 (/.f64 x (/.f64 2 (+.f64 -3 (+.f64 x x)))))
(*.f64 2 (/.f64 (*.f64 x (+.f64 x (+.f64 x -3))) 2))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (+.f64 x x) (*.f64 (+.f64 x (+.f64 x -3)) 1/2))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (*.f64 x x) (/.f64 1 (/.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (*.f64 x 4) (/.f64 1 (/.f64 4 (+.f64 x (+.f64 x -3)))))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) (+.f64 x x)) 1/2)
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) 4) (/.f64 1 (*.f64 (/.f64 1 x) 4)))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)) -1)
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (neg.f64 x))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 -1/2 (/.f64 (*.f64 x -2) (/.f64 1 (+.f64 x (+.f64 x -3)))))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 1/2 (*.f64 (+.f64 x (+.f64 x -3)) (+.f64 x x)))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (/.f64 x 2) (+.f64 -3 (+.f64 -3 (*.f64 x 4))))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 x 2))
(*.f64 (+.f64 (*.f64 x 4) -6) (/.f64 x 2))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) 1/2) (+.f64 x x))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (*.f64 x 1/2) (+.f64 -3 (+.f64 -3 (*.f64 x 4))))
(*.f64 x (*.f64 1/2 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))))
(*.f64 x (*.f64 (+.f64 (*.f64 x 4) -6) 1/2))
(*.f64 (/.f64 (*.f64 x -2) (/.f64 1 (+.f64 x (+.f64 x -3)))) -1/2)
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 x)) 2)
(*.f64 2 (/.f64 x (/.f64 2 (+.f64 x (+.f64 -3 x)))))
(*.f64 2 (/.f64 (+.f64 -3 (+.f64 x x)) (/.f64 2 x)))
(*.f64 2 (/.f64 x (/.f64 2 (+.f64 -3 (+.f64 x x)))))
(*.f64 (/.f64 x (/.f64 2 (+.f64 x (+.f64 x -3)))) 2)
(*.f64 2 (/.f64 x (/.f64 2 (+.f64 x (+.f64 -3 x)))))
(*.f64 2 (/.f64 (+.f64 -3 (+.f64 x x)) (/.f64 2 x)))
(*.f64 2 (/.f64 x (/.f64 2 (+.f64 -3 (+.f64 x x)))))
(*.f64 (/.f64 x (/.f64 x (+.f64 x (+.f64 x -3)))) x)
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (/.f64 1 (/.f64 x (+.f64 x (+.f64 x -3)))) (*.f64 x x))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (/.f64 1 (/.f64 4 (+.f64 x (+.f64 x -3)))) (*.f64 x 4))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (/.f64 (*.f64 x (+.f64 x (+.f64 x -3))) 2) 2)
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(*.f64 (/.f64 1 (*.f64 (/.f64 1 x) 4)) (*.f64 (+.f64 x (+.f64 x -3)) 4))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(neg.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (+.f64 x (+.f64 -3 x)))
(*.f64 x (+.f64 -3 (+.f64 x x)))
(+.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 0)
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(+.f64 0 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 0)
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 x (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 x (*.f64 -1 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 x (neg.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (+.f64 x (+.f64 x -3)) (/.f64 (/.f64 -1 x) x))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 1 (/.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (/.f64 -1 x))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (neg.f64 x) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 1)
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 (/.f64 2 x) (neg.f64 x)))
(/.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 2 (*.f64 x (neg.f64 x))))
(/.f64 x (/.f64 (/.f64 2 (neg.f64 x)) (+.f64 (*.f64 x 4) -6)))
(/.f64 x (/.f64 (/.f64 -2 x) (+.f64 (*.f64 x 4) -6)))
(/.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 (/.f64 -1 x) x)))
(/.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 (*.f64 x x))))
(/.f64 (+.f64 (*.f64 x 4) -6) (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 (*.f64 x x))))
(/.f64 (+.f64 (*.f64 x 4) -6) (*.f64 2 (/.f64 -1 (*.f64 x x))))
(/.f64 2 (/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 2 (+.f64 (/.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)) (/.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) (neg.f64 x))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (+.f64 x x) (*.f64 -2 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (+.f64 x x) (/.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (+.f64 x x) (+.f64 (*.f64 -1 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (*.f64 -1 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (+.f64 x x) (+.f64 (neg.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (neg.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (+.f64 x x) (+.f64 (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x) (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (+.f64 x x) (-.f64 0 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 4 (+.f64 (/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)) (/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 x 4) (*.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) -4))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 x 4) (/.f64 (/.f64 4 (+.f64 x (+.f64 x -3))) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 x 4) (+.f64 (*.f64 -2 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (*.f64 -2 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 x 4) (+.f64 (/.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (neg.f64 x)) (/.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (neg.f64 x))))
(/.f64 (*.f64 x 4) (+.f64 (/.f64 2 (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x))) (/.f64 2 (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))))
(*.f64 x (/.f64 4 (+.f64 (/.f64 2 (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x))) (/.f64 2 (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x))))))
(*.f64 x (/.f64 4 (+.f64 (/.f64 -2 (*.f64 x (+.f64 -3 (+.f64 x x)))) (/.f64 -2 (*.f64 x (+.f64 -3 (+.f64 x x)))))))
(*.f64 x (/.f64 4 (*.f64 2 (/.f64 -2 (*.f64 x (+.f64 -3 (+.f64 x x)))))))
(/.f64 (*.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)) -2) 2)
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (+.f64 x x)) (*.f64 2 (/.f64 -1 x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (+.f64 x x)) (/.f64 -2 x))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) 4) (+.f64 (/.f64 (/.f64 2 x) (neg.f64 x)) (/.f64 (/.f64 2 x) (neg.f64 x))))
(/.f64 (*.f64 (+.f64 x (+.f64 -3 x)) 4) (+.f64 (/.f64 2 (*.f64 x (neg.f64 x))) (/.f64 2 (*.f64 x (neg.f64 x)))))
(*.f64 (+.f64 -3 (+.f64 x x)) (/.f64 4 (+.f64 (/.f64 2 (*.f64 x (neg.f64 x))) (/.f64 2 (*.f64 x (neg.f64 x))))))
(*.f64 4 (/.f64 (+.f64 -3 (+.f64 x x)) (+.f64 (/.f64 -2 (*.f64 x x)) (/.f64 -2 (*.f64 x x)))))
(*.f64 (+.f64 -3 (+.f64 x x)) (/.f64 4 (+.f64 (/.f64 -2 (*.f64 x x)) (/.f64 -2 (*.f64 x x)))))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)) (/.f64 1 x))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (/.f64 1 (*.f64 x x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 x -4) (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 x -4) (*.f64 4 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 (+.f64 x x) 4) (+.f64 (*.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) -4) (*.f64 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))) -4)))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 (+.f64 x x) 4) (+.f64 (/.f64 (/.f64 4 (+.f64 x (+.f64 x -3))) (neg.f64 x)) (/.f64 (/.f64 4 (+.f64 x (+.f64 x -3))) (neg.f64 x))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (*.f64 x -4)) 4)
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)) -1)
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 x (neg.f64 x)) (/.f64 1 (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 x -2) (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x 4)) (/.f64 -4 x))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x 4)) (+.f64 (/.f64 -2 x) (/.f64 -2 x)))
(/.f64 (*.f64 (+.f64 x (+.f64 -3 x)) (*.f64 x 4)) (+.f64 (/.f64 -2 x) (/.f64 -2 x)))
(*.f64 (*.f64 x 4) (/.f64 (+.f64 -3 (+.f64 x x)) (+.f64 (/.f64 -2 x) (/.f64 -2 x))))
(*.f64 (*.f64 x (+.f64 -3 (+.f64 x x))) (/.f64 4 (+.f64 (/.f64 -2 x) (/.f64 -2 x))))
(*.f64 (+.f64 -3 (+.f64 x x)) (/.f64 (*.f64 x 4) (*.f64 2 (/.f64 -2 x))))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) -2) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (*.f64 x x))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) -2)) (/.f64 2 x))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 2 (*.f64 x -4)) (+.f64 (*.f64 4 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (*.f64 4 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 (+.f64 x x) 4)) (+.f64 (/.f64 -4 x) (/.f64 -4 x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (*.f64 x -4))) 8)
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (/.f64 (+.f64 x x) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) -2)
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (/.f64 (*.f64 x 4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) -4)
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (/.f64 (*.f64 x -4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) 4)
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (+.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x))) (/.f64 2 (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (+.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)) (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x))) -2)
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (*.f64 x -4))) (*.f64 2 (*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (*.f64 x -4)))) 16)
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (+.f64 (/.f64 (+.f64 x x) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (/.f64 (+.f64 x x) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))) -4)
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (+.f64 (/.f64 (*.f64 x 4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (/.f64 (*.f64 x 4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))) -8)
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (+.f64 (/.f64 (*.f64 x -4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))) (/.f64 (*.f64 x -4) (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))) 8)
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(/.f64 (neg.f64 (*.f64 x (neg.f64 x))) (/.f64 -1 (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))
(neg.f64 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 -3 x)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 x x)) (neg.f64 (*.f64 x x)))

localize17.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 x (/.f64 1 x))
0.2b
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
Compiler

Compiled 47 to 22 computations (53.2% saved)

series0.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
0.0ms
x
@inf
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
0.0ms
x
@-inf
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
0.0ms
x
@0
(*.f64 x (/.f64 1 x))
0.0ms
x
@-inf
(*.f64 x (/.f64 1 x))

rewrite94.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
2146×bool.json-1
2146×bool.json-2
1080×rational.json-simplify-35
862×rational.json-1
862×rational.json-2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01138
111932
234432
381226
4272126
5722326
Stop Event
node limit
Counts
2 → 17
Calls
Call 1
Inputs
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(*.f64 x (/.f64 1 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 (+.f64 x x) (*.f64 x (*.f64 x x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 (*.f64 x 4) (*.f64 x (*.f64 x x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 3 (+.f64 x x))) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x (+.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (/.f64 2 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 3 (+.f64 x x)) (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 2) (/.f64 1 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 4)) (*.f64 2 (*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 3 (+.f64 x x))) (-.f64 0 (/.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))))))
((#(struct:change #<rule egg-rr> (2) ((x . 1)))))

simplify94.0ms (0.6%)

Algorithm
egg-herbie
Rules
906×rational.json-simplify-41
768×rational.json-simplify-19
746×rational.json-simplify-2
644×rational.json-simplify-1
592×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
060731
1194731
2568731
32274731
44799731
57025731
Stop Event
node limit
Counts
41 → 22
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
1
1
1
1
1
1
1
1
1
1
1
1
(+.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 0)
(+.f64 0 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))
(-.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 0)
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 (+.f64 x x) (*.f64 x (*.f64 x x))) 2))
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 (*.f64 x 4) (*.f64 x (*.f64 x x))) 4))
(/.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 1)
(/.f64 (*.f64 x (-.f64 3 (+.f64 x x))) (/.f64 1 x))
(/.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x (+.f64 x x))) 2)
(/.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (/.f64 2 (*.f64 x x)))
(/.f64 (*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 4) 4)
(/.f64 (*.f64 (-.f64 3 (+.f64 x x)) (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 4)) 8)
(/.f64 (/.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 2) (/.f64 1 (+.f64 x x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 4)) (*.f64 2 (*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 4))) 16)
(/.f64 (neg.f64 (-.f64 3 (+.f64 x x))) (-.f64 0 (/.f64 1 (*.f64 x x))))
1
Outputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
1
1
1
1
1
1
1
1
1
1
1
1
(+.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 0)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(+.f64 0 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(-.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 0)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 (+.f64 x x) (*.f64 x (*.f64 x x))) 2))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 (*.f64 x 4) (*.f64 x (*.f64 x x))) 4))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 1)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (*.f64 x (-.f64 3 (+.f64 x x))) (/.f64 1 x))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x (+.f64 x x))) 2)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (*.f64 (-.f64 3 (+.f64 x x)) 2) (/.f64 2 (*.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 4) 4)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (*.f64 (-.f64 3 (+.f64 x x)) (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 4)) 8)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (/.f64 (*.f64 x (-.f64 3 (+.f64 x x))) 2) (/.f64 1 (+.f64 x x)))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 4)) (*.f64 2 (*.f64 (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)) 4))) 16)
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
(/.f64 (neg.f64 (-.f64 3 (+.f64 x x))) (-.f64 0 (/.f64 1 (*.f64 x x))))
(*.f64 x (*.f64 x (-.f64 3 (+.f64 x x))))
(*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x))
1

eval98.0ms (0.6%)

Compiler

Compiled 5356 to 3144 computations (41.3% saved)

prune57.0ms (0.3%)

Pruning

14 alts after pruning (6 fresh and 8 done)

PrunedKeptTotal
New3655370
Fresh011
Picked101
Done2810
Total36814382
Error
0b
Counts
382 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
1.4b
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 1 x) x))
1.4b
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
0.2b
(/.f64 x (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x))
1.3b
(/.f64 2 (/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)))
0.2b
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
23.7b
(*.f64 (+.f64 x x) (*.f64 x (neg.f64 x)))
37.5b
(*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (/.f64 1 (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))
0.2b
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
23.7b
(*.f64 (neg.f64 x) (/.f64 (+.f64 x x) (/.f64 1 x)))
18.6b
(*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x)))
0.2b
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
18.6b
(*.f64 x (*.f64 3 x))
18.6b
(*.f64 3 (*.f64 x x))
23.6b
(*.f64 -2 (pow.f64 x 3))
Compiler

Compiled 225 to 146 computations (35.1% saved)

localize15.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 -1 (+.f64 x (+.f64 x -3)))
0.0b
(+.f64 x (+.f64 x -3))
0.1b
(/.f64 x (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x))
0.4b
(/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x)
Compiler

Compiled 39 to 26 computations (33.3% saved)

series2.0ms (0%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(/.f64 -1 (+.f64 x (+.f64 x -3)))
0.0ms
x
@inf
(/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x)
0.0ms
x
@0
(/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x)
0.0ms
x
@-inf
(/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x)
0.0ms
x
@-inf
(/.f64 -1 (+.f64 x (+.f64 x -3)))

rewrite74.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
1480×bool.json-1
1480×bool.json-2
1446×rational.json-1
1446×rational.json-2
1446×rational.json-4
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01075
111475
240375
3124673
4455473
Stop Event
node limit
Counts
3 → 76
Calls
Call 1
Inputs
(/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x)
(/.f64 x (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x))
(/.f64 -1 (+.f64 x (+.f64 x -3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 (/.f64 -1 x) (neg.f64 (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2) (/.f64 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2) (*.f64 (/.f64 1/2 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2) (*.f64 1/2 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -2 (*.f64 x (+.f64 x (+.f64 x -3)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 x) (/.f64 1 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 4) (/.f64 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 -1 x) 2) (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 -2 (*.f64 x (+.f64 x (+.f64 x -3)))) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -2 x) (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (/.f64 -1 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 x (+.f64 x -3))) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 1 x)) (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (/.f64 -2 (*.f64 x (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 x) (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 x) (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))) (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))) (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 x (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x -3)) (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 1/2 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (*.f64 1/2 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 (+.f64 x (+.f64 x -3)) (*.f64 (/.f64 -1 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 -2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 1 (*.f64 2 (/.f64 (/.f64 -1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 1 (/.f64 -2 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 x (*.f64 (/.f64 -1 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 x (/.f64 -2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (/.f64 2 (/.f64 -2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 x (/.f64 -2 (*.f64 x (+.f64 x (+.f64 x -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (+.f64 x (+.f64 x -3)) (*.f64 2 (/.f64 (/.f64 -1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 -2 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) (/.f64 1 (*.f64 (/.f64 -1 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) (/.f64 1 (/.f64 -2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (/.f64 1 (*.f64 (/.f64 -2 (*.f64 x (+.f64 x (+.f64 x -3)))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (/.f64 1 (/.f64 4 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (+.f64 x x) (neg.f64 (+.f64 x (+.f64 x -3))))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (/.f64 x (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (/.f64 1 (/.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (*.f64 x (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (/.f64 1 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))) (/.f64 1 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 (+.f64 x x) (neg.f64 (+.f64 x (+.f64 x -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (neg.f64 x)) (+.f64 x (+.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 -1 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (/.f64 1 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 -1 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 x (+.f64 x -3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 1 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (/.f64 -1 (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (/.f64 -1 (+.f64 x (+.f64 x -3))) (/.f64 -1 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 -1 (+.f64 x (+.f64 x -3))) (/.f64 -1 (+.f64 x (+.f64 x -3))))))))

simplify109.0ms (0.7%)

Algorithm
egg-herbie
Rules
1302×rational.json-simplify-2
1132×rational.json-simplify-41
1042×rational.json-simplify-55
754×rational.json-simplify-51
704×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02203358
15283358
211203358
334613358
464653358
Stop Event
node limit
Counts
112 → 120
Calls
Call 1
Inputs
(/.f64 1/3 x)
(+.f64 2/9 (*.f64 1/3 (/.f64 1 x)))
(+.f64 2/9 (+.f64 (*.f64 4/27 x) (*.f64 1/3 (/.f64 1 x))))
(+.f64 2/9 (+.f64 (*.f64 4/27 x) (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 8/81 (pow.f64 x 2)))))
(/.f64 -1/2 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (*.f64 3/4 (/.f64 1 (pow.f64 x 3)))))
(neg.f64 (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 27/16 (/.f64 1 (pow.f64 x 5))) (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))))
(/.f64 -1/2 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (*.f64 3/4 (/.f64 1 (pow.f64 x 3)))))
(neg.f64 (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 27/16 (/.f64 1 (pow.f64 x 5))) (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
1/3
(+.f64 1/3 (*.f64 2/9 x))
(+.f64 1/3 (+.f64 (*.f64 2/9 x) (*.f64 4/27 (pow.f64 x 2))))
(+.f64 (*.f64 8/81 (pow.f64 x 3)) (+.f64 1/3 (+.f64 (*.f64 2/9 x) (*.f64 4/27 (pow.f64 x 2)))))
(/.f64 -1/2 x)
(neg.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 2))) (*.f64 1/2 (/.f64 1 x))))
(neg.f64 (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 2))) (*.f64 1/2 (/.f64 1 x)))))
(neg.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 2))) (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 27/16 (/.f64 1 (pow.f64 x 4))) (*.f64 1/2 (/.f64 1 x))))))
(/.f64 -1/2 x)
(neg.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 2))) (*.f64 1/2 (/.f64 1 x))))
(neg.f64 (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 2))) (*.f64 1/2 (/.f64 1 x)))))
(neg.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 2))) (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 27/16 (/.f64 1 (pow.f64 x 4))) (*.f64 1/2 (/.f64 1 x))))))
(+.f64 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))) 0)
(+.f64 0 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))))
(-.f64 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))) 0)
(*.f64 -1 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))
(*.f64 -1 (/.f64 (/.f64 -1 x) (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) (/.f64 1 x))
(*.f64 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))) 1)
(*.f64 1 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2) (/.f64 1/2 x))
(*.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2) (*.f64 (/.f64 1/2 x) 1))
(*.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2) (*.f64 1/2 (/.f64 1 x)))
(*.f64 (/.f64 -2 (*.f64 x (+.f64 x (+.f64 x -3)))) 1/2)
(*.f64 (/.f64 -1 x) (/.f64 1 (+.f64 x (+.f64 x -3))))
(*.f64 2 (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) (+.f64 x x)))
(*.f64 2 (/.f64 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))) 2))
(*.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 4) (/.f64 1 (*.f64 x 4)))
(*.f64 (*.f64 (/.f64 -1 x) 2) (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))))
(*.f64 (*.f64 (/.f64 -2 (*.f64 x (+.f64 x (+.f64 x -3)))) 2) 1/4)
(*.f64 (/.f64 -2 x) (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))))
(*.f64 (/.f64 1 x) (/.f64 -1 (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 1 (+.f64 x (+.f64 x -3))) (/.f64 -1 x))
(*.f64 (*.f64 2 (/.f64 1 x)) (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2))
(*.f64 1/2 (/.f64 -2 (*.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 (/.f64 1/2 x) (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2))
(*.f64 (/.f64 2 x) (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2))
(+.f64 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) 0)
(+.f64 0 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))))
(-.f64 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) 0)
(*.f64 -1 (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 (/.f64 1 x) x)))
(*.f64 -1 (/.f64 x (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 (*.f64 x (neg.f64 x)) 1))
(*.f64 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) 1)
(*.f64 1 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))))
(*.f64 (+.f64 x x) (*.f64 1/2 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))))
(*.f64 (+.f64 x x) (*.f64 (*.f64 1/2 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) 1))
(*.f64 (+.f64 x x) (/.f64 (+.f64 x (+.f64 x -3)) (*.f64 (/.f64 -1 x) 2)))
(*.f64 (+.f64 x x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 -2 x)))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 1 (*.f64 2 (/.f64 (/.f64 -1 x) x))))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 1 (/.f64 -2 (*.f64 x x))))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 x (*.f64 (/.f64 -1 x) 2)))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 x (/.f64 -2 x)))
(*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (neg.f64 x))
(*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (/.f64 2 (/.f64 -2 x)))
(*.f64 2 (/.f64 x (/.f64 -2 (*.f64 x (+.f64 x (+.f64 x -3))))))
(*.f64 2 (/.f64 (+.f64 x (+.f64 x -3)) (*.f64 2 (/.f64 (/.f64 -1 x) x))))
(*.f64 2 (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 -2 (*.f64 x x))))
(*.f64 2 (/.f64 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) 2))
(*.f64 (*.f64 x (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) (/.f64 1 (*.f64 (/.f64 -1 x) 2)))
(*.f64 (*.f64 x (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) (/.f64 1 (/.f64 -2 x)))
(*.f64 (*.f64 x 4) (/.f64 1 (*.f64 (/.f64 -2 (*.f64 x (+.f64 x (+.f64 x -3)))) 2)))
(*.f64 (*.f64 x 4) (/.f64 1 (/.f64 4 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))))
(*.f64 (*.f64 x (*.f64 (+.f64 x x) (neg.f64 (+.f64 x (+.f64 x -3))))) 1/2)
(*.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (/.f64 x (/.f64 1 x)))
(*.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (/.f64 1 (/.f64 (/.f64 1 x) x)))
(*.f64 (neg.f64 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (neg.f64 x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x)))
(*.f64 (neg.f64 x) (/.f64 1 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))) x)
(*.f64 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))) (/.f64 1 (/.f64 1 x)))
(*.f64 1/2 (*.f64 x (*.f64 (+.f64 x x) (neg.f64 (+.f64 x (+.f64 x -3))))))
(*.f64 (*.f64 x (neg.f64 x)) (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 1/2 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) (+.f64 x x))
(+.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 0)
(+.f64 0 (/.f64 -1 (+.f64 x (+.f64 x -3))))
(-.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 0)
(-.f64 0 (/.f64 1 (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 1)
(*.f64 1 (/.f64 -1 (+.f64 x (+.f64 x -3))))
(*.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2) 1/2)
(*.f64 2 (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2))
(*.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 4) 1/4)
(*.f64 (/.f64 1 (+.f64 x (+.f64 x -3))) -1)
(*.f64 1/2 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2))
(neg.f64 (/.f64 1 (+.f64 x (+.f64 x -3))))
Outputs
(/.f64 1/3 x)
(+.f64 2/9 (*.f64 1/3 (/.f64 1 x)))
(+.f64 2/9 (+.f64 (*.f64 4/27 x) (*.f64 1/3 (/.f64 1 x))))
(+.f64 2/9 (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 x 4/27)))
(+.f64 2/9 (+.f64 (*.f64 4/27 x) (+.f64 (*.f64 1/3 (/.f64 1 x)) (*.f64 8/81 (pow.f64 x 2)))))
(+.f64 2/9 (+.f64 (*.f64 1/3 (/.f64 1 x)) (+.f64 (*.f64 8/81 (pow.f64 x 2)) (*.f64 x 4/27))))
(+.f64 2/9 (+.f64 (*.f64 1/3 (/.f64 1 x)) (+.f64 (*.f64 x 4/27) (*.f64 8/81 (pow.f64 x 2)))))
(/.f64 -1/2 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (*.f64 3/4 (/.f64 1 (pow.f64 x 3)))))
(neg.f64 (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (*.f64 9/8 (/.f64 1 (pow.f64 x 4))))))
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 4))) (*.f64 3/4 (/.f64 1 (pow.f64 x 3))))))
(neg.f64 (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 27/16 (/.f64 1 (pow.f64 x 5))) (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (*.f64 27/16 (/.f64 1 (pow.f64 x 5)))))))
(neg.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (+.f64 (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (*.f64 27/16 (/.f64 1 (pow.f64 x 5)))) (*.f64 9/8 (/.f64 1 (pow.f64 x 4))))))
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (+.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (*.f64 27/16 (/.f64 1 (pow.f64 x 5)))) (*.f64 9/8 (/.f64 1 (pow.f64 x 4))))))
(neg.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 27/16 (/.f64 1 (pow.f64 x 5))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (*.f64 9/8 (/.f64 1 (pow.f64 x 4)))))))
(/.f64 -1/2 (pow.f64 x 2))
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (*.f64 3/4 (/.f64 1 (pow.f64 x 3)))))
(neg.f64 (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (*.f64 9/8 (/.f64 1 (pow.f64 x 4))))))
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 4))) (*.f64 3/4 (/.f64 1 (pow.f64 x 3))))))
(neg.f64 (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 27/16 (/.f64 1 (pow.f64 x 5))) (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (*.f64 1/2 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (*.f64 27/16 (/.f64 1 (pow.f64 x 5)))))))
(neg.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (+.f64 (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (*.f64 27/16 (/.f64 1 (pow.f64 x 5)))) (*.f64 9/8 (/.f64 1 (pow.f64 x 4))))))
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (+.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (*.f64 27/16 (/.f64 1 (pow.f64 x 5)))) (*.f64 9/8 (/.f64 1 (pow.f64 x 4))))))
(neg.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 27/16 (/.f64 1 (pow.f64 x 5))) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (*.f64 9/8 (/.f64 1 (pow.f64 x 4)))))))
(*.f64 3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) 3)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 (pow.f64 x 3) -2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 (pow.f64 x 3) -2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 (pow.f64 x 3) -2))
(*.f64 -2 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -2)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 (pow.f64 x 3) -2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 (pow.f64 x 3) -2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 (pow.f64 x 3) -2))
(*.f64 -2 (pow.f64 x 3))
(*.f64 (pow.f64 x 3) -2)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 (pow.f64 x 3) -2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 (pow.f64 x 3) -2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 2) 3) (*.f64 (pow.f64 x 3) -2))
1/3
(+.f64 1/3 (*.f64 2/9 x))
(+.f64 1/3 (*.f64 x 2/9))
(+.f64 1/3 (+.f64 (*.f64 2/9 x) (*.f64 4/27 (pow.f64 x 2))))
(+.f64 1/3 (+.f64 (*.f64 x 2/9) (*.f64 4/27 (pow.f64 x 2))))
(+.f64 (*.f64 8/81 (pow.f64 x 3)) (+.f64 1/3 (+.f64 (*.f64 2/9 x) (*.f64 4/27 (pow.f64 x 2)))))
(+.f64 (+.f64 1/3 (+.f64 (*.f64 x 2/9) (*.f64 4/27 (pow.f64 x 2)))) (*.f64 8/81 (pow.f64 x 3)))
(+.f64 (*.f64 x 2/9) (+.f64 (+.f64 1/3 (*.f64 4/27 (pow.f64 x 2))) (*.f64 8/81 (pow.f64 x 3))))
(+.f64 (+.f64 1/3 (*.f64 4/27 (pow.f64 x 2))) (+.f64 (*.f64 x 2/9) (*.f64 8/81 (pow.f64 x 3))))
(+.f64 (+.f64 1/3 (*.f64 x 2/9)) (+.f64 (*.f64 4/27 (pow.f64 x 2)) (*.f64 8/81 (pow.f64 x 3))))
(/.f64 -1/2 x)
(neg.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 2))) (*.f64 1/2 (/.f64 1 x))))
(neg.f64 (+.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) 3/4) (*.f64 (/.f64 1 x) 1/2)))
(neg.f64 (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 2))) (*.f64 1/2 (/.f64 1 x)))))
(neg.f64 (+.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) 3/4) (+.f64 (*.f64 (/.f64 1 x) 1/2) (*.f64 (/.f64 1 (pow.f64 x 3)) 9/8))))
(neg.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 2))) (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 27/16 (/.f64 1 (pow.f64 x 4))) (*.f64 1/2 (/.f64 1 x))))))
(neg.f64 (+.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) 3/4) (+.f64 (*.f64 (/.f64 1 (pow.f64 x 3)) 9/8) (+.f64 (*.f64 (/.f64 1 x) 1/2) (*.f64 (/.f64 1 (pow.f64 x 4)) 27/16)))))
(neg.f64 (+.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) 3/4) (+.f64 (*.f64 (/.f64 1 x) 1/2) (+.f64 (*.f64 (/.f64 1 (pow.f64 x 3)) 9/8) (*.f64 (/.f64 1 (pow.f64 x 4)) 27/16)))))
(/.f64 -1/2 x)
(neg.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 2))) (*.f64 1/2 (/.f64 1 x))))
(neg.f64 (+.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) 3/4) (*.f64 (/.f64 1 x) 1/2)))
(neg.f64 (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 2))) (*.f64 1/2 (/.f64 1 x)))))
(neg.f64 (+.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) 3/4) (+.f64 (*.f64 (/.f64 1 x) 1/2) (*.f64 (/.f64 1 (pow.f64 x 3)) 9/8))))
(neg.f64 (+.f64 (*.f64 3/4 (/.f64 1 (pow.f64 x 2))) (+.f64 (*.f64 9/8 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 27/16 (/.f64 1 (pow.f64 x 4))) (*.f64 1/2 (/.f64 1 x))))))
(neg.f64 (+.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) 3/4) (+.f64 (*.f64 (/.f64 1 (pow.f64 x 3)) 9/8) (+.f64 (*.f64 (/.f64 1 x) 1/2) (*.f64 (/.f64 1 (pow.f64 x 4)) 27/16)))))
(neg.f64 (+.f64 (*.f64 (/.f64 1 (pow.f64 x 2)) 3/4) (+.f64 (*.f64 (/.f64 1 x) 1/2) (+.f64 (*.f64 (/.f64 1 (pow.f64 x 3)) 9/8) (*.f64 (/.f64 1 (pow.f64 x 4)) 27/16)))))
(+.f64 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))) 0)
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(+.f64 0 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(-.f64 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))) 0)
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 -1 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3))))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 -1 (/.f64 (/.f64 -1 x) (neg.f64 (+.f64 x (+.f64 x -3)))))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) (/.f64 1 x))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))) 1)
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 1 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2) (/.f64 1/2 x))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2) (*.f64 (/.f64 1/2 x) 1))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2) (*.f64 1/2 (/.f64 1 x)))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 -2 (*.f64 x (+.f64 x (+.f64 x -3)))) 1/2)
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 -1 x) (/.f64 1 (+.f64 x (+.f64 x -3))))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 2 (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) (+.f64 x x)))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 2 (/.f64 (/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3)))) 2))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 4) (/.f64 1 (*.f64 x 4)))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (*.f64 (/.f64 -1 x) 2) (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (*.f64 (/.f64 -2 (*.f64 x (+.f64 x (+.f64 x -3)))) 2) 1/4)
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 -2 x) (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 1 x) (/.f64 -1 (+.f64 x (+.f64 x -3))))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 1 (+.f64 x (+.f64 x -3))) (/.f64 -1 x))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (*.f64 2 (/.f64 1 x)) (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 1/2 (/.f64 -2 (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 1/2 x) (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 2 x) (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2))
(/.f64 -1 (*.f64 x (+.f64 x (+.f64 x -3))))
(+.f64 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) 0)
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(+.f64 0 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(-.f64 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) 0)
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 -1 (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 (/.f64 1 x) x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 -1 (/.f64 x (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 (*.f64 x (neg.f64 x)) 1))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) 1)
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 1 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x x) (*.f64 1/2 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x x) (*.f64 (*.f64 1/2 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) 1))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x x) (/.f64 (+.f64 x (+.f64 x -3)) (*.f64 (/.f64 -1 x) 2)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 x x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 -2 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 1 (*.f64 2 (/.f64 (/.f64 -1 x) x))))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 1 (/.f64 -2 (*.f64 x x))))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 x (*.f64 (/.f64 -1 x) 2)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 x (/.f64 -2 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (neg.f64 x))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (/.f64 2 (/.f64 -2 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 2 (/.f64 x (/.f64 -2 (*.f64 x (+.f64 x (+.f64 x -3))))))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 2 (/.f64 (+.f64 x (+.f64 x -3)) (*.f64 2 (/.f64 (/.f64 -1 x) x))))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 2 (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 -2 (*.f64 x x))))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 2 (/.f64 (*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) 2))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (*.f64 x (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) (/.f64 1 (*.f64 (/.f64 -1 x) 2)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (*.f64 x (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) (/.f64 1 (/.f64 -2 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (*.f64 x 4) (/.f64 1 (*.f64 (/.f64 -2 (*.f64 x (+.f64 x (+.f64 x -3)))) 2)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (*.f64 x 4) (/.f64 1 (/.f64 4 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (*.f64 x (*.f64 (+.f64 x x) (neg.f64 (+.f64 x (+.f64 x -3))))) 1/2)
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (/.f64 x (/.f64 1 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (/.f64 1 (/.f64 (/.f64 1 x) x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (neg.f64 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (neg.f64 x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (neg.f64 x) (/.f64 1 (/.f64 (/.f64 1 x) (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))) x)
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))) (/.f64 1 (/.f64 1 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 1/2 (*.f64 x (*.f64 (+.f64 x x) (neg.f64 (+.f64 x (+.f64 x -3))))))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (*.f64 x (neg.f64 x)) (+.f64 x (+.f64 x -3)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 (*.f64 1/2 (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3))))) (+.f64 x x))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(+.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 0)
(/.f64 -1 (+.f64 x (+.f64 x -3)))
(+.f64 0 (/.f64 -1 (+.f64 x (+.f64 x -3))))
(/.f64 -1 (+.f64 x (+.f64 x -3)))
(-.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 0)
(/.f64 -1 (+.f64 x (+.f64 x -3)))
(-.f64 0 (/.f64 1 (+.f64 x (+.f64 x -3))))
(/.f64 -1 (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 1)
(/.f64 -1 (+.f64 x (+.f64 x -3)))
(*.f64 1 (/.f64 -1 (+.f64 x (+.f64 x -3))))
(/.f64 -1 (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2) 1/2)
(/.f64 -1 (+.f64 x (+.f64 x -3)))
(*.f64 2 (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2))
(/.f64 -1 (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 4) 1/4)
(/.f64 -1 (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 1 (+.f64 x (+.f64 x -3))) -1)
(/.f64 -1 (+.f64 x (+.f64 x -3)))
(*.f64 1/2 (*.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) 2))
(/.f64 -1 (+.f64 x (+.f64 x -3)))
(neg.f64 (/.f64 1 (+.f64 x (+.f64 x -3))))
(/.f64 -1 (+.f64 x (+.f64 x -3)))

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x)))
0.3b
(/.f64 -3 (/.f64 1 x))
Compiler

Compiled 22 to 15 computations (31.8% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(/.f64 -3 (/.f64 1 x))
0.0ms
x
@inf
(/.f64 -3 (/.f64 1 x))
0.0ms
x
@-inf
(/.f64 -3 (/.f64 1 x))
0.0ms
x
@0
(*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x)))
0.0ms
x
@inf
(*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x)))

rewrite88.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1986×bool.json-1
1986×bool.json-2
1528×bool.json-3
1048×rational.json-simplify-46
982×rational.json-simplify-35
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01024
111724
237020
387220
4237620
5658720
Stop Event
node limit
Counts
2 → 110
Calls
Call 1
Inputs
(/.f64 -3 (/.f64 1 x))
(*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -3 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 x) (*.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -3 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (+.f64 (neg.f64 x) (-.f64 1 x)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 x) (+.f64 (+.f64 (neg.f64 x) -1) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (neg.f64 x) (-.f64 1 x)) (+.f64 (neg.f64 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x -2) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -3 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -3 x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 -3 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x -3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -3 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 x 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 x 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 -3 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 x -2/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (neg.f64 x) (/.f64 (neg.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (neg.f64 x) (/.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) -3/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (/.f64 1/2 (/.f64 x -6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (+.f64 x (/.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) -3/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x -6) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x -2) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -3/2 (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (/.f64 (+.f64 x x) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x -6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 1/3) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x x) 1/3) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 -3 x) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x -2/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (/.f64 x -6)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -3/4 (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x 3))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 x 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 -3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 -3 x) (*.f64 -3 x))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -3 x) (*.f64 -3 x))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -3 (/.f64 (/.f64 -1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (/.f64 1/3 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (/.f64 1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (*.f64 -1 (/.f64 -1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (neg.f64 (/.f64 -1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -3 x) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 x) (/.f64 -1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 x) (/.f64 (neg.f64 (/.f64 -1/3 x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (/.f64 (/.f64 2/3 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (+.f64 (/.f64 (/.f64 1/3 x) x) (/.f64 (/.f64 1/3 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (*.f64 -2 (/.f64 -1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (/.f64 2/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (+.f64 (*.f64 -1 (/.f64 -1/3 x)) (*.f64 -1 (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (+.f64 (neg.f64 (/.f64 -1/3 x)) (neg.f64 (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (+.f64 (/.f64 1/3 x) (/.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (-.f64 0 (/.f64 -2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -6 (/.f64 (/.f64 -2 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -6 (+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 (/.f64 -1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (+.f64 (/.f64 (/.f64 2/3 x) x) (/.f64 (/.f64 2/3 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4) (*.f64 (/.f64 -1/3 x) -4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4) (/.f64 4/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4) (+.f64 (*.f64 -2 (/.f64 -1/3 x)) (*.f64 -2 (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4) (+.f64 (/.f64 2/3 x) (/.f64 2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -6) (*.f64 2 (/.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -6) (/.f64 -2 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -12 (+.f64 (/.f64 (/.f64 -2 x) x) (/.f64 (/.f64 -2 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 3) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -4) (*.f64 2 (/.f64 -2/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -4) (*.f64 4 (/.f64 -1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x 4)) (+.f64 (*.f64 (/.f64 -1/3 x) -4) (*.f64 (/.f64 -1/3 x) -4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x 4)) (+.f64 (/.f64 4/3 x) (/.f64 4/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 -3 x) (*.f64 x -4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -3 (*.f64 x x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -2) (/.f64 -2/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -3 (*.f64 x 4)) (*.f64 2 (/.f64 -2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -3 (*.f64 x 4)) (/.f64 -4 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x -4)) (+.f64 (*.f64 4 (/.f64 -1/3 x)) (*.f64 4 (/.f64 -1/3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 6) (/.f64 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 -3 x) (*.f64 x -4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x 4) -6) (+.f64 (/.f64 -4 x) (/.f64 -4 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 x x) (/.f64 -1/3 x)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x 4) (/.f64 -1/3 x)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x -4) (/.f64 -1/3 x)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 x (/.f64 -1 x)) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (neg.f64 x) 2) (/.f64 (/.f64 1 x) -6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 -3 (*.f64 x x)) (*.f64 -3 (*.f64 x x))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 -3 x) (*.f64 x -4))) (*.f64 2 (*.f64 (*.f64 -3 x) (*.f64 x -4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 (+.f64 x x) (/.f64 -1/3 x)) (/.f64 (+.f64 x x) (/.f64 -1/3 x))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 (*.f64 x 4) (/.f64 -1/3 x)) (/.f64 (*.f64 x 4) (/.f64 -1/3 x))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 (*.f64 x -4) (/.f64 -1/3 x)) (/.f64 (*.f64 x -4) (/.f64 -1/3 x))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 x (/.f64 -1 x)) (/.f64 x (/.f64 -1 x))) -2/3)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x -2) (/.f64 1 x)) -2/3)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x -2) (/.f64 1 (*.f64 x x))) (/.f64 (+.f64 x x) -3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x -2) (/.f64 2 (*.f64 x x))) (*.f64 x -1/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (neg.f64 x) (/.f64 2 x)) -1/6)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (neg.f64 x) -1/3) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (neg.f64 x) 1/2) (/.f64 -2/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (neg.f64 x) (/.f64 1 (*.f64 x x))) (*.f64 x -1/3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (neg.f64 x) (/.f64 2 (*.f64 x x))) (/.f64 x -6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x 3) x) (/.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x 3) 2) (/.f64 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x 3) (+.f64 x x)) (/.f64 1/2 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x 3) (/.f64 2 x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x 3) (*.f64 (/.f64 1 x) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x 3) 1/2) (/.f64 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x 3) (/.f64 1 (*.f64 x x))) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x 3) (/.f64 2 (*.f64 x x))) (/.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 -3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 x 3)) (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 x 3)) (*.f64 x (*.f64 x 3)))))))

simplify102.0ms (0.6%)

Algorithm
egg-herbie
Rules
1306×rational.json-simplify-43
1220×rational.json-simplify-46
858×rational.json-simplify-2
806×rational.json-simplify-50
786×rational.json-simplify-35
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02491600
17601588
224541584
355001572
467391572
Stop Event
node limit
Counts
134 → 126
Calls
Call 1
Inputs
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 -3 x) 0)
(+.f64 (neg.f64 x) (*.f64 x -2))
(+.f64 0 (*.f64 -3 x))
(+.f64 -1 (+.f64 (+.f64 (neg.f64 x) (-.f64 1 x)) (neg.f64 x)))
(+.f64 (-.f64 1 x) (+.f64 (+.f64 (neg.f64 x) -1) (neg.f64 x)))
(+.f64 (+.f64 (neg.f64 x) (-.f64 1 x)) (+.f64 (neg.f64 x) -1))
(+.f64 (*.f64 x -2) (neg.f64 x))
(-.f64 (*.f64 -3 x) 0)
(*.f64 -3 x)
(*.f64 1 (*.f64 -3 x))
(*.f64 x -3)
(*.f64 (*.f64 -3 x) 1)
(*.f64 (neg.f64 x) 3)
(*.f64 -1 (*.f64 x 3))
(*.f64 -1 (/.f64 x 1/3))
(*.f64 2 (/.f64 (*.f64 -3 x) 2))
(*.f64 2 (/.f64 x -2/3))
(*.f64 2 (+.f64 (neg.f64 x) (/.f64 (neg.f64 x) 2)))
(*.f64 2 (+.f64 (neg.f64 x) (/.f64 x -2)))
(*.f64 (+.f64 x x) -3/2)
(*.f64 (*.f64 x x) (/.f64 1/2 (/.f64 x -6)))
(*.f64 -2 (+.f64 x (/.f64 x 2)))
(*.f64 (*.f64 x 4) -3/4)
(*.f64 (*.f64 x -6) 1/2)
(*.f64 3 (neg.f64 x))
(*.f64 (*.f64 x -2) 3/2)
(*.f64 -3/2 (+.f64 x x))
(*.f64 -1/2 (/.f64 (+.f64 x x) 1/3))
(*.f64 1/2 (*.f64 x -6))
(*.f64 (/.f64 x 1/3) -1)
(*.f64 (/.f64 (+.f64 x x) 1/3) -1/2)
(*.f64 (/.f64 (*.f64 -3 x) 2) 2)
(*.f64 (/.f64 x -2/3) 2)
(*.f64 (/.f64 1/2 (/.f64 x -6)) (*.f64 x x))
(*.f64 -3/4 (*.f64 x 4))
(neg.f64 (*.f64 x 3))
(neg.f64 (/.f64 x 1/3))
(+.f64 (*.f64 x (*.f64 x 3)) 0)
(+.f64 0 (*.f64 x (*.f64 x 3)))
(-.f64 (*.f64 x (*.f64 x 3)) 0)
(/.f64 -3 (/.f64 (/.f64 -1 x) x))
(/.f64 1 (/.f64 (/.f64 1/3 x) x))
(/.f64 x (/.f64 1/3 x))
(/.f64 x (*.f64 -1 (/.f64 -1/3 x)))
(/.f64 x (neg.f64 (/.f64 -1/3 x)))
(/.f64 (*.f64 -3 x) (/.f64 -1 x))
(/.f64 (neg.f64 x) (/.f64 -1/3 x))
(/.f64 (neg.f64 x) (/.f64 (neg.f64 (/.f64 -1/3 x)) -1))
(/.f64 (*.f64 x (*.f64 x 3)) 1)
(/.f64 2 (/.f64 (/.f64 2/3 x) x))
(/.f64 2 (+.f64 (/.f64 (/.f64 1/3 x) x) (/.f64 (/.f64 1/3 x) x)))
(/.f64 (+.f64 x x) (*.f64 -2 (/.f64 -1/3 x)))
(/.f64 (+.f64 x x) (/.f64 2/3 x))
(/.f64 (+.f64 x x) (+.f64 (*.f64 -1 (/.f64 -1/3 x)) (*.f64 -1 (/.f64 -1/3 x))))
(/.f64 (+.f64 x x) (+.f64 (neg.f64 (/.f64 -1/3 x)) (neg.f64 (/.f64 -1/3 x))))
(/.f64 (+.f64 x x) (+.f64 (/.f64 1/3 x) (/.f64 1/3 x)))
(/.f64 (+.f64 x x) (-.f64 0 (/.f64 -2/3 x)))
(/.f64 -6 (/.f64 (/.f64 -2 x) x))
(/.f64 -6 (+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 (/.f64 -1 x) x)))
(/.f64 4 (+.f64 (/.f64 (/.f64 2/3 x) x) (/.f64 (/.f64 2/3 x) x)))
(/.f64 (*.f64 x 4) (*.f64 (/.f64 -1/3 x) -4))
(/.f64 (*.f64 x 4) (/.f64 4/3 x))
(/.f64 (*.f64 x 4) (+.f64 (*.f64 -2 (/.f64 -1/3 x)) (*.f64 -2 (/.f64 -1/3 x))))
(/.f64 (*.f64 x 4) (+.f64 (/.f64 2/3 x) (/.f64 2/3 x)))
(/.f64 (*.f64 x (*.f64 x 6)) 2)
(/.f64 (*.f64 x -6) (*.f64 2 (/.f64 -1 x)))
(/.f64 (*.f64 x -6) (/.f64 -2 x))
(/.f64 -12 (+.f64 (/.f64 (/.f64 -2 x) x) (/.f64 (/.f64 -2 x) x)))
(/.f64 (*.f64 x 3) (/.f64 1 x))
(/.f64 (*.f64 x -4) (*.f64 2 (/.f64 -2/3 x)))
(/.f64 (*.f64 x -4) (*.f64 4 (/.f64 -1/3 x)))
(/.f64 (*.f64 2 (*.f64 x 4)) (+.f64 (*.f64 (/.f64 -1/3 x) -4) (*.f64 (/.f64 -1/3 x) -4)))
(/.f64 (*.f64 2 (*.f64 x 4)) (+.f64 (/.f64 4/3 x) (/.f64 4/3 x)))
(/.f64 (*.f64 (*.f64 -3 x) (*.f64 x -4)) 4)
(/.f64 (*.f64 -3 (*.f64 x x)) -1)
(/.f64 (*.f64 x -2) (/.f64 -2/3 x))
(/.f64 (*.f64 -3 (*.f64 x 4)) (*.f64 2 (/.f64 -2 x)))
(/.f64 (*.f64 -3 (*.f64 x 4)) (/.f64 -4 x))
(/.f64 (*.f64 2 (*.f64 x -4)) (+.f64 (*.f64 4 (/.f64 -1/3 x)) (*.f64 4 (/.f64 -1/3 x))))
(/.f64 (*.f64 x 6) (/.f64 2 x))
(/.f64 (*.f64 2 (*.f64 (*.f64 -3 x) (*.f64 x -4))) 8)
(/.f64 (*.f64 (*.f64 x 4) -6) (+.f64 (/.f64 -4 x) (/.f64 -4 x)))
(/.f64 (/.f64 (+.f64 x x) (/.f64 -1/3 x)) -2)
(/.f64 (/.f64 (*.f64 x 4) (/.f64 -1/3 x)) -4)
(/.f64 (/.f64 (*.f64 x -4) (/.f64 -1/3 x)) 4)
(/.f64 (/.f64 x (/.f64 -1 x)) -1/3)
(/.f64 (/.f64 (neg.f64 x) 2) (/.f64 (/.f64 1 x) -6))
(/.f64 (+.f64 (*.f64 -3 (*.f64 x x)) (*.f64 -3 (*.f64 x x))) -2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 -3 x) (*.f64 x -4))) (*.f64 2 (*.f64 (*.f64 -3 x) (*.f64 x -4)))) 16)
(/.f64 (+.f64 (/.f64 (+.f64 x x) (/.f64 -1/3 x)) (/.f64 (+.f64 x x) (/.f64 -1/3 x))) -4)
(/.f64 (+.f64 (/.f64 (*.f64 x 4) (/.f64 -1/3 x)) (/.f64 (*.f64 x 4) (/.f64 -1/3 x))) -8)
(/.f64 (+.f64 (/.f64 (*.f64 x -4) (/.f64 -1/3 x)) (/.f64 (*.f64 x -4) (/.f64 -1/3 x))) 8)
(/.f64 (+.f64 (/.f64 x (/.f64 -1 x)) (/.f64 x (/.f64 -1 x))) -2/3)
(/.f64 (/.f64 (*.f64 x -2) (/.f64 1 x)) -2/3)
(/.f64 (/.f64 (*.f64 x -2) (/.f64 1 (*.f64 x x))) (/.f64 (+.f64 x x) -3))
(/.f64 (/.f64 (*.f64 x -2) (/.f64 2 (*.f64 x x))) (*.f64 x -1/3))
(/.f64 (/.f64 (neg.f64 x) (/.f64 2 x)) -1/6)
(/.f64 (/.f64 (neg.f64 x) -1/3) (/.f64 1 x))
(/.f64 (/.f64 (neg.f64 x) 1/2) (/.f64 -2/3 x))
(/.f64 (/.f64 (neg.f64 x) (/.f64 1 (*.f64 x x))) (*.f64 x -1/3))
(/.f64 (/.f64 (neg.f64 x) (/.f64 2 (*.f64 x x))) (/.f64 x -6))
(/.f64 (/.f64 (*.f64 x 3) x) (/.f64 1 (*.f64 x x)))
(/.f64 (/.f64 (*.f64 x 3) 2) (/.f64 1/2 x))
(/.f64 (/.f64 (*.f64 x 3) (+.f64 x x)) (/.f64 1/2 (*.f64 x x)))
(/.f64 (/.f64 (*.f64 x 3) (/.f64 2 x)) 1/2)
(/.f64 (/.f64 (*.f64 x 3) (*.f64 (/.f64 1 x) 4)) 1/4)
(/.f64 (/.f64 (*.f64 x 3) 1/2) (/.f64 2 x))
(/.f64 (/.f64 (*.f64 x 3) (/.f64 1 (*.f64 x x))) x)
(/.f64 (/.f64 (*.f64 x 3) (/.f64 2 (*.f64 x x))) (/.f64 x 2))
(neg.f64 (*.f64 -3 (*.f64 x x)))
Outputs
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 -3 x) 0)
(*.f64 -3 x)
(+.f64 (neg.f64 x) (*.f64 x -2))
(*.f64 -3 x)
(+.f64 0 (*.f64 -3 x))
(*.f64 -3 x)
(+.f64 -1 (+.f64 (+.f64 (neg.f64 x) (-.f64 1 x)) (neg.f64 x)))
(*.f64 -3 x)
(+.f64 (-.f64 1 x) (+.f64 (+.f64 (neg.f64 x) -1) (neg.f64 x)))
(*.f64 -3 x)
(+.f64 (+.f64 (neg.f64 x) (-.f64 1 x)) (+.f64 (neg.f64 x) -1))
(*.f64 -3 x)
(+.f64 (*.f64 x -2) (neg.f64 x))
(*.f64 -3 x)
(-.f64 (*.f64 -3 x) 0)
(*.f64 -3 x)
(*.f64 -3 x)
(*.f64 1 (*.f64 -3 x))
(*.f64 -3 x)
(*.f64 x -3)
(*.f64 -3 x)
(*.f64 (*.f64 -3 x) 1)
(*.f64 -3 x)
(*.f64 (neg.f64 x) 3)
(*.f64 -3 x)
(*.f64 -1 (*.f64 x 3))
(*.f64 -3 x)
(*.f64 -1 (/.f64 x 1/3))
(*.f64 -3 x)
(*.f64 2 (/.f64 (*.f64 -3 x) 2))
(*.f64 -3 x)
(*.f64 2 (/.f64 x -2/3))
(*.f64 2 (+.f64 (neg.f64 x) (/.f64 (neg.f64 x) 2)))
(*.f64 -3 x)
(*.f64 2 (+.f64 (neg.f64 x) (/.f64 x -2)))
(*.f64 -3 x)
(*.f64 (+.f64 x x) -3/2)
(*.f64 -3 x)
(*.f64 (*.f64 x x) (/.f64 1/2 (/.f64 x -6)))
(*.f64 x (*.f64 x (/.f64 1/2 (/.f64 x -6))))
(*.f64 -2 (+.f64 x (/.f64 x 2)))
(*.f64 -3 x)
(*.f64 (*.f64 x 4) -3/4)
(*.f64 -3 x)
(*.f64 (*.f64 x -6) 1/2)
(*.f64 -3 x)
(*.f64 3 (neg.f64 x))
(*.f64 -3 x)
(*.f64 (*.f64 x -2) 3/2)
(*.f64 -3 x)
(*.f64 -3/2 (+.f64 x x))
(*.f64 -3 x)
(*.f64 -1/2 (/.f64 (+.f64 x x) 1/3))
(*.f64 1/2 (*.f64 x -6))
(*.f64 -3 x)
(*.f64 (/.f64 x 1/3) -1)
(*.f64 -3 x)
(*.f64 (/.f64 (+.f64 x x) 1/3) -1/2)
(*.f64 -1/2 (/.f64 (+.f64 x x) 1/3))
(*.f64 (/.f64 (*.f64 -3 x) 2) 2)
(*.f64 -3 x)
(*.f64 (/.f64 x -2/3) 2)
(*.f64 2 (/.f64 x -2/3))
(*.f64 (/.f64 1/2 (/.f64 x -6)) (*.f64 x x))
(*.f64 x (*.f64 x (/.f64 1/2 (/.f64 x -6))))
(*.f64 (*.f64 x x) (/.f64 1/2 (/.f64 x -6)))
(*.f64 -3/4 (*.f64 x 4))
(*.f64 -3 x)
(neg.f64 (*.f64 x 3))
(*.f64 -3 x)
(neg.f64 (/.f64 x 1/3))
(*.f64 -3 x)
(+.f64 (*.f64 x (*.f64 x 3)) 0)
(*.f64 x (*.f64 x 3))
(+.f64 0 (*.f64 x (*.f64 x 3)))
(*.f64 x (*.f64 x 3))
(-.f64 (*.f64 x (*.f64 x 3)) 0)
(*.f64 x (*.f64 x 3))
(/.f64 -3 (/.f64 (/.f64 -1 x) x))
(*.f64 x (*.f64 x 3))
(/.f64 1 (/.f64 (/.f64 1/3 x) x))
(*.f64 x (*.f64 x 3))
(/.f64 x (/.f64 1/3 x))
(*.f64 x (*.f64 x 3))
(/.f64 x (*.f64 -1 (/.f64 -1/3 x)))
(*.f64 x (*.f64 x 3))
(/.f64 x (neg.f64 (/.f64 -1/3 x)))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 -3 x) (/.f64 -1 x))
(*.f64 x (*.f64 x 3))
(/.f64 (neg.f64 x) (/.f64 -1/3 x))
(*.f64 x (*.f64 x 3))
(/.f64 (neg.f64 x) (/.f64 (neg.f64 (/.f64 -1/3 x)) -1))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 x (*.f64 x 3)) 1)
(*.f64 x (*.f64 x 3))
(/.f64 2 (/.f64 (/.f64 2/3 x) x))
(*.f64 x (*.f64 x 3))
(/.f64 2 (+.f64 (/.f64 (/.f64 1/3 x) x) (/.f64 (/.f64 1/3 x) x)))
(*.f64 x (*.f64 x 3))
(/.f64 (+.f64 x x) (*.f64 -2 (/.f64 -1/3 x)))
(*.f64 x (*.f64 x 3))
(/.f64 (+.f64 x x) (/.f64 2/3 x))
(*.f64 x (*.f64 x 3))
(/.f64 (+.f64 x x) (+.f64 (*.f64 -1 (/.f64 -1/3 x)) (*.f64 -1 (/.f64 -1/3 x))))
(*.f64 x (*.f64 x 3))
(/.f64 (+.f64 x x) (+.f64 (neg.f64 (/.f64 -1/3 x)) (neg.f64 (/.f64 -1/3 x))))
(*.f64 x (*.f64 x 3))
(/.f64 (+.f64 x x) (+.f64 (/.f64 1/3 x) (/.f64 1/3 x)))
(*.f64 x (*.f64 x 3))
(/.f64 (+.f64 x x) (-.f64 0 (/.f64 -2/3 x)))
(*.f64 x (*.f64 x 3))
(/.f64 -6 (/.f64 (/.f64 -2 x) x))
(*.f64 x (*.f64 x 3))
(/.f64 -6 (+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 (/.f64 -1 x) x)))
(*.f64 x (*.f64 x 3))
(/.f64 4 (+.f64 (/.f64 (/.f64 2/3 x) x) (/.f64 (/.f64 2/3 x) x)))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 x 4) (*.f64 (/.f64 -1/3 x) -4))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 x 4) (/.f64 4/3 x))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 x 4) (+.f64 (*.f64 -2 (/.f64 -1/3 x)) (*.f64 -2 (/.f64 -1/3 x))))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 x 4) (+.f64 (/.f64 2/3 x) (/.f64 2/3 x)))
(*.f64 x (/.f64 4 (+.f64 (/.f64 2/3 x) (/.f64 2/3 x))))
(/.f64 (*.f64 x 4) (*.f64 2 (/.f64 2/3 x)))
(*.f64 4 (/.f64 x (*.f64 2 (/.f64 2/3 x))))
(/.f64 (*.f64 x (*.f64 x 6)) 2)
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 x -6) (*.f64 2 (/.f64 -1 x)))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 x -6) (/.f64 -2 x))
(*.f64 x (*.f64 x 3))
(/.f64 -12 (+.f64 (/.f64 (/.f64 -2 x) x) (/.f64 (/.f64 -2 x) x)))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 x 3) (/.f64 1 x))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 x -4) (*.f64 2 (/.f64 -2/3 x)))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 x -4) (*.f64 4 (/.f64 -1/3 x)))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 2 (*.f64 x 4)) (+.f64 (*.f64 (/.f64 -1/3 x) -4) (*.f64 (/.f64 -1/3 x) -4)))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 2 (*.f64 x 4)) (+.f64 (/.f64 4/3 x) (/.f64 4/3 x)))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 (*.f64 -3 x) (*.f64 x -4)) 4)
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 -3 (*.f64 x x)) -1)
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 x -2) (/.f64 -2/3 x))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 -3 (*.f64 x 4)) (*.f64 2 (/.f64 -2 x)))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 -3 (*.f64 x 4)) (/.f64 -4 x))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 2 (*.f64 x -4)) (+.f64 (*.f64 4 (/.f64 -1/3 x)) (*.f64 4 (/.f64 -1/3 x))))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 x 6) (/.f64 2 x))
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 2 (*.f64 (*.f64 -3 x) (*.f64 x -4))) 8)
(*.f64 x (*.f64 x 3))
(/.f64 (*.f64 (*.f64 x 4) -6) (+.f64 (/.f64 -4 x) (/.f64 -4 x)))
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (+.f64 x x) (/.f64 -1/3 x)) -2)
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (*.f64 x 4) (/.f64 -1/3 x)) -4)
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (*.f64 x -4) (/.f64 -1/3 x)) 4)
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 x (/.f64 -1 x)) -1/3)
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (neg.f64 x) 2) (/.f64 (/.f64 1 x) -6))
(*.f64 x (*.f64 x 3))
(/.f64 (+.f64 (*.f64 -3 (*.f64 x x)) (*.f64 -3 (*.f64 x x))) -2)
(*.f64 x (*.f64 x 3))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 -3 x) (*.f64 x -4))) (*.f64 2 (*.f64 (*.f64 -3 x) (*.f64 x -4)))) 16)
(*.f64 x (*.f64 x 3))
(/.f64 (+.f64 (/.f64 (+.f64 x x) (/.f64 -1/3 x)) (/.f64 (+.f64 x x) (/.f64 -1/3 x))) -4)
(*.f64 x (*.f64 x 3))
(/.f64 (+.f64 (/.f64 (*.f64 x 4) (/.f64 -1/3 x)) (/.f64 (*.f64 x 4) (/.f64 -1/3 x))) -8)
(*.f64 x (*.f64 x 3))
(/.f64 (+.f64 (/.f64 (*.f64 x -4) (/.f64 -1/3 x)) (/.f64 (*.f64 x -4) (/.f64 -1/3 x))) 8)
(*.f64 x (*.f64 x 3))
(/.f64 (+.f64 (/.f64 x (/.f64 -1 x)) (/.f64 x (/.f64 -1 x))) -2/3)
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (*.f64 x -2) (/.f64 1 x)) -2/3)
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (*.f64 x -2) (/.f64 1 (*.f64 x x))) (/.f64 (+.f64 x x) -3))
(/.f64 -3 (/.f64 (+.f64 x x) (/.f64 (*.f64 x -2) (/.f64 1 (*.f64 x x)))))
(/.f64 -3 (/.f64 (neg.f64 x) (/.f64 x (/.f64 1 (*.f64 x x)))))
(/.f64 -3 (/.f64 (neg.f64 x) (/.f64 x (/.f64 (/.f64 1 x) x))))
(/.f64 -3 (/.f64 (neg.f64 x) (*.f64 x (*.f64 x x))))
(/.f64 (/.f64 (*.f64 x -2) (/.f64 2 (*.f64 x x))) (*.f64 x -1/3))
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (neg.f64 x) (/.f64 2 x)) -1/6)
(/.f64 (neg.f64 x) (*.f64 (/.f64 2 x) -1/6))
(/.f64 (/.f64 x 1/6) (/.f64 2 x))
(/.f64 x (/.f64 2 (/.f64 x 1/6)))
(/.f64 (/.f64 (neg.f64 x) -1/3) (/.f64 1 x))
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (neg.f64 x) 1/2) (/.f64 -2/3 x))
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (neg.f64 x) (/.f64 1 (*.f64 x x))) (*.f64 x -1/3))
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (neg.f64 x) (/.f64 2 (*.f64 x x))) (/.f64 x -6))
(/.f64 (neg.f64 x) (*.f64 (/.f64 (/.f64 2 x) x) (/.f64 x -6)))
(/.f64 (neg.f64 x) (*.f64 (/.f64 x -6) (/.f64 (/.f64 2 x) x)))
(/.f64 (*.f64 x x) (*.f64 (/.f64 x -6) (/.f64 -2 x)))
(/.f64 (/.f64 (*.f64 x 3) x) (/.f64 1 (*.f64 x x)))
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (*.f64 x 3) 2) (/.f64 1/2 x))
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (*.f64 x 3) (+.f64 x x)) (/.f64 1/2 (*.f64 x x)))
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (*.f64 x 3) (/.f64 2 x)) 1/2)
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (*.f64 x 3) (*.f64 (/.f64 1 x) 4)) 1/4)
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (*.f64 x 3) 1/2) (/.f64 2 x))
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (*.f64 x 3) (/.f64 1 (*.f64 x x))) x)
(*.f64 x (*.f64 x 3))
(/.f64 (/.f64 (*.f64 x 3) (/.f64 2 (*.f64 x x))) (/.f64 x 2))
(*.f64 x (*.f64 x 3))
(neg.f64 (*.f64 -3 (*.f64 x x)))
(*.f64 x (*.f64 x 3))

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (+.f64 x x) (*.f64 x (neg.f64 x)))
Compiler

Compiled 19 to 5 computations (73.7% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.f64 (+.f64 x x) (*.f64 x (neg.f64 x)))
0.0ms
x
@inf
(*.f64 (+.f64 x x) (*.f64 x (neg.f64 x)))
0.0ms
x
@-inf
(*.f64 (+.f64 x x) (*.f64 x (neg.f64 x)))

rewrite95.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
2106×bool.json-1
2106×bool.json-2
1084×rational.json-simplify-2
896×rational.json-1
896×rational.json-2
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0823
18523
225919
359819
4130119
5326819
6737219
Stop Event
node limit
Counts
1 → 12
Calls
Call 1
Inputs
(*.f64 (+.f64 x x) (*.f64 x (neg.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x (*.f64 x -2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 x (*.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 x (*.f64 x x))) (neg.f64 (*.f64 x (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 x (*.f64 x -2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x (*.f64 x -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) (*.f64 x -4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -2) (/.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -8 (*.f64 x (*.f64 x x))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 -8 (*.f64 x (*.f64 x x)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 x (*.f64 x x))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 x (*.f64 x x))))) (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 x (*.f64 x x)))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (*.f64 x (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 x (*.f64 x -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 x (*.f64 x -2))) (*.f64 x (*.f64 x (*.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 x (*.f64 x -2))) (*.f64 x (*.f64 x (*.f64 x -2))))))))

simplify111.0ms (0.7%)

Algorithm
egg-herbie
Rules
1272×rational.json-simplify-19
1000×rational.json-simplify-59
856×rational.json-simplify-1
816×rational.json-simplify-53
714×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045384
1111384
2250384
3709384
43227384
55543384
67847384
Stop Event
node limit
Counts
24 → 17
Calls
Call 1
Inputs
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 x (*.f64 x (*.f64 x -2))) 0)
(+.f64 0 (*.f64 x (*.f64 x (*.f64 x -2))))
(+.f64 (neg.f64 (*.f64 x (*.f64 x x))) (neg.f64 (*.f64 x (*.f64 x x))))
(-.f64 (*.f64 x (*.f64 x (*.f64 x -2))) 0)
(/.f64 (*.f64 x (*.f64 x (*.f64 x -2))) 1)
(/.f64 (*.f64 (*.f64 x x) (*.f64 x -4)) 2)
(/.f64 (*.f64 x -2) (/.f64 1 (*.f64 x x)))
(/.f64 (*.f64 -8 (*.f64 x (*.f64 x x))) 4)
(/.f64 (*.f64 2 (*.f64 -8 (*.f64 x (*.f64 x x)))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 x (*.f64 x x))))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 x (*.f64 x x))))) (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 x (*.f64 x x)))))) 32)
(neg.f64 (*.f64 x (*.f64 x (+.f64 x x))))
Outputs
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 x (*.f64 x (*.f64 x -2))) 0)
(*.f64 x (*.f64 x (*.f64 -2 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(*.f64 -2 (*.f64 x (*.f64 x x)))
(+.f64 0 (*.f64 x (*.f64 x (*.f64 x -2))))
(*.f64 x (*.f64 x (*.f64 -2 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(*.f64 -2 (*.f64 x (*.f64 x x)))
(+.f64 (neg.f64 (*.f64 x (*.f64 x x))) (neg.f64 (*.f64 x (*.f64 x x))))
(*.f64 x (*.f64 x (*.f64 -2 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(*.f64 -2 (*.f64 x (*.f64 x x)))
(-.f64 (*.f64 x (*.f64 x (*.f64 x -2))) 0)
(*.f64 x (*.f64 x (*.f64 -2 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(*.f64 -2 (*.f64 x (*.f64 x x)))
(/.f64 (*.f64 x (*.f64 x (*.f64 x -2))) 1)
(*.f64 x (*.f64 x (*.f64 -2 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(*.f64 -2 (*.f64 x (*.f64 x x)))
(/.f64 (*.f64 (*.f64 x x) (*.f64 x -4)) 2)
(*.f64 x (*.f64 x (*.f64 -2 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(*.f64 -2 (*.f64 x (*.f64 x x)))
(/.f64 (*.f64 x -2) (/.f64 1 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 -2 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(*.f64 -2 (*.f64 x (*.f64 x x)))
(/.f64 (*.f64 -8 (*.f64 x (*.f64 x x))) 4)
(*.f64 x (*.f64 x (*.f64 -2 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(*.f64 -2 (*.f64 x (*.f64 x x)))
(/.f64 (*.f64 2 (*.f64 -8 (*.f64 x (*.f64 x x)))) 8)
(*.f64 x (*.f64 x (*.f64 -2 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(*.f64 -2 (*.f64 x (*.f64 x x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 x (*.f64 x x))))) 16)
(*.f64 x (*.f64 x (*.f64 -2 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(*.f64 -2 (*.f64 x (*.f64 x x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 x (*.f64 x x))))) (*.f64 2 (*.f64 2 (*.f64 -8 (*.f64 x (*.f64 x x)))))) 32)
(*.f64 x (*.f64 x (*.f64 -2 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(*.f64 -2 (*.f64 x (*.f64 x x)))
(neg.f64 (*.f64 x (*.f64 x (+.f64 x x))))
(*.f64 x (*.f64 x (*.f64 -2 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(*.f64 -2 (*.f64 x (*.f64 x x)))

localize15.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (neg.f64 x) (/.f64 (+.f64 x x) (/.f64 1 x)))
0.1b
(/.f64 (+.f64 x x) (/.f64 1 x))
Compiler

Compiled 28 to 13 computations (53.6% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(/.f64 (+.f64 x x) (/.f64 1 x))
0.0ms
x
@inf
(/.f64 (+.f64 x x) (/.f64 1 x))
0.0ms
x
@inf
(*.f64 (neg.f64 x) (/.f64 (+.f64 x x) (/.f64 1 x)))
0.0ms
x
@-inf
(*.f64 (neg.f64 x) (/.f64 (+.f64 x x) (/.f64 1 x)))
0.0ms
x
@-inf
(/.f64 (+.f64 x x) (/.f64 1 x))

rewrite70.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
1380×rational.json-simplify-35
970×bool.json-1
970×bool.json-2
938×rational.json-1
938×rational.json-2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01048
111448
236636
395532
4316532
Stop Event
node limit
Counts
2 → 108
Calls
Call 1
Inputs
(/.f64 (+.f64 x x) (/.f64 1 x))
(*.f64 (neg.f64 x) (/.f64 (+.f64 x x) (/.f64 1 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x x) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 x (*.f64 x (/.f64 1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (*.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (*.f64 x x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (neg.f64 x) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 x 2) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (/.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 -1/2 (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (*.f64 x (/.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (fabs.f64 (*.f64 x (/.f64 2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 x (/.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 x -2) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 (neg.f64 x) 2) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 x 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 x 7)) (/.f64 1 (*.f64 (/.f64 1 x) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 x 7)) (*.f64 1/4 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 x 7)) (*.f64 -1/4 (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x x) -2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x -2) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x -4) (*.f64 x -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x -4) (*.f64 (neg.f64 x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -4 (*.f64 (neg.f64 x) (/.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (fabs.f64 (/.f64 (+.f64 x x) (/.f64 -1/2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 2 x)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (/.f64 (+.f64 x x) (/.f64 -1/2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 2) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 x) (fabs.f64 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 x) (fabs.f64 (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 x) (fabs.f64 (/.f64 x (*.f64 x (/.f64 1/2 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 x) (+.f64 (fabs.f64 x) (fabs.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x x) (/.f64 -1/2 x)) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (*.f64 x (/.f64 1/2 x))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 (/.f64 1 x) 4)) (+.f64 x (*.f64 x 7)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (+.f64 x x)) (fabs.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (/.f64 x 2)) (fabs.f64 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (*.f64 x 4)) (fabs.f64 (/.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (*.f64 x 4)) (fabs.f64 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (*.f64 x -2)) (fabs.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (+.f64 x (*.f64 x 7))) (fabs.f64 (/.f64 1 (*.f64 (/.f64 1 x) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (*.f64 x x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 x x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 x (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (+.f64 x x)) (*.f64 x (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (+.f64 x x)) (*.f64 x (+.f64 x x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (*.f64 x x) -2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 (*.f64 x x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 (*.f64 x x) -2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (/.f64 (/.f64 -1/2 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (*.f64 -1 (/.f64 (/.f64 1/2 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (neg.f64 (/.f64 (/.f64 1/2 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (*.f64 -2 (/.f64 (/.f64 1/2 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (/.f64 (/.f64 -1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (+.f64 (/.f64 (/.f64 -1/2 x) x) (/.f64 (/.f64 -1/2 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (+.f64 (neg.f64 (/.f64 (/.f64 1/2 x) x)) (neg.f64 (/.f64 (/.f64 1/2 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (+.f64 (*.f64 -1 (/.f64 (/.f64 1/2 x) x)) (*.f64 -1 (/.f64 (/.f64 1/2 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x x) (-.f64 0 (/.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (/.f64 (/.f64 1/2 x) x) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 x) (/.f64 (/.f64 1/2 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (*.f64 x x) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (/.f64 (/.f64 1 (*.f64 x x)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (+.f64 (/.f64 (/.f64 (/.f64 1/2 x) x) (neg.f64 x)) (/.f64 (/.f64 (/.f64 1/2 x) x) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4) (*.f64 (/.f64 (/.f64 1/2 x) x) -4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4) (/.f64 (/.f64 2 x) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4) (+.f64 (*.f64 -2 (/.f64 (/.f64 1/2 x) x)) (*.f64 -2 (/.f64 (/.f64 1/2 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4) (+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 (/.f64 -1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (+.f64 (/.f64 (/.f64 1 (*.f64 x x)) (neg.f64 x)) (/.f64 (/.f64 1 (*.f64 x x)) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 -4 (*.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x 4)) (*.f64 2 (/.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x 4)) (/.f64 -2 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 x 7)) (+.f64 (*.f64 (/.f64 (/.f64 1/2 x) x) -4) (*.f64 (/.f64 (/.f64 1/2 x) x) -4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 x 7)) (+.f64 (/.f64 (/.f64 2 x) (neg.f64 x)) (/.f64 (/.f64 2 x) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) -2) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -2) (/.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -4) (*.f64 (/.f64 1 x) (/.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -4) (*.f64 4 (/.f64 (/.f64 1/2 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) (*.f64 -4 (*.f64 x x))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x (+.f64 x x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (neg.f64 x)) (/.f64 1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 x x)) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) (*.f64 x 4)) (/.f64 -4 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) (*.f64 x 4)) (+.f64 (/.f64 -2 x) (/.f64 -2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -4 (*.f64 x x)) (/.f64 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x -4)) (+.f64 (*.f64 4 (/.f64 (/.f64 1/2 x) x)) (*.f64 4 (/.f64 (/.f64 1/2 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x 4) (*.f64 x 4)) (+.f64 (/.f64 -4 x) (/.f64 -4 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) (*.f64 x -4)) (*.f64 (/.f64 1 x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 -4 (*.f64 x x)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 x x) (/.f64 (/.f64 1/2 x) x)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x 4) (/.f64 (/.f64 1/2 x) x)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x -4) (/.f64 (/.f64 1/2 x) x)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x (*.f64 x (+.f64 x x))) (*.f64 x (*.f64 x (+.f64 x x)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 -4 (*.f64 x x)))) (*.f64 2 (*.f64 (+.f64 x x) (*.f64 -4 (*.f64 x x))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 (+.f64 x x) (/.f64 (/.f64 1/2 x) x)) (/.f64 (+.f64 x x) (/.f64 (/.f64 1/2 x) x))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 (*.f64 x 4) (/.f64 (/.f64 1/2 x) x)) (/.f64 (*.f64 x 4) (/.f64 (/.f64 1/2 x) x))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 (*.f64 x -4) (/.f64 (/.f64 1/2 x) x)) (/.f64 (*.f64 x -4) (/.f64 (/.f64 1/2 x) x))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 x (neg.f64 x))) (/.f64 -1/2 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 -4 (*.f64 x x))) (neg.f64 (/.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (*.f64 x (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 (*.f64 x x) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 (*.f64 x x) -2)) (*.f64 x (*.f64 (*.f64 x x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 (*.f64 x x) -2)) (*.f64 x (*.f64 (*.f64 x x) -2)))))))

simplify86.0ms (0.5%)

Algorithm
egg-herbie
Rules
1490×rational.json-simplify-35
1426×rational.json-simplify-49
1240×rational.json-simplify-43
1208×rational.json-simplify-46
778×rational.json-simplify-2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02312278
16692210
220192210
375152210
Stop Event
node limit
Counts
132 → 127
Calls
Call 1
Inputs
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(+.f64 0 (*.f64 x (+.f64 x x)))
(+.f64 (*.f64 x x) (*.f64 x x))
(+.f64 (*.f64 x (+.f64 x x)) 0)
(-.f64 (*.f64 x (+.f64 x x)) 0)
(*.f64 x (+.f64 x x))
(*.f64 x (/.f64 x (*.f64 x (/.f64 1/2 x))))
(*.f64 (+.f64 x x) x)
(*.f64 1 (*.f64 x (+.f64 x x)))
(*.f64 (neg.f64 x) (*.f64 x -2))
(*.f64 -1 (*.f64 (*.f64 x x) -2))
(*.f64 2 (*.f64 x x))
(*.f64 2 (*.f64 (neg.f64 x) (neg.f64 x)))
(*.f64 2 (*.f64 (/.f64 x 2) (+.f64 x x)))
(*.f64 (*.f64 x 4) (/.f64 x 2))
(*.f64 (*.f64 x 4) (*.f64 x 1/2))
(*.f64 (*.f64 x 4) (*.f64 -1/2 (neg.f64 x)))
(*.f64 (*.f64 x x) 2)
(*.f64 (*.f64 x x) (*.f64 x (/.f64 2 x)))
(*.f64 (*.f64 x x) (fabs.f64 (*.f64 x (/.f64 2 x))))
(*.f64 4 (*.f64 x (/.f64 x 2)))
(*.f64 4 (*.f64 (/.f64 x -2) (neg.f64 x)))
(*.f64 4 (*.f64 (/.f64 (neg.f64 x) 2) (neg.f64 x)))
(*.f64 -2 (*.f64 x (neg.f64 x)))
(*.f64 (*.f64 x (*.f64 x 4)) 1/2)
(*.f64 (+.f64 x (*.f64 x 7)) (/.f64 1 (*.f64 (/.f64 1 x) 4)))
(*.f64 (+.f64 x (*.f64 x 7)) (*.f64 1/4 x))
(*.f64 (+.f64 x (*.f64 x 7)) (*.f64 -1/4 (neg.f64 x)))
(*.f64 (*.f64 (*.f64 x x) -2) -1)
(*.f64 (*.f64 x -2) (neg.f64 x))
(*.f64 (*.f64 x -4) (*.f64 x -1/2))
(*.f64 (*.f64 x -4) (*.f64 (neg.f64 x) 1/2))
(*.f64 -4 (*.f64 (neg.f64 x) (/.f64 x 2)))
(*.f64 1/2 (*.f64 x (*.f64 x 4)))
(*.f64 1/2 (fabs.f64 (/.f64 (+.f64 x x) (/.f64 -1/2 x))))
(*.f64 (*.f64 x (/.f64 2 x)) (*.f64 x x))
(*.f64 (*.f64 x (+.f64 x x)) 1)
(*.f64 -1/2 (/.f64 (+.f64 x x) (/.f64 -1/2 x)))
(*.f64 (/.f64 x 2) (*.f64 x 4))
(*.f64 (fabs.f64 x) (fabs.f64 (+.f64 x x)))
(*.f64 (fabs.f64 x) (fabs.f64 (*.f64 x -2)))
(*.f64 (fabs.f64 x) (fabs.f64 (/.f64 x (*.f64 x (/.f64 1/2 x)))))
(*.f64 (fabs.f64 x) (+.f64 (fabs.f64 x) (fabs.f64 x)))
(*.f64 (*.f64 x 1/2) (*.f64 x 4))
(*.f64 (/.f64 (+.f64 x x) (/.f64 -1/2 x)) -1/2)
(*.f64 (/.f64 x (*.f64 x (/.f64 1/2 x))) x)
(*.f64 (/.f64 1 (*.f64 (/.f64 1 x) 4)) (+.f64 x (*.f64 x 7)))
(*.f64 (fabs.f64 (+.f64 x x)) (fabs.f64 x))
(*.f64 (fabs.f64 (/.f64 x 2)) (fabs.f64 (*.f64 x 4)))
(*.f64 (fabs.f64 (*.f64 x 4)) (fabs.f64 (/.f64 x 2)))
(*.f64 (fabs.f64 (*.f64 x 4)) (fabs.f64 (*.f64 x 1/2)))
(*.f64 (fabs.f64 (*.f64 x -2)) (fabs.f64 x))
(*.f64 (fabs.f64 (+.f64 x (*.f64 x 7))) (fabs.f64 (/.f64 1 (*.f64 (/.f64 1 x) 4))))
(neg.f64 (*.f64 (*.f64 x x) -2))
(fabs.f64 (*.f64 (*.f64 x x) -2))
(fabs.f64 (*.f64 x (+.f64 x x)))
(+.f64 (*.f64 x (*.f64 (*.f64 x x) -2)) 0)
(+.f64 0 (*.f64 x (*.f64 (*.f64 x x) -2)))
(-.f64 (*.f64 x (*.f64 (*.f64 x x) -2)) 0)
(/.f64 x (/.f64 (/.f64 -1/2 x) x))
(/.f64 x (*.f64 -1 (/.f64 (/.f64 1/2 x) x)))
(/.f64 x (neg.f64 (/.f64 (/.f64 1/2 x) x)))
(/.f64 (+.f64 x x) (*.f64 -2 (/.f64 (/.f64 1/2 x) x)))
(/.f64 (+.f64 x x) (/.f64 (/.f64 -1 x) x))
(/.f64 (+.f64 x x) (+.f64 (/.f64 (/.f64 -1/2 x) x) (/.f64 (/.f64 -1/2 x) x)))
(/.f64 (+.f64 x x) (+.f64 (neg.f64 (/.f64 (/.f64 1/2 x) x)) (neg.f64 (/.f64 (/.f64 1/2 x) x))))
(/.f64 (+.f64 x x) (+.f64 (*.f64 -1 (/.f64 (/.f64 1/2 x) x)) (*.f64 -1 (/.f64 (/.f64 1/2 x) x))))
(/.f64 (+.f64 x x) (-.f64 0 (/.f64 1 (*.f64 x x))))
(/.f64 1 (/.f64 (/.f64 (/.f64 1/2 x) x) (neg.f64 x)))
(/.f64 (neg.f64 x) (/.f64 (/.f64 1/2 x) x))
(/.f64 (*.f64 x (*.f64 (*.f64 x x) -2)) 1)
(/.f64 2 (/.f64 (/.f64 1 (*.f64 x x)) (neg.f64 x)))
(/.f64 2 (+.f64 (/.f64 (/.f64 (/.f64 1/2 x) x) (neg.f64 x)) (/.f64 (/.f64 (/.f64 1/2 x) x) (neg.f64 x))))
(/.f64 (*.f64 x 4) (*.f64 (/.f64 (/.f64 1/2 x) x) -4))
(/.f64 (*.f64 x 4) (/.f64 (/.f64 2 x) (neg.f64 x)))
(/.f64 (*.f64 x 4) (+.f64 (*.f64 -2 (/.f64 (/.f64 1/2 x) x)) (*.f64 -2 (/.f64 (/.f64 1/2 x) x))))
(/.f64 (*.f64 x 4) (+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 (/.f64 -1 x) x)))
(/.f64 4 (+.f64 (/.f64 (/.f64 1 (*.f64 x x)) (neg.f64 x)) (/.f64 (/.f64 1 (*.f64 x x)) (neg.f64 x))))
(/.f64 (*.f64 x (*.f64 -4 (*.f64 x x))) 2)
(/.f64 (*.f64 x (*.f64 x 4)) (*.f64 2 (/.f64 -1 x)))
(/.f64 (*.f64 x (*.f64 x 4)) (/.f64 -2 x))
(/.f64 (+.f64 x (*.f64 x 7)) (+.f64 (*.f64 (/.f64 (/.f64 1/2 x) x) -4) (*.f64 (/.f64 (/.f64 1/2 x) x) -4)))
(/.f64 (+.f64 x (*.f64 x 7)) (+.f64 (/.f64 (/.f64 2 x) (neg.f64 x)) (/.f64 (/.f64 2 x) (neg.f64 x))))
(/.f64 (*.f64 (*.f64 x x) -2) (/.f64 1 x))
(/.f64 (*.f64 x -2) (/.f64 1 (*.f64 x x)))
(/.f64 (*.f64 x -4) (*.f64 (/.f64 1 x) (/.f64 2 x)))
(/.f64 (*.f64 x -4) (*.f64 4 (/.f64 (/.f64 1/2 x) x)))
(/.f64 (*.f64 (+.f64 x x) (*.f64 -4 (*.f64 x x))) 4)
(/.f64 (*.f64 x (*.f64 x (+.f64 x x))) -1)
(/.f64 (*.f64 x (neg.f64 x)) (/.f64 1/2 x))
(/.f64 (*.f64 x (+.f64 x x)) (/.f64 -1 x))
(/.f64 (*.f64 (+.f64 x x) (*.f64 x 4)) (/.f64 -4 x))
(/.f64 (*.f64 (+.f64 x x) (*.f64 x 4)) (+.f64 (/.f64 -2 x) (/.f64 -2 x)))
(/.f64 (*.f64 -4 (*.f64 x x)) (/.f64 2 x))
(/.f64 (*.f64 2 (*.f64 x -4)) (+.f64 (*.f64 4 (/.f64 (/.f64 1/2 x) x)) (*.f64 4 (/.f64 (/.f64 1/2 x) x))))
(/.f64 (*.f64 (*.f64 x 4) (*.f64 x 4)) (+.f64 (/.f64 -4 x) (/.f64 -4 x)))
(/.f64 (*.f64 (+.f64 x x) (*.f64 x -4)) (*.f64 (/.f64 1 x) 4))
(/.f64 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 -4 (*.f64 x x)))) 8)
(/.f64 (/.f64 (+.f64 x x) (/.f64 (/.f64 1/2 x) x)) -2)
(/.f64 (/.f64 (*.f64 x 4) (/.f64 (/.f64 1/2 x) x)) -4)
(/.f64 (/.f64 (*.f64 x -4) (/.f64 (/.f64 1/2 x) x)) 4)
(/.f64 (+.f64 (*.f64 x (*.f64 x (+.f64 x x))) (*.f64 x (*.f64 x (+.f64 x x)))) -2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 -4 (*.f64 x x)))) (*.f64 2 (*.f64 (+.f64 x x) (*.f64 -4 (*.f64 x x))))) 16)
(/.f64 (+.f64 (/.f64 (+.f64 x x) (/.f64 (/.f64 1/2 x) x)) (/.f64 (+.f64 x x) (/.f64 (/.f64 1/2 x) x))) -4)
(/.f64 (+.f64 (/.f64 (*.f64 x 4) (/.f64 (/.f64 1/2 x) x)) (/.f64 (*.f64 x 4) (/.f64 (/.f64 1/2 x) x))) -8)
(/.f64 (+.f64 (/.f64 (*.f64 x -4) (/.f64 (/.f64 1/2 x) x)) (/.f64 (*.f64 x -4) (/.f64 (/.f64 1/2 x) x))) 8)
(/.f64 (neg.f64 (*.f64 x (neg.f64 x))) (/.f64 -1/2 x))
(/.f64 (neg.f64 (*.f64 -4 (*.f64 x x))) (neg.f64 (/.f64 2 x)))
(neg.f64 (*.f64 x (*.f64 x (+.f64 x x))))
Outputs
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 2 (pow.f64 x 2))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(*.f64 -2 (pow.f64 x 3))
(+.f64 0 (*.f64 x (+.f64 x x)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(+.f64 (*.f64 x x) (*.f64 x x))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(+.f64 (*.f64 x (+.f64 x x)) 0)
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(-.f64 (*.f64 x (+.f64 x x)) 0)
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 x (/.f64 x (*.f64 x (/.f64 1/2 x))))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (+.f64 x x) x)
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 1 (*.f64 x (+.f64 x x)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (neg.f64 x) (*.f64 x -2))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 -1 (*.f64 (*.f64 x x) -2))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 (neg.f64 x) (neg.f64 x)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 2 (*.f64 (/.f64 x 2) (+.f64 x x)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (*.f64 x 4) (/.f64 x 2))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (*.f64 x 4) (*.f64 x 1/2))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (*.f64 x 4) (*.f64 -1/2 (neg.f64 x)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (*.f64 x x) 2)
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (*.f64 x x) (*.f64 x (/.f64 2 x)))
(*.f64 x (*.f64 x (*.f64 x (/.f64 2 x))))
(*.f64 x (*.f64 (*.f64 x x) (/.f64 2 x)))
(*.f64 (*.f64 x x) (fabs.f64 (*.f64 x (/.f64 2 x))))
(*.f64 x (*.f64 x (fabs.f64 (*.f64 x (/.f64 2 x)))))
(fabs.f64 (*.f64 x (*.f64 (*.f64 x x) (/.f64 2 x))))
(*.f64 4 (*.f64 x (/.f64 x 2)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 4 (*.f64 (/.f64 x -2) (neg.f64 x)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 4 (*.f64 (/.f64 (neg.f64 x) 2) (neg.f64 x)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 -2 (*.f64 x (neg.f64 x)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (*.f64 x (*.f64 x 4)) 1/2)
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (+.f64 x (*.f64 x 7)) (/.f64 1 (*.f64 (/.f64 1 x) 4)))
(*.f64 (+.f64 x (*.f64 x 7)) (/.f64 1 (*.f64 4 (/.f64 1 x))))
(*.f64 (+.f64 x (*.f64 x 7)) (/.f64 x 4))
(*.f64 (+.f64 x (*.f64 x 7)) (*.f64 1/4 x))
(*.f64 (+.f64 x (*.f64 x 7)) (*.f64 x 1/4))
(*.f64 x (*.f64 (+.f64 x (*.f64 x 7)) 1/4))
(*.f64 (+.f64 x (*.f64 x 7)) (*.f64 -1/4 (neg.f64 x)))
(*.f64 (+.f64 x (*.f64 x 7)) (*.f64 x 1/4))
(*.f64 x (*.f64 (+.f64 x (*.f64 x 7)) 1/4))
(*.f64 (*.f64 (*.f64 x x) -2) -1)
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (*.f64 x -2) (neg.f64 x))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (*.f64 x -4) (*.f64 x -1/2))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (*.f64 x -4) (*.f64 (neg.f64 x) 1/2))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 -4 (*.f64 (neg.f64 x) (/.f64 x 2)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 1/2 (*.f64 x (*.f64 x 4)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 1/2 (fabs.f64 (/.f64 (+.f64 x x) (/.f64 -1/2 x))))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (*.f64 x (/.f64 2 x)) (*.f64 x x))
(*.f64 x (*.f64 x (*.f64 x (/.f64 2 x))))
(*.f64 x (*.f64 (*.f64 x x) (/.f64 2 x)))
(*.f64 (*.f64 x (+.f64 x x)) 1)
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 -1/2 (/.f64 (+.f64 x x) (/.f64 -1/2 x)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (/.f64 x 2) (*.f64 x 4))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (fabs.f64 x) (fabs.f64 (+.f64 x x)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (fabs.f64 x) (fabs.f64 (*.f64 x -2)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (fabs.f64 x) (fabs.f64 (/.f64 x (*.f64 x (/.f64 1/2 x)))))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (fabs.f64 x) (+.f64 (fabs.f64 x) (fabs.f64 x)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (*.f64 x 1/2) (*.f64 x 4))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (/.f64 (+.f64 x x) (/.f64 -1/2 x)) -1/2)
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (/.f64 x (*.f64 x (/.f64 1/2 x))) x)
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (/.f64 1 (*.f64 (/.f64 1 x) 4)) (+.f64 x (*.f64 x 7)))
(*.f64 (+.f64 x (*.f64 x 7)) (/.f64 1 (*.f64 4 (/.f64 1 x))))
(*.f64 (+.f64 x (*.f64 x 7)) (/.f64 x 4))
(*.f64 (fabs.f64 (+.f64 x x)) (fabs.f64 x))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (fabs.f64 (/.f64 x 2)) (fabs.f64 (*.f64 x 4)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (fabs.f64 (*.f64 x 4)) (fabs.f64 (/.f64 x 2)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (fabs.f64 (*.f64 x 4)) (fabs.f64 (*.f64 x 1/2)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (fabs.f64 (*.f64 x -2)) (fabs.f64 x))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(*.f64 (fabs.f64 (+.f64 x (*.f64 x 7))) (fabs.f64 (/.f64 1 (*.f64 (/.f64 1 x) 4))))
(fabs.f64 (*.f64 (+.f64 x (*.f64 x 7)) (/.f64 1 (*.f64 4 (/.f64 1 x)))))
(fabs.f64 (*.f64 (+.f64 x (*.f64 x 7)) (/.f64 x 4)))
(neg.f64 (*.f64 (*.f64 x x) -2))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(fabs.f64 (*.f64 (*.f64 x x) -2))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(fabs.f64 (*.f64 x (+.f64 x x)))
(*.f64 x (+.f64 x x))
(*.f64 2 (*.f64 x x))
(+.f64 (*.f64 x (*.f64 (*.f64 x x) -2)) 0)
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(+.f64 0 (*.f64 x (*.f64 (*.f64 x x) -2)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(-.f64 (*.f64 x (*.f64 (*.f64 x x) -2)) 0)
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 x (/.f64 (/.f64 -1/2 x) x))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 x (*.f64 -1 (/.f64 (/.f64 1/2 x) x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 x (neg.f64 (/.f64 (/.f64 1/2 x) x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (+.f64 x x) (*.f64 -2 (/.f64 (/.f64 1/2 x) x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (+.f64 x x) (/.f64 (/.f64 -1 x) x))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (+.f64 x x) (+.f64 (/.f64 (/.f64 -1/2 x) x) (/.f64 (/.f64 -1/2 x) x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (+.f64 x x) (+.f64 (neg.f64 (/.f64 (/.f64 1/2 x) x)) (neg.f64 (/.f64 (/.f64 1/2 x) x))))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (+.f64 x x) (+.f64 (*.f64 -1 (/.f64 (/.f64 1/2 x) x)) (*.f64 -1 (/.f64 (/.f64 1/2 x) x))))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (+.f64 x x) (-.f64 0 (/.f64 1 (*.f64 x x))))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 1 (/.f64 (/.f64 (/.f64 1/2 x) x) (neg.f64 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (neg.f64 x) (/.f64 (/.f64 1/2 x) x))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 x (*.f64 (*.f64 x x) -2)) 1)
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 2 (/.f64 (/.f64 1 (*.f64 x x)) (neg.f64 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 2 (+.f64 (/.f64 (/.f64 (/.f64 1/2 x) x) (neg.f64 x)) (/.f64 (/.f64 (/.f64 1/2 x) x) (neg.f64 x))))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 x 4) (*.f64 (/.f64 (/.f64 1/2 x) x) -4))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 x 4) (/.f64 (/.f64 2 x) (neg.f64 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 x 4) (+.f64 (*.f64 -2 (/.f64 (/.f64 1/2 x) x)) (*.f64 -2 (/.f64 (/.f64 1/2 x) x))))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 x 4) (+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 (/.f64 -1 x) x)))
(/.f64 (*.f64 x 4) (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 (*.f64 x x))))
(*.f64 x (/.f64 4 (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 (*.f64 x x)))))
(/.f64 4 (+.f64 (/.f64 (/.f64 1 (*.f64 x x)) (neg.f64 x)) (/.f64 (/.f64 1 (*.f64 x x)) (neg.f64 x))))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 x (*.f64 -4 (*.f64 x x))) 2)
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 x (*.f64 x 4)) (*.f64 2 (/.f64 -1 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 x (*.f64 x 4)) (/.f64 -2 x))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (+.f64 x (*.f64 x 7)) (+.f64 (*.f64 (/.f64 (/.f64 1/2 x) x) -4) (*.f64 (/.f64 (/.f64 1/2 x) x) -4)))
(/.f64 (+.f64 x (*.f64 x 7)) (+.f64 (*.f64 -4 (/.f64 1/2 (*.f64 x x))) (*.f64 -4 (/.f64 1/2 (*.f64 x x)))))
(/.f64 (+.f64 x (*.f64 x 7)) (*.f64 (/.f64 1/2 (*.f64 x x)) -8))
(/.f64 (+.f64 x (*.f64 x 7)) (+.f64 (/.f64 (/.f64 2 x) (neg.f64 x)) (/.f64 (/.f64 2 x) (neg.f64 x))))
(/.f64 (+.f64 x (*.f64 x 7)) (+.f64 (/.f64 (/.f64 -2 x) x) (/.f64 (/.f64 -2 x) x)))
(/.f64 (*.f64 (*.f64 x x) -2) (/.f64 1 x))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 x -2) (/.f64 1 (*.f64 x x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 x -4) (*.f64 (/.f64 1 x) (/.f64 2 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 x -4) (*.f64 4 (/.f64 (/.f64 1/2 x) x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 (+.f64 x x) (*.f64 -4 (*.f64 x x))) 4)
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 x (*.f64 x (+.f64 x x))) -1)
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 x (neg.f64 x)) (/.f64 1/2 x))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 x (+.f64 x x)) (/.f64 -1 x))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 (+.f64 x x) (*.f64 x 4)) (/.f64 -4 x))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 (+.f64 x x) (*.f64 x 4)) (+.f64 (/.f64 -2 x) (/.f64 -2 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 -4 (*.f64 x x)) (/.f64 2 x))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 2 (*.f64 x -4)) (+.f64 (*.f64 4 (/.f64 (/.f64 1/2 x) x)) (*.f64 4 (/.f64 (/.f64 1/2 x) x))))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 (*.f64 x 4) (*.f64 x 4)) (+.f64 (/.f64 -4 x) (/.f64 -4 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 (+.f64 x x) (*.f64 x -4)) (*.f64 (/.f64 1 x) 4))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 -4 (*.f64 x x)))) 8)
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (/.f64 (+.f64 x x) (/.f64 (/.f64 1/2 x) x)) -2)
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (/.f64 (*.f64 x 4) (/.f64 (/.f64 1/2 x) x)) -4)
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (/.f64 (*.f64 x -4) (/.f64 (/.f64 1/2 x) x)) 4)
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (+.f64 (*.f64 x (*.f64 x (+.f64 x x))) (*.f64 x (*.f64 x (+.f64 x x)))) -2)
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 -4 (*.f64 x x)))) (*.f64 2 (*.f64 (+.f64 x x) (*.f64 -4 (*.f64 x x))))) 16)
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (+.f64 (/.f64 (+.f64 x x) (/.f64 (/.f64 1/2 x) x)) (/.f64 (+.f64 x x) (/.f64 (/.f64 1/2 x) x))) -4)
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (+.f64 (/.f64 (*.f64 x 4) (/.f64 (/.f64 1/2 x) x)) (/.f64 (*.f64 x 4) (/.f64 (/.f64 1/2 x) x))) -8)
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (+.f64 (/.f64 (*.f64 x -4) (/.f64 (/.f64 1/2 x) x)) (/.f64 (*.f64 x -4) (/.f64 (/.f64 1/2 x) x))) 8)
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (neg.f64 (*.f64 x (neg.f64 x))) (/.f64 -1/2 x))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(/.f64 (neg.f64 (*.f64 -4 (*.f64 x x))) (neg.f64 (/.f64 2 x)))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))
(neg.f64 (*.f64 x (*.f64 x (+.f64 x x))))
(*.f64 x (*.f64 -2 (*.f64 x x)))
(*.f64 x (*.f64 x (*.f64 x -2)))

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (+.f64 x -3))
0.2b
(/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x))
0.3b
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
1.1b
(/.f64 2 (/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)))
Compiler

Compiled 52 to 33 computations (36.5% saved)

series2.0ms (0%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x))
0.0ms
x
@0
(/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x))
0.0ms
x
@inf
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
0.0ms
x
@0
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
0.0ms
x
@-inf
(/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x))

rewrite98.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1518×rational.json-simplify-35
962×bool.json-1
962×bool.json-2
936×rational.json-1
936×rational.json-2
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
013101
115095
259685
3257285
4772985
Stop Event
node limit
Counts
3 → 102
Calls
Call 1
Inputs
(/.f64 2 (/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x (+.f64 x -3)) (/.f64 x (/.f64 -2 x))) (*.f64 (+.f64 x (+.f64 x -3)) (/.f64 x (/.f64 -2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (/.f64 x (/.f64 -2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 2 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (/.f64 2 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (/.f64 1 (/.f64 2 (+.f64 x (+.f64 x -3)))) (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 (/.f64 -2 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x -3)) (/.f64 x (/.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x -3)) (*.f64 (/.f64 2 (/.f64 -2 (*.f64 x x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x -3)) (*.f64 (/.f64 x (/.f64 -1 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x -3)) (*.f64 (/.f64 1 (/.f64 2 x)) (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (*.f64 x (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (*.f64 x x) (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 x (/.f64 -2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (*.f64 1/2 (*.f64 x (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (/.f64 1 (/.f64 2 (+.f64 x (+.f64 x -3)))) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 -1/2 (*.f64 x (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 1/2 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x -2) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x -2) (*.f64 1/2 (*.f64 x (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)) (/.f64 1 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)) (*.f64 (/.f64 1 (/.f64 1 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (neg.f64 x)) (+.f64 x (+.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (/.f64 x (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (*.f64 (/.f64 x (/.f64 1 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x -3)) (/.f64 x (/.f64 -2 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 x)) (*.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (/.f64 -2 (*.f64 x x))) (+.f64 x (+.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3)))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (/.f64 1 x)) (neg.f64 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (/.f64 -1 x)) (+.f64 x (+.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 1 x)) (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (*.f64 x (+.f64 x (+.f64 x -3)))) (/.f64 1 (*.f64 x (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1 (*.f64 x (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 x) (/.f64 1 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 x) (*.f64 (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 2 x)) (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 2 x)) (*.f64 (/.f64 1 (*.f64 (+.f64 x (+.f64 x -3)) 4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 2 x)) (*.f64 (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 2 x)) (*.f64 1/2 (/.f64 1 (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (*.f64 (/.f64 2 (*.f64 x 4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 x (+.f64 x (+.f64 x -3)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (/.f64 2 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 x (+.f64 x -3))) (/.f64 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 x (+.f64 x -3))) (*.f64 (/.f64 1 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) (*.f64 2 (/.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (/.f64 2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (/.f64 2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 x) (neg.f64 (/.f64 1 (*.f64 x (+.f64 x (+.f64 x -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 x) (/.f64 (/.f64 -1 x) (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 x) (*.f64 (/.f64 -1 x) (/.f64 1 (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 2 x)) (/.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 2 x)) (*.f64 (/.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 2 x)) (*.f64 1/2 (/.f64 (/.f64 -1 x) (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 2 x)) (*.f64 (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) (/.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 2 x)) (*.f64 (/.f64 2 (*.f64 x -4)) (/.f64 1 (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))) (/.f64 2 (*.f64 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))) (*.f64 (/.f64 2 (*.f64 x -4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))) (*.f64 1/2 (/.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (/.f64 -1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -2 (*.f64 x x)) (/.f64 1 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 -1 x) (+.f64 x (+.f64 x -3))) (/.f64 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 x) (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 x (+.f64 x -3))) (/.f64 -2 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (*.f64 x x)) (/.f64 2 (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (*.f64 x -4)) (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x -4))) (*.f64 2 (/.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))) (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))) (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))))))))

simplify211.0ms (1.3%)

Algorithm
egg-herbie
Rules
1946×rational.json-simplify-35
1444×rational.json-simplify-2
1254×rational.json-simplify-54
970×rational.json-simplify-49
930×rational.json-simplify-43
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02614328
15894316
211884316
330394316
466794316
Stop Event
node limit
Counts
138 → 153
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(/.f64 -2/3 x)
(neg.f64 (+.f64 4/9 (*.f64 2/3 (/.f64 1 x))))
(-.f64 (*.f64 -8/27 x) (+.f64 4/9 (*.f64 2/3 (/.f64 1 x))))
(-.f64 (+.f64 (*.f64 -16/81 (pow.f64 x 2)) (*.f64 -8/27 x)) (+.f64 4/9 (*.f64 2/3 (/.f64 1 x))))
(/.f64 1 (pow.f64 x 2))
(+.f64 (/.f64 1 (pow.f64 x 2)) (*.f64 3/2 (/.f64 1 (pow.f64 x 3))))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (*.f64 9/4 (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 27/8 (/.f64 1 (pow.f64 x 5))) (*.f64 9/4 (/.f64 1 (pow.f64 x 4))))))
(/.f64 1 (pow.f64 x 2))
(+.f64 (/.f64 1 (pow.f64 x 2)) (*.f64 3/2 (/.f64 1 (pow.f64 x 3))))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (*.f64 9/4 (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 27/8 (/.f64 1 (pow.f64 x 5))) (*.f64 9/4 (/.f64 1 (pow.f64 x 4))))))
(/.f64 2/3 (pow.f64 x 2))
(+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 x 2))) (*.f64 4/9 (/.f64 1 x)))
(+.f64 8/27 (+.f64 (*.f64 4/9 (/.f64 1 x)) (*.f64 2/3 (/.f64 1 (pow.f64 x 2)))))
(+.f64 8/27 (+.f64 (*.f64 4/9 (/.f64 1 x)) (+.f64 (*.f64 16/81 x) (*.f64 2/3 (/.f64 1 (pow.f64 x 2))))))
(/.f64 -1 (pow.f64 x 3))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 4))) (/.f64 1 (pow.f64 x 3))))
(neg.f64 (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 5))) (+.f64 (/.f64 1 (pow.f64 x 3)) (*.f64 3/2 (/.f64 1 (pow.f64 x 4))))))
(neg.f64 (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 5))) (+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (*.f64 27/8 (/.f64 1 (pow.f64 x 6))) (*.f64 3/2 (/.f64 1 (pow.f64 x 4)))))))
(/.f64 -1 (pow.f64 x 3))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 4))) (/.f64 1 (pow.f64 x 3))))
(neg.f64 (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 5))) (+.f64 (/.f64 1 (pow.f64 x 3)) (*.f64 3/2 (/.f64 1 (pow.f64 x 4))))))
(neg.f64 (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 5))) (+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (*.f64 27/8 (/.f64 1 (pow.f64 x 6))) (*.f64 3/2 (/.f64 1 (pow.f64 x 4)))))))
(+.f64 0 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))
(+.f64 -1 (-.f64 1 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3))))))
(+.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 0)
(+.f64 (*.f64 (+.f64 x (+.f64 x -3)) (/.f64 x (/.f64 -2 x))) (*.f64 (+.f64 x (+.f64 x -3)) (/.f64 x (/.f64 -2 x))))
(-.f64 0 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(-.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 0)
(*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (/.f64 x (/.f64 -2 x))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (/.f64 2 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (/.f64 2 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3)))) 1))
(*.f64 x (*.f64 (/.f64 1 (/.f64 2 (+.f64 x (+.f64 x -3)))) (*.f64 x -2)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 (/.f64 -2 (*.f64 x x))))
(*.f64 (+.f64 x (+.f64 x -3)) (/.f64 x (/.f64 -1 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 (/.f64 2 (/.f64 -2 (*.f64 x x))) 1))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 (/.f64 x (/.f64 -1 x)) 1))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 (/.f64 1 (/.f64 2 x)) (*.f64 x -2)))
(*.f64 (neg.f64 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 1 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))
(*.f64 -1 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 -1 (*.f64 (*.f64 x x) (+.f64 x (+.f64 x -3))))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 x (/.f64 -2 x)))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (*.f64 1/2 (*.f64 x (neg.f64 x))))
(*.f64 (+.f64 x x) (*.f64 (/.f64 1 (/.f64 2 (+.f64 x (+.f64 x -3)))) (neg.f64 x)))
(*.f64 (+.f64 x x) (*.f64 -1/2 (*.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 (+.f64 x x) (*.f64 1/2 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))
(*.f64 (*.f64 x -2) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 x)))
(*.f64 (*.f64 x -2) (*.f64 1/2 (*.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (neg.f64 x))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)) x)
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)) (/.f64 1 (/.f64 1 x)))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)) (*.f64 (/.f64 1 (/.f64 1 x)) 1))
(*.f64 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))) -1)
(*.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 1)
(*.f64 (*.f64 x (neg.f64 x)) (+.f64 x (+.f64 x -3)))
(*.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (*.f64 x x))
(*.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (/.f64 x (/.f64 1 x)))
(*.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (*.f64 (/.f64 x (/.f64 1 x)) 1))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) (/.f64 x (/.f64 -2 x))) 2)
(*.f64 (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 x)) (*.f64 x -2))
(*.f64 (/.f64 2 (/.f64 -2 (*.f64 x x))) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 2 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3)))) x)
(*.f64 (/.f64 x (/.f64 1 x)) (neg.f64 (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 x (/.f64 -1 x)) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 1 (/.f64 1 x)) (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(neg.f64 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(+.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) 0)
(+.f64 0 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))))
(+.f64 (/.f64 1 (*.f64 x (+.f64 x (+.f64 x -3)))) (/.f64 1 (*.f64 x (+.f64 x (+.f64 x -3)))))
(-.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) 0)
(-.f64 0 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3))))
(*.f64 2 (/.f64 1 (*.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 (/.f64 2 x) (/.f64 1 (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 2 x) (*.f64 (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) 2))
(*.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) 1)
(*.f64 1 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))))
(*.f64 (*.f64 2 (/.f64 2 x)) (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))))
(*.f64 (*.f64 2 (/.f64 2 x)) (*.f64 (/.f64 1 (*.f64 (+.f64 x (+.f64 x -3)) 4)) 2))
(*.f64 (*.f64 2 (/.f64 2 x)) (*.f64 (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) 1))
(*.f64 (*.f64 2 (/.f64 2 x)) (*.f64 1/2 (/.f64 1 (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))) 1/2)
(*.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (/.f64 1 x))
(*.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (*.f64 (/.f64 2 (*.f64 x 4)) 2))
(*.f64 (/.f64 1 (*.f64 x (+.f64 x (+.f64 x -3)))) 2)
(*.f64 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3))) -1)
(*.f64 (/.f64 1 x) (/.f64 2 (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 1 (+.f64 x (+.f64 x -3))) (/.f64 2 x))
(*.f64 (/.f64 1 (+.f64 x (+.f64 x -3))) (*.f64 (/.f64 1 x) 2))
(*.f64 1/2 (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))))
(*.f64 (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) (*.f64 2 (/.f64 2 x)))
(neg.f64 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3))))
(+.f64 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))) 0)
(+.f64 0 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))))
(+.f64 -1 (-.f64 1 (/.f64 2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))))
(-.f64 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))) 0)
(-.f64 0 (/.f64 2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3))))))
(*.f64 (/.f64 2 x) (neg.f64 (/.f64 1 (*.f64 x (+.f64 x (+.f64 x -3))))))
(*.f64 (/.f64 2 x) (/.f64 (/.f64 -1 x) (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 2 x) (*.f64 (/.f64 -1 x) (/.f64 1 (+.f64 x (+.f64 x -3)))))
(*.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (/.f64 -1 x))
(*.f64 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))) 1)
(*.f64 1 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))))
(*.f64 (*.f64 2 (/.f64 2 x)) (/.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x -4))))
(*.f64 (*.f64 2 (/.f64 2 x)) (*.f64 (/.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x -4))) 1))
(*.f64 (*.f64 2 (/.f64 2 x)) (*.f64 1/2 (/.f64 (/.f64 -1 x) (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 2 (/.f64 2 x)) (*.f64 (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) (/.f64 -1 x)))
(*.f64 (*.f64 2 (/.f64 2 x)) (*.f64 (/.f64 2 (*.f64 x -4)) (/.f64 1 (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 2 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))) 1/2)
(*.f64 (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))) (/.f64 2 (*.f64 x -4)))
(*.f64 (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))) (*.f64 (/.f64 2 (*.f64 x -4)) 1))
(*.f64 (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))) (*.f64 1/2 (/.f64 -1 x)))
(*.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (/.f64 -1 (*.f64 x x)))
(*.f64 (/.f64 -2 (*.f64 x x)) (/.f64 1 (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3))))) -1)
(*.f64 (/.f64 (/.f64 -1 x) (+.f64 x (+.f64 x -3))) (/.f64 2 x))
(*.f64 (/.f64 -1 x) (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 1 (+.f64 x (+.f64 x -3))) (/.f64 -2 (*.f64 x x)))
(*.f64 1/2 (*.f64 2 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))))
(*.f64 (/.f64 -1 (*.f64 x x)) (/.f64 2 (+.f64 x (+.f64 x -3))))
(*.f64 (/.f64 2 (*.f64 x -4)) (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))))
(*.f64 (/.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x -4))) (*.f64 2 (/.f64 2 x)))
(neg.f64 (/.f64 2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3))))))
Outputs
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 -2 (pow.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(/.f64 -2/3 x)
(neg.f64 (+.f64 4/9 (*.f64 2/3 (/.f64 1 x))))
(-.f64 (*.f64 -8/27 x) (+.f64 4/9 (*.f64 2/3 (/.f64 1 x))))
(-.f64 (*.f64 x -8/27) (+.f64 4/9 (*.f64 2/3 (/.f64 1 x))))
(-.f64 (+.f64 (*.f64 -16/81 (pow.f64 x 2)) (*.f64 -8/27 x)) (+.f64 4/9 (*.f64 2/3 (/.f64 1 x))))
(+.f64 (*.f64 x -8/27) (-.f64 (*.f64 (pow.f64 x 2) -16/81) (+.f64 4/9 (*.f64 2/3 (/.f64 1 x)))))
(+.f64 (-.f64 (*.f64 x -8/27) (+.f64 4/9 (*.f64 2/3 (/.f64 1 x)))) (*.f64 (pow.f64 x 2) -16/81))
(-.f64 (+.f64 (*.f64 x -8/27) (*.f64 (pow.f64 x 2) -16/81)) (+.f64 4/9 (*.f64 2/3 (/.f64 1 x))))
(/.f64 1 (pow.f64 x 2))
(+.f64 (/.f64 1 (pow.f64 x 2)) (*.f64 3/2 (/.f64 1 (pow.f64 x 3))))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (*.f64 9/4 (/.f64 1 (pow.f64 x 4)))))
(+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 2)) (*.f64 9/4 (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 27/8 (/.f64 1 (pow.f64 x 5))) (*.f64 9/4 (/.f64 1 (pow.f64 x 4))))))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 4))) (*.f64 27/8 (/.f64 1 (pow.f64 x 5))))))
(+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 4))) (*.f64 27/8 (/.f64 1 (pow.f64 x 5))))))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (*.f64 9/4 (/.f64 1 (pow.f64 x 4)))) (*.f64 27/8 (/.f64 1 (pow.f64 x 5)))))
(/.f64 1 (pow.f64 x 2))
(+.f64 (/.f64 1 (pow.f64 x 2)) (*.f64 3/2 (/.f64 1 (pow.f64 x 3))))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (*.f64 9/4 (/.f64 1 (pow.f64 x 4)))))
(+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 2)) (*.f64 9/4 (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 27/8 (/.f64 1 (pow.f64 x 5))) (*.f64 9/4 (/.f64 1 (pow.f64 x 4))))))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 4))) (*.f64 27/8 (/.f64 1 (pow.f64 x 5))))))
(+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 4))) (*.f64 27/8 (/.f64 1 (pow.f64 x 5))))))
(+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 3))) (*.f64 9/4 (/.f64 1 (pow.f64 x 4)))) (*.f64 27/8 (/.f64 1 (pow.f64 x 5)))))
(/.f64 2/3 (pow.f64 x 2))
(+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 x 2))) (*.f64 4/9 (/.f64 1 x)))
(+.f64 8/27 (+.f64 (*.f64 4/9 (/.f64 1 x)) (*.f64 2/3 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (*.f64 4/9 (/.f64 1 x)) (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 x 2))) 8/27))
(+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 x 2))) (+.f64 8/27 (*.f64 4/9 (/.f64 1 x))))
(+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 x 2))) (+.f64 (*.f64 4/9 (/.f64 1 x)) 8/27))
(+.f64 8/27 (+.f64 (*.f64 4/9 (/.f64 1 x)) (+.f64 (*.f64 16/81 x) (*.f64 2/3 (/.f64 1 (pow.f64 x 2))))))
(+.f64 (*.f64 4/9 (/.f64 1 x)) (+.f64 (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 x 2))) (*.f64 x 16/81)) 8/27))
(+.f64 (*.f64 4/9 (/.f64 1 x)) (+.f64 8/27 (+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 x 2))) (*.f64 x 16/81))))
(+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 x 2))) (+.f64 (+.f64 (*.f64 4/9 (/.f64 1 x)) (*.f64 x 16/81)) 8/27))
(+.f64 (*.f64 2/3 (/.f64 1 (pow.f64 x 2))) (+.f64 8/27 (+.f64 (*.f64 4/9 (/.f64 1 x)) (*.f64 x 16/81))))
(/.f64 -1 (pow.f64 x 3))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 4))) (/.f64 1 (pow.f64 x 3))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (*.f64 3/2 (/.f64 1 (pow.f64 x 4)))))
(neg.f64 (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 5))) (+.f64 (/.f64 1 (pow.f64 x 3)) (*.f64 3/2 (/.f64 1 (pow.f64 x 4))))))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (/.f64 1 (pow.f64 x 3)) (*.f64 9/4 (/.f64 1 (pow.f64 x 5))))))
(neg.f64 (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 5))) (+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (*.f64 27/8 (/.f64 1 (pow.f64 x 6))) (*.f64 3/2 (/.f64 1 (pow.f64 x 4)))))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 4))) (*.f64 27/8 (/.f64 1 (pow.f64 x 6)))) (*.f64 9/4 (/.f64 1 (pow.f64 x 5))))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 5))) (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 4))) (*.f64 27/8 (/.f64 1 (pow.f64 x 6)))))))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 5))) (+.f64 (/.f64 1 (pow.f64 x 3)) (*.f64 27/8 (/.f64 1 (pow.f64 x 6)))))))
(/.f64 -1 (pow.f64 x 3))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 4))) (/.f64 1 (pow.f64 x 3))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (*.f64 3/2 (/.f64 1 (pow.f64 x 4)))))
(neg.f64 (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 5))) (+.f64 (/.f64 1 (pow.f64 x 3)) (*.f64 3/2 (/.f64 1 (pow.f64 x 4))))))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (/.f64 1 (pow.f64 x 3)) (*.f64 9/4 (/.f64 1 (pow.f64 x 5))))))
(neg.f64 (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 5))) (+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (*.f64 27/8 (/.f64 1 (pow.f64 x 6))) (*.f64 3/2 (/.f64 1 (pow.f64 x 4)))))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 4))) (*.f64 27/8 (/.f64 1 (pow.f64 x 6)))) (*.f64 9/4 (/.f64 1 (pow.f64 x 5))))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 5))) (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 4))) (*.f64 27/8 (/.f64 1 (pow.f64 x 6)))))))
(neg.f64 (+.f64 (*.f64 3/2 (/.f64 1 (pow.f64 x 4))) (+.f64 (*.f64 9/4 (/.f64 1 (pow.f64 x 5))) (+.f64 (/.f64 1 (pow.f64 x 3)) (*.f64 27/8 (/.f64 1 (pow.f64 x 6)))))))
(+.f64 0 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(+.f64 -1 (-.f64 1 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3))))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(+.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 0)
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(+.f64 (*.f64 (+.f64 x (+.f64 x -3)) (/.f64 x (/.f64 -2 x))) (*.f64 (+.f64 x (+.f64 x -3)) (/.f64 x (/.f64 -2 x))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(-.f64 0 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(-.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 0)
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (/.f64 x (/.f64 -2 x))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (/.f64 2 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (/.f64 2 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3)))) 1))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (/.f64 1 (/.f64 2 (+.f64 x (+.f64 x -3)))) (*.f64 x -2)))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 (/.f64 -2 (*.f64 x x))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (+.f64 x (+.f64 x -3)) (/.f64 x (/.f64 -1 x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 (/.f64 2 (/.f64 -2 (*.f64 x x))) 1))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 (/.f64 x (/.f64 -1 x)) 1))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 (/.f64 1 (/.f64 2 x)) (*.f64 x -2)))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (neg.f64 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 1 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 -1 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 -1 (*.f64 (*.f64 x x) (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (/.f64 x (/.f64 -2 x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (+.f64 -3 (+.f64 -3 (*.f64 x 4))) (*.f64 1/2 (*.f64 x (neg.f64 x))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (+.f64 x x) (*.f64 (/.f64 1 (/.f64 2 (+.f64 x (+.f64 x -3)))) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (+.f64 x x) (*.f64 -1/2 (*.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (+.f64 x x) (*.f64 1/2 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 x -2) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 x -2) (*.f64 1/2 (*.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 x (+.f64 x (+.f64 x -3))) (neg.f64 x))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)) x)
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)) (/.f64 1 (/.f64 1 x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)) (*.f64 (/.f64 1 (/.f64 1 x)) 1))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))) -1)
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x))) 1)
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 x (neg.f64 x)) (+.f64 x (+.f64 x -3)))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (*.f64 x x))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (/.f64 x (/.f64 1 x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (neg.f64 (+.f64 x (+.f64 x -3))) (*.f64 (/.f64 x (/.f64 1 x)) 1))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (*.f64 (+.f64 x (+.f64 x -3)) (/.f64 x (/.f64 -2 x))) 2)
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 2 x)) (*.f64 x -2))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (/.f64 2 (/.f64 -2 (*.f64 x x))) (+.f64 x (+.f64 x -3)))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (/.f64 2 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3)))) x)
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (/.f64 x (/.f64 1 x)) (neg.f64 (+.f64 x (+.f64 x -3))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (/.f64 x (/.f64 -1 x)) (+.f64 x (+.f64 x -3)))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(*.f64 (/.f64 1 (/.f64 1 x)) (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(neg.f64 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(*.f64 x (*.f64 (+.f64 x (+.f64 x -3)) (neg.f64 x)))
(*.f64 x (*.f64 x (neg.f64 (+.f64 x (+.f64 x -3)))))
(+.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) 0)
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(+.f64 0 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(+.f64 (/.f64 1 (*.f64 x (+.f64 x (+.f64 x -3)))) (/.f64 1 (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(-.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) 0)
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(-.f64 0 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3))))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 2 (/.f64 1 (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 2 x) (/.f64 1 (+.f64 x (+.f64 x -3))))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 2 x) (*.f64 (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) 2))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) 1)
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 1 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 2 (/.f64 2 x)) (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 2 (/.f64 2 x)) (*.f64 (/.f64 1 (*.f64 (+.f64 x (+.f64 x -3)) 4)) 2))
(*.f64 (*.f64 2 (/.f64 2 x)) (*.f64 2 (/.f64 1 (*.f64 4 (+.f64 x (+.f64 x -3))))))
(*.f64 (/.f64 1/4 (+.f64 x (+.f64 x -3))) (*.f64 (/.f64 2 x) 4))
(*.f64 (/.f64 2 x) (*.f64 4 (/.f64 1/4 (+.f64 x (+.f64 x -3)))))
(*.f64 2 (*.f64 (/.f64 4 x) (/.f64 1/2 (+.f64 (*.f64 x 4) -6))))
(*.f64 (*.f64 2 (/.f64 2 x)) (*.f64 (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) 1))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 2 (/.f64 2 x)) (*.f64 1/2 (/.f64 1 (+.f64 x (+.f64 x -3)))))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))) 1/2)
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (/.f64 1 x))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (*.f64 (/.f64 2 (*.f64 x 4)) 2))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 1 (*.f64 x (+.f64 x (+.f64 x -3)))) 2)
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3))) -1)
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 1 x) (/.f64 2 (+.f64 x (+.f64 x -3))))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 1 (+.f64 x (+.f64 x -3))) (/.f64 2 x))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 1 (+.f64 x (+.f64 x -3))) (*.f64 (/.f64 1 x) 2))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 1/2 (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) (*.f64 2 (/.f64 2 x)))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(neg.f64 (/.f64 (/.f64 -2 x) (+.f64 x (+.f64 x -3))))
(/.f64 2 (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 4 (*.f64 x (+.f64 (*.f64 x 4) -6)))
(/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))
(+.f64 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))) 0)
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(+.f64 0 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(+.f64 -1 (-.f64 1 (/.f64 2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(-.f64 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))) 0)
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(-.f64 0 (/.f64 2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3))))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 2 x) (neg.f64 (/.f64 1 (*.f64 x (+.f64 x (+.f64 x -3))))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 2 x) (/.f64 (/.f64 -1 x) (+.f64 x (+.f64 x -3))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 2 x) (*.f64 (/.f64 -1 x) (/.f64 1 (+.f64 x (+.f64 x -3)))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (/.f64 -1 x))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))) 1)
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 1 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 2 (/.f64 2 x)) (/.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x -4))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 2 (/.f64 2 x)) (*.f64 (/.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x -4))) 1))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 2 (/.f64 2 x)) (*.f64 1/2 (/.f64 (/.f64 -1 x) (+.f64 x (+.f64 x -3)))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 2 (/.f64 2 x)) (*.f64 (/.f64 1 (+.f64 -3 (+.f64 -3 (*.f64 x 4)))) (/.f64 -1 x)))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 2 (/.f64 2 x)) (*.f64 (/.f64 2 (*.f64 x -4)) (/.f64 1 (+.f64 x (+.f64 x -3)))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 2 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))) 1/2)
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))) (/.f64 2 (*.f64 x -4)))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))) (*.f64 (/.f64 2 (*.f64 x -4)) 1))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))) (*.f64 1/2 (/.f64 -1 x)))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 2 (+.f64 x (+.f64 x -3))) (/.f64 -1 (*.f64 x x)))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 -2 (*.f64 x x)) (/.f64 1 (+.f64 x (+.f64 x -3))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3))))) -1)
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 (/.f64 -1 x) (+.f64 x (+.f64 x -3))) (/.f64 2 x))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 -1 x) (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 1 (+.f64 x (+.f64 x -3))) (/.f64 -2 (*.f64 x x)))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 1/2 (*.f64 2 (/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 -1 (*.f64 x x)) (/.f64 2 (+.f64 x (+.f64 x -3))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 2 (*.f64 x -4)) (*.f64 2 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3)))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(*.f64 (/.f64 2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x -4))) (*.f64 2 (/.f64 2 x)))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))
(neg.f64 (/.f64 2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3))))))
(/.f64 -2 (*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x x)))
(/.f64 -2 (*.f64 x (*.f64 x (+.f64 x (+.f64 x -3)))))
(/.f64 (/.f64 -2 x) (*.f64 x (+.f64 x (+.f64 x -3))))
(/.f64 (/.f64 -2 (*.f64 x x)) (+.f64 x (+.f64 x -3)))

eval366.0ms (2.2%)

Compiler

Compiled 8118 to 5522 computations (32% saved)

prune193.0ms (1.2%)

Pruning

17 alts after pruning (9 fresh and 8 done)

PrunedKeptTotal
New5918599
Fresh011
Picked101
Done4812
Total59617613
Error
0b
Counts
613 → 17
Alt Table
Click to see full alt table
StatusErrorProgram
18.7b
(/.f64 (/.f64 x 1/6) (/.f64 2 x))
23.7b
(/.f64 (*.f64 x (neg.f64 x)) (/.f64 1/2 x))
18.6b
(/.f64 (*.f64 x 6) (/.f64 2 x))
23.7b
(/.f64 (*.f64 x -2) (/.f64 1 (*.f64 x x)))
23.7b
(/.f64 x (/.f64 (/.f64 -1/2 x) x))
0.2b
(/.f64 x (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x))
18.6b
(/.f64 x (/.f64 1/3 x))
23.7b
(/.f64 2 (/.f64 (/.f64 1 (*.f64 x x)) (neg.f64 x)))
0.2b
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
37.5b
(*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (/.f64 1 (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))
0.2b
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
23.7b
(*.f64 (*.f64 -2 x) (*.f64 x x))
18.6b
(*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x)))
0.2b
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
18.6b
(*.f64 x (*.f64 3 x))
18.6b
(*.f64 3 (*.f64 x x))
23.6b
(*.f64 -2 (pow.f64 x 3))
Compiler

Compiled 158 to 106 computations (32.9% saved)

regimes28.0ms (0.2%)

Counts
27 → 1
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(/.f64 x (/.f64 1/3 x))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(/.f64 x (/.f64 (/.f64 -1/2 x) x))
(/.f64 (*.f64 x 6) (/.f64 2 x))
(/.f64 (/.f64 x 1/6) (/.f64 2 x))
(*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x)))
(*.f64 (+.f64 x x) (*.f64 x (neg.f64 x)))
(/.f64 (*.f64 x (neg.f64 x)) (/.f64 1/2 x))
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
(/.f64 (*.f64 x -2) (/.f64 1 (*.f64 x x)))
(*.f64 (neg.f64 x) (/.f64 (+.f64 x x) (/.f64 1 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(/.f64 2 (/.f64 (/.f64 1 (*.f64 x x)) (neg.f64 x)))
(/.f64 x (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x))
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 1 x) x))
(*.f64 (neg.f64 x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x)))
(/.f64 2 (/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)))
(*.f64 (*.f64 x (/.f64 1 x)) (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))
(*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (/.f64 1 (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))
(*.f64 -2 (pow.f64 x 3))
(*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(/.f64 (*.f64 (-.f64 3 (+.f64 x x)) (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
Outputs
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
Calls

2 calls:

13.0ms
x
9.0ms
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
Results
ErrorSegmentsBranch
0.1b1x
0.1b1(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
Compiler

Compiled 270 to 152 computations (43.7% saved)

regimes25.0ms (0.2%)

Counts
25 → 1
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(/.f64 x (/.f64 1/3 x))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(/.f64 x (/.f64 (/.f64 -1/2 x) x))
(/.f64 (*.f64 x 6) (/.f64 2 x))
(/.f64 (/.f64 x 1/6) (/.f64 2 x))
(*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x)))
(*.f64 (+.f64 x x) (*.f64 x (neg.f64 x)))
(/.f64 (*.f64 x (neg.f64 x)) (/.f64 1/2 x))
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
(/.f64 (*.f64 x -2) (/.f64 1 (*.f64 x x)))
(*.f64 (neg.f64 x) (/.f64 (+.f64 x x) (/.f64 1 x)))
(*.f64 (+.f64 x (+.f64 x -3)) (*.f64 x (neg.f64 x)))
(/.f64 2 (/.f64 (/.f64 1 (*.f64 x x)) (neg.f64 x)))
(/.f64 x (/.f64 (/.f64 -1 (+.f64 x (+.f64 x -3))) x))
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 1 (*.f64 x x)))
(/.f64 (-.f64 3 (+.f64 x x)) (/.f64 (/.f64 1 x) x))
(*.f64 (neg.f64 x) (/.f64 (+.f64 x (+.f64 x -3)) (/.f64 1 x)))
(/.f64 2 (/.f64 (/.f64 (/.f64 2 x) (+.f64 x (+.f64 x -3))) (neg.f64 x)))
(*.f64 (*.f64 x (/.f64 1 x)) (*.f64 (-.f64 3 (+.f64 x x)) (*.f64 x x)))
(*.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (/.f64 1 (/.f64 (*.f64 x x) (-.f64 3 (+.f64 x x)))))
(*.f64 -2 (pow.f64 x 3))
(*.f64 x (+.f64 (*.f64 (pow.f64 x 2) -2) (*.f64 3 x)))
Outputs
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
Calls

2 calls:

11.0ms
x
7.0ms
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
Results
ErrorSegmentsBranch
0.2b1x
0.2b1(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
Compiler

Compiled 246 to 136 computations (44.7% saved)

regimes9.0ms (0.1%)

Counts
11 → 1
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(/.f64 x (/.f64 1/3 x))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(/.f64 x (/.f64 (/.f64 -1/2 x) x))
(/.f64 (*.f64 x 6) (/.f64 2 x))
(/.f64 (/.f64 x 1/6) (/.f64 2 x))
(*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x)))
(*.f64 (+.f64 x x) (*.f64 x (neg.f64 x)))
(/.f64 (*.f64 x (neg.f64 x)) (/.f64 1/2 x))
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
Outputs
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
Calls

1 calls:

6.0ms
x
Results
ErrorSegmentsBranch
0.2b1x
Compiler

Compiled 79 to 46 computations (41.8% saved)

regimes20.0ms (0.1%)

Counts
10 → 3
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(/.f64 x (/.f64 1/3 x))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(/.f64 x (/.f64 (/.f64 -1/2 x) x))
(/.f64 (*.f64 x 6) (/.f64 2 x))
(/.f64 (/.f64 x 1/6) (/.f64 2 x))
(*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x)))
(*.f64 (+.f64 x x) (*.f64 x (neg.f64 x)))
(/.f64 (*.f64 x (neg.f64 x)) (/.f64 1/2 x))
Outputs
(*.f64 (*.f64 -2 x) (*.f64 x x))
(*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x)))
(/.f64 (*.f64 x (neg.f64 x)) (/.f64 1/2 x))
Calls

1 calls:

17.0ms
x
Results
ErrorSegmentsBranch
2.2b3x
Compiler

Compiled 70 to 40 computations (42.9% saved)

bsearch28.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
0.6682571328058488
118946119.58447859
14.0ms
-4.741394654669656
-3.945551016322292e-5
Results
25.0ms288×body256valid
Compiler

Compiled 365 to 271 computations (25.8% saved)

regimes18.0ms (0.1%)

Counts
9 → 3
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(/.f64 x (/.f64 1/3 x))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(/.f64 x (/.f64 (/.f64 -1/2 x) x))
(/.f64 (*.f64 x 6) (/.f64 2 x))
(/.f64 (/.f64 x 1/6) (/.f64 2 x))
(*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x)))
(*.f64 (+.f64 x x) (*.f64 x (neg.f64 x)))
Outputs
(*.f64 (*.f64 -2 x) (*.f64 x x))
(*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x)))
(*.f64 (*.f64 -2 x) (*.f64 x x))
Calls

1 calls:

17.0ms
x
Results
ErrorSegmentsBranch
2.2b3x
Compiler

Compiled 62 to 37 computations (40.3% saved)

bsearch29.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
0.6682571328058488
118946119.58447859
14.0ms
-4.741394654669656
-3.945551016322292e-5
Results
25.0ms288×body256valid
Compiler

Compiled 356 to 262 computations (26.4% saved)

regimes17.0ms (0.1%)

Counts
7 → 3
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(/.f64 x (/.f64 1/3 x))
(*.f64 (*.f64 -2 x) (*.f64 x x))
(/.f64 x (/.f64 (/.f64 -1/2 x) x))
(/.f64 (*.f64 x 6) (/.f64 2 x))
(/.f64 (/.f64 x 1/6) (/.f64 2 x))
Outputs
(*.f64 (*.f64 -2 x) (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 (*.f64 -2 x) (*.f64 x x))
Calls

1 calls:

16.0ms
x
Results
ErrorSegmentsBranch
2.2b3x
Compiler

Compiled 46 to 28 computations (39.1% saved)

bsearch27.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
0.6682571328058488
118946119.58447859
13.0ms
-4.741394654669656
-3.945551016322292e-5
Results
24.0ms288×body256valid
Compiler

Compiled 302 to 208 computations (31.1% saved)

regimes4.0ms (0%)

Accuracy

Total -0.1b remaining (-0.8%)

Threshold costs -0.1b (-0.8%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(/.f64 x (/.f64 1/3 x))
Outputs
(*.f64 x (*.f64 3 x))
Calls

1 calls:

3.0ms
x
Results
ErrorSegmentsBranch
18.6b1x
Compiler

Compiled 18 to 11 computations (38.9% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046338
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
(if (<=.f64 x -3/2) (*.f64 (*.f64 -2 x) (*.f64 x x)) (if (<=.f64 x 3/2) (*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x))) (/.f64 (*.f64 x (neg.f64 x)) (/.f64 1/2 x))))
(if (<=.f64 x -3/2) (*.f64 (*.f64 -2 x) (*.f64 x x)) (if (<=.f64 x 3/2) (*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x))) (*.f64 (*.f64 -2 x) (*.f64 x x))))
(if (<=.f64 x -3/2) (*.f64 (*.f64 -2 x) (*.f64 x x)) (if (<=.f64 x 3/2) (*.f64 x (*.f64 3 x)) (*.f64 (*.f64 -2 x) (*.f64 x x))))
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))
Outputs
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -2 (pow.f64 x 3)))
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
(if (<=.f64 x -3/2) (*.f64 (*.f64 -2 x) (*.f64 x x)) (if (<=.f64 x 3/2) (*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x))) (/.f64 (*.f64 x (neg.f64 x)) (/.f64 1/2 x))))
(if (<=.f64 x -3/2) (*.f64 (*.f64 -2 x) (*.f64 x x)) (if (<=.f64 x 3/2) (*.f64 (neg.f64 x) (/.f64 -3 (/.f64 1 x))) (*.f64 (*.f64 -2 x) (*.f64 x x))))
(if (<=.f64 x -3/2) (*.f64 (*.f64 -2 x) (*.f64 x x)) (if (<=.f64 x 3/2) (*.f64 x (*.f64 3 x)) (*.f64 (*.f64 -2 x) (*.f64 x x))))
(*.f64 x (*.f64 3 x))
(*.f64 3 (*.f64 x x))
Compiler

Compiled 135 to 90 computations (33.3% saved)

soundness248.0ms (1.5%)

Algorithm
egg-herbie
Rules
1812×rational.json-simplify-35
1350×rational.json-simplify-53
1028×rational.json-simplify-39
866×rational.json-simplify-59
602×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0925
11325
21925
34125
419525
5198525
6594025
7781425
Stop Event
node limit
Compiler

Compiled 28 to 18 computations (35.7% saved)

end63.0ms (0.4%)

Compiler

Compiled 128 to 78 computations (39.1% saved)

Profiling

Loading profile data...