Details

Time bar (total: 10.6s)

analyze463.0ms (4.4%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%99.8%0.2%0%0%0%1
0%0%99.8%0.2%0%0%0%2
0%0%99.8%0.2%0%0%0%3
0%0%99.8%0.2%0%0%0%4
0%0%99.8%0.2%0%0%0%5
0%0%99.8%0.2%0%0%0%6
0%0%99.8%0.2%0%0%0%7
0%0%99.8%0.2%0%0%0%8
6.3%6.2%93.6%0.2%0%0%0%9
9.4%9.4%90.4%0.2%0%0%0%10
12.7%12.5%85.8%0.2%1.6%0%0%11
17.7%17.2%79.9%0.2%2.7%0%0%12
Compiler

Compiled 14 to 9 computations (35.7% saved)

sample2.1s (20%)

Results
1.7s8256×body256valid
408.0ms2449×body256infinite
Bogosity

preprocess6.0ms (0.1%)

Algorithm
egg-herbie
Rules
72×rational.json-simplify-2
24×rational.json-simplify-43
14×rational.json-simplify-52
swap-y-t
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
029175
141133
254133
371133
487133
593133
044
144
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
3
Outputs
0
1
2
3
1
Call 2
Inputs
(*.f64 (-.f64 (*.f64 x y) (*.f64 z y)) t)
(*.f64 (-.f64 (*.f64 y x) (*.f64 z x)) t)
(*.f64 (-.f64 (*.f64 z y) (*.f64 x y)) t)
(*.f64 (-.f64 (*.f64 t y) (*.f64 z y)) x)
(*.f64 (-.f64 (*.f64 x z) (*.f64 y z)) t)
(*.f64 (-.f64 (*.f64 x t) (*.f64 z t)) y)
(*.f64 (-.f64 (*.f64 x y) (*.f64 t y)) z)
Outputs
(*.f64 (-.f64 (*.f64 x y) (*.f64 z y)) t)
(*.f64 (-.f64 (*.f64 x y) (*.f64 y z)) t)
(*.f64 (*.f64 y (-.f64 x z)) t)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 (*.f64 y x) (*.f64 z x)) t)
(*.f64 t (-.f64 (*.f64 x y) (*.f64 x z)))
(*.f64 t (*.f64 x (-.f64 y z)))
(*.f64 x (*.f64 (-.f64 y z) t))
(*.f64 x (*.f64 t (-.f64 y z)))
(*.f64 (-.f64 (*.f64 z y) (*.f64 x y)) t)
(*.f64 t (-.f64 (*.f64 y z) (*.f64 x y)))
(*.f64 t (*.f64 y (-.f64 z x)))
(*.f64 y (*.f64 (-.f64 z x) t))
(*.f64 y (*.f64 t (-.f64 z x)))
(*.f64 (-.f64 (*.f64 t y) (*.f64 z y)) x)
(*.f64 x (-.f64 (*.f64 y t) (*.f64 y z)))
(*.f64 x (*.f64 y (-.f64 t z)))
(*.f64 (-.f64 (*.f64 x z) (*.f64 y z)) t)
(*.f64 t (-.f64 (*.f64 x z) (*.f64 y z)))
(*.f64 t (*.f64 z (-.f64 x y)))
(*.f64 z (*.f64 (-.f64 x y) t))
(*.f64 (-.f64 x y) (*.f64 z t))
(*.f64 (*.f64 z t) (-.f64 x y))
(*.f64 (-.f64 (*.f64 x t) (*.f64 z t)) y)
(*.f64 (-.f64 (*.f64 x y) (*.f64 y z)) t)
(*.f64 (*.f64 y (-.f64 x z)) t)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 (*.f64 x y) (*.f64 t y)) z)
(*.f64 z (-.f64 (*.f64 x y) (*.f64 y t)))
(*.f64 z (*.f64 y (-.f64 x t)))
(*.f64 y (*.f64 (-.f64 x t) z))
(*.f64 y (*.f64 z (-.f64 x t)))
Symmetry

(sort y t)

Compiler

Compiled 17 to 12 computations (29.4% saved)

simplify33.0ms (0.3%)

Algorithm
egg-herbie
Rules
16×rational.json-simplify-2
rational.json-simplify-43
rational.json-simplify-52
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01025
11319
21519
31819
42419
52519
Stop Event
saturated
Counts
1 → 5
Calls
Call 1
Inputs
(*.f64 (-.f64 (*.f64 x y) (*.f64 z y)) t)
Outputs
(*.f64 (-.f64 (*.f64 x y) (*.f64 z y)) t)
(*.f64 (-.f64 (*.f64 x y) (*.f64 y z)) t)
(*.f64 (*.f64 y (-.f64 x z)) t)
(*.f64 y (*.f64 (-.f64 x z) t))
(*.f64 y (*.f64 t (-.f64 x z)))

eval1.0ms (0%)

Compiler

Compiled 43 to 18 computations (58.1% saved)

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New325
Fresh101
Picked000
Done000
Total426
Error
0.1b
Counts
6 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
5.7b
(*.f64 (*.f64 y (-.f64 x z)) t)
7.0b
(*.f64 y (*.f64 (-.f64 x z) t))
Compiler

Compiled 22 to 14 computations (36.4% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 x z) t)
6.6b
(*.f64 y (*.f64 (-.f64 x z) t))
Compiler

Compiled 23 to 7 computations (69.6% saved)

series7.0ms (0.1%)

Counts
2 → 84
Calls

21 calls:

TimeVariablePointExpression
1.0ms
z
@inf
(*.f64 y (*.f64 (-.f64 x z) t))
1.0ms
x
@inf
(*.f64 y (*.f64 (-.f64 x z) t))
1.0ms
y
@0
(*.f64 y (*.f64 (-.f64 x z) t))
0.0ms
t
@0
(*.f64 y (*.f64 (-.f64 x z) t))
0.0ms
t
@inf
(*.f64 y (*.f64 (-.f64 x z) t))

rewrite86.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0932
19032
225432
356032
4114832
5262032
6560932
Stop Event
node limit
Counts
2 → 20
Calls
Call 1
Inputs
(*.f64 y (*.f64 (-.f64 x z) t))
(*.f64 (-.f64 x z) t)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (*.f64 (-.f64 x z) t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 x z) (*.f64 y (*.f64 t 1/2))) (*.f64 (-.f64 x z) (*.f64 y (*.f64 t 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 t t) (*.f64 y (-.f64 x z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x z) (*.f64 y (*.f64 t 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 8)) (*.f64 2 (*.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y (*.f64 (-.f64 x z) t))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y (*.f64 (-.f64 x z) t)) (*.f64 y (*.f64 (-.f64 x z) t)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y (*.f64 (-.f64 x z) t)) (*.f64 y (*.f64 (-.f64 x z) t)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 x z) t) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 x z) t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 x z) (*.f64 t 1/2)) (*.f64 (-.f64 x z) (*.f64 t 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 x z) t) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x z) t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x z) (+.f64 t t)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x z) (*.f64 t 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (-.f64 x z) t) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) t) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) t) 8)) (*.f64 2 (*.f64 (*.f64 (-.f64 x z) t) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (-.f64 x z) t)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (-.f64 x z) t) (*.f64 (-.f64 x z) t))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (-.f64 x z) t) (*.f64 (-.f64 x z) t))))))

simplify653.0ms (6.2%)

Algorithm
egg-herbie
Rules
3962×rational.json-simplify-35
2938×rational.json-simplify-2
1322×rational.json-simplify-1
1216×rational.json-simplify-53
848×rational.json-simplify-41
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0672204
11631796
23741796
39511796
422611796
542611796
645821796
748591796
850721796
952841796
1063331796
1167661796
1267881796
1367911796
1467941796
1570061796
1672181796
1774301796
1876421796
1978541796
Stop Event
node limit
Counts
104 → 43
Calls
Call 1
Inputs
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(*.f64 y (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(*.f64 t x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(*.f64 t x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(*.f64 t x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(*.f64 -1 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(+.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 0)
(+.f64 0 (*.f64 y (*.f64 (-.f64 x z) t)))
(+.f64 (*.f64 (-.f64 x z) (*.f64 y (*.f64 t 1/2))) (*.f64 (-.f64 x z) (*.f64 y (*.f64 t 1/2))))
(-.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 0)
(/.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 1)
(/.f64 (*.f64 (+.f64 t t) (*.f64 y (-.f64 x z))) 2)
(/.f64 (*.f64 (-.f64 x z) (*.f64 y (*.f64 t 4))) 4)
(/.f64 (*.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 8)) (*.f64 2 (*.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 8))) 32)
(+.f64 (*.f64 (-.f64 x z) t) 0)
(+.f64 0 (*.f64 (-.f64 x z) t))
(+.f64 (*.f64 (-.f64 x z) (*.f64 t 1/2)) (*.f64 (-.f64 x z) (*.f64 t 1/2)))
(-.f64 (*.f64 (-.f64 x z) t) 0)
(/.f64 (*.f64 (-.f64 x z) t) 1)
(/.f64 (*.f64 (-.f64 x z) (+.f64 t t)) 2)
(/.f64 (*.f64 (-.f64 x z) (*.f64 t 4)) 4)
(/.f64 (*.f64 (*.f64 (-.f64 x z) t) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) t) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) t) 8)) (*.f64 2 (*.f64 (*.f64 (-.f64 x z) t) 8))) 32)
Outputs
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 y (*.f64 t (*.f64 z -1)))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 t (neg.f64 (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(*.f64 y (*.f64 t x))
(*.f64 x (*.f64 y t))
(*.f64 t (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(*.f64 y (*.f64 t x))
(*.f64 x (*.f64 y t))
(*.f64 t (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(*.f64 y (*.f64 t x))
(*.f64 x (*.f64 y t))
(*.f64 t (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 y (*.f64 t (*.f64 z -1)))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 t (neg.f64 (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 y (*.f64 t (*.f64 z -1)))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 t (neg.f64 (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t (*.f64 z -1))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 -1 (*.f64 t z))
(*.f64 t (*.f64 z -1))
(*.f64 t (neg.f64 z))
(neg.f64 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(*.f64 t x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(*.f64 t x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(*.f64 t x)
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(*.f64 -1 (*.f64 t z))
(*.f64 t (*.f64 z -1))
(*.f64 t (neg.f64 z))
(neg.f64 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(*.f64 -1 (*.f64 t z))
(*.f64 t (*.f64 z -1))
(*.f64 t (neg.f64 z))
(neg.f64 (*.f64 t z))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 t z)) (*.f64 t x))
(+.f64 (*.f64 t x) (*.f64 t (*.f64 z -1)))
(*.f64 t (+.f64 x (neg.f64 z)))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(*.f64 t (-.f64 x z))
(+.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 0)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(+.f64 0 (*.f64 y (*.f64 (-.f64 x z) t)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(+.f64 (*.f64 (-.f64 x z) (*.f64 y (*.f64 t 1/2))) (*.f64 (-.f64 x z) (*.f64 y (*.f64 t 1/2))))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(-.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 0)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(/.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 1)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(/.f64 (*.f64 (+.f64 t t) (*.f64 y (-.f64 x z))) 2)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(/.f64 (*.f64 (-.f64 x z) (*.f64 y (*.f64 t 4))) 4)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(/.f64 (*.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 8) 8)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 8)) 16)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 8)) (*.f64 2 (*.f64 (*.f64 y (*.f64 (-.f64 x z) t)) 8))) 32)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 (-.f64 x z) (*.f64 y t))
(+.f64 (*.f64 (-.f64 x z) t) 0)
(*.f64 t (-.f64 x z))
(+.f64 0 (*.f64 (-.f64 x z) t))
(*.f64 t (-.f64 x z))
(+.f64 (*.f64 (-.f64 x z) (*.f64 t 1/2)) (*.f64 (-.f64 x z) (*.f64 t 1/2)))
(*.f64 t (-.f64 x z))
(-.f64 (*.f64 (-.f64 x z) t) 0)
(*.f64 t (-.f64 x z))
(/.f64 (*.f64 (-.f64 x z) t) 1)
(*.f64 t (-.f64 x z))
(/.f64 (*.f64 (-.f64 x z) (+.f64 t t)) 2)
(*.f64 t (-.f64 x z))
(/.f64 (*.f64 (-.f64 x z) (*.f64 t 4)) 4)
(*.f64 t (-.f64 x z))
(/.f64 (*.f64 (*.f64 (-.f64 x z) t) 8) 8)
(*.f64 t (-.f64 x z))
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) t) 8)) 16)
(*.f64 t (-.f64 x z))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) t) 8)) (*.f64 2 (*.f64 (*.f64 (-.f64 x z) t) 8))) 32)
(*.f64 t (-.f64 x z))

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 y (-.f64 x z))
5.3b
(*.f64 (*.f64 y (-.f64 x z)) t)
Compiler

Compiled 23 to 7 computations (69.6% saved)

series4.0ms (0%)

Counts
2 → 72
Calls

21 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 y (-.f64 x z))
0.0ms
y
@inf
(*.f64 y (-.f64 x z))
0.0ms
x
@0
(*.f64 y (-.f64 x z))
0.0ms
y
@0
(*.f64 y (-.f64 x z))
0.0ms
y
@-inf
(*.f64 y (-.f64 x z))

rewrite90.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1464×bool.json-1
1464×bool.json-2
1422×rational.json-1
1422×rational.json-2
1422×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0932
18832
224032
353232
4111432
5254532
6547232
Stop Event
node limit
Counts
2 → 20
Calls
Call 1
Inputs
(*.f64 (*.f64 y (-.f64 x z)) t)
(*.f64 y (-.f64 x z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 x z) (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 x z) (/.f64 (*.f64 y t) 2)) (*.f64 (-.f64 x z) (/.f64 (*.f64 y t) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (-.f64 x z) (+.f64 t t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (-.f64 x z) (*.f64 t 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8)) (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (-.f64 x z) (*.f64 y t))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (-.f64 x z) (*.f64 y t)) (*.f64 (-.f64 x z) (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (-.f64 x z) (*.f64 y t)) (*.f64 (-.f64 x z) (*.f64 y t)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 x z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (/.f64 (-.f64 z x) -2)) (*.f64 y (/.f64 (-.f64 z x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (-.f64 x z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (-.f64 z x) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x z) (*.f64 y 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (-.f64 x z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (-.f64 x z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (-.f64 x z)) 8)) (*.f64 2 (*.f64 (*.f64 y (-.f64 x z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y (-.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y (-.f64 x z)) (*.f64 y (-.f64 x z)))))))

simplify697.0ms (6.6%)

Algorithm
egg-herbie
Rules
3766×rational.json-simplify-35
3706×rational.json-simplify-2
1440×rational.json-simplify-53
1190×rational.json-simplify-1
1140×rational.json-simplify-49
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0742078
11741760
23891652
39601652
426481652
536361652
643471652
746111652
848311652
948321652
1064281652
1164311652
1264371652
1364371652
1466411652
1568451652
1670491652
1772531652
1874571652
1976611652
Stop Event
node limit
Counts
92 → 43
Calls
Call 1
Inputs
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(*.f64 y (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(*.f64 y x)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 0)
(+.f64 0 (*.f64 (-.f64 x z) (*.f64 y t)))
(+.f64 (*.f64 (-.f64 x z) (/.f64 (*.f64 y t) 2)) (*.f64 (-.f64 x z) (/.f64 (*.f64 y t) 2)))
(-.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 0)
(/.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 1)
(/.f64 (*.f64 y (*.f64 (-.f64 x z) (+.f64 t t))) 2)
(/.f64 (*.f64 y (*.f64 (-.f64 x z) (*.f64 t 4))) 4)
(/.f64 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8)) (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8))) 32)
(+.f64 (*.f64 y (-.f64 x z)) 0)
(+.f64 0 (*.f64 y (-.f64 x z)))
(+.f64 (*.f64 y (/.f64 (-.f64 z x) -2)) (*.f64 y (/.f64 (-.f64 z x) -2)))
(-.f64 (*.f64 y (-.f64 x z)) 0)
(/.f64 (*.f64 y (-.f64 x z)) 1)
(/.f64 (*.f64 y (*.f64 (-.f64 z x) -2)) 2)
(/.f64 (*.f64 (-.f64 x z) (*.f64 y 4)) 4)
(/.f64 (*.f64 (*.f64 y (-.f64 x z)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 y (-.f64 x z)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (-.f64 x z)) 8)) (*.f64 2 (*.f64 (*.f64 y (-.f64 x z)) 8))) 32)
Outputs
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 z (*.f64 y t)))
(*.f64 y (*.f64 (neg.f64 z) t))
(*.f64 t (*.f64 y (neg.f64 z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 z (*.f64 y t)))
(*.f64 y (*.f64 (neg.f64 z) t))
(*.f64 t (*.f64 y (neg.f64 z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 z (*.f64 y t)))
(*.f64 y (*.f64 (neg.f64 z) t))
(*.f64 t (*.f64 y (neg.f64 z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 t (*.f64 y (+.f64 x (neg.f64 z))))
(*.f64 (*.f64 y t) (+.f64 x (neg.f64 z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 -1 (*.f64 y z))
(*.f64 y (*.f64 z -1))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(*.f64 y x)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(*.f64 y x)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(*.f64 y x)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(*.f64 -1 (*.f64 y z))
(*.f64 y (*.f64 z -1))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(*.f64 -1 (*.f64 y z))
(*.f64 y (*.f64 z -1))
(*.f64 y (neg.f64 z))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 -1 (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z -1)) (*.f64 y x))
(*.f64 y (+.f64 x (neg.f64 z)))
(+.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 0)
(*.f64 y (*.f64 t (-.f64 x z)))
(+.f64 0 (*.f64 (-.f64 x z) (*.f64 y t)))
(*.f64 y (*.f64 t (-.f64 x z)))
(+.f64 (*.f64 (-.f64 x z) (/.f64 (*.f64 y t) 2)) (*.f64 (-.f64 x z) (/.f64 (*.f64 y t) 2)))
(*.f64 y (*.f64 t (-.f64 x z)))
(-.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 0)
(*.f64 y (*.f64 t (-.f64 x z)))
(/.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 1)
(*.f64 y (*.f64 t (-.f64 x z)))
(/.f64 (*.f64 y (*.f64 (-.f64 x z) (+.f64 t t))) 2)
(*.f64 y (*.f64 t (-.f64 x z)))
(/.f64 (*.f64 y (*.f64 (-.f64 x z) (*.f64 t 4))) 4)
(*.f64 y (*.f64 t (-.f64 x z)))
(/.f64 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8) 8)
(*.f64 y (*.f64 t (-.f64 x z)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8)) 16)
(*.f64 y (*.f64 t (-.f64 x z)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8)) (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8))) 32)
(*.f64 y (*.f64 t (-.f64 x z)))
(+.f64 (*.f64 y (-.f64 x z)) 0)
(*.f64 y (-.f64 x z))
(+.f64 0 (*.f64 y (-.f64 x z)))
(*.f64 y (-.f64 x z))
(+.f64 (*.f64 y (/.f64 (-.f64 z x) -2)) (*.f64 y (/.f64 (-.f64 z x) -2)))
(*.f64 (/.f64 (-.f64 z x) -2) (+.f64 y y))
(*.f64 2 (*.f64 y (/.f64 (-.f64 z x) -2)))
(-.f64 (*.f64 y (-.f64 x z)) 0)
(*.f64 y (-.f64 x z))
(/.f64 (*.f64 y (-.f64 x z)) 1)
(*.f64 y (-.f64 x z))
(/.f64 (*.f64 y (*.f64 (-.f64 z x) -2)) 2)
(*.f64 y (-.f64 x z))
(/.f64 (*.f64 (-.f64 x z) (*.f64 y 4)) 4)
(*.f64 y (-.f64 x z))
(/.f64 (*.f64 (*.f64 y (-.f64 x z)) 8) 8)
(*.f64 y (-.f64 x z))
(/.f64 (*.f64 2 (*.f64 (*.f64 y (-.f64 x z)) 8)) 16)
(*.f64 y (-.f64 x z))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 y (-.f64 x z)) 8)) (*.f64 2 (*.f64 (*.f64 y (-.f64 x z)) 8))) 32)
(*.f64 y (-.f64 x z))

eval12.0ms (0.1%)

Compiler

Compiled 865 to 321 computations (62.9% saved)

prune17.0ms (0.2%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New79786
Fresh000
Picked011
Done101
Total80888
Error
0.0b
Counts
88 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
6.3b
(*.f64 (-.f64 x z) (*.f64 y t))
5.7b
(*.f64 (*.f64 y (-.f64 x z)) t)
31.9b
(*.f64 (*.f64 y (neg.f64 z)) t)
30.3b
(*.f64 (*.f64 y x) t)
32.4b
(*.f64 y (*.f64 (neg.f64 z) t))
31.1b
(*.f64 y (*.f64 t x))
30.7b
(*.f64 x (*.f64 y t))
32.3b
(neg.f64 (*.f64 z (*.f64 y t)))
Compiler

Compiled 147 to 99 computations (32.7% saved)

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
6.1b
(*.f64 (-.f64 x z) (*.f64 y t))
Compiler

Compiled 21 to 7 computations (66.7% saved)

series1.0ms (0%)

Counts
1 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.f64 (-.f64 x z) (*.f64 y t))
0.0ms
z
@-inf
(*.f64 (-.f64 x z) (*.f64 y t))
0.0ms
x
@-inf
(*.f64 (-.f64 x z) (*.f64 y t))
0.0ms
x
@inf
(*.f64 (-.f64 x z) (*.f64 y t))
0.0ms
z
@inf
(*.f64 (-.f64 x z) (*.f64 y t))

rewrite84.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1482×bool.json-1
1482×bool.json-2
1440×rational.json-1
1440×rational.json-2
1440×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
19019
225419
356019
4114819
5262319
6562319
Stop Event
node limit
Counts
1 → 10
Calls
Call 1
Inputs
(*.f64 (-.f64 x z) (*.f64 y t))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 x z) (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 x z) (*.f64 t (*.f64 y 1/2))) (*.f64 (-.f64 x z) (*.f64 t (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y t) (*.f64 (-.f64 x z) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x z) (*.f64 y (*.f64 t 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8)) (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (-.f64 x z) (*.f64 y t))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (-.f64 x z) (*.f64 y t)) (*.f64 (-.f64 x z) (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (-.f64 x z) (*.f64 y t)) (*.f64 (-.f64 x z) (*.f64 y t)))))))

simplify587.0ms (5.6%)

Algorithm
egg-herbie
Rules
4038×rational.json-simplify-35
3320×rational.json-simplify-2
1176×rational.json-simplify-43
1018×rational.json-simplify-53
860×rational.json-simplify-49
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0481408
11151258
22681258
37281150
426991150
542141150
648021150
751271150
853811150
953821150
1053821150
1153821150
1256311150
1358801150
1461291150
1563781150
1666271150
1779081150
1879091150
1979111150
2079111150
Stop Event
node limit
Counts
58 → 23
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y (*.f64 t z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(*.f64 y (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t x))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(+.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 0)
(+.f64 0 (*.f64 (-.f64 x z) (*.f64 y t)))
(+.f64 (*.f64 (-.f64 x z) (*.f64 t (*.f64 y 1/2))) (*.f64 (-.f64 x z) (*.f64 t (*.f64 y 1/2))))
(-.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 0)
(/.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 1)
(/.f64 (*.f64 (*.f64 y t) (*.f64 (-.f64 x z) 2)) 2)
(/.f64 (*.f64 (-.f64 x z) (*.f64 y (*.f64 t 4))) 4)
(/.f64 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8)) (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8))) 32)
Outputs
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 t (neg.f64 z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(*.f64 y (*.f64 t x))
(*.f64 x (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(*.f64 y (*.f64 t x))
(*.f64 x (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(*.f64 y (*.f64 t x))
(*.f64 x (*.f64 y t))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 t (neg.f64 z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 y (*.f64 t (neg.f64 z)))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(+.f64 (*.f64 y (*.f64 t x)) (*.f64 -1 (*.f64 y (*.f64 t z))))
(+.f64 (*.f64 -1 (*.f64 y (*.f64 t z))) (*.f64 y (*.f64 t x)))
(*.f64 y (+.f64 (*.f64 t x) (neg.f64 (*.f64 t z))))
(*.f64 y (*.f64 t (+.f64 x (neg.f64 z))))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(+.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 0)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(+.f64 0 (*.f64 (-.f64 x z) (*.f64 y t)))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(+.f64 (*.f64 (-.f64 x z) (*.f64 t (*.f64 y 1/2))) (*.f64 (-.f64 x z) (*.f64 t (*.f64 y 1/2))))
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(-.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 0)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(/.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 1)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(/.f64 (*.f64 (*.f64 y t) (*.f64 (-.f64 x z) 2)) 2)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(/.f64 (*.f64 (-.f64 x z) (*.f64 y (*.f64 t 4))) 4)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(/.f64 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8) 8)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8)) 16)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8)) (*.f64 2 (*.f64 (*.f64 (-.f64 x z) (*.f64 y t)) 8))) 32)
(*.f64 y (*.f64 t (-.f64 x z)))
(*.f64 t (*.f64 y (-.f64 x z)))

localize51.0ms (0.5%)

Local error

Found 1 expressions with local error:

NewErrorProgram
4.3b
(*.f64 x (*.f64 y t))
Compiler

Compiled 15 to 6 computations (60% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
y
@0
(*.f64 x (*.f64 y t))
0.0ms
x
@0
(*.f64 x (*.f64 y t))
0.0ms
t
@0
(*.f64 x (*.f64 y t))
0.0ms
t
@inf
(*.f64 x (*.f64 y t))
0.0ms
x
@inf
(*.f64 x (*.f64 y t))

rewrite104.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1858×bool.json-1
1858×bool.json-2
1186×rational.json-1
1186×rational.json-2
1186×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17213
221413
347213
494513
5210213
6453413
7754113
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 x (*.f64 y t))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y (*.f64 t 1/2))) (*.f64 x (*.f64 y (*.f64 t 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 y t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y (+.f64 t t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x (*.f64 t 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (*.f64 y t)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 y t)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 y t)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 y t)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 y t)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 y t))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 y t)) (*.f64 x (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 y t)) (*.f64 x (*.f64 y t)))))))

simplify497.0ms (4.7%)

Algorithm
egg-herbie
Rules
3790×rational.json-simplify-35
2952×rational.json-simplify-2
2792×rational.json-simplify-53
1104×rational.json-simplify-43
862×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042611
1105611
2237611
3606611
42576611
54072611
64792611
75127611
85132611
95135611
106301611
116301611
126301611
136567611
146833611
157099611
167365611
177631611
187631611
Stop Event
node limit
Counts
47 → 13
Calls
Call 1
Inputs
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(+.f64 (*.f64 x (*.f64 y t)) 0)
(+.f64 0 (*.f64 x (*.f64 y t)))
(+.f64 (*.f64 x (*.f64 y (*.f64 t 1/2))) (*.f64 x (*.f64 y (*.f64 t 1/2))))
(-.f64 (*.f64 x (*.f64 y t)) 0)
(/.f64 (*.f64 x (*.f64 y t)) 1)
(/.f64 (*.f64 x (*.f64 y (+.f64 t t))) 2)
(/.f64 (*.f64 y (*.f64 x (*.f64 t 4))) 4)
(/.f64 (*.f64 (*.f64 x (*.f64 y t)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 y t)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 y t)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 y t)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 y t)) 8)))) 64)
Outputs
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(+.f64 (*.f64 x (*.f64 y t)) 0)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(+.f64 0 (*.f64 x (*.f64 y t)))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(+.f64 (*.f64 x (*.f64 y (*.f64 t 1/2))) (*.f64 x (*.f64 y (*.f64 t 1/2))))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(-.f64 (*.f64 x (*.f64 y t)) 0)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(/.f64 (*.f64 x (*.f64 y t)) 1)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(/.f64 (*.f64 x (*.f64 y (+.f64 t t))) 2)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(/.f64 (*.f64 y (*.f64 x (*.f64 t 4))) 4)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(/.f64 (*.f64 (*.f64 x (*.f64 y t)) 8) 8)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 y t)) 8)) 16)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 y t)) 8))) 32)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 y t)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 y t)) 8)))) 64)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
6.6b
(*.f64 y (*.f64 t x))
Compiler

Compiled 15 to 6 computations (60% saved)

series43.0ms (0.4%)

Counts
1 → 0
Calls

9 calls:

TimeVariablePointExpression
42.0ms
x
@0
(*.f64 y (*.f64 t x))
0.0ms
x
@inf
(*.f64 y (*.f64 t x))
0.0ms
t
@inf
(*.f64 y (*.f64 t x))
0.0ms
x
@-inf
(*.f64 y (*.f64 t x))
0.0ms
y
@0
(*.f64 y (*.f64 t x))

rewrite101.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1858×bool.json-1
1858×bool.json-2
1186×rational.json-1
1186×rational.json-2
1186×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17213
221413
347213
494513
5210213
6453413
7754113
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 y (*.f64 t x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 t x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (*.f64 t x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 t (*.f64 x 1/2))) (*.f64 y (*.f64 t (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (*.f64 t x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 t x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 t (+.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 t (*.f64 y (*.f64 x 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (*.f64 t x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 t x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 t x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 t x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 t x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y (*.f64 t x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y (*.f64 t x)) (*.f64 y (*.f64 t x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y (*.f64 t x)) (*.f64 y (*.f64 t x)))))))

simplify468.0ms (4.4%)

Algorithm
egg-herbie
Rules
3798×rational.json-simplify-35
2474×rational.json-simplify-2
2250×rational.json-simplify-53
968×rational.json-simplify-43
766×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
040143
1101143
2225143
3557143
42316143
53732143
64407143
74711143
84952143
94955143
105926143
115926143
125926143
136162143
146398143
156634143
166870143
177106143
187106143
Stop Event
node limit
Counts
11 → 12
Calls
Call 1
Inputs
(+.f64 (*.f64 y (*.f64 t x)) 0)
(+.f64 0 (*.f64 y (*.f64 t x)))
(+.f64 (*.f64 y (*.f64 t (*.f64 x 1/2))) (*.f64 y (*.f64 t (*.f64 x 1/2))))
(-.f64 (*.f64 y (*.f64 t x)) 0)
(/.f64 (*.f64 y (*.f64 t x)) 1)
(/.f64 (*.f64 y (*.f64 t (+.f64 x x))) 2)
(/.f64 (*.f64 t (*.f64 y (*.f64 x 4))) 4)
(/.f64 (*.f64 (*.f64 y (*.f64 t x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 t x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 t x)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 t x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 t x)) 8)))) 64)
Outputs
(+.f64 (*.f64 y (*.f64 t x)) 0)
(*.f64 y (*.f64 t x))
(+.f64 0 (*.f64 y (*.f64 t x)))
(*.f64 y (*.f64 t x))
(+.f64 (*.f64 y (*.f64 t (*.f64 x 1/2))) (*.f64 y (*.f64 t (*.f64 x 1/2))))
(*.f64 y (*.f64 t x))
(-.f64 (*.f64 y (*.f64 t x)) 0)
(*.f64 y (*.f64 t x))
(/.f64 (*.f64 y (*.f64 t x)) 1)
(*.f64 y (*.f64 t x))
(/.f64 (*.f64 y (*.f64 t (+.f64 x x))) 2)
(*.f64 y (*.f64 t x))
(/.f64 (*.f64 t (*.f64 y (*.f64 x 4))) 4)
(*.f64 y (*.f64 t x))
(/.f64 (*.f64 (*.f64 y (*.f64 t x)) 8) 8)
(*.f64 y (*.f64 t x))
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 t x)) 8)) 16)
(*.f64 y (*.f64 t x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 t x)) 8))) 32)
(*.f64 y (*.f64 t x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 t x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 t x)) 8)))) 64)
(*.f64 y (*.f64 t x))

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
4.5b
(*.f64 (*.f64 y x) t)
Compiler

Compiled 15 to 6 computations (60% saved)

series71.0ms (0.7%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
70.0ms
x
@0
(*.f64 (*.f64 y x) t)
0.0ms
x
@inf
(*.f64 (*.f64 y x) t)
0.0ms
y
@inf
(*.f64 (*.f64 y x) t)
0.0ms
y
@0
(*.f64 (*.f64 y x) t)
0.0ms
x
@-inf
(*.f64 (*.f64 y x) t)

rewrite107.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1832×bool.json-1
1832×bool.json-2
1172×rational.json-1
1172×rational.json-2
1172×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17013
220013
344313
490913
5202813
6440313
7742013
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (*.f64 y x) t)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (*.f64 x t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x (*.f64 t 1/2))) (*.f64 y (*.f64 x (*.f64 t 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (*.f64 x t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x (+.f64 t t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x (*.f64 t 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (*.f64 x t)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 x t)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x t)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x t)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x t)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 y (*.f64 x t))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 y (*.f64 x t)) (*.f64 y (*.f64 x t)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 y (*.f64 x t)) (*.f64 y (*.f64 x t)))))))

simplify561.0ms (5.3%)

Algorithm
egg-herbie
Rules
3876×rational.json-simplify-35
3488×rational.json-simplify-53
3208×rational.json-simplify-2
1036×rational.json-simplify-43
818×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042611
1104611
2228611
3579611
42452611
53721611
64904611
75216611
85466611
95469611
105470611
115470611
125470611
135715611
145960611
156205611
166450611
176695611
187990611
197990611
207990611
Stop Event
node limit
Counts
47 → 13
Calls
Call 1
Inputs
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 t x))
(+.f64 (*.f64 y (*.f64 x t)) 0)
(+.f64 0 (*.f64 y (*.f64 x t)))
(+.f64 (*.f64 y (*.f64 x (*.f64 t 1/2))) (*.f64 y (*.f64 x (*.f64 t 1/2))))
(-.f64 (*.f64 y (*.f64 x t)) 0)
(/.f64 (*.f64 y (*.f64 x t)) 1)
(/.f64 (*.f64 y (*.f64 x (+.f64 t t))) 2)
(/.f64 (*.f64 y (*.f64 x (*.f64 t 4))) 4)
(/.f64 (*.f64 (*.f64 y (*.f64 x t)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 x t)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x t)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x t)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x t)) 8)))) 64)
Outputs
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(+.f64 (*.f64 y (*.f64 x t)) 0)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(+.f64 0 (*.f64 y (*.f64 x t)))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(+.f64 (*.f64 y (*.f64 x (*.f64 t 1/2))) (*.f64 y (*.f64 x (*.f64 t 1/2))))
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(-.f64 (*.f64 y (*.f64 x t)) 0)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(/.f64 (*.f64 y (*.f64 x t)) 1)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(/.f64 (*.f64 y (*.f64 x (+.f64 t t))) 2)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(/.f64 (*.f64 y (*.f64 x (*.f64 t 4))) 4)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(/.f64 (*.f64 (*.f64 y (*.f64 x t)) 8) 8)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 x t)) 8)) 16)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x t)) 8))) 32)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x t)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x t)) 8)))) 64)
(*.f64 y (*.f64 t x))
(*.f64 t (*.f64 y x))

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
4.3b
(*.f64 z (*.f64 y t))
Compiler

Compiled 21 to 7 computations (66.7% saved)

series4.0ms (0%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
y
@-inf
(*.f64 z (*.f64 y t))
0.0ms
y
@0
(*.f64 z (*.f64 y t))
0.0ms
t
@inf
(*.f64 z (*.f64 y t))
0.0ms
t
@0
(*.f64 z (*.f64 y t))
0.0ms
z
@0
(*.f64 z (*.f64 y t))

rewrite101.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1858×bool.json-1
1858×bool.json-2
1186×rational.json-1
1186×rational.json-2
1186×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17213
221413
347213
494513
5210213
6453413
7754113
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 z (*.f64 y t))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 y t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 y (*.f64 t 1/2))) (*.f64 z (*.f64 y (*.f64 t 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (*.f64 y t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y (+.f64 t t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z (*.f64 t 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (*.f64 y t)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z (*.f64 y t)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 y t)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 y t)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 y t)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (*.f64 y t))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (*.f64 y t)) (*.f64 z (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (*.f64 y t)) (*.f64 z (*.f64 y t)))))))

simplify495.0ms (4.7%)

Algorithm
egg-herbie
Rules
3790×rational.json-simplify-35
2952×rational.json-simplify-2
2792×rational.json-simplify-53
1104×rational.json-simplify-43
862×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042611
1105611
2237611
3606611
42576611
54072611
64792611
75127611
85132611
95135611
106301611
116301611
126301611
136567611
146833611
157099611
167365611
177631611
187631611
Stop Event
node limit
Counts
47 → 13
Calls
Call 1
Inputs
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(*.f64 y (*.f64 t z))
(+.f64 (*.f64 z (*.f64 y t)) 0)
(+.f64 0 (*.f64 z (*.f64 y t)))
(+.f64 (*.f64 z (*.f64 y (*.f64 t 1/2))) (*.f64 z (*.f64 y (*.f64 t 1/2))))
(-.f64 (*.f64 z (*.f64 y t)) 0)
(/.f64 (*.f64 z (*.f64 y t)) 1)
(/.f64 (*.f64 z (*.f64 y (+.f64 t t))) 2)
(/.f64 (*.f64 y (*.f64 z (*.f64 t 4))) 4)
(/.f64 (*.f64 (*.f64 z (*.f64 y t)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 z (*.f64 y t)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 y t)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 y t)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 y t)) 8)))) 64)
Outputs
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(+.f64 (*.f64 z (*.f64 y t)) 0)
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(+.f64 0 (*.f64 z (*.f64 y t)))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(+.f64 (*.f64 z (*.f64 y (*.f64 t 1/2))) (*.f64 z (*.f64 y (*.f64 t 1/2))))
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(-.f64 (*.f64 z (*.f64 y t)) 0)
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(/.f64 (*.f64 z (*.f64 y t)) 1)
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(/.f64 (*.f64 z (*.f64 y (+.f64 t t))) 2)
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(/.f64 (*.f64 y (*.f64 z (*.f64 t 4))) 4)
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(/.f64 (*.f64 (*.f64 z (*.f64 y t)) 8) 8)
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 (*.f64 z (*.f64 y t)) 8)) 16)
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 y t)) 8))) 32)
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 y t)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 y t)) 8)))) 64)
(*.f64 y (*.f64 t z))
(*.f64 t (*.f64 y z))

eval59.0ms (0.6%)

Compiler

Compiled 753 to 347 computations (53.9% saved)

prune14.0ms (0.1%)

Pruning

8 alts after pruning (2 fresh and 6 done)

PrunedKeptTotal
New73174
Fresh112
Picked011
Done055
Total74882
Error
0.0b
Counts
82 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
6.3b
(*.f64 (-.f64 x z) (*.f64 y t))
5.7b
(*.f64 (*.f64 y (-.f64 x z)) t)
31.9b
(*.f64 (*.f64 y (neg.f64 z)) t)
30.3b
(*.f64 (*.f64 y x) t)
32.4b
(*.f64 (*.f64 t z) (neg.f64 y))
31.1b
(*.f64 y (*.f64 t x))
30.7b
(*.f64 x (*.f64 y t))
32.3b
(neg.f64 (*.f64 z (*.f64 y t)))
Compiler

Compiled 79 to 53 computations (32.9% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
4.8b
(*.f64 (*.f64 t z) (neg.f64 y))
Compiler

Compiled 18 to 7 computations (61.1% saved)

series4.0ms (0%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
2.0ms
y
@0
(*.f64 (*.f64 t z) (neg.f64 y))
0.0ms
t
@0
(*.f64 (*.f64 t z) (neg.f64 y))
0.0ms
z
@0
(*.f64 (*.f64 t z) (neg.f64 y))
0.0ms
y
@inf
(*.f64 (*.f64 t z) (neg.f64 y))
0.0ms
t
@inf
(*.f64 (*.f64 t z) (neg.f64 y))

rewrite104.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1782×bool.json-1
1782×bool.json-2
1186×bool.json-3
1166×rational.json-simplify-2
954×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
19217
226017
359317
4134417
5321617
6689817
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 (*.f64 t z) (neg.f64 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 t (*.f64 z (neg.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 t (*.f64 z (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 t (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 t z) (*.f64 y -1/2)) (*.f64 (*.f64 t z) (*.f64 y -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 t (*.f64 z (neg.f64 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 t (*.f64 z (neg.f64 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 t (*.f64 z (*.f64 y -2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 t (*.f64 (*.f64 z y) -4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 t (*.f64 z y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 t (*.f64 z (neg.f64 y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 t (*.f64 z (neg.f64 y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 t (*.f64 z (neg.f64 y))) 8)) (*.f64 2 (*.f64 (*.f64 t (*.f64 z (neg.f64 y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 t (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 t (*.f64 z (neg.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 t (*.f64 z (neg.f64 y))) (*.f64 t (*.f64 z (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 t (*.f64 z (neg.f64 y))) (*.f64 t (*.f64 z (neg.f64 y))))))))

simplify418.0ms (4%)

Algorithm
egg-herbie
Rules
3752×rational.json-simplify-35
2908×rational.json-simplify-2
1100×rational.json-simplify-43
1004×rational.json-simplify-1
840×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
050850
1121850
2271850
3677850
42859850
53976850
64589850
74917850
85233850
95354850
106567850
116685850
126781850
136828850
147134850
157491850
167805850
Stop Event
node limit
Counts
50 → 20
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(+.f64 (*.f64 t (*.f64 z (neg.f64 y))) 0)
(+.f64 0 (*.f64 t (*.f64 z (neg.f64 y))))
(+.f64 -1 (-.f64 1 (*.f64 t (*.f64 z y))))
(+.f64 (*.f64 (*.f64 t z) (*.f64 y -1/2)) (*.f64 (*.f64 t z) (*.f64 y -1/2)))
(-.f64 (*.f64 t (*.f64 z (neg.f64 y))) 0)
(-.f64 0 (*.f64 t (*.f64 z y)))
(/.f64 (*.f64 t (*.f64 z (neg.f64 y))) 1)
(/.f64 (*.f64 t (*.f64 z (*.f64 y -2))) 2)
(/.f64 (*.f64 t (*.f64 (*.f64 z y) -4)) 4)
(/.f64 (*.f64 t (*.f64 z y)) -1)
(/.f64 (*.f64 (*.f64 t (*.f64 z (neg.f64 y))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 t (*.f64 z (neg.f64 y))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 t (*.f64 z (neg.f64 y))) 8)) (*.f64 2 (*.f64 (*.f64 t (*.f64 z (neg.f64 y))) 8))) 32)
(neg.f64 (*.f64 t (*.f64 z y)))
Outputs
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(+.f64 (*.f64 t (*.f64 z (neg.f64 y))) 0)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(+.f64 0 (*.f64 t (*.f64 z (neg.f64 y))))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(+.f64 -1 (-.f64 1 (*.f64 t (*.f64 z y))))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(+.f64 (*.f64 (*.f64 t z) (*.f64 y -1/2)) (*.f64 (*.f64 t z) (*.f64 y -1/2)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(-.f64 (*.f64 t (*.f64 z (neg.f64 y))) 0)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(-.f64 0 (*.f64 t (*.f64 z y)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(/.f64 (*.f64 t (*.f64 z (neg.f64 y))) 1)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(/.f64 (*.f64 t (*.f64 z (*.f64 y -2))) 2)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(/.f64 (*.f64 t (*.f64 (*.f64 z y) -4)) 4)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(/.f64 (*.f64 t (*.f64 z y)) -1)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(/.f64 (*.f64 (*.f64 t (*.f64 z (neg.f64 y))) 8) 8)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(/.f64 (*.f64 2 (*.f64 (*.f64 t (*.f64 z (neg.f64 y))) 8)) 16)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 t (*.f64 z (neg.f64 y))) 8)) (*.f64 2 (*.f64 (*.f64 t (*.f64 z (neg.f64 y))) 8))) 32)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))
(neg.f64 (*.f64 t (*.f64 z y)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 y (*.f64 z (neg.f64 t)))
(*.f64 y (neg.f64 (*.f64 t z)))

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
4.9b
(*.f64 (*.f64 y (neg.f64 z)) t)
Compiler

Compiled 19 to 7 computations (63.2% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
y
@0
(*.f64 (*.f64 y (neg.f64 z)) t)
0.0ms
y
@inf
(*.f64 (*.f64 y (neg.f64 z)) t)
0.0ms
z
@-inf
(*.f64 (*.f64 y (neg.f64 z)) t)
0.0ms
z
@inf
(*.f64 (*.f64 y (neg.f64 z)) t)
0.0ms
y
@-inf
(*.f64 (*.f64 y (neg.f64 z)) t)

rewrite89.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1726×bool.json-1
1726×bool.json-2
1672×rational.json-1
1148×bool.json-3
1116×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
19217
226017
358317
4128217
5312017
6674017
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (*.f64 y (neg.f64 z)) t)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (neg.f64 y) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y t) (*.f64 z -1/2)) (*.f64 (*.f64 y t) (*.f64 z -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -2 (*.f64 y (*.f64 z t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y t) (*.f64 z -4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 8)) (*.f64 2 (*.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 y (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (neg.f64 y) (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (neg.f64 y) (*.f64 z t)) (*.f64 (neg.f64 y) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (neg.f64 y) (*.f64 z t)) (*.f64 (neg.f64 y) (*.f64 z t)))))))

simplify397.0ms (3.8%)

Algorithm
egg-herbie
Rules
2900×rational.json-simplify-35
2330×rational.json-simplify-53
1318×rational.json-simplify-49
1166×rational.json-simplify-43
972×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044799
1105799
2259799
3801799
43268799
54392799
65627799
76017799
86093799
96224799
106338799
116445799
127387799
137705799
147998799
Stop Event
node limit
Counts
47 → 16
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(+.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 0)
(+.f64 0 (*.f64 (neg.f64 y) (*.f64 z t)))
(+.f64 (*.f64 (*.f64 y t) (*.f64 z -1/2)) (*.f64 (*.f64 y t) (*.f64 z -1/2)))
(-.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 0)
(/.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 1)
(/.f64 (*.f64 -2 (*.f64 y (*.f64 z t))) 2)
(/.f64 (*.f64 (*.f64 y t) (*.f64 z -4)) 4)
(/.f64 (*.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 8)) (*.f64 2 (*.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 8))) 32)
(neg.f64 (*.f64 y (*.f64 z t)))
Outputs
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y (*.f64 t z)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 0)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(+.f64 0 (*.f64 (neg.f64 y) (*.f64 z t)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 (*.f64 y t) (*.f64 z -1/2)) (*.f64 (*.f64 y t) (*.f64 z -1/2)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(-.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 0)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(/.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 1)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(/.f64 (*.f64 -2 (*.f64 y (*.f64 z t))) 2)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(/.f64 (*.f64 (*.f64 y t) (*.f64 z -4)) 4)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(/.f64 (*.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 8) 8)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 8)) 16)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 8)) (*.f64 2 (*.f64 (*.f64 (neg.f64 y) (*.f64 z t)) 8))) 32)
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))
(neg.f64 (*.f64 y (*.f64 z t)))
(neg.f64 (*.f64 y (*.f64 t z)))
(*.f64 t (*.f64 (neg.f64 y) z))
(*.f64 y (*.f64 t (neg.f64 z)))
(*.f64 t (*.f64 z (neg.f64 y)))

eval5.0ms (0%)

Compiler

Compiled 327 to 133 computations (59.3% saved)

prune8.0ms (0.1%)

Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New36036
Fresh000
Picked011
Done077
Total36844
Error
0.0b
Counts
44 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
6.3b
(*.f64 (-.f64 x z) (*.f64 y t))
5.7b
(*.f64 (*.f64 y (-.f64 x z)) t)
31.9b
(*.f64 (*.f64 y (neg.f64 z)) t)
30.3b
(*.f64 (*.f64 y x) t)
32.4b
(*.f64 (*.f64 t z) (neg.f64 y))
31.1b
(*.f64 y (*.f64 t x))
30.7b
(*.f64 x (*.f64 y t))
32.3b
(neg.f64 (*.f64 z (*.f64 y t)))
Compiler

Compiled 79 to 53 computations (32.9% saved)

regimes110.0ms (1%)

Counts
11 → 3
Calls
Call 1
Inputs
(*.f64 x (*.f64 y t))
(*.f64 y (*.f64 t x))
(*.f64 (*.f64 y x) t)
(neg.f64 (*.f64 z (*.f64 y t)))
(*.f64 y (*.f64 (neg.f64 z) t))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 (*.f64 y (neg.f64 z)) t)
(*.f64 y (*.f64 (-.f64 x z) t))
(*.f64 (*.f64 y (-.f64 x z)) t)
(*.f64 (-.f64 x z) (*.f64 y t))
(*.f64 (-.f64 (*.f64 x y) (*.f64 z y)) t)
Outputs
(*.f64 y (*.f64 (-.f64 x z) t))
(*.f64 (*.f64 y (-.f64 x z)) t)
(*.f64 y (*.f64 (-.f64 x z) t))
Calls

6 calls:

21.0ms
z
21.0ms
x
18.0ms
(-.f64 (*.f64 x y) (*.f64 z y))
17.0ms
(*.f64 (-.f64 (*.f64 x y) (*.f64 z y)) t)
14.0ms
t
Results
ErrorSegmentsBranch
4.2b3x
1.2b2y
4.0b2z
1.2b2t
0.7b3(*.f64 (-.f64 (*.f64 x y) (*.f64 z y)) t)
0.7b3(-.f64 (*.f64 x y) (*.f64 z y))
Compiler

Compiled 117 to 61 computations (47.9% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
3.7696049558022926e+256
7.735141689828909e+263
0.0ms
-6.647662700312722e+181
-1.6594147484909635e+177
Compiler

Compiled 20 to 14 computations (30% saved)

regimes34.0ms (0.3%)

Counts
8 → 3
Calls
Call 1
Inputs
(*.f64 x (*.f64 y t))
(*.f64 y (*.f64 t x))
(*.f64 (*.f64 y x) t)
(neg.f64 (*.f64 z (*.f64 y t)))
(*.f64 y (*.f64 (neg.f64 z) t))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 (*.f64 y (neg.f64 z)) t)
(*.f64 y (*.f64 (-.f64 x z) t))
Outputs
(*.f64 y (*.f64 (-.f64 x z) t))
(*.f64 (*.f64 y x) t)
(*.f64 y (*.f64 (-.f64 x z) t))
Calls

4 calls:

15.0ms
z
6.0ms
y
5.0ms
t
5.0ms
x
Results
ErrorSegmentsBranch
7.0b1x
7.0b1y
5.7b3z
7.0b1t
Compiler

Compiled 70 to 39 computations (44.3% saved)

bsearch72.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
2.571882863793211e-109
1.4878610773742816e-104
58.0ms
-7.79891139631957e-261
-1.1699200776803344e-268
Results
70.0ms176×body256valid
Compiler

Compiled 262 to 179 computations (31.7% saved)

regimes366.0ms (3.5%)

Counts
7 → 5
Calls
Call 1
Inputs
(*.f64 x (*.f64 y t))
(*.f64 y (*.f64 t x))
(*.f64 (*.f64 y x) t)
(neg.f64 (*.f64 z (*.f64 y t)))
(*.f64 y (*.f64 (neg.f64 z) t))
(*.f64 (*.f64 t z) (neg.f64 y))
(*.f64 (*.f64 y (neg.f64 z)) t)
Outputs
(*.f64 (*.f64 y (neg.f64 z)) t)
(*.f64 x (*.f64 y t))
(neg.f64 (*.f64 z (*.f64 y t)))
(*.f64 (*.f64 y x) t)
(neg.f64 (*.f64 z (*.f64 y t)))
Calls

4 calls:

122.0ms
t
117.0ms
x
101.0ms
y
23.0ms
z
Results
ErrorSegmentsBranch
14.7b5x
20.5b9y
14.5b5z
17.8b11t
Compiler

Compiled 63 to 36 computations (42.9% saved)

bsearch104.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
1.1911034517195257e-17
1.1105484027070716e-15
70.0ms
-1.2706179807887082e-12
-8.552074480979171e-18
10.0ms
-3.411888649029021e+36
-2.3052878203812318e+35
12.0ms
-7.445743016466532e+91
-1.2094174072100365e+91
Results
56.0ms26×body256infinite
42.0ms448×body256valid
Compiler

Compiled 608 to 434 computations (28.6% saved)

regimes369.0ms (3.5%)

Counts
6 → 5
Calls
Call 1
Inputs
(*.f64 x (*.f64 y t))
(*.f64 y (*.f64 t x))
(*.f64 (*.f64 y x) t)
(neg.f64 (*.f64 z (*.f64 y t)))
(*.f64 y (*.f64 (neg.f64 z) t))
(*.f64 (*.f64 t z) (neg.f64 y))
Outputs
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 (neg.f64 z) t))
(*.f64 y (*.f64 t x))
(*.f64 y (*.f64 (neg.f64 z) t))
(*.f64 x (*.f64 y t))
Calls

4 calls:

126.0ms
y
110.0ms
t
74.0ms
x
58.0ms
z
Results
ErrorSegmentsBranch
14.7b5x
21.3b9y
15.4b5z
18.0b11t
Compiler

Compiled 57 to 34 computations (40.4% saved)

bsearch54.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
4.895181669321034e-58
1.6171274126908345e-51
13.0ms
3.5677623805727324e-144
4.6736093962095065e-141
11.0ms
9.308708607891111e-153
1.4019801544071375e-151
14.0ms
-3.7550194171091813e-13
-8.241679577965589e-17
Results
48.0ms496×body256valid
0.0msbody256infinite
Compiler

Compiled 671 to 479 computations (28.6% saved)

regimes148.0ms (1.4%)

Counts
4 → 5
Calls
Call 1
Inputs
(*.f64 x (*.f64 y t))
(*.f64 y (*.f64 t x))
(*.f64 (*.f64 y x) t)
(neg.f64 (*.f64 z (*.f64 y t)))
Outputs
(neg.f64 (*.f64 z (*.f64 y t)))
(*.f64 x (*.f64 y t))
(neg.f64 (*.f64 z (*.f64 y t)))
(*.f64 (*.f64 y x) t)
(neg.f64 (*.f64 z (*.f64 y t)))
Calls

4 calls:

85.0ms
t
23.0ms
x
20.0ms
z
18.0ms
y
Results
ErrorSegmentsBranch
15.6b5x
24.2b5y
15.4b5z
19.0b11t
Compiler

Compiled 45 to 28 computations (37.8% saved)

bsearch56.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
1.1911034517195257e-17
1.1105484027070716e-15
18.0ms
-1.2706179807887082e-12
-8.552074480979171e-18
10.0ms
-3.411888649029021e+36
-2.3052878203812318e+35
14.0ms
-7.445743016466532e+91
-1.2094174072100365e+91
Results
50.0ms448×body256valid
1.0ms11×body256infinite
Compiler

Compiled 608 to 434 computations (28.6% saved)

regimes39.0ms (0.4%)

Counts
3 → 2
Calls
Call 1
Inputs
(*.f64 x (*.f64 y t))
(*.f64 y (*.f64 t x))
(*.f64 (*.f64 y x) t)
Outputs
(*.f64 y (*.f64 t x))
(*.f64 (*.f64 y x) t)
Calls

4 calls:

14.0ms
y
11.0ms
x
7.0ms
z
6.0ms
t
Results
ErrorSegmentsBranch
29.3b2x
28.1b2y
29.2b2z
28.2b2t
Compiler

Compiled 39 to 26 computations (33.3% saved)

bsearch14.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
-4.506872548252432e+36
-8.306597621206002e+31
Results
11.0ms112×body256valid
2.0ms20×body256infinite
Compiler

Compiled 160 to 112 computations (30% saved)

regimes260.0ms (2.5%)

Accuracy

Total -5.6b remaining (-19.5%)

Threshold costs -5.6b (-19.5%)

Counts
2 → 2
Calls
Call 1
Inputs
(*.f64 x (*.f64 y t))
(*.f64 y (*.f64 t x))
Outputs
(*.f64 y (*.f64 t x))
(*.f64 x (*.f64 y t))
Calls

4 calls:

131.0ms
t
122.0ms
x
3.0ms
z
3.0ms
y
Results
ErrorSegmentsBranch
29.3b2x
30.7b1y
30.7b1z
28.7b2t
Compiler

Compiled 34 to 24 computations (29.4% saved)

bsearch13.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
2.1529336979913593e+52
2.310937951048272e+53
Results
9.0ms96×body256valid
2.0ms23×body256infinite
Compiler

Compiled 140 to 98 computations (30% saved)

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
085598
Stop Event
done
saturated
Calls
Call 1
Inputs
(if (<=.f64 (-.f64 (*.f64 x y) (*.f64 z y)) -50000000000000003226559936361919779827105376205144584884917978916367904662510143278135754996687257850822691394447592090096097397546144525317852447661395664561828975608881910401466368) (*.f64 y (*.f64 (-.f64 x z) t)) (if (<=.f64 (-.f64 (*.f64 x y) (*.f64 z y)) 50000000000000001506382995007027125144524326988734756441605398995163706668882311641055617813457288178412192150858639140898346706834318867234424975099778599931393322808721069001301985282811477801121079651347551891440706762014265599582147062320881986730721280) (*.f64 (*.f64 y (-.f64 x z)) t) (*.f64 y (*.f64 (-.f64 x z) t))))
(if (<=.f64 z -283625966735417/567251933470833993071770667324028228809837418235547813055332893110634100784456014078204465673887768016738404766156377048665842149942362101665813667717893457711399398974403333260607303556174368618102720559063506014277553065062667880308951927318061097340410272771508755807405604864) (*.f64 y (*.f64 (-.f64 x z) t)) (if (<=.f64 z 1454323131338547/1322111937580497197903830616065542079656809365928562438569297590548811582472622691650378420879430569695182424050046716608512) (*.f64 (*.f64 y x) t) (*.f64 y (*.f64 (-.f64 x z) t))))
(if (<=.f64 z -13000000000000000129684526030113686114382619441795556603530616765217403419599914412562972672) (*.f64 (*.f64 y (neg.f64 z)) t) (if (<=.f64 z -1450000000000000009859040785939300352) (*.f64 x (*.f64 y t)) (if (<=.f64 z -5577662641004209/5070602400912917605986812821504) (neg.f64 (*.f64 z (*.f64 y t))) (if (<=.f64 z 2281771080410813/5070602400912917605986812821504) (*.f64 (*.f64 y x) t) (neg.f64 (*.f64 z (*.f64 y t)))))))
(if (<=.f64 x -2535301200456459/2535301200456458802993406410752) (*.f64 y (*.f64 t x)) (if (<=.f64 x 4127771402148561/29484081443918291814387145163970850710288447034503440846689111720668938768688662906922865040450459121417721679927842538279457692421287442441886205089317937841010900992) (*.f64 y (*.f64 (neg.f64 z) t)) (if (<=.f64 x 4832817552731949/878694100496718043517683302282418331810487718418343092402491322775749527474899974671687634004666183037093927858109549828751614463963730408009475621262727315456) (*.f64 y (*.f64 t x)) (if (<=.f64 x 1684996666696915/6739986666787659948666753771754907668409286105635143120275902562304) (*.f64 y (*.f64 (neg.f64 z) t)) (*.f64 x (*.f64 y t))))))
(if (<=.f64 z -12199999999999999342334108407863067002538982225362604107842297407084843712813873472374571008) (neg.f64 (*.f64 z (*.f64 y t))) (if (<=.f64 z -500000000000000021210318687008980992) (*.f64 x (*.f64 y t)) (if (<=.f64 z -7764359926397905/79228162514264337593543950336) (neg.f64 (*.f64 z (*.f64 y t))) (if (<=.f64 z 1077503010193995/1267650600228229401496703205376) (*.f64 (*.f64 y x) t) (neg.f64 (*.f64 z (*.f64 y t)))))))
(if (<=.f64 y -24999999999999999215841526979493888) (*.f64 y (*.f64 t x)) (*.f64 (*.f64 y x) t))
(if (<=.f64 t 21999999999999999850860870835955815482157585722769408) (*.f64 y (*.f64 t x)) (*.f64 x (*.f64 y t)))
(*.f64 x (*.f64 y t))
Outputs
(if (<=.f64 (-.f64 (*.f64 x y) (*.f64 z y)) -50000000000000003226559936361919779827105376205144584884917978916367904662510143278135754996687257850822691394447592090096097397546144525317852447661395664561828975608881910401466368) (*.f64 y (*.f64 (-.f64 x z) t)) (if (<=.f64 (-.f64 (*.f64 x y) (*.f64 z y)) 50000000000000001506382995007027125144524326988734756441605398995163706668882311641055617813457288178412192150858639140898346706834318867234424975099778599931393322808721069001301985282811477801121079651347551891440706762014265599582147062320881986730721280) (*.f64 (*.f64 y (-.f64 x z)) t) (*.f64 y (*.f64 (-.f64 x z) t))))
(if (<=.f64 z -283625966735417/567251933470833993071770667324028228809837418235547813055332893110634100784456014078204465673887768016738404766156377048665842149942362101665813667717893457711399398974403333260607303556174368618102720559063506014277553065062667880308951927318061097340410272771508755807405604864) (*.f64 y (*.f64 (-.f64 x z) t)) (if (<=.f64 z 1454323131338547/1322111937580497197903830616065542079656809365928562438569297590548811582472622691650378420879430569695182424050046716608512) (*.f64 (*.f64 y x) t) (*.f64 y (*.f64 (-.f64 x z) t))))
(if (<=.f64 z -13000000000000000129684526030113686114382619441795556603530616765217403419599914412562972672) (*.f64 (*.f64 y (neg.f64 z)) t) (if (<=.f64 z -1450000000000000009859040785939300352) (*.f64 x (*.f64 y t)) (if (<=.f64 z -5577662641004209/5070602400912917605986812821504) (neg.f64 (*.f64 z (*.f64 y t))) (if (<=.f64 z 2281771080410813/5070602400912917605986812821504) (*.f64 (*.f64 y x) t) (neg.f64 (*.f64 z (*.f64 y t)))))))
(if (<=.f64 x -2535301200456459/2535301200456458802993406410752) (*.f64 y (*.f64 t x)) (if (<=.f64 x 4127771402148561/29484081443918291814387145163970850710288447034503440846689111720668938768688662906922865040450459121417721679927842538279457692421287442441886205089317937841010900992) (*.f64 y (*.f64 (neg.f64 z) t)) (if (<=.f64 x 4832817552731949/878694100496718043517683302282418331810487718418343092402491322775749527474899974671687634004666183037093927858109549828751614463963730408009475621262727315456) (*.f64 y (*.f64 t x)) (if (<=.f64 x 1684996666696915/6739986666787659948666753771754907668409286105635143120275902562304) (*.f64 y (*.f64 (neg.f64 z) t)) (*.f64 x (*.f64 y t))))))
(if (<=.f64 z -12199999999999999342334108407863067002538982225362604107842297407084843712813873472374571008) (neg.f64 (*.f64 z (*.f64 y t))) (if (<=.f64 z -500000000000000021210318687008980992) (*.f64 x (*.f64 y t)) (if (<=.f64 z -7764359926397905/79228162514264337593543950336) (neg.f64 (*.f64 z (*.f64 y t))) (if (<=.f64 z 1077503010193995/1267650600228229401496703205376) (*.f64 (*.f64 y x) t) (neg.f64 (*.f64 z (*.f64 y t)))))))
(if (<=.f64 y -24999999999999999215841526979493888) (*.f64 y (*.f64 t x)) (*.f64 (*.f64 y x) t))
(if (<=.f64 t 21999999999999999850860870835955815482157585722769408) (*.f64 y (*.f64 t x)) (*.f64 x (*.f64 y t)))
(*.f64 x (*.f64 y t))
Compiler

Compiled 264 to 131 computations (50.4% saved)

soundness12.0ms (0.1%)

Algorithm
egg-herbie
Rules
16×rational.json-simplify-2
16×rational.json-simplify-2
rational.json-simplify-43
rational.json-simplify-43
rational.json-simplify-52
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01025
11319
21519
31819
42419
52519
01025
11319
21519
31819
42419
52519
Stop Event
saturated
saturated
Compiler

Compiled 74 to 31 computations (58.1% saved)

end274.0ms (2.6%)

Compiler

Compiled 326 to 115 computations (64.7% saved)

Profiling

Loading profile data...