Details

Time bar (total: 13.7s)

analyze3.2s (23.5%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.7%0.3%0%0%0%0
0%0%99.7%0.3%0%0%0%1
0%0%99.7%0.3%0%0%0%2
0%0%99.7%0.3%0%0%0%3
0%0%99.7%0.3%0%0%0%4
0%0%99.7%0.3%0%0%0%5
0%0%99.7%0.3%0%0%0%6
0%0%99.7%0.3%0%0%0%7
0%0%99.7%0.3%0%0%0%8
0%0%99.7%0.3%0%0%0%9
0%0%99.7%0.3%0%0%0%10
0%0%99.7%0.3%0%0%0%11
0%0%99.7%0.3%0%0%0%12
Compiler

Compiled 18 to 12 computations (33.3% saved)

sample4.5s (32.7%)

Results
3.0s8256×body256valid
1.5s4061×body256infinite
Bogosity

preprocess15.0ms (0.1%)

Algorithm
egg-herbie
Rules
102×rational.json-simplify-1
36×rational.json-simplify-41
30×rational.json-simplify-2
swap-a-b
swap-z-t
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
063496
1108496
2136496
3153496
066
166
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
3
4
5
Outputs
0
1
0
2
3
2
4
5
4
Call 2
Inputs
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(+.f64 (+.f64 (*.f64 y x) (*.f64 z t)) (*.f64 a b))
(+.f64 (+.f64 (*.f64 z y) (*.f64 x t)) (*.f64 a b))
(+.f64 (+.f64 (*.f64 t y) (*.f64 z x)) (*.f64 a b))
(+.f64 (+.f64 (*.f64 a y) (*.f64 z t)) (*.f64 x b))
(+.f64 (+.f64 (*.f64 b y) (*.f64 z t)) (*.f64 a x))
(+.f64 (+.f64 (*.f64 x z) (*.f64 y t)) (*.f64 a b))
(+.f64 (+.f64 (*.f64 x t) (*.f64 z y)) (*.f64 a b))
(+.f64 (+.f64 (*.f64 x a) (*.f64 z t)) (*.f64 y b))
(+.f64 (+.f64 (*.f64 x b) (*.f64 z t)) (*.f64 a y))
(+.f64 (+.f64 (*.f64 x y) (*.f64 t z)) (*.f64 a b))
(+.f64 (+.f64 (*.f64 x y) (*.f64 a t)) (*.f64 z b))
(+.f64 (+.f64 (*.f64 x y) (*.f64 b t)) (*.f64 a z))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z a)) (*.f64 t b))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z b)) (*.f64 a t))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 b a))
Outputs
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(+.f64 (*.f64 x y) (+.f64 (*.f64 z t) (*.f64 a b)))
(+.f64 (+.f64 (*.f64 y x) (*.f64 z t)) (*.f64 a b))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(+.f64 (*.f64 x y) (+.f64 (*.f64 z t) (*.f64 a b)))
(+.f64 (+.f64 (*.f64 z y) (*.f64 x t)) (*.f64 a b))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y z) (*.f64 x t)))
(+.f64 (+.f64 (*.f64 t y) (*.f64 z x)) (*.f64 a b))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y t) (*.f64 x z)))
(+.f64 (+.f64 (*.f64 a y) (*.f64 z t)) (*.f64 x b))
(+.f64 (+.f64 (*.f64 z t) (*.f64 y a)) (*.f64 x b))
(+.f64 (*.f64 z t) (+.f64 (*.f64 x b) (*.f64 y a)))
(+.f64 (*.f64 z t) (+.f64 (*.f64 y a) (*.f64 x b)))
(+.f64 (+.f64 (*.f64 b y) (*.f64 z t)) (*.f64 a x))
(+.f64 (+.f64 (*.f64 z t) (*.f64 y b)) (*.f64 x a))
(+.f64 (*.f64 z t) (+.f64 (*.f64 y b) (*.f64 x a)))
(+.f64 (*.f64 z t) (+.f64 (*.f64 x a) (*.f64 y b)))
(+.f64 (+.f64 (*.f64 x z) (*.f64 y t)) (*.f64 a b))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y t) (*.f64 x z)))
(+.f64 (+.f64 (*.f64 x t) (*.f64 z y)) (*.f64 a b))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y z) (*.f64 x t)))
(+.f64 (+.f64 (*.f64 x a) (*.f64 z t)) (*.f64 y b))
(+.f64 (+.f64 (*.f64 z t) (*.f64 y b)) (*.f64 x a))
(+.f64 (*.f64 z t) (+.f64 (*.f64 y b) (*.f64 x a)))
(+.f64 (*.f64 z t) (+.f64 (*.f64 x a) (*.f64 y b)))
(+.f64 (+.f64 (*.f64 x b) (*.f64 z t)) (*.f64 a y))
(+.f64 (+.f64 (*.f64 z t) (*.f64 y a)) (*.f64 x b))
(+.f64 (*.f64 z t) (+.f64 (*.f64 x b) (*.f64 y a)))
(+.f64 (*.f64 z t) (+.f64 (*.f64 y a) (*.f64 x b)))
(+.f64 (+.f64 (*.f64 x y) (*.f64 t z)) (*.f64 a b))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(+.f64 (*.f64 x y) (+.f64 (*.f64 z t) (*.f64 a b)))
(+.f64 (+.f64 (*.f64 x y) (*.f64 a t)) (*.f64 z b))
(+.f64 (+.f64 (*.f64 x y) (*.f64 t a)) (*.f64 z b))
(+.f64 (*.f64 t a) (+.f64 (*.f64 x y) (*.f64 z b)))
(+.f64 (+.f64 (*.f64 x y) (*.f64 b t)) (*.f64 a z))
(+.f64 (+.f64 (*.f64 x y) (*.f64 t b)) (*.f64 z a))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z a)) (*.f64 t b))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z a)) (*.f64 t b))
(+.f64 (+.f64 (*.f64 x y) (*.f64 t b)) (*.f64 z a))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z b)) (*.f64 a t))
(+.f64 (+.f64 (*.f64 x y) (*.f64 t a)) (*.f64 z b))
(+.f64 (*.f64 t a) (+.f64 (*.f64 x y) (*.f64 z b)))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 b a))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(+.f64 (*.f64 x y) (+.f64 (*.f64 z t) (*.f64 a b)))
Symmetry

(sort x y)

(sort z t)

(sort a b)

Compiler

Compiled 23 to 17 computations (26.1% saved)

simplify8.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01331
11831
22231
32631
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
Outputs
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(+.f64 (*.f64 x y) (+.f64 (*.f64 z t) (*.f64 a b)))

eval0.0ms (0%)

Compiler

Compiled 28 to 13 computations (53.6% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
0.0b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
Compiler

Compiled 17 to 11 computations (35.3% saved)

localize12.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 x y) (*.f64 z t))
0.0b
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
Compiler

Compiled 39 to 11 computations (71.8% saved)

series7.0ms (0.1%)

Counts
2 → 120
Calls

30 calls:

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

rewrite99.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1822×bool.json-1
1822×bool.json-2
1798×rational.json-1
1080×rational.json-2
1080×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01350
112750
231750
367450
4146950
5353450
6694850
Stop Event
node limit
Counts
2 → 34
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(+.f64 (*.f64 x y) (*.f64 z t))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x y) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 x y) (*.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 x y) (*.f64 z t)) (+.f64 (*.f64 x y) (*.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 x y) (*.f64 z t)) (+.f64 (*.f64 x y) (*.f64 z t)))))))

simplify942.0ms (6.9%)

Algorithm
egg-herbie
Rules
8422×rational.json-simplify-41
2722×rational.json-simplify-35
2320×rational.json-simplify-2
2202×rational.json-simplify-51
1138×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0763490
11413490
23983490
38953490
417493490
522353490
623173490
723803490
824263490
924703490
1025143490
1125583490
1226023490
1326463490
1426903490
1527343490
1627783490
1728223490
1828663490
1935463490
2048783490
2149573490
2250033490
2350473490
2450913490
2559653490
2659653490
2760093490
2860533490
2960973490
3061413490
3161853490
3262293490
3362733490
3463173490
Stop Event
node limit
Counts
154 → 43
Calls
Call 1
Inputs
(+.f64 (*.f64 a b) (*.f64 t z))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(*.f64 y x)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(*.f64 y x)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (*.f64 t z))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(*.f64 y x)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(*.f64 y x)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (*.f64 y x))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(*.f64 t z)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(*.f64 t z)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (*.f64 y x))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(*.f64 t z)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(*.f64 t z)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(*.f64 a b)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(*.f64 a b)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(*.f64 a b)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(*.f64 a b)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 y x) (*.f64 t z))
(-.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 0)
(*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 1)
(*.f64 1 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)))
(*.f64 2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 1/2))
(*.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4))
(*.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 2))
(*.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4))
(*.f64 (/.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4) 4)
(/.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 1)
(/.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 2) 2)
(/.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4)))) 32)
(-.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 0)
(*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 1)
(*.f64 1 (+.f64 (*.f64 x y) (*.f64 z t)))
(*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 1/2))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 2))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4))
(*.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4) 4)
(/.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4)))) 32)
Outputs
(+.f64 (*.f64 a b) (*.f64 t z))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 y x)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 y x)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (*.f64 t z))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 y x)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 y x)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (*.f64 y x))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 t z)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 t z)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (*.f64 y x))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 t z)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 t z)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 a b)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 a b)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 a b)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 a b)
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 t z)
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 t z) (*.f64 y x))
(-.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 0)
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 1)
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 1 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 1/2))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 2) 1/2)
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 4 (/.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4) 1/4)
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 1/2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 2))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 1/2) 2)
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 1/4 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4))
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(*.f64 (/.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4) 4)
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(/.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 1)
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(/.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 2) 2)
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(/.f64 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4) 4)
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4)) 8)
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4))) 16)
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) 4)))) 32)
(+.f64 (*.f64 a b) (+.f64 (*.f64 t z) (*.f64 y x)))
(-.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 0)
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 1)
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 1 (+.f64 (*.f64 x y) (*.f64 z t)))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 1/2))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 2) 1/2)
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 4 (/.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4) 1/4)
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 2))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 1/2) 2)
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 (/.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4) 4)
(+.f64 (*.f64 t z) (*.f64 y x))
(/.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 1)
(+.f64 (*.f64 t z) (*.f64 y x))
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 2) 2)
(+.f64 (*.f64 t z) (*.f64 y x))
(/.f64 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4) 4)
(+.f64 (*.f64 t z) (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4)) 8)
(+.f64 (*.f64 t z) (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4))) 16)
(+.f64 (*.f64 t z) (*.f64 y x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x y) (*.f64 z t)) 4)))) 32)
(+.f64 (*.f64 t z) (*.f64 y x))

eval7.0ms (0%)

Compiler

Compiled 611 to 190 computations (68.9% saved)

prune12.0ms (0.1%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New37643
Fresh000
Picked011
Done000
Total37744
Error
0.0b
Counts
44 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
19.7b
(+.f64 (*.f64 y x) (*.f64 t z))
23.4b
(+.f64 (*.f64 a b) (*.f64 y x))
21.2b
(+.f64 (*.f64 a b) (*.f64 t z))
42.2b
(*.f64 y x)
40.2b
(*.f64 t z)
43.7b
(*.f64 a b)
Compiler

Compiled 149 to 107 computations (28.2% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 23 to 9 computations (60.9% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

12 calls:

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

rewrite110.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1950×bool.json-1
1344×rational.json-simplify-35
1218×bool.json-2
1188×rational.json-1
1188×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
18919
223519
349219
4101819
5225119
6465719
7765919
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(+.f64 (*.f64 y x) (*.f64 t z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y x) (*.f64 t z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 z (*.f64 t 1/2)) (*.f64 x (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 t (+.f64 z z)) (*.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 y x) (*.f64 t z))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 y x) (*.f64 t z)) (+.f64 (*.f64 y x) (*.f64 t z)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 y x) (*.f64 t z)) (+.f64 (*.f64 y x) (*.f64 t z)))))))

simplify955.0ms (7%)

Algorithm
egg-herbie
Rules
5892×rational.json-simplify-51
1978×rational.json-simplify-35
1704×rational.json-simplify-2
1150×rational.json-simplify-49
1148×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057464
1118464
2288464
3705464
41119464
52449464
63223464
73279464
83309464
93335464
103361464
113387464
123436464
133462464
143488464
153514464
163540464
173566464
183592464
194438464
204806464
214838464
224868464
234897464
244926464
254955464
264984464
275013464
285042464
295071464
305100464
315129464
325158464
335187464
345216464
355245464
365274464
375303464
385332464
395361464
405361464
Stop Event
node limit
Counts
32 → 23
Calls
Call 1
Inputs
(*.f64 t z)
(*.f64 y x)
(*.f64 y x)
(*.f64 t z)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 t z)
(*.f64 t z)
(*.f64 y x)
(*.f64 t z)
(*.f64 t z)
(-.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 0)
(*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 1)
(*.f64 1 (+.f64 (*.f64 y x) (*.f64 t z)))
(*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 1/2))
(*.f64 2 (+.f64 (*.f64 z (*.f64 t 1/2)) (*.f64 x (*.f64 y 1/2))))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 2))
(*.f64 1/2 (+.f64 (*.f64 t (+.f64 z z)) (*.f64 y (+.f64 x x))))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 4))
(*.f64 (/.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 4) 4)
(/.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 8)))) 64)
Outputs
(*.f64 t z)
(*.f64 y x)
(*.f64 y x)
(*.f64 t z)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 t z)
(*.f64 t z)
(*.f64 y x)
(*.f64 t z)
(*.f64 t z)
(-.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 0)
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 1)
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 1 (+.f64 (*.f64 y x) (*.f64 t z)))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 1/2))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 2 (+.f64 (*.f64 z (*.f64 t 1/2)) (*.f64 x (*.f64 y 1/2))))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 2) 1/2)
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 4 (/.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 4))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 4) 1/4)
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 2))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 1/2 (+.f64 (*.f64 t (+.f64 z z)) (*.f64 y (+.f64 x x))))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 1/2) 2)
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 4))
(+.f64 (*.f64 t z) (*.f64 y x))
(*.f64 (/.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 4) 4)
(+.f64 (*.f64 t z) (*.f64 y x))
(/.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 1)
(+.f64 (*.f64 t z) (*.f64 y x))
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 2) 2)
(+.f64 (*.f64 t z) (*.f64 y x))
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 4) 4)
(+.f64 (*.f64 t z) (*.f64 y x))
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 8) 8)
(+.f64 (*.f64 t z) (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 8)) 16)
(+.f64 (*.f64 t z) (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 8))) 32)
(+.f64 (*.f64 t z) (*.f64 y x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 t z)) 8)))) 64)
(+.f64 (*.f64 t z) (*.f64 y x))

localize5.0ms (0%)

Compiler

Compiled 11 to 7 computations (36.4% saved)

localize4.0ms (0%)

Compiler

Compiled 11 to 7 computations (36.4% saved)

localize5.0ms (0%)

Compiler

Compiled 11 to 7 computations (36.4% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 a b) (*.f64 t z))
Compiler

Compiled 23 to 9 computations (60.9% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

12 calls:

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

rewrite107.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1950×bool.json-1
1344×rational.json-simplify-35
1218×bool.json-2
1188×rational.json-1
1188×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
18919
223519
349219
4101819
5225119
6465719
7765919
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(+.f64 (*.f64 a b) (*.f64 t z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 a b) (*.f64 t z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 z (*.f64 t 1/2)) (*.f64 b (*.f64 a 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 t (+.f64 z z)) (*.f64 a (+.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 a b) (*.f64 t z))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 a b) (*.f64 t z)) (+.f64 (*.f64 a b) (*.f64 t z)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 a b) (*.f64 t z)) (+.f64 (*.f64 a b) (*.f64 t z)))))))

simplify945.0ms (6.9%)

Algorithm
egg-herbie
Rules
5892×rational.json-simplify-51
1978×rational.json-simplify-35
1704×rational.json-simplify-2
1150×rational.json-simplify-49
1148×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057464
1118464
2288464
3705464
41119464
52449464
63223464
73279464
83309464
93335464
103361464
113387464
123436464
133462464
143488464
153514464
163540464
173566464
183592464
194438464
204806464
214838464
224868464
234897464
244926464
254955464
264984464
275013464
285042464
295071464
305100464
315129464
325158464
335187464
345216464
355245464
365274464
375303464
385332464
395361464
405361464
Stop Event
node limit
Counts
32 → 23
Calls
Call 1
Inputs
(*.f64 t z)
(*.f64 a b)
(*.f64 a b)
(*.f64 t z)
(*.f64 a b)
(*.f64 a b)
(*.f64 a b)
(*.f64 t z)
(*.f64 t z)
(*.f64 a b)
(*.f64 t z)
(*.f64 t z)
(-.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 0)
(*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 1)
(*.f64 1 (+.f64 (*.f64 a b) (*.f64 t z)))
(*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 1/2))
(*.f64 2 (+.f64 (*.f64 z (*.f64 t 1/2)) (*.f64 b (*.f64 a 1/2))))
(*.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 2))
(*.f64 1/2 (+.f64 (*.f64 t (+.f64 z z)) (*.f64 a (+.f64 b b))))
(*.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 4))
(*.f64 (/.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 4) 4)
(/.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 8)))) 64)
Outputs
(*.f64 t z)
(*.f64 a b)
(*.f64 a b)
(*.f64 t z)
(*.f64 a b)
(*.f64 a b)
(*.f64 a b)
(*.f64 t z)
(*.f64 t z)
(*.f64 a b)
(*.f64 t z)
(*.f64 t z)
(-.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 0)
(+.f64 (*.f64 t z) (*.f64 a b))
(*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 1)
(+.f64 (*.f64 t z) (*.f64 a b))
(*.f64 1 (+.f64 (*.f64 a b) (*.f64 t z)))
(+.f64 (*.f64 t z) (*.f64 a b))
(*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 1/2))
(+.f64 (*.f64 t z) (*.f64 a b))
(*.f64 2 (+.f64 (*.f64 z (*.f64 t 1/2)) (*.f64 b (*.f64 a 1/2))))
(+.f64 (*.f64 t z) (*.f64 a b))
(*.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 2) 1/2)
(+.f64 (*.f64 t z) (*.f64 a b))
(*.f64 4 (/.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 4))
(+.f64 (*.f64 t z) (*.f64 a b))
(*.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 4) 1/4)
(+.f64 (*.f64 t z) (*.f64 a b))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 2))
(+.f64 (*.f64 t z) (*.f64 a b))
(*.f64 1/2 (+.f64 (*.f64 t (+.f64 z z)) (*.f64 a (+.f64 b b))))
(+.f64 (*.f64 t z) (*.f64 a b))
(*.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 1/2) 2)
(+.f64 (*.f64 t z) (*.f64 a b))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 4))
(+.f64 (*.f64 t z) (*.f64 a b))
(*.f64 (/.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 4) 4)
(+.f64 (*.f64 t z) (*.f64 a b))
(/.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 1)
(+.f64 (*.f64 t z) (*.f64 a b))
(/.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 2) 2)
(+.f64 (*.f64 t z) (*.f64 a b))
(/.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 4) 4)
(+.f64 (*.f64 t z) (*.f64 a b))
(/.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 8) 8)
(+.f64 (*.f64 t z) (*.f64 a b))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 8)) 16)
(+.f64 (*.f64 t z) (*.f64 a b))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 8))) 32)
(+.f64 (*.f64 t z) (*.f64 a b))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 t z)) 8)))) 64)
(+.f64 (*.f64 t z) (*.f64 a b))

eval7.0ms (0.1%)

Compiler

Compiled 512 to 205 computations (60% saved)

prune10.0ms (0.1%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New46046
Fresh011
Picked011
Done055
Total46753
Error
0.0b
Counts
53 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
19.7b
(+.f64 (*.f64 y x) (*.f64 t z))
23.4b
(+.f64 (*.f64 a b) (*.f64 y x))
21.2b
(+.f64 (*.f64 a b) (*.f64 t z))
42.2b
(*.f64 y x)
40.2b
(*.f64 t z)
43.7b
(*.f64 a b)
Compiler

Compiled 83 to 59 computations (28.9% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 a b) (*.f64 y x))
Compiler

Compiled 23 to 9 computations (60.9% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

12 calls:

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

rewrite107.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1950×bool.json-1
1344×rational.json-simplify-35
1218×bool.json-2
1188×rational.json-1
1188×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
18919
223519
349219
4101819
5225119
6465719
7765919
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(+.f64 (*.f64 a b) (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 a b) (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 b (*.f64 a 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 y (+.f64 x x)) (*.f64 a (+.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 a b) (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 a b) (*.f64 y x)) (+.f64 (*.f64 a b) (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 a b) (*.f64 y x)) (+.f64 (*.f64 a b) (*.f64 y x)))))))

simplify1.1s (7.7%)

Algorithm
egg-herbie
Rules
5892×rational.json-simplify-51
1978×rational.json-simplify-35
1704×rational.json-simplify-2
1150×rational.json-simplify-49
1148×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057464
1118464
2288464
3705464
41119464
52449464
63223464
73279464
83309464
93335464
103361464
113387464
123436464
133462464
143488464
153514464
163540464
173566464
183592464
194438464
204806464
214838464
224868464
234897464
244926464
254955464
264984464
275013464
285042464
295071464
305100464
315129464
325158464
335187464
345216464
355245464
365274464
375303464
385332464
395361464
405361464
Stop Event
node limit
Counts
32 → 23
Calls
Call 1
Inputs
(*.f64 y x)
(*.f64 a b)
(*.f64 a b)
(*.f64 y x)
(*.f64 a b)
(*.f64 a b)
(*.f64 a b)
(*.f64 y x)
(*.f64 y x)
(*.f64 a b)
(*.f64 y x)
(*.f64 y x)
(-.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 0)
(*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 1)
(*.f64 1 (+.f64 (*.f64 a b) (*.f64 y x)))
(*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 1/2))
(*.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 b (*.f64 a 1/2))))
(*.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 2))
(*.f64 1/2 (+.f64 (*.f64 y (+.f64 x x)) (*.f64 a (+.f64 b b))))
(*.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 4))
(*.f64 (/.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 4) 4)
(/.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 8)))) 64)
Outputs
(*.f64 y x)
(*.f64 a b)
(*.f64 a b)
(*.f64 y x)
(*.f64 a b)
(*.f64 a b)
(*.f64 a b)
(*.f64 y x)
(*.f64 y x)
(*.f64 a b)
(*.f64 y x)
(*.f64 y x)
(-.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 0)
(+.f64 (*.f64 y x) (*.f64 a b))
(*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 1)
(+.f64 (*.f64 y x) (*.f64 a b))
(*.f64 1 (+.f64 (*.f64 a b) (*.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 a b))
(*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 1/2))
(+.f64 (*.f64 y x) (*.f64 a b))
(*.f64 2 (+.f64 (*.f64 x (*.f64 y 1/2)) (*.f64 b (*.f64 a 1/2))))
(+.f64 (*.f64 y x) (*.f64 a b))
(*.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 2) 1/2)
(+.f64 (*.f64 y x) (*.f64 a b))
(*.f64 4 (/.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 4))
(+.f64 (*.f64 y x) (*.f64 a b))
(*.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 4) 1/4)
(+.f64 (*.f64 y x) (*.f64 a b))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 2))
(+.f64 (*.f64 y x) (*.f64 a b))
(*.f64 1/2 (+.f64 (*.f64 y (+.f64 x x)) (*.f64 a (+.f64 b b))))
(+.f64 (*.f64 y x) (*.f64 a b))
(*.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 1/2) 2)
(+.f64 (*.f64 y x) (*.f64 a b))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 4))
(+.f64 (*.f64 y x) (*.f64 a b))
(*.f64 (/.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 4) 4)
(+.f64 (*.f64 y x) (*.f64 a b))
(/.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 1)
(+.f64 (*.f64 y x) (*.f64 a b))
(/.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 2) 2)
(+.f64 (*.f64 y x) (*.f64 a b))
(/.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 4) 4)
(+.f64 (*.f64 y x) (*.f64 a b))
(/.f64 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 8) 8)
(+.f64 (*.f64 y x) (*.f64 a b))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 8)) 16)
(+.f64 (*.f64 y x) (*.f64 a b))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 8))) 32)
(+.f64 (*.f64 y x) (*.f64 a b))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 a b) (*.f64 y x)) 8)))) 64)
(+.f64 (*.f64 y x) (*.f64 a b))

eval4.0ms (0%)

Compiler

Compiled 259 to 107 computations (58.7% saved)

prune6.0ms (0%)

Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New23023
Fresh000
Picked011
Done066
Total23730
Error
0.0b
Counts
30 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
19.7b
(+.f64 (*.f64 y x) (*.f64 t z))
23.4b
(+.f64 (*.f64 a b) (*.f64 y x))
21.2b
(+.f64 (*.f64 a b) (*.f64 t z))
42.2b
(*.f64 y x)
40.2b
(*.f64 t z)
43.7b
(*.f64 a b)
Compiler

Compiled 83 to 59 computations (28.9% saved)

regimes125.0ms (0.9%)

Counts
7 → 1
Calls
Call 1
Inputs
(*.f64 a b)
(*.f64 t z)
(*.f64 y x)
(+.f64 (*.f64 a b) (*.f64 t z))
(+.f64 (*.f64 a b) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
Outputs
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
Calls

11 calls:

46.0ms
t
31.0ms
(*.f64 a b)
6.0ms
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
5.0ms
(*.f64 x y)
5.0ms
a
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1t
0.0b1a
0.0b1b
0.0b1(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
0.0b1(+.f64 (*.f64 x y) (*.f64 z t))
0.0b1(*.f64 x y)
0.0b1(*.f64 z t)
0.0b1(*.f64 a b)
Compiler

Compiled 146 to 93 computations (36.3% saved)

regimes499.0ms (3.7%)

Counts
6 → 3
Calls
Call 1
Inputs
(*.f64 a b)
(*.f64 t z)
(*.f64 y x)
(+.f64 (*.f64 a b) (*.f64 t z))
(+.f64 (*.f64 a b) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
Outputs
(+.f64 (*.f64 a b) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 t z))
(+.f64 (*.f64 a b) (*.f64 t z))
Calls

7 calls:

138.0ms
z
92.0ms
(*.f64 a b)
91.0ms
t
85.0ms
a
52.0ms
b
Results
ErrorSegmentsBranch
11.7b3x
10.6b6y
9.6b6z
9.0b7t
10.2b4a
8.9b5b
6.9b3(*.f64 a b)
Compiler

Compiled 87 to 55 computations (36.8% saved)

bsearch31.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
9.693208416778917e+66
1.4175020226663462e+68
19.0ms
-89907283975105.61
-0.05332162022506772
Results
27.0ms256×body256valid
Compiler

Compiled 442 to 323 computations (26.9% saved)

regimes161.0ms (1.2%)

Counts
5 → 5
Calls
Call 1
Inputs
(*.f64 a b)
(*.f64 t z)
(*.f64 y x)
(+.f64 (*.f64 a b) (*.f64 t z))
(+.f64 (*.f64 a b) (*.f64 y x))
Outputs
(+.f64 (*.f64 a b) (*.f64 t z))
(+.f64 (*.f64 a b) (*.f64 y x))
(+.f64 (*.f64 a b) (*.f64 t z))
(+.f64 (*.f64 a b) (*.f64 y x))
(+.f64 (*.f64 a b) (*.f64 t z))
Calls

7 calls:

31.0ms
b
26.0ms
t
24.0ms
z
24.0ms
x
23.0ms
a
Results
ErrorSegmentsBranch
11.4b5x
13.1b3y
11.0b5z
10.8b5t
17.0b5a
15.8b7b
17.8b4(*.f64 a b)
Compiler

Compiled 80 to 54 computations (32.5% saved)

bsearch62.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
1.2648898257443993e+69
4.247702661834207e+71
17.0ms
4.752063739181849e-62
1.721513614276816e-56
16.0ms
7.28903947162016e-92
5.106228497960987e-89
12.0ms
-6.661841787953166e-143
-5.298797893603524e-144
Results
56.0ms496×body256valid
1.0msbody256infinite
Compiler

Compiled 894 to 639 computations (28.5% saved)

regimes132.0ms (1%)

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

7 calls:

30.0ms
b
21.0ms
z
21.0ms
x
17.0ms
t
16.0ms
(*.f64 a b)
Results
ErrorSegmentsBranch
15.9b5x
17.6b4y
17.5b5z
17.6b5t
19.8b3a
17.4b7b
19.2b3(*.f64 a b)
Compiler

Compiled 73 to 53 computations (27.4% saved)

bsearch79.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
7.783742232689054e-112
1.9620134755406658e-105
16.0ms
-3.855829573547134e+109
-1.8712368404356443e+108
20.0ms
-1.309537583963373e+122
-1.9112690050884266e+117
25.0ms
-2.601744963584108e+262
-1.1021902375761824e+260
Results
56.0ms512×body256valid
17.0ms120×body256infinite
Compiler

Compiled 794 to 595 computations (25.1% saved)

regimes171.0ms (1.3%)

Counts
3 → 6
Calls
Call 1
Inputs
(*.f64 a b)
(*.f64 t z)
(*.f64 y x)
Outputs
(*.f64 a b)
(*.f64 y x)
(*.f64 t z)
(*.f64 y x)
(*.f64 t z)
(*.f64 a b)
Calls

7 calls:

38.0ms
x
28.0ms
t
24.0ms
a
24.0ms
y
20.0ms
(*.f64 a b)
Results
ErrorSegmentsBranch
25.7b12x
27.8b7y
27.9b6z
25.9b9t
29.3b8a
29.1b6b
25.1b6(*.f64 a b)
Compiler

Compiled 66 to 52 computations (21.2% saved)

bsearch80.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
2.51459285835177e+61
9.693208416778917e+66
14.0ms
-3.8529157393352024e-188
-1.2865693210333865e-188
17.0ms
-1.005385546154019e-135
-4.491495034585384e-144
18.0ms
-5.837253527654902e-86
-2.360345326138431e-98
14.0ms
-1632620787583395800.0
-1386075571741054.3
Results
73.0ms656×body256valid
Compiler

Compiled 812 to 658 computations (19% saved)

regimes92.0ms (0.7%)

Accuracy

Total -33.3b remaining (-116.4%)

Threshold costs -33.3b (-116.4%)

Counts
2 → 3
Calls
Call 1
Inputs
(*.f64 a b)
(*.f64 t z)
Outputs
(*.f64 a b)
(*.f64 t z)
(*.f64 a b)
Calls

7 calls:

17.0ms
x
16.0ms
t
14.0ms
y
14.0ms
a
11.0ms
b
Results
ErrorSegmentsBranch
33.7b6x
35.5b5y
33.1b3z
32.1b5t
32.2b5a
32.3b3b
28.6b3(*.f64 a b)
Compiler

Compiled 63 to 51 computations (19% saved)

bsearch30.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
2.51459285835177e+61
9.693208416778917e+66
11.0ms
-1386075571741054.3
-89907283975105.61
Results
27.0ms240×body256valid
Compiler

Compiled 296 to 244 computations (17.6% saved)

simplify7.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
072519
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(if (<=.f64 (*.f64 a b) -47000) (+.f64 (*.f64 a b) (*.f64 y x)) (if (<=.f64 (*.f64 a b) 9999999999999999827367757839185598317239782875580932278577147150336) (+.f64 (*.f64 y x) (*.f64 t z)) (+.f64 (*.f64 a b) (*.f64 t z))))
(if (<=.f64 t -3569694783267917/54918381281044877719855206392651145738155482401146443275155707673484345467181248416980477125291636439818370491131846864296975903997733150500592226328920457216) (+.f64 (*.f64 a b) (*.f64 t z)) (if (<=.f64 t 331482221842315/8958978968711216842229769122273777112486581988938598139599956403855167484720643781523509973086428463104) (+.f64 (*.f64 a b) (*.f64 y x)) (if (<=.f64 t 7873862068137501/57896044618658097711785492504343953926634992332820282019728792003956564819968) (+.f64 (*.f64 a b) (*.f64 t z)) (if (<=.f64 t 208000000000000002826574440430970039374165660004003097797874734870822912) (+.f64 (*.f64 a b) (*.f64 y x)) (+.f64 (*.f64 a b) (*.f64 t z))))))
(if (<=.f64 x -189999999999999986467029698869683932006580470954199556324038481333279318117360223861471804873816272524070134056214037069832135692135213287763955728282432327649922347541702889082132454438209570802890012961801793770223719095213702755289278504587331340695463002112) (*.f64 y x) (if (<=.f64 x -509999999999999984068022317195863823624038410122256992284798166112991122116016551519735421593084124099889415567035072512) (+.f64 (*.f64 a b) (*.f64 t z)) (if (<=.f64 x -1900000000000000038524023757623944826157447155814465829196722919267979008131483831520128434152683708103000064) (*.f64 y x) (if (<=.f64 x 2453137384182563/1291124939043454294827959586001505937164852896414611756415329678270323811008420597314822676640068915717951585986373746688) (+.f64 (*.f64 a b) (*.f64 t z)) (*.f64 y x)))))
(if (<=.f64 (*.f64 a b) -37000000000000000) (*.f64 a b) (if (<=.f64 (*.f64 a b) -4208588308330709/300613450595050653169853516389035139504087366260264943450533244356122755214669880763353471793250393988087676928) (*.f64 y x) (if (<=.f64 (*.f64 a b) -6703903964971299/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (*.f64 t z) (if (<=.f64 (*.f64 a b) -2821756786938629/78382132970517478991165606422426233672355708521949855379734648809861125861064803929830588940942115354940041435601982738271645192059633193360683542052684438972998018132574030730004068581526319939960438784) (*.f64 y x) (if (<=.f64 (*.f64 a b) 25500000000000000493431565957837332430430409592710877342072832) (*.f64 t z) (*.f64 a b))))))
(if (<=.f64 (*.f64 a b) -540000000000000) (*.f64 a b) (if (<=.f64 (*.f64 a b) 16000000000000000925727359083631517238294059026800647010762358784) (*.f64 t z) (*.f64 a b)))
(*.f64 a b)
Outputs
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))
(if (<=.f64 (*.f64 a b) -47000) (+.f64 (*.f64 a b) (*.f64 y x)) (if (<=.f64 (*.f64 a b) 9999999999999999827367757839185598317239782875580932278577147150336) (+.f64 (*.f64 y x) (*.f64 t z)) (+.f64 (*.f64 a b) (*.f64 t z))))
(if (<=.f64 t -3569694783267917/54918381281044877719855206392651145738155482401146443275155707673484345467181248416980477125291636439818370491131846864296975903997733150500592226328920457216) (+.f64 (*.f64 a b) (*.f64 t z)) (if (<=.f64 t 331482221842315/8958978968711216842229769122273777112486581988938598139599956403855167484720643781523509973086428463104) (+.f64 (*.f64 a b) (*.f64 y x)) (if (<=.f64 t 7873862068137501/57896044618658097711785492504343953926634992332820282019728792003956564819968) (+.f64 (*.f64 a b) (*.f64 t z)) (if (<=.f64 t 208000000000000002826574440430970039374165660004003097797874734870822912) (+.f64 (*.f64 a b) (*.f64 y x)) (+.f64 (*.f64 a b) (*.f64 t z))))))
(if (<=.f64 x -189999999999999986467029698869683932006580470954199556324038481333279318117360223861471804873816272524070134056214037069832135692135213287763955728282432327649922347541702889082132454438209570802890012961801793770223719095213702755289278504587331340695463002112) (*.f64 y x) (if (<=.f64 x -509999999999999984068022317195863823624038410122256992284798166112991122116016551519735421593084124099889415567035072512) (+.f64 (*.f64 a b) (*.f64 t z)) (if (<=.f64 x -1900000000000000038524023757623944826157447155814465829196722919267979008131483831520128434152683708103000064) (*.f64 y x) (if (<=.f64 x 2453137384182563/1291124939043454294827959586001505937164852896414611756415329678270323811008420597314822676640068915717951585986373746688) (+.f64 (*.f64 a b) (*.f64 t z)) (*.f64 y x)))))
(if (<=.f64 (*.f64 a b) -37000000000000000) (*.f64 a b) (if (<=.f64 (*.f64 a b) -4208588308330709/300613450595050653169853516389035139504087366260264943450533244356122755214669880763353471793250393988087676928) (*.f64 y x) (if (<=.f64 (*.f64 a b) -6703903964971299/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (*.f64 t z) (if (<=.f64 (*.f64 a b) -2821756786938629/78382132970517478991165606422426233672355708521949855379734648809861125861064803929830588940942115354940041435601982738271645192059633193360683542052684438972998018132574030730004068581526319939960438784) (*.f64 y x) (if (<=.f64 (*.f64 a b) 25500000000000000493431565957837332430430409592710877342072832) (*.f64 t z) (*.f64 a b))))))
(if (<=.f64 (*.f64 a b) -540000000000000) (*.f64 a b) (if (<=.f64 (*.f64 a b) 16000000000000000925727359083631517238294059026800647010762358784) (*.f64 t z) (*.f64 a b)))
(*.f64 a b)
Compiler

Compiled 248 to 119 computations (52% saved)

soundness0.0ms (0%)

end63.0ms (0.5%)

Remove

(sort a b)

(sort z t)

(sort x y)

Compiler

Compiled 314 to 133 computations (57.6% saved)

Profiling

Loading profile data...