Details

Time bar (total: 2.3s)

analyze12.0ms (0.5%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%50%50%0%0%0%0
0%0%50%50%0%0%0%1
50%25%25%50%0%0%0%2
50%25%25%50%0%0%0%3
75%37.5%12.5%50%0%0%0%4
75%37.5%12.5%50%0%0%0%5
87.5%43.7%6.2%50%0%0%0%6
87.5%43.7%6.2%50%0%0%0%7
93.8%46.8%3.1%50%0%0%0%8
93.8%46.8%3.1%50%0%0%0%9
96.9%48.4%1.6%50%0%0%0%10
96.9%48.4%1.6%50%0%0%0%11
98.4%49.2%0.8%50%0%0%0%12
Compiler

Compiled 9 to 6 computations (33.3% saved)

sample1.8s (77%)

Results
1.7s8256×body256valid
Bogosity

preprocess30.0ms (1.3%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0922
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(atan.f64 (/.f64 y x))
(atan.f64 (/.f64 x y))
Outputs
(atan.f64 (/.f64 y x))
(atan.f64 (/.f64 x y))
Compiler

Compiled 8 to 6 computations (25% saved)

simplify49.0ms (2.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(atan.f64 (/.f64 y x))
Outputs
(atan.f64 (/.f64 y x))

eval1.0ms (0%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

prune2.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.0b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(atan.f64 (/.f64 y x))
Compiler

Compiled 6 to 4 computations (33.3% saved)

localize8.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(atan.f64 (/.f64 y x))
Compiler

Compiled 11 to 4 computations (63.6% saved)

series5.0ms (0.2%)

Counts
1 → 0
Calls

6 calls:

TimeVariablePointExpression
0.0ms
y
@inf
(atan.f64 (/.f64 y x))
0.0ms
y
@0
(atan.f64 (/.f64 y x))
0.0ms
y
@-inf
(atan.f64 (/.f64 y x))
0.0ms
x
@-inf
(atan.f64 (/.f64 y x))
0.0ms
x
@inf
(atan.f64 (/.f64 y x))

rewrite131.0ms (5.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
15811
220211
374011
4285711
Stop Event
node limit
Counts
1 → 19
Calls
Call 1
Inputs
(atan.f64 (/.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (atan.f64 (/.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (atan.f64 (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (atan.f64 (/.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (atan.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (atan.f64 (/.f64 y x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (atan.f64 (/.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (atan.f64 (/.f64 y x)) (/.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (atan.f64 (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))) (atan.f64 (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))) (/.f64 1 (atan.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))) (/.f64 (/.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))) (atan.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (atan.f64 (/.f64 y x))) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))) (/.f64 (/.f64 1 (atan.f64 (/.f64 y x))) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (atan.f64 (/.f64 y x))) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x)))) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x)))))) (/.f64 (/.f64 (/.f64 1 (atan.f64 (/.f64 y x))) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x)))) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (atan.f64 (/.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (atan.f64 (/.f64 y x)) (/.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (atan.f64 (/.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (atan.f64 (/.f64 y x))))))))

simplify262.0ms (11.5%)

Algorithm
egg-herbie
Rules
1526×rational.json-simplify-49
1350×rational.json-simplify-2
994×rational.json-simplify-43
948×rational.json-simplify-54
724×rational.json-simplify-58
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041209
176209
2262209
31668209
45288209
57547209
Stop Event
node limit
Counts
19 → 20
Calls
Call 1
Inputs
(+.f64 (atan.f64 (/.f64 y x)) 0)
(+.f64 0 (atan.f64 (/.f64 y x)))
(-.f64 (atan.f64 (/.f64 y x)) 0)
(-.f64 0 (neg.f64 (atan.f64 (/.f64 y x))))
(-.f64 (-.f64 0 (-.f64 -1 (atan.f64 (/.f64 y x)))) 1)
(*.f64 (atan.f64 (/.f64 y x)) 1)
(*.f64 (atan.f64 (/.f64 y x)) (/.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))
(*.f64 1 (atan.f64 (/.f64 y x)))
(*.f64 (/.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))) (atan.f64 (/.f64 y x)))
(*.f64 (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))) (/.f64 1 (atan.f64 (/.f64 y x))))
(*.f64 (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))) (/.f64 (/.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))) (atan.f64 (/.f64 y x))))
(*.f64 (/.f64 1 (atan.f64 (/.f64 y x))) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))
(*.f64 (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))) (/.f64 (/.f64 1 (atan.f64 (/.f64 y x))) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x)))))
(*.f64 (/.f64 (/.f64 1 (atan.f64 (/.f64 y x))) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x)))) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))))
(*.f64 (*.f64 (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x)))))) (/.f64 (/.f64 (/.f64 1 (atan.f64 (/.f64 y x))) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x)))) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x)))))))
(/.f64 (atan.f64 (/.f64 y x)) 1)
(/.f64 (atan.f64 (/.f64 y x)) (/.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))
(pow.f64 (atan.f64 (/.f64 y x)) 1)
(neg.f64 (neg.f64 (atan.f64 (/.f64 y x))))
Outputs
(+.f64 (atan.f64 (/.f64 y x)) 0)
(atan.f64 (/.f64 y x))
(+.f64 0 (atan.f64 (/.f64 y x)))
(atan.f64 (/.f64 y x))
(-.f64 (atan.f64 (/.f64 y x)) 0)
(atan.f64 (/.f64 y x))
(-.f64 0 (neg.f64 (atan.f64 (/.f64 y x))))
(atan.f64 (/.f64 y x))
(-.f64 (-.f64 0 (-.f64 -1 (atan.f64 (/.f64 y x)))) 1)
(atan.f64 (/.f64 y x))
(*.f64 (atan.f64 (/.f64 y x)) 1)
(atan.f64 (/.f64 y x))
(*.f64 (atan.f64 (/.f64 y x)) (/.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))
(atan.f64 (/.f64 y x))
(*.f64 1 (atan.f64 (/.f64 y x)))
(atan.f64 (/.f64 y x))
(*.f64 (/.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))) (atan.f64 (/.f64 y x)))
(atan.f64 (/.f64 y x))
(*.f64 (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))) (/.f64 1 (atan.f64 (/.f64 y x))))
(atan.f64 (/.f64 y x))
(*.f64 (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))) (/.f64 (/.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))) (atan.f64 (/.f64 y x))))
(atan.f64 (/.f64 y x))
(*.f64 (/.f64 1 (atan.f64 (/.f64 y x))) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))
(atan.f64 (/.f64 y x))
(*.f64 (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))) (/.f64 (/.f64 1 (atan.f64 (/.f64 y x))) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x)))))
(atan.f64 (/.f64 y x))
(*.f64 (/.f64 (/.f64 1 (atan.f64 (/.f64 y x))) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x)))) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))))
(atan.f64 (/.f64 y x))
(*.f64 (*.f64 (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x)))))) (/.f64 (/.f64 (/.f64 1 (atan.f64 (/.f64 y x))) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x)))) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (*.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x)))))))
(atan.f64 (/.f64 y x))
(/.f64 (atan.f64 (/.f64 y x)) 1)
(atan.f64 (/.f64 y x))
(/.f64 (atan.f64 (/.f64 y x)) (/.f64 (atan.f64 (/.f64 y x)) (atan.f64 (/.f64 y x))))
(atan.f64 (/.f64 y x))
(pow.f64 (atan.f64 (/.f64 y x)) 1)
(atan.f64 (/.f64 y x))
(neg.f64 (neg.f64 (atan.f64 (/.f64 y x))))
(atan.f64 (/.f64 y x))

eval3.0ms (0.1%)

Compiler

Compiled 317 to 57 computations (82% saved)

prune4.0ms (0.2%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New20020
Fresh000
Picked011
Done000
Total20121
Error
0.0b
Counts
21 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(atan.f64 (/.f64 y x))
Compiler

Compiled 12 to 8 computations (33.3% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
Stop Event
done
saturated
Calls
Call 1
Inputs
(atan.f64 (/.f64 y x))
Outputs
(atan.f64 (/.f64 y x))
Compiler

Compiled 6 to 4 computations (33.3% saved)

soundness0.0ms (0%)

end16.0ms (0.7%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

Profiling

Loading profile data...