Details

Time bar (total: 11.6s)

analyze386.0ms (3.3%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
3.1%96.7%0.2%8
6.2%92%1.8%9
8.2%90.1%1.8%10
13.3%84.2%2.5%11
16.2%74.7%9.2%12
Compiler

Compiled 13 to 9 computations (30.8% saved)

sample3.5s (29.7%)

Results
2.0s8256×body256valid
1.4s8457×body256invalid

preprocess18.0ms (0.2%)

Algorithm
egg-herbie
Rules
12×*-commutative_binary64
12×associate-/r*_binary64
swap-V-l
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03284
15684
26484
044
144
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
3
Outputs
0
1
2
3
2
Call 2
Inputs
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
(*.f64 A (sqrt.f64 (/.f64 c0 (*.f64 V l))))
(*.f64 V (sqrt.f64 (/.f64 A (*.f64 c0 l))))
(*.f64 l (sqrt.f64 (/.f64 A (*.f64 V c0))))
(*.f64 c0 (sqrt.f64 (/.f64 V (*.f64 A l))))
(*.f64 c0 (sqrt.f64 (/.f64 l (*.f64 V A))))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 l V))))
Outputs
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
(*.f64 A (sqrt.f64 (/.f64 c0 (*.f64 V l))))
(*.f64 V (sqrt.f64 (/.f64 A (*.f64 c0 l))))
(*.f64 l (sqrt.f64 (/.f64 A (*.f64 V c0))))
(*.f64 l (sqrt.f64 (/.f64 A (*.f64 c0 V))))
(*.f64 c0 (sqrt.f64 (/.f64 V (*.f64 A l))))
(*.f64 c0 (sqrt.f64 (/.f64 l (*.f64 V A))))
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 l V) A)))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 l V))))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
Symmetry

(sort V l)

Compiler

Compiled 16 to 12 computations (25% saved)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0912
11312
21512
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
Outputs
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))

eval0.0ms (0%)

Compiler

Compiled 12 to 8 computations (33.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
19.1b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
19.1b
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
Compiler

Compiled 12 to 8 computations (33.3% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
1.0b
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
4.2b
(/.f64 A (*.f64 V l))
16.9b
(sqrt.f64 (/.f64 A (*.f64 V l)))
Compiler

Compiled 30 to 8 computations (73.3% saved)

series29.0ms (0.2%)

Counts
3 → 12
Calls

30 calls:

TimeVariablePointExpression
3.0ms
l
@-inf
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
2.0ms
A
@inf
(/.f64 A (*.f64 V l))
2.0ms
c0
@inf
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
1.0ms
A
@0
(sqrt.f64 (/.f64 A (*.f64 V l)))
1.0ms
V
@-inf
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))

rewrite84.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
989×pow1_binary64
914×add-log-exp_binary64
914×log1p-expm1-u_binary64
914×expm1-log1p-u_binary64
94×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0928
118528
2245628
Stop Event
node limit
Counts
3 → 90
Calls
Call 1
Inputs
(sqrt.f64 (/.f64 A (*.f64 V l)))
(/.f64 A (*.f64 V l))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (/.f64 A V) l)) (cbrt.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))) (cbrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 A) (sqrt.f64 (/.f64 1 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 A) (pow.f64 (/.f64 1 (*.f64 V l)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 A) (/.f64 1 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (/.f64 A V) l) 1/4) (pow.f64 (/.f64 (/.f64 A V) l) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (/.f64 (/.f64 A V) l)) 2)) (sqrt.f64 (cbrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 (/.f64 A V) l)) 2) 1/2) (pow.f64 (cbrt.f64 (/.f64 (/.f64 A V) l)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (/.f64 l (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 (*.f64 V l)) (sqrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 l (neg.f64 V))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 A)) (neg.f64 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 A V) l) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (/.f64 A V) l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 A (/.f64 1 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 A V) l) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) (sqrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (/.f64 A V) l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 A) 2) (*.f64 (cbrt.f64 A) (/.f64 1 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (/.f64 A V) l)) (pow.f64 (cbrt.f64 (/.f64 (/.f64 A V) l)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (/.f64 A V) l)) (*.f64 (cbrt.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))) (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (/.f64 A V) l)) 2) (cbrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 A) (*.f64 (sqrt.f64 A) (/.f64 1 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (/.f64 A V) l) 1/4) (*.f64 (pow.f64 (/.f64 (/.f64 A V) l) 1/4) (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 A) (/.f64 1 (*.f64 l (neg.f64 V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 V l)) A)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A V) (/.f64 1 l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) (pow.f64 (/.f64 (/.f64 A V) l) 1/4)) (pow.f64 (/.f64 (/.f64 A V) l) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 V) (/.f64 A l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 A) 2) V) (/.f64 (cbrt.f64 A) l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 A) V) (/.f64 (sqrt.f64 A) l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 A) l) (/.f64 (sqrt.f64 A) V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 l) (/.f64 A V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 A) 2) l) (/.f64 (cbrt.f64 A) V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 A) 2) 1) (/.f64 (cbrt.f64 A) (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 A) 1) (/.f64 (sqrt.f64 A) (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (*.f64 V l)) 2)) (/.f64 A (cbrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 A) 2) (pow.f64 (cbrt.f64 (*.f64 V l)) 2)) (cbrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 A) (pow.f64 (cbrt.f64 (*.f64 V l)) 2)) (/.f64 (sqrt.f64 A) (cbrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (*.f64 V l))) (/.f64 A (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 A) 2) (sqrt.f64 (*.f64 V l))) (/.f64 (cbrt.f64 A) (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) (cbrt.f64 (/.f64 (/.f64 A V) l))) (cbrt.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 A V) l) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (/.f64 A V) l)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 l (/.f64 A V)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 A (*.f64 l (neg.f64 V))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (/.f64 A V) l) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 A 3) (pow.f64 (*.f64 V l) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (/.f64 A V) l)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 c0 (sqrt.f64 A)) (sqrt.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (/.f64 (/.f64 A V) l) (*.f64 c0 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3/2) (pow.f64 c0 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 c0 3) (pow.f64 (/.f64 (/.f64 A V) l) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)))))))

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09144
113144
215144
Stop Event
saturated
Counts
102 → 91
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)

eval18.0ms (0.2%)

Compiler

Compiled 1148 to 426 computations (62.9% saved)

prune73.0ms (0.6%)

Pruning

16 alts after pruning (15 fresh and 1 done)

PrunedKeptTotal
New761591
Fresh000
Picked011
Done000
Total761692
Error
3.6b
Counts
92 → 16
Alt Table
Click to see full alt table
StatusErrorProgram
49.9b
(cbrt.f64 (*.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3/2) (pow.f64 c0 3)))
19.5b
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (*.f64 V l)) 2)) (/.f64 A (cbrt.f64 (*.f64 V l))))))
49.7b
(sqrt.f64 (*.f64 (/.f64 (/.f64 A V) l) (*.f64 c0 c0)))
36.0b
(*.f64 c0 (*.f64 (sqrt.f64 A) (sqrt.f64 (/.f64 1 (*.f64 V l)))))
19.1b
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
36.3b
(/.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 (*.f64 V l)))
21.5b
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))))
39.1b
(*.f64 c0 (/.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 l (neg.f64 V)))))
56.5b
(log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 (/.f64 A V) l))))
42.7b
(pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)) 2)
21.4b
(*.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) 1/2))
19.4b
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l))))
26.3b
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l)))
35.7b
(*.f64 c0 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))))
21.4b
(*.f64 c0 (/.f64 1 (sqrt.f64 (/.f64 l (/.f64 A V)))))
27.3b
(*.f64 c0 (cbrt.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3/2)))
Compiler

Compiled 450 to 316 computations (29.8% saved)

localize15.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
1.0b
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l))))
4.5b
(*.f64 (/.f64 1 V) (/.f64 A l))
16.9b
(sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l)))
Compiler

Compiled 40 to 20 computations (50% saved)

series12.0ms (0.1%)

Counts
3 → 48
Calls

30 calls:

TimeVariablePointExpression
1.0ms
A
@inf
(*.f64 (/.f64 1 V) (/.f64 A l))
0.0ms
V
@inf
(sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l)))
0.0ms
V
@0
(sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l)))
0.0ms
V
@inf
(*.f64 (/.f64 1 V) (/.f64 A l))
0.0ms
V
@-inf
(sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l)))

rewrite73.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
589×log-prod_binary64
422×pow-prod-down_binary64
286×pow2_binary64
228×pow-unpow_binary64
204×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01128
122728
2296928
Stop Event
node limit
Counts
3 → 127
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l)))
(*.f64 (/.f64 1 V) (/.f64 A l))
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) (pow.f64 (/.f64 A (*.f64 V l)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/6) (cbrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (pow.f64 (/.f64 A (*.f64 V l)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A l)) (pow.f64 V -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 V -1/2) (sqrt.f64 (/.f64 A l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 V l)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 A (*.f64 V l))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (/.f64 A (*.f64 V l)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/4 (log.f64 (/.f64 A (*.f64 V l)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 A (*.f64 V l))) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 A (*.f64 V l))) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 A (*.f64 V l)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 A (*.f64 V l))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 A (*.f64 V l)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 V (/.f64 l A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (/.f64 l A) V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 V l) A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 V (/.f64 A l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 l (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 V) (/.f64 l A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 A (*.f64 V l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 A (/.f64 V (/.f64 1 l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 A l) V)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 A) 2) (/.f64 (*.f64 V l) (cbrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (/.f64 A l)) 2) (/.f64 V (cbrt.f64 (/.f64 A l))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 A) (/.f64 (*.f64 V l) (sqrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A l)) (/.f64 V (sqrt.f64 (/.f64 A l))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (*.f64 (neg.f64 V) (/.f64 l A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (*.f64 (/.f64 l A) (neg.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 A) (neg.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 A) (*.f64 (neg.f64 V) l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 A) (*.f64 V (neg.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 A V) l)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 A l)) (neg.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 A V)) (neg.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (neg.f64 A)) (*.f64 (neg.f64 V) (neg.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 A) 1) (*.f64 (neg.f64 l) V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 A -1) (*.f64 l (neg.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 A) -1) (*.f64 (neg.f64 l) (neg.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 A l) (sqrt.f64 V)) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 A l) 1) V)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 A l) (pow.f64 (cbrt.f64 V) 2)) (cbrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 A V) 1) l)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 A V) (pow.f64 (cbrt.f64 l) 2)) (cbrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 A V) (sqrt.f64 l)) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (/.f64 A l)) (neg.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 A) (/.f64 1 V)) (neg.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 V) (neg.f64 A)) (neg.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 A l) -1) (neg.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 V l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/6) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (/.f64 A l) 3) (pow.f64 V 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 V (/.f64 l A)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 l A) V) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 V l) A) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 V (/.f64 A l)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 l (/.f64 A V)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (/.f64 A l) 3) (pow.f64 V 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 A (*.f64 V l))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (/.f64 A (*.f64 V l)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 A (*.f64 V l)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 A (*.f64 V l)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 A (*.f64 V l))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 A (*.f64 V l))) 1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 1) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l))))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l)))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 A (*.f64 V l)) (*.f64 c0 c0)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (/.f64 A (*.f64 V l)) (*.f64 c0 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 1) 1))))))

simplify14.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09396
113396
215396
Stop Event
saturated
Counts
175 → 128
Calls
Call 1
Inputs
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)

localize16.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
1.0b
(*.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) 1/2))
6.4b
(/.f64 (/.f64 A V) l)
16.9b
(pow.f64 (/.f64 (/.f64 A V) l) 1/2)
Compiler

Compiled 33 to 12 computations (63.6% saved)

series14.0ms (0.1%)

Counts
3 → 48
Calls

30 calls:

TimeVariablePointExpression
1.0ms
l
@-inf
(pow.f64 (/.f64 (/.f64 A V) l) 1/2)
1.0ms
c0
@0
(*.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) 1/2))
1.0ms
V
@-inf
(*.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) 1/2))
1.0ms
V
@-inf
(pow.f64 (/.f64 (/.f64 A V) l) 1/2)
1.0ms
l
@-inf
(*.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) 1/2))

rewrite68.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
561×log-prod_binary64
418×exp-prod_binary64
359×pow-prod-down_binary64
280×pow2_binary64
196×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01028
121728
2284428
Stop Event
node limit
Counts
3 → 118
Calls
Call 1
Inputs
(pow.f64 (/.f64 (/.f64 A V) l) 1/2)
(/.f64 (/.f64 A V) l)
(*.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) 1/2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (/.f64 A V) l) 1/6) (cbrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (/.f64 A V) l)) (pow.f64 (/.f64 (/.f64 A V) l) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A V)) (pow.f64 l -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (/.f64 A V) l) 1/4) (pow.f64 (/.f64 (/.f64 A V) l) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (*.f64 l (/.f64 V A))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 (neg.f64 A) V)) (sqrt.f64 (neg.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (/.f64 A V) l))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3/2)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 (/.f64 A V) l) 2)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 (/.f64 A V) l) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/4 (log.f64 (/.f64 (/.f64 A V) l))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 (/.f64 A V) l)) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 (/.f64 A V) l)) 1/4) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (/.f64 A V) l))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (/.f64 A V) l))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (/.f64 A V) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (/.f64 A V) l)))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (/.f64 A V) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (/.f64 A V) l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 A (/.f64 1 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A V) (/.f64 1 l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 A V) l) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) (sqrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (/.f64 A V) l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (/.f64 A V) l)) (pow.f64 (cbrt.f64 (/.f64 (/.f64 A V) l)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (/.f64 A V) l)) 2) (cbrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 A V)) 2) (*.f64 (cbrt.f64 (/.f64 A V)) (/.f64 1 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A V)) (*.f64 (sqrt.f64 (/.f64 A V)) (/.f64 1 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (neg.f64 A) V) (/.f64 1 (neg.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 l) (/.f64 A V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (/.f64 A V) l) 1/4) (pow.f64 (/.f64 (/.f64 A V) l) 3/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3/4) (pow.f64 (/.f64 (/.f64 A V) l) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 l -1/2) (/.f64 (/.f64 A V) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 A A)) l) (/.f64 (cbrt.f64 A) V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 A) l) (/.f64 (sqrt.f64 A) V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A 1) (/.f64 (/.f64 1 V) l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 A V)) 2) 1) (/.f64 (cbrt.f64 (/.f64 A V)) l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 A V)) 1) (/.f64 (sqrt.f64 (/.f64 A V)) l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A (cbrt.f64 (*.f64 l l))) (/.f64 (/.f64 1 V) (cbrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 l) -2) (/.f64 (/.f64 A V) (cbrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 A V)) 2) (cbrt.f64 (*.f64 l l))) (cbrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 A V)) (cbrt.f64 (*.f64 l l))) (/.f64 (sqrt.f64 (/.f64 A V)) (cbrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A (sqrt.f64 l)) (/.f64 (/.f64 1 V) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 A V)) 2) (sqrt.f64 l)) (/.f64 (cbrt.f64 (/.f64 A V)) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (/.f64 A V) l) 5/6) (pow.f64 (/.f64 (/.f64 A V) l) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 A V) l) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) 1/6) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (/.f64 A V) l)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 l (/.f64 V A)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (/.f64 A V) 3) (pow.f64 l 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 V A) l) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 V l) A) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 l (/.f64 V A)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 (/.f64 A V) l))) 2)) (cbrt.f64 (log.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 (/.f64 A V) l)))) (sqrt.f64 (log.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (/.f64 A V) (neg.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (/.f64 A V) l) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (/.f64 A V) 3) (pow.f64 l 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (/.f64 A V) l)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 (/.f64 A V) l) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 (/.f64 A V) l))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 l (/.f64 V A))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 (/.f64 A V) l)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))) 1) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))) c0)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))) c0))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (/.f64 A V) l) (*.f64 c0 c0)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0))) 2)) (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)))) (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (/.f64 (/.f64 A V) l) (*.f64 c0 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A V) l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)) 1) 1))))))

simplify15.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09396
113396
215396
Stop Event
saturated
Counts
166 → 120
Calls
Call 1
Inputs
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 1 (sqrt.f64 (/.f64 l (/.f64 A V))))
1.0b
(*.f64 c0 (/.f64 1 (sqrt.f64 (/.f64 l (/.f64 A V)))))
6.5b
(/.f64 l (/.f64 A V))
17.0b
(sqrt.f64 (/.f64 l (/.f64 A V)))
Compiler

Compiled 41 to 13 computations (68.3% saved)

series28.0ms (0.2%)

Counts
4 → 48
Calls

39 calls:

TimeVariablePointExpression
3.0ms
A
@-inf
(/.f64 l (/.f64 A V))
2.0ms
V
@0
(sqrt.f64 (/.f64 l (/.f64 A V)))
1.0ms
l
@-inf
(/.f64 l (/.f64 A V))
1.0ms
l
@0
(sqrt.f64 (/.f64 l (/.f64 A V)))
1.0ms
l
@-inf
(*.f64 c0 (/.f64 1 (sqrt.f64 (/.f64 l (/.f64 A V)))))

rewrite78.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
619×log-prod_binary64
364×pow-prod-down_binary64
289×pow2_binary64
226×pow-unpow_binary64
205×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01140
123337
2314937
Stop Event
node limit
Counts
4 → 179
Calls
Call 1
Inputs
(sqrt.f64 (/.f64 l (/.f64 A V)))
(/.f64 l (/.f64 A V))
(*.f64 c0 (/.f64 1 (sqrt.f64 (/.f64 l (/.f64 A V)))))
(/.f64 1 (sqrt.f64 (/.f64 l (/.f64 A V))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 V (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 V (/.f64 l A))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 V (/.f64 l A)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 V (/.f64 l A)))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 V (/.f64 l A)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 V (/.f64 l A))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 V (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 V (/.f64 l A))) (pow.f64 (*.f64 V (/.f64 l A)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 V (/.f64 l A)) 1/6) (cbrt.f64 (*.f64 V (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 V A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 V (/.f64 l A)) 1/4) (pow.f64 (*.f64 V (/.f64 l A)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 l A)) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (*.f64 V (/.f64 l A))) (pow.f64 (*.f64 V (/.f64 l A)) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 V (/.f64 l A)) 1/4) (pow.f64 (*.f64 V (/.f64 l A)) -1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 (*.f64 V (/.f64 l A)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (neg.f64 l)) (sqrt.f64 (/.f64 (neg.f64 A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 l)) (neg.f64 (sqrt.f64 (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 V (/.f64 l A)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) -3/2) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 V (/.f64 l A))) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) -1/6) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) -1/4) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 l V)) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 V (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 V (/.f64 l A)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 V (/.f64 l A))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 V (/.f64 l A)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 V (/.f64 l A)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 V (/.f64 l A)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 V (/.f64 l A)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 V (/.f64 l A))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 V (/.f64 l A)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (*.f64 V (/.f64 l A)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 V (/.f64 l A)) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 V (/.f64 l A)) 1/4)) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 V (/.f64 l A)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 l A)) V)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 l A)) V))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 l A)) V))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 l A)) V))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 V (/.f64 l A)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 l (/.f64 V A))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 V (/.f64 l A))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 V (/.f64 l A)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) (sqrt.f64 (*.f64 V (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 V (/.f64 l A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 l) 2) (*.f64 (cbrt.f64 l) (/.f64 V A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 V (/.f64 l A))) (pow.f64 (cbrt.f64 (*.f64 V (/.f64 l A))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 V (/.f64 l A))) 2) (cbrt.f64 (*.f64 V (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 l) (*.f64 (sqrt.f64 l) (/.f64 V A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 V (/.f64 l A)) 1/4) (pow.f64 (*.f64 V (/.f64 l A)) 3/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 l) (/.f64 1 (/.f64 (neg.f64 A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 V A) l)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 l A) V)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 V A)) (/.f64 l (sqrt.f64 (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 A) (/.f64 l (/.f64 1 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 l) 2) A) (/.f64 (cbrt.f64 l) (/.f64 1 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 l) A) (/.f64 (sqrt.f64 l) (/.f64 1 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 l) 2) 1) (/.f64 (cbrt.f64 l) (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 l) 1) (/.f64 (sqrt.f64 l) (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 A V)) -2) (/.f64 l (cbrt.f64 (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 l) 2) (pow.f64 (cbrt.f64 (/.f64 A V)) 2)) (cbrt.f64 (*.f64 V (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 l) (pow.f64 (cbrt.f64 (/.f64 A V)) 2)) (/.f64 (sqrt.f64 l) (cbrt.f64 (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 l) 2) (sqrt.f64 (/.f64 A V))) (/.f64 (cbrt.f64 l) (sqrt.f64 (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 l 1) (/.f64 V A))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 l (neg.f64 A)) (neg.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 V (/.f64 l A)) 3/4) (pow.f64 (*.f64 V (/.f64 l A)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 V (/.f64 l A)) 5/6) (pow.f64 (*.f64 V (/.f64 l A)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 l A) 1) V)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 l A) (pow.f64 (cbrt.f64 V) 2)) (cbrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 l A) (sqrt.f64 V)) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 V (/.f64 l A)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) 3/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 V (/.f64 l A))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) 1/6) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 l V)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 l 3) (pow.f64 (/.f64 A V) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 A (*.f64 l V)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 l (/.f64 (neg.f64 A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 V (/.f64 l A)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 l A)) V))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 V (/.f64 l A)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 V (/.f64 l A)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 l 3) (pow.f64 (/.f64 A V) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 V (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 V (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 V (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 V (/.f64 l A))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 V (/.f64 l A)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (*.f64 V (/.f64 l A)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 V (/.f64 l A)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 V (/.f64 l A)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 A (*.f64 l V))) -1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V))))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 c0) 2) (/.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) (cbrt.f64 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 c0) (/.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) (sqrt.f64 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 c0) (neg.f64 (sqrt.f64 (*.f64 V (/.f64 l A)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 c0 (pow.f64 (*.f64 V (/.f64 l A)) 1/4)) (pow.f64 (*.f64 V (/.f64 l A)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 c0 1) (sqrt.f64 (*.f64 V (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 c0 (cbrt.f64 (*.f64 V (/.f64 l A)))) (pow.f64 (*.f64 V (/.f64 l A)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 c0) (neg.f64 (sqrt.f64 (*.f64 V (/.f64 l A)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 c0 -1) (neg.f64 (sqrt.f64 (*.f64 V (/.f64 l A)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 c0 c0) (*.f64 V (/.f64 l A))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 c0 3) (pow.f64 (*.f64 V (/.f64 l A)) 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) c0) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (*.f64 c0 c0) (*.f64 V (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 c0 3) (pow.f64 (*.f64 V (/.f64 l A)) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A)))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A)))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A)))))) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 V (/.f64 l A)) -1/6) (cbrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 l V))) (pow.f64 (*.f64 V (/.f64 l A)) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 V (/.f64 l A)) -1/4) (pow.f64 (*.f64 V (/.f64 l A)) -1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (neg.f64 (sqrt.f64 (*.f64 V (/.f64 l A))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 l -1/2) (sqrt.f64 (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (*.f64 V (/.f64 l A)))) (pow.f64 (*.f64 V (/.f64 l A)) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 V (/.f64 l A)) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) 2) -1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) 3) -1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) -3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) 3/2) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 V (/.f64 l A))) -3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) -1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) 1/6) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) -1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V (/.f64 l A)) 1/4) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 l V)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 (neg.f64 (sqrt.f64 (*.f64 V (/.f64 l A))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 A (*.f64 l V)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 V (/.f64 l A)) -3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 V (/.f64 l A)))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 V (/.f64 l A))) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 V (/.f64 l A)) -3/2)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 V (/.f64 l A)) -1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 V (/.f64 l A)) -1/4)) 2))))))

simplify18.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
associate-/l*_binary64
associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010396
116396
220396
323396
424396
Stop Event
saturated
Counts
227 → 182
Calls
Call 1
Inputs
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (sqrt.f64 A) c0)
1.4b
(/.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 (*.f64 V l)))
9.3b
(sqrt.f64 (*.f64 V l))
Compiler

Compiled 30 to 9 computations (70% saved)

series12.0ms (0.1%)

Counts
3 → 12
Calls

24 calls:

TimeVariablePointExpression
1.0ms
V
@0
(sqrt.f64 (*.f64 V l))
1.0ms
V
@-inf
(sqrt.f64 (*.f64 V l))
1.0ms
A
@0
(*.f64 (sqrt.f64 A) c0)
1.0ms
l
@-inf
(sqrt.f64 (*.f64 V l))
1.0ms
l
@0
(sqrt.f64 (*.f64 V l))

rewrite67.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
573×log-prod_binary64
422×exp-prod_binary64
369×pow-prod-down_binary64
262×pow2_binary64
220×pow-unpow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01026
120426
2267626
Stop Event
node limit
Counts
3 → 124
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 V l))
(/.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 (*.f64 V l)))
(*.f64 (sqrt.f64 A) c0)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 V l)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 V l))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 V l)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 V l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 V l) 1/6) (cbrt.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 V l)) (pow.f64 (*.f64 V l) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 V l) 1/4) (pow.f64 (*.f64 V l) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 V) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 l) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 V l) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 V l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V l) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V l) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V l) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V l) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 V l)) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 V l) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1/2) (log.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (*.f64 V l)))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 V l))))) (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 V l) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 V l)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 V l))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (*.f64 V l))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 V l) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/4 (log.f64 (*.f64 V l))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 V l)) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 V l)) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 V l))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))) c0)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))) c0))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 A) (/.f64 1 (/.f64 (sqrt.f64 (*.f64 V l)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 A) (*.f64 c0 (pow.f64 (*.f64 V l) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 c0 (*.f64 (sqrt.f64 A) (pow.f64 (*.f64 V l) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 A) c0) (pow.f64 (*.f64 V l) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 A (*.f64 c0 c0))) (*.f64 (cbrt.f64 (*.f64 (sqrt.f64 A) c0)) (pow.f64 (*.f64 V l) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)) (cbrt.f64 (/.f64 (*.f64 A (*.f64 c0 c0)) (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (*.f64 A (*.f64 c0 c0)) (*.f64 V l))) (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (sqrt.f64 A) c0)) (*.f64 (sqrt.f64 (*.f64 (sqrt.f64 A) c0)) (pow.f64 (*.f64 V l) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)) (sqrt.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 c0 (neg.f64 (sqrt.f64 A))) (/.f64 1 (neg.f64 (sqrt.f64 (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 V l) -1/2) (*.f64 (sqrt.f64 A) c0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 A) 1) (/.f64 c0 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 c0 1) (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 A (*.f64 c0 c0))) 1) (/.f64 (cbrt.f64 (*.f64 (sqrt.f64 A) c0)) (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (sqrt.f64 A) c0)) 1) (/.f64 (sqrt.f64 (*.f64 (sqrt.f64 A) c0)) (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 A) (cbrt.f64 (*.f64 V l))) (/.f64 c0 (pow.f64 (*.f64 V l) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 c0 (cbrt.f64 (*.f64 V l))) (/.f64 (sqrt.f64 A) (pow.f64 (*.f64 V l) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (*.f64 V l))) (/.f64 (*.f64 (sqrt.f64 A) c0) (pow.f64 (*.f64 V l) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 A (*.f64 c0 c0))) (cbrt.f64 (*.f64 V l))) (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (sqrt.f64 A) c0)) (cbrt.f64 (*.f64 V l))) (/.f64 (sqrt.f64 (*.f64 (sqrt.f64 A) c0)) (pow.f64 (*.f64 V l) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 A) (pow.f64 (*.f64 V l) 1/4)) (/.f64 c0 (pow.f64 (*.f64 V l) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 c0 (pow.f64 (*.f64 V l) 1/4)) (/.f64 (sqrt.f64 A) (pow.f64 (*.f64 V l) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 V l) -1/4) (/.f64 (*.f64 (sqrt.f64 A) c0) (pow.f64 (*.f64 V l) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 A (*.f64 c0 c0))) (pow.f64 (*.f64 V l) 1/4)) (/.f64 (cbrt.f64 (*.f64 (sqrt.f64 A) c0)) (pow.f64 (*.f64 V l) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 V)) (/.f64 c0 (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 c0 (sqrt.f64 V)) (/.f64 (sqrt.f64 A) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 V -1/2) (/.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 A (*.f64 c0 c0))) (sqrt.f64 V)) (/.f64 (cbrt.f64 (*.f64 (sqrt.f64 A) c0)) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (sqrt.f64 A) c0)) (sqrt.f64 V)) (/.f64 (sqrt.f64 (*.f64 (sqrt.f64 A) c0)) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 A (*.f64 c0 c0)) (*.f64 V l)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (*.f64 V l)) (*.f64 (sqrt.f64 A) c0)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 (sqrt.f64 A) c0) 3) (pow.f64 (*.f64 V l) 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (sqrt.f64 (*.f64 V l)) (*.f64 (sqrt.f64 A) c0)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)))) (sqrt.f64 (log.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 (sqrt.f64 A) c0) (neg.f64 (sqrt.f64 (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (*.f64 A (*.f64 c0 c0)) (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 (sqrt.f64 A) c0) 3) (pow.f64 (*.f64 V l) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sqrt.f64 (*.f64 V l)) (*.f64 (sqrt.f64 A) c0))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 A) c0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 A))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 A)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 A)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 A)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 A) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 A) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 A (*.f64 c0 c0)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 A) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 A) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 A) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (sqrt.f64 A) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 A) c0))) 2)) (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 A) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 A) c0)))) (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 A) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 A (*.f64 c0 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 A) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 A) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 A) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 A) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 A) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 A) c0)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (sqrt.f64 A) c0) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sqrt.f64 A) c0))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (sqrt.f64 A) c0))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 A) c0)) 1) 1))))))

simplify11.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09144
113144
215144
Stop Event
saturated
Counts
136 → 125
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)

localize15.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(*.f64 c0 (/.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 l (neg.f64 V)))))
0.2b
(/.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 l (neg.f64 V))))
8.9b
(sqrt.f64 (*.f64 l (neg.f64 V)))
Compiler

Compiled 44 to 11 computations (75% saved)

series12.0ms (0.1%)

Counts
3 → 12
Calls

27 calls:

TimeVariablePointExpression
1.0ms
l
@0
(sqrt.f64 (*.f64 l (neg.f64 V)))
1.0ms
V
@inf
(sqrt.f64 (*.f64 l (neg.f64 V)))
1.0ms
l
@-inf
(/.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 l (neg.f64 V))))
1.0ms
l
@inf
(sqrt.f64 (*.f64 l (neg.f64 V)))
0.0ms
V
@0
(sqrt.f64 (*.f64 l (neg.f64 V)))

rewrite67.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
600×log-prod_binary64
375×pow-prod-down_binary64
281×pow-unpow_binary64
268×pow2_binary64
191×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01237
125227
2342527
Stop Event
node limit
Counts
3 → 109
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 l (neg.f64 V)))
(/.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 l (neg.f64 V))))
(*.f64 c0 (/.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 l (neg.f64 V)))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 l V)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 l V)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 l V))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 l V))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 l V))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 l V)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 l V)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 l V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 l V)) (pow.f64 (*.f64 l V) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 l V) 1/6) (cbrt.f64 (*.f64 l V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 l) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 l V) 1/4) (pow.f64 (*.f64 l V) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 V) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 l V) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 l V)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 l V) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 l V) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 l V) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 l V)) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 l V) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 l V) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 l V)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 l V) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 l V)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 l V))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (*.f64 l V))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 l V) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/4 (log.f64 (*.f64 l V))) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 A) (pow.f64 (*.f64 l V) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 A) (*.f64 (pow.f64 A 1/6) (pow.f64 (*.f64 l V) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/6) (cbrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 l V))) (pow.f64 (/.f64 A (*.f64 l V)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 A 1/4) (*.f64 (pow.f64 A 1/4) (pow.f64 (*.f64 l V) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/4) (pow.f64 (/.f64 A (*.f64 l V)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 A)) (/.f64 1 (neg.f64 (sqrt.f64 (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 l V) -1/2) (sqrt.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 A) 1) (/.f64 (pow.f64 A 1/6) (sqrt.f64 (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 A 1/4) 1) (/.f64 (pow.f64 A 1/4) (sqrt.f64 (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (*.f64 l V))) (/.f64 (sqrt.f64 A) (pow.f64 (*.f64 l V) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 A) (cbrt.f64 (*.f64 l V))) (pow.f64 (/.f64 A (*.f64 l V)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 A 1/4) (cbrt.f64 (*.f64 l V))) (/.f64 (pow.f64 A 1/4) (pow.f64 (*.f64 l V) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 l -1/2) (/.f64 (sqrt.f64 A) (sqrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 A) (sqrt.f64 l)) (/.f64 (pow.f64 A 1/6) (sqrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 A 1/4) (sqrt.f64 l)) (/.f64 (pow.f64 A 1/4) (sqrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 l V) -1/4) (/.f64 (sqrt.f64 A) (pow.f64 (*.f64 l V) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 A) (pow.f64 (*.f64 l V) 1/4)) (/.f64 (pow.f64 A 1/6) (pow.f64 (*.f64 l V) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 l V)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (*.f64 l V) A)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 A 3/2) (pow.f64 (*.f64 l V) 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (/.f64 (*.f64 l V) A)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (sqrt.f64 A) (neg.f64 (sqrt.f64 (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 A (*.f64 l V)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A (*.f64 l V)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 A 3/2) (pow.f64 (*.f64 l V) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 A (*.f64 l V))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 A (*.f64 l V)) 3/2)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 (*.f64 l V) A))) -1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V))))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 (*.f64 l V)) (*.f64 (sqrt.f64 A) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 (*.f64 l V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sqrt.f64 A) c0)) (neg.f64 (sqrt.f64 (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sqrt.f64 A) c0) 1) (sqrt.f64 (*.f64 l V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sqrt.f64 A) c0) (cbrt.f64 (*.f64 l V))) (pow.f64 (*.f64 l V) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 l)) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sqrt.f64 A) c0) (pow.f64 (*.f64 l V) 1/4)) (pow.f64 (*.f64 l V) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (sqrt.f64 A)) c0) (neg.f64 (sqrt.f64 (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 c0 (neg.f64 (sqrt.f64 A))) (neg.f64 (sqrt.f64 (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 c0 c0) (/.f64 A (*.f64 l V))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (*.f64 l V)) (*.f64 (sqrt.f64 A) c0)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 c0 c0) (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))) 2))))))

simplify10.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09144
113144
215144
Stop Event
saturated
Counts
121 → 110
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)

eval186.0ms (1.6%)

Compiler

Compiled 8763 to 3194 computations (63.6% saved)

prune277.0ms (2.4%)

Pruning

25 alts after pruning (21 fresh and 4 done)

PrunedKeptTotal
New64619665
Fresh8210
Picked011
Done235
Total65625681
Error
1.0b
Counts
681 → 25
Alt Table
Click to see full alt table
StatusErrorProgram
25.6b
(*.f64 c0 (/.f64 1 (*.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 V A)))))
19.5b
(*.f64 c0 (pow.f64 (*.f64 V (/.f64 l A)) -1/2))
26.3b
(*.f64 c0 (*.f64 (pow.f64 l -1/2) (sqrt.f64 (/.f64 A V))))
56.5b
(log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 (/.f64 A V) l))))
19.4b
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
19.0b
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
44.9b
(cbrt.f64 (pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A)))) 3))
50.5b
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 (neg.f64 A) V)) (sqrt.f64 (neg.f64 l))))
26.3b
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l)))
49.5b
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)))
19.5b
(/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))
19.1b
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
36.4b
(*.f64 (sqrt.f64 A) (*.f64 c0 (pow.f64 (*.f64 V l) -1/2)))
36.3b
(/.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 (*.f64 V l)))
21.5b
(*.f64 c0 (sqrt.f64 (/.f64 (*.f64 (/.f64 1 V) (neg.f64 A)) (neg.f64 l))))
21.5b
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))))
39.1b
(*.f64 c0 (/.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 l (neg.f64 V)))))
49.4b
(sqrt.f64 (/.f64 (*.f64 A (*.f64 c0 c0)) (*.f64 V l)))
49.5b
(*.f64 c0 (/.f64 1 (*.f64 (sqrt.f64 (/.f64 l A)) (sqrt.f64 V))))
47.1b
(*.f64 (/.f64 c0 (sqrt.f64 V)) (/.f64 (sqrt.f64 A) (sqrt.f64 l)))
47.4b
(/.f64 (/.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 l)) (sqrt.f64 V))
19.4b
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l))))
19.7b
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) c0))
35.7b
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)
21.3b
(*.f64 c0 (/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l))))
Compiler

Compiled 634 to 448 computations (29.3% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.8b
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
4.3b
(/.f64 (*.f64 l V) A)
17.0b
(sqrt.f64 (/.f64 (*.f64 l V) A))
Compiler

Compiled 30 to 8 computations (73.3% saved)

series22.0ms (0.2%)

Counts
3 → 48
Calls

30 calls:

TimeVariablePointExpression
11.0ms
V
@0
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
1.0ms
V
@inf
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
0.0ms
V
@-inf
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
0.0ms
l
@0
(sqrt.f64 (/.f64 (*.f64 l V) A))
0.0ms
l
@-inf
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))

rewrite72.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
546×log-prod_binary64
410×exp-prod_binary64
335×pow-prod-down_binary64
257×pow2_binary64
186×pow-unpow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0928
119128
2266528
Stop Event
node limit
Counts
3 → 169
Calls
Call 1
Inputs
(sqrt.f64 (/.f64 (*.f64 l V) A))
(/.f64 (*.f64 l V) A)
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 l (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 l (/.f64 A V))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 l (/.f64 A V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 l (/.f64 A V)))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 l (/.f64 A V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 l (/.f64 A V))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 l (/.f64 A V))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 l (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 l (/.f64 A V))) (pow.f64 (/.f64 l (/.f64 A V)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 l (/.f64 A V)) 1/6) (cbrt.f64 (/.f64 l (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 l (/.f64 A V)) 1/4) (pow.f64 (/.f64 l (/.f64 A V)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 l V)) (pow.f64 A -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 l V)) (sqrt.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 l (neg.f64 V))) (sqrt.f64 (neg.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 (*.f64 l V))) (neg.f64 (sqrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 l (/.f64 A V)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 l (/.f64 A V))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) -2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) -3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) -3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 l (/.f64 A V))) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 l (/.f64 A V)) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 l (/.f64 A V)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 A V) l) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (sqrt.f64 (/.f64 l (/.f64 A V)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1/2) (log.f64 (/.f64 l (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 l V))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (/.f64 l (/.f64 A V))))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (/.f64 l (/.f64 A V))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sqrt.f64 (/.f64 l (/.f64 A V)))))) (sqrt.f64 (log.f64 (sqrt.f64 (/.f64 l (/.f64 A V))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (/.f64 l (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 l (/.f64 A V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 l (/.f64 A V))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (/.f64 A V) l) -3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 l (/.f64 A V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 l (/.f64 A V)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 l (/.f64 A V)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 l (/.f64 A V))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 l (/.f64 A V)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 (/.f64 A V) l) -3/2)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 l (/.f64 A V)) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/4 (log.f64 (/.f64 l (/.f64 A V)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 l (/.f64 A V))) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 l (/.f64 A V))) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 l (/.f64 A V)))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 l (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 l A)) V)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 l A)) V))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 l A)) V))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 l A)) V))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 l (/.f64 A V)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 l (/.f64 1 (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 l (*.f64 V (/.f64 1 A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 V (*.f64 l (/.f64 1 A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 l V) (/.f64 1 A))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 l (/.f64 A V)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 l (/.f64 A V))) (sqrt.f64 (/.f64 l (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 l (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 l (/.f64 A V))) (cbrt.f64 (pow.f64 (/.f64 (/.f64 A V) l) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 (/.f64 A V) l) -2)) (cbrt.f64 (/.f64 l (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 l V) 2)) (*.f64 (cbrt.f64 (*.f64 l V)) (/.f64 1 A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 l (/.f64 A V)) 1/4) (pow.f64 (/.f64 l (/.f64 A V)) 3/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 l V)) (*.f64 (sqrt.f64 (*.f64 l V)) (/.f64 1 A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 l (neg.f64 V)) (/.f64 1 (neg.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 A) (*.f64 l V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 l (/.f64 A V)) 3/4) (pow.f64 (/.f64 l (/.f64 A V)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 A -1/2) (/.f64 (*.f64 l V) (sqrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 l 1) (/.f64 V A))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 V 1) (/.f64 l A))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 l A) V)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 l V) 2)) 1) (/.f64 (cbrt.f64 (*.f64 l V)) A))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 l V)) 1) (/.f64 (sqrt.f64 (*.f64 l V)) A))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 l (pow.f64 (cbrt.f64 A) 2)) (/.f64 V (cbrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 V (pow.f64 (cbrt.f64 A) 2)) (/.f64 l (cbrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 A) -2) (/.f64 (*.f64 l V) (cbrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 l V) 2)) (pow.f64 (cbrt.f64 A) 2)) (cbrt.f64 (/.f64 l (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 l V)) (pow.f64 (cbrt.f64 A) 2)) (/.f64 (sqrt.f64 (*.f64 l V)) (cbrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 l (sqrt.f64 A)) (/.f64 V (sqrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 V (sqrt.f64 A)) (/.f64 l (sqrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 l V) 2)) (sqrt.f64 A)) (/.f64 (cbrt.f64 (*.f64 l V)) (sqrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 l (/.f64 A V)) 5/6) (pow.f64 (/.f64 l (/.f64 A V)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 l (/.f64 A V)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 l (/.f64 A V))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (/.f64 A V) l) -3/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 l (/.f64 A V))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 l (/.f64 A V)) 1/6) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 l (/.f64 A V)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 A V) l) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 l (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 l V) 3) (pow.f64 A 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (/.f64 A V) l) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 l (/.f64 A V)))) 2)) (cbrt.f64 (log.f64 (/.f64 l (/.f64 A V)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 l (/.f64 A V))))) (sqrt.f64 (log.f64 (/.f64 l (/.f64 A V)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 l V) (neg.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (/.f64 A V) l) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 l A)) V))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 l (/.f64 A V)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (/.f64 A V) l) -3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 l V) 3) (pow.f64 A 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 l (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 l (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 l (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 l (/.f64 A V))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 l (/.f64 A V)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (/.f64 l (/.f64 A V)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 (/.f64 A V) l) -3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 l (/.f64 A V)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (/.f64 A V) l)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 l (/.f64 A V))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 l (/.f64 A V))) 1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 l (/.f64 A V)))) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 l) 1) (log.f64 (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 l V)) 1) (log.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 l V)) (*.f64 (log.f64 A) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 l V)) 1) (*.f64 (log.f64 A) 1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 (/.f64 A V) l)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 (/.f64 A V) l))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 (/.f64 A V) l))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 (/.f64 A V) l))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 c0) 2) (*.f64 (cbrt.f64 c0) (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l)))) (cbrt.f64 (*.f64 (*.f64 c0 c0) (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (*.f64 c0 c0) (/.f64 (/.f64 A V) l))) (cbrt.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 c0) (*.f64 (sqrt.f64 c0) (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l)))) (sqrt.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 c0) (/.f64 1 (neg.f64 (sqrt.f64 (/.f64 l (/.f64 A V))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 c0) 2) 1) (/.f64 (cbrt.f64 c0) (sqrt.f64 (/.f64 l (/.f64 A V)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 c0) 1) (/.f64 (sqrt.f64 c0) (sqrt.f64 (/.f64 l (/.f64 A V)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (/.f64 l (/.f64 A V)))) (/.f64 c0 (pow.f64 (/.f64 l (/.f64 A V)) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 c0) 2) (cbrt.f64 (/.f64 l (/.f64 A V)))) (cbrt.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 c0) (cbrt.f64 (/.f64 l (/.f64 A V)))) (/.f64 (sqrt.f64 c0) (pow.f64 (/.f64 l (/.f64 A V)) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 l (/.f64 A V)) -1/4) (/.f64 c0 (pow.f64 (/.f64 l (/.f64 A V)) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 c0) 2) (pow.f64 (/.f64 l (/.f64 A V)) 1/4)) (/.f64 (cbrt.f64 c0) (pow.f64 (/.f64 l (/.f64 A V)) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 c0 (sqrt.f64 (*.f64 l V))) (sqrt.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 c0 c0) (/.f64 (/.f64 A V) l)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (/.f64 l (/.f64 A V))) c0) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 c0 3) (pow.f64 (/.f64 (/.f64 A V) l) -3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (sqrt.f64 (/.f64 l (/.f64 A V))) c0) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l))))) 2)) (cbrt.f64 (log.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l)))))) (sqrt.f64 (log.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l))))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 c0 (neg.f64 (sqrt.f64 (/.f64 l (/.f64 A V))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 c0 c0) (/.f64 (/.f64 A V) l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 (/.f64 A V) l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 c0 3) (pow.f64 (/.f64 (/.f64 A V) l) -3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sqrt.f64 (/.f64 l (/.f64 A V))) c0)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A V) l)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 c0) 1) (log.f64 (sqrt.f64 (/.f64 l (/.f64 A V))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 c0) (*.f64 (log.f64 (/.f64 l (/.f64 A V))) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 c0) 1) (*.f64 (log.f64 (/.f64 l (/.f64 A V))) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 c0) (*.f64 (log.f64 (sqrt.f64 (/.f64 l (/.f64 A V)))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 c0) 1) (*.f64 (log.f64 (sqrt.f64 (/.f64 l (/.f64 A V)))) 1)))))))

simplify18.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
associate-/l*_binary64
associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010396
116396
220396
323396
424396
Stop Event
saturated
Counts
217 → 172
Calls
Call 1
Inputs
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)

localize11.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
1.0b
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
4.4b
(/.f64 (/.f64 A l) V)
16.9b
(sqrt.f64 (/.f64 (/.f64 A l) V))
Compiler

Compiled 30 to 8 computations (73.3% saved)

series11.0ms (0.1%)

Counts
3 → 48
Calls

30 calls:

TimeVariablePointExpression
1.0ms
A
@0
(sqrt.f64 (/.f64 (/.f64 A l) V))
0.0ms
A
@inf
(sqrt.f64 (/.f64 (/.f64 A l) V))
0.0ms
l
@-inf
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
0.0ms
l
@-inf
(sqrt.f64 (/.f64 (/.f64 A l) V))
0.0ms
l
@0
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))

rewrite75.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
536×log-prod_binary64
398×exp-prod_binary64
362×pow-prod-down_binary64
257×pow2_binary64
185×pow-unpow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0928
119128
2264828
Stop Event
node limit
Counts
3 → 140
Calls
Call 1
Inputs
(sqrt.f64 (/.f64 (/.f64 A l) V))
(/.f64 (/.f64 A l) V)
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 l V))) (pow.f64 (/.f64 A (*.f64 l V)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/6) (cbrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/4) (pow.f64 (/.f64 A (*.f64 l V)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A l)) (pow.f64 V -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (*.f64 V (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 V) (sqrt.f64 (/.f64 A l))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 l V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 (neg.f64 A) l)) (sqrt.f64 (neg.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 (/.f64 A l))) (neg.f64 (sqrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 l V)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 A (*.f64 l V))) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 V (/.f64 l A)) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1/2) (log.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 V) (sqrt.f64 (/.f64 A l))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))) (sqrt.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A (*.f64 l V)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 A (*.f64 l V))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (/.f64 A (*.f64 l V)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/4 (log.f64 (/.f64 A (*.f64 l V)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 A (*.f64 l V))) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 A (*.f64 l V))) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 A (*.f64 l V)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 A (*.f64 l V)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 A (*.f64 l V))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 A (*.f64 l V))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 A (*.f64 l V))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 A (*.f64 l V)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 A (/.f64 1 (*.f64 l V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A l) (/.f64 1 V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A (*.f64 l V)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) (sqrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 A (*.f64 l V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 l V))) (pow.f64 (cbrt.f64 (/.f64 A (*.f64 l V))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 A (*.f64 l V))) 2) (cbrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 A l) 2)) (*.f64 (cbrt.f64 (/.f64 A l)) (/.f64 1 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/4) (pow.f64 (/.f64 A (*.f64 l V)) 3/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A l)) (*.f64 (sqrt.f64 (/.f64 A l)) (/.f64 1 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (neg.f64 A) l) (/.f64 1 (neg.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 V) (/.f64 A l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 l V)) 3/4) (pow.f64 (/.f64 A (*.f64 l V)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 V -1/2) (/.f64 (/.f64 A l) (sqrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 A) 2) V) (/.f64 (cbrt.f64 A) l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 A) V) (/.f64 (sqrt.f64 A) l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A 1) (/.f64 (/.f64 1 l) V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (/.f64 A l) 2)) 1) (/.f64 (cbrt.f64 (/.f64 A l)) V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 A l)) 1) (/.f64 (sqrt.f64 (/.f64 A l)) V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A (pow.f64 (cbrt.f64 V) 2)) (/.f64 (/.f64 1 l) (cbrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 V) -2) (/.f64 (/.f64 A l) (cbrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (/.f64 A l) 2)) (pow.f64 (cbrt.f64 V) 2)) (cbrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (pow.f64 (cbrt.f64 V) 2)) (/.f64 (sqrt.f64 (/.f64 A l)) (cbrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A (sqrt.f64 V)) (/.f64 (/.f64 1 l) (sqrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (/.f64 A l) 2)) (sqrt.f64 V)) (/.f64 (cbrt.f64 (/.f64 A l)) (sqrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 l V)) 5/6) (pow.f64 (/.f64 A (*.f64 l V)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 l V)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 3/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 A (*.f64 l V))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/6) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 V (/.f64 l A)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (/.f64 A l) 3) (pow.f64 V 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 l A) V) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 l V) A) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 V (/.f64 l A)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 A (*.f64 l V)))) 2)) (cbrt.f64 (log.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 A (*.f64 l V))))) (sqrt.f64 (log.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (/.f64 A l) (neg.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 A (*.f64 l V)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A (*.f64 l V)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (/.f64 A l) 3) (pow.f64 V 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 A (*.f64 l V))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (/.f64 A (*.f64 l V)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 A (*.f64 l V)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 A (*.f64 l V)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 V (/.f64 l A))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 A (*.f64 l V))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 A (*.f64 l V))) 1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 A) 1) (log.f64 (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (/.f64 A l)) 1) (log.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (/.f64 A l)) (*.f64 (log.f64 V) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (/.f64 A l)) 1) (*.f64 (log.f64 V) 1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V))))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 c0 (sqrt.f64 (/.f64 A l))) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 A (*.f64 l V)) (*.f64 c0 c0)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))) 2)) (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)))) (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (/.f64 A (*.f64 l V)) (*.f64 c0 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)) 1) 1))))))

simplify27.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09396
113396
215396
Stop Event
saturated
Counts
188 → 142
Calls
Call 1
Inputs
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)

localize23.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l)))
1.0b
(*.f64 c0 (/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l))))
6.4b
(*.f64 (/.f64 V A) l)
17.0b
(sqrt.f64 (*.f64 (/.f64 V A) l))
Compiler

Compiled 41 to 13 computations (68.3% saved)

series25.0ms (0.2%)

Counts
4 → 48
Calls

39 calls:

TimeVariablePointExpression
2.0ms
V
@inf
(*.f64 (/.f64 V A) l)
1.0ms
V
@-inf
(*.f64 c0 (/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l))))
1.0ms
V
@0
(sqrt.f64 (*.f64 (/.f64 V A) l))
1.0ms
A
@-inf
(sqrt.f64 (*.f64 (/.f64 V A) l))
1.0ms
A
@-inf
(*.f64 c0 (/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l))))

rewrite86.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
584×log-prod_binary64
438×exp-prod_binary64
369×pow-prod-down_binary64
282×pow2_binary64
228×pow-unpow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01140
122738
2290838
Stop Event
node limit
Counts
4 → 176
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (/.f64 V A) l))
(*.f64 (/.f64 V A) l)
(*.f64 c0 (/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l))))
(/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 V A) l)) (pow.f64 (*.f64 (/.f64 V A) l) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 V A) l) 1/6) (cbrt.f64 (*.f64 (/.f64 V A) l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 V A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 V A) l) 1/4) (pow.f64 (*.f64 (/.f64 V A) l) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (*.f64 (/.f64 V A) l)) (pow.f64 (*.f64 (/.f64 V A) l) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 (/.f64 V A) l) 1/4) (pow.f64 (*.f64 (/.f64 V A) l) -1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 V A)) (pow.f64 l -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 V l)) (sqrt.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 V A) l) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) -3/2) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 V A) l)) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/6) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/4) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1/2) (log.f64 (*.f64 (/.f64 V A) l)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))))) (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 V A) l) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 V A) l)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (*.f64 (/.f64 V A) l))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 V A) l) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/4 (log.f64 (*.f64 (/.f64 V A) l))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 V A) l)) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 V A) l)) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 V A) l))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 V A) l))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 V A) l)))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 V A) l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 V (/.f64 A l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 l (/.f64 A V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 V l) A)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 V l)) (neg.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 V l) 1) A)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 V l) (pow.f64 (cbrt.f64 A) 2)) (cbrt.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 V l) (sqrt.f64 A)) (sqrt.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 V) l) (neg.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 l (neg.f64 V)) (neg.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 V A) l) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (*.f64 (/.f64 V A) l)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) 3/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 V A) l)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) 1/6) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 V l)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 V A) l))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 V A) l)))) (sqrt.f64 (log.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 V A) l) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (/.f64 V A) l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 V A) l) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 V A) l)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 V A) l)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 V A) l)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 V A) l)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (*.f64 (/.f64 V A) l))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (/.f64 V A) l))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 V A) l))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 V A) l)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 V A) l)) 1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))) 1) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 c0) 2) (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) (cbrt.f64 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 c0) (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) (sqrt.f64 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 c0) (neg.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 c0 (pow.f64 (*.f64 (/.f64 V A) l) 1/4)) (pow.f64 (*.f64 (/.f64 V A) l) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 c0 1) (sqrt.f64 (*.f64 (/.f64 V A) l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 c0 (cbrt.f64 (*.f64 (/.f64 V A) l))) (pow.f64 (*.f64 (/.f64 V A) l) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 c0 (sqrt.f64 (/.f64 V A))) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 c0) (neg.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 c0 -1) (neg.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 c0 c0) (*.f64 (/.f64 V A) l)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 c0 3) (pow.f64 (*.f64 (/.f64 V A) l) 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))) 2)) (cbrt.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))) (sqrt.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (*.f64 c0 c0) (*.f64 (/.f64 V A) l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 c0 3) (pow.f64 (*.f64 (/.f64 V A) l) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/6) (cbrt.f64 (/.f64 1 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 1 (*.f64 (/.f64 V A) l))) (pow.f64 (*.f64 (/.f64 V A) l) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/4) (pow.f64 (*.f64 (/.f64 V A) l) -1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (neg.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (*.f64 (/.f64 V A) l))) (pow.f64 (*.f64 (/.f64 V A) l) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 V A) -1/2) (pow.f64 l -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 V A) l) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (*.f64 -1/2 (log.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) 2) -1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) 3) -1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (*.f64 (/.f64 V A) l)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) -3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) 3/2) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 V A) l)) -3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) 1/6) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 V A) l) 1/4) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 -1) (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 (neg.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 -1/2 (log.f64 (*.f64 (/.f64 V A) l)))) 2)) (cbrt.f64 (*.f64 -1/2 (log.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (*.f64 -1/2 (log.f64 (*.f64 (/.f64 V A) l))))) (sqrt.f64 (*.f64 -1/2 (log.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 1 (*.f64 (/.f64 V A) l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 V A) l) -3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 -1/2 (log.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 -1/2 (log.f64 (*.f64 (/.f64 V A) l))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 V A) l)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 V A) l) -3/2)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 V A) l)) 1) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 V A) l)) 1/2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))) 1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 -1/2 (log.f64 (*.f64 (/.f64 V A) l))) 1) 1))))))

simplify18.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
associate-/l*_binary64
associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010396
116396
220396
323396
424396
Stop Event
saturated
Counts
224 → 179
Calls
Call 1
Inputs
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)

localize11.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))
0.8b
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)
9.3b
(sqrt.f64 (*.f64 V l))
Compiler

Compiled 33 to 9 computations (72.7% saved)

series15.0ms (0.1%)

Counts
2 → 12
Calls

21 calls:

TimeVariablePointExpression
6.0ms
A
@-inf
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)
1.0ms
l
@inf
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)
1.0ms
A
@0
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)
1.0ms
V
@0
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)
0.0ms
l
@-inf
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)

rewrite62.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
563×log-prod_binary64
409×exp-prod_binary64
370×pow-prod-down_binary64
262×pow2_binary64
227×pow-unpow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01021
120621
2268021
Stop Event
node limit
Counts
2 → 87
Calls
Call 1
Inputs
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)
(/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) c0)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) c0))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 A) (/.f64 (sqrt.f64 (*.f64 V l)) c0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 c0 (sqrt.f64 (/.f64 (*.f64 V l) A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 (*.f64 V l)) (*.f64 (sqrt.f64 A) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sqrt.f64 A) c0)) (neg.f64 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sqrt.f64 A) c0) 1) (sqrt.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sqrt.f64 A) c0) (cbrt.f64 (*.f64 V l))) (pow.f64 (*.f64 V l) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sqrt.f64 A) c0) (pow.f64 (*.f64 V l) 1/4)) (pow.f64 (*.f64 V l) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 V)) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (sqrt.f64 A)) c0) (neg.f64 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 c0 (neg.f64 (sqrt.f64 A))) (neg.f64 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 A (*.f64 V l)) (*.f64 c0 c0)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (*.f64 V l)) (*.f64 (sqrt.f64 A) c0)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 2)) (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))) (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (/.f64 A (*.f64 V l)) (*.f64 c0 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 A) (pow.f64 (*.f64 V l) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/6) (cbrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) (pow.f64 (/.f64 A (*.f64 V l)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 A) (*.f64 (pow.f64 A 1/6) (pow.f64 (*.f64 V l) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (pow.f64 (/.f64 A (*.f64 V l)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 A 1/4) (*.f64 (pow.f64 A 1/4) (pow.f64 (*.f64 V l) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 A)) (/.f64 1 (neg.f64 (sqrt.f64 (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 V l) -1/2) (sqrt.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 A) 1) (/.f64 (pow.f64 A 1/6) (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 A 1/4) 1) (/.f64 (pow.f64 A 1/4) (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (*.f64 V l))) (/.f64 (sqrt.f64 A) (pow.f64 (*.f64 V l) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 A) (cbrt.f64 (*.f64 V l))) (pow.f64 (/.f64 A (*.f64 V l)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 A 1/4) (cbrt.f64 (*.f64 V l))) (/.f64 (pow.f64 A 1/4) (pow.f64 (*.f64 V l) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 V l) -1/4) (/.f64 (sqrt.f64 A) (pow.f64 (*.f64 V l) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 A) (pow.f64 (*.f64 V l) 1/4)) (/.f64 (pow.f64 A 1/6) (pow.f64 (*.f64 V l) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 V -1/2) (/.f64 (sqrt.f64 A) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 A) (sqrt.f64 V)) (/.f64 (pow.f64 A 1/6) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 A 1/4) (sqrt.f64 V)) (/.f64 (pow.f64 A 1/4) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 V l)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (*.f64 V l) A)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 A 3/2) (pow.f64 (*.f64 V l) 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (/.f64 (*.f64 V l) A)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))) (sqrt.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (sqrt.f64 A) (neg.f64 (sqrt.f64 (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 A 3/2) (pow.f64 (*.f64 V l) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 A (*.f64 V l))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 (*.f64 V l) A))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 1) 1))))))

simplify10.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09144
113144
215144
Stop Event
saturated
Counts
99 → 88
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)

localize14.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 (neg.f64 A) V)) (sqrt.f64 (neg.f64 l))))
0.1b
(/.f64 (sqrt.f64 (/.f64 (neg.f64 A) V)) (sqrt.f64 (neg.f64 l)))
6.8b
(sqrt.f64 (/.f64 (neg.f64 A) V))
Compiler

Compiled 44 to 11 computations (75% saved)

series14.0ms (0.1%)

Counts
3 → 12
Calls

27 calls:

TimeVariablePointExpression
2.0ms
A
@-inf
(sqrt.f64 (/.f64 (neg.f64 A) V))
1.0ms
A
@0
(sqrt.f64 (/.f64 (neg.f64 A) V))
1.0ms
V
@0
(sqrt.f64 (/.f64 (neg.f64 A) V))
1.0ms
A
@inf
(sqrt.f64 (/.f64 (neg.f64 A) V))
1.0ms
A
@inf
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 (neg.f64 A) V)) (sqrt.f64 (neg.f64 l))))

rewrite67.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
606×log-prod_binary64
373×pow-prod-down_binary64
278×pow2_binary64
256×pow-unpow_binary64
197×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01237
125827
2369027
Stop Event
node limit
Counts
3 → 102
Calls
Call 1
Inputs
(sqrt.f64 (/.f64 (neg.f64 A) V))
(/.f64 (sqrt.f64 (/.f64 (neg.f64 A) V)) (sqrt.f64 (neg.f64 l)))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 (neg.f64 A) V)) (sqrt.f64 (neg.f64 l))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A V)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A V))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A V))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A V))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A V)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A V)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A V)) (pow.f64 (/.f64 A V) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A V) 1/6) (cbrt.f64 (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A V) 1/4) (pow.f64 (/.f64 A V) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 A) (pow.f64 V -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (/.f64 V A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 V) (sqrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 A) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 A) (sqrt.f64 (neg.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 A)) (neg.f64 (sqrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A V) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A V)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A V) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A V) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A V) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 A V)) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A V) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A V) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 V A) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 V A)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 V) (sqrt.f64 A)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 A V)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A V) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 A V)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A V))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A V)) (pow.f64 l -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A V)) (*.f64 (pow.f64 (/.f64 A V) 1/6) (pow.f64 l -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/6) (cbrt.f64 (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 l V))) (pow.f64 (/.f64 A (*.f64 l V)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A V) 1/4) (*.f64 (pow.f64 (/.f64 A V) 1/4) (pow.f64 l -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/4) (pow.f64 (/.f64 A (*.f64 l V)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 (/.f64 A V))) (/.f64 1 (neg.f64 (sqrt.f64 l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 l -1/2) (sqrt.f64 (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (/.f64 A V)) (cbrt.f64 l)) (pow.f64 (/.f64 A (*.f64 l V)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (/.f64 A V)) 1) (/.f64 (pow.f64 (/.f64 A V) 1/6) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (/.f64 A V) 1/4) 1) (/.f64 (pow.f64 (/.f64 A V) 1/4) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 l)) (/.f64 (sqrt.f64 (/.f64 A V)) (pow.f64 l 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (/.f64 A V) 1/4) (cbrt.f64 l)) (/.f64 (pow.f64 (/.f64 A V) 1/4) (pow.f64 l 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 l -1/4) (/.f64 (sqrt.f64 (/.f64 A V)) (pow.f64 l 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (/.f64 A V)) (pow.f64 l 1/4)) (/.f64 (pow.f64 (/.f64 A V) 1/6) (pow.f64 l 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 l V)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 l V)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 l (/.f64 A V))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (/.f64 A V) 3/2) (pow.f64 l 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (/.f64 l (/.f64 A V))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (sqrt.f64 (/.f64 A V)) (neg.f64 (sqrt.f64 l))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 A (*.f64 l V)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 l V))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A (*.f64 l V)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (/.f64 A V) 3/2) (pow.f64 l 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 l V)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V))))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 l) (*.f64 (sqrt.f64 (/.f64 A V)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 A V)) c0) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sqrt.f64 (/.f64 A V)) c0)) (neg.f64 (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sqrt.f64 (/.f64 A V)) c0) 1) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sqrt.f64 (/.f64 A V)) c0) (cbrt.f64 l)) (pow.f64 l 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sqrt.f64 (/.f64 A V)) c0) (pow.f64 l 1/4)) (pow.f64 l 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (sqrt.f64 (/.f64 A V))) c0) (neg.f64 (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 c0 (neg.f64 (sqrt.f64 (/.f64 A V)))) (neg.f64 (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 c0 c0) (/.f64 A (*.f64 l V))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 l) (*.f64 (sqrt.f64 (/.f64 A V)) c0)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 c0 c0) (/.f64 A (*.f64 l V))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 l V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 l V))) c0)) 1))))))

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09144
113144
215144
Stop Event
saturated
Counts
114 → 103
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)

eval144.0ms (1.2%)

Compiler

Compiled 9482 to 3480 computations (63.3% saved)

prune152.0ms (1.3%)

Pruning

31 alts after pruning (23 fresh and 8 done)

PrunedKeptTotal
New70715722
Fresh8816
Picked011
Done178
Total71631747
Error
0.2b
Counts
747 → 31
Alt Table
Click to see full alt table
StatusErrorProgram
25.5b
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 (neg.f64 A) l)) (sqrt.f64 (neg.f64 V))))
26.3b
(*.f64 c0 (*.f64 (pow.f64 l -1/2) (sqrt.f64 (/.f64 A V))))
19.4b
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
21.4b
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0))
26.4b
(*.f64 c0 (*.f64 (pow.f64 (/.f64 A V) 1/4) (*.f64 (pow.f64 (/.f64 A V) 1/4) (pow.f64 l -1/2))))
50.5b
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 (neg.f64 A) V)) (sqrt.f64 (neg.f64 l))))
19.0b
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
49.6b
(/.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) (sqrt.f64 V))
28.4b
(/.f64 (/.f64 c0 (sqrt.f64 (/.f64 V A))) (sqrt.f64 l))
26.3b
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l)))
21.4b
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
19.4b
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l))))
26.3b
(/.f64 c0 (/.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 A V))))
19.7b
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) c0))
36.4b
(*.f64 (sqrt.f64 A) (*.f64 c0 (pow.f64 (*.f64 V l) -1/2)))
56.5b
(log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 (/.f64 A V) l))))
19.1b
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
36.3b
(/.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 (*.f64 V l)))
21.5b
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))))
39.1b
(*.f64 c0 (/.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 l (neg.f64 V)))))
35.7b
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)
19.5b
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
21.2b
(*.f64 c0 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))
21.4b
(/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2))
29.1b
(/.f64 (/.f64 (*.f64 (sqrt.f64 (/.f64 A V)) c0) (pow.f64 l 1/4)) (pow.f64 l 1/4))
49.4b
(sqrt.f64 (/.f64 (*.f64 A (*.f64 c0 c0)) (*.f64 V l)))
49.5b
(*.f64 c0 (/.f64 1 (*.f64 (sqrt.f64 (/.f64 l A)) (sqrt.f64 V))))
47.1b
(*.f64 (/.f64 c0 (sqrt.f64 V)) (/.f64 (sqrt.f64 A) (sqrt.f64 l)))
47.8b
(*.f64 c0 (/.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (neg.f64 V))) (sqrt.f64 (neg.f64 l))))
21.2b
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
25.5b
(*.f64 c0 (*.f64 (pow.f64 (/.f64 V A) -1/2) (pow.f64 l -1/2)))
Compiler

Compiled 758 to 532 computations (29.8% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.8b
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
4.7b
(*.f64 (/.f64 l A) V)
17.0b
(sqrt.f64 (*.f64 (/.f64 l A) V))
Compiler

Compiled 30 to 8 computations (73.3% saved)

series11.0ms (0.1%)

Counts
3 → 48
Calls

30 calls:

TimeVariablePointExpression
0.0ms
l
@0
(sqrt.f64 (*.f64 (/.f64 l A) V))
0.0ms
l
@-inf
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
0.0ms
V
@-inf
(sqrt.f64 (*.f64 (/.f64 l A) V))
0.0ms
V
@-inf
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
0.0ms
A
@-inf
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))

rewrite67.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
538×log-prod_binary64
402×exp-prod_binary64
331×pow-prod-down_binary64
257×pow2_binary64
201×pow-unpow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0928
119128
2261328
Stop Event
node limit
Counts
3 → 137
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (/.f64 l A) V))
(*.f64 (/.f64 l A) V)
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 (/.f64 l A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 l A) V)) (pow.f64 (*.f64 (/.f64 l A) V) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 l A) V) 1/6) (cbrt.f64 (*.f64 (/.f64 l A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 V) (sqrt.f64 (/.f64 l A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 l A) V) 1/4) (pow.f64 (*.f64 (/.f64 l A) V) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 l A)) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 l V)) (sqrt.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 l A) V) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 l A) V)) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1/2) (log.f64 (*.f64 (/.f64 l A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))) (sqrt.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 l A) V) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 l A) V)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (*.f64 (/.f64 l A) V))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 l A) V) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/4 (log.f64 (*.f64 (/.f64 l A) V))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 l A) V)) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 l A) V)) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 l A) V))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 V) (/.f64 l A))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 V) (/.f64 l A)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 V) (/.f64 l A)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 V) (/.f64 l A)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 l A) V))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 l (/.f64 A V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 V (/.f64 A l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 A (*.f64 l V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 l V) A)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 l V)) (neg.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 l V) 1) A)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 l V) (pow.f64 (cbrt.f64 A) 2)) (cbrt.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 l V) (sqrt.f64 A)) (sqrt.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 l) V) (neg.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 V (neg.f64 l)) (neg.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 l A) V) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 3/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 l A) V)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 1/6) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 l A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 l V)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 l A) V))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 l A) V)))) (sqrt.f64 (log.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 l A) V) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 V) (/.f64 l A)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 l A) V) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 l A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 l A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 l A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 l A) V)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (*.f64 (/.f64 l A) V))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (/.f64 l A) V))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 l A) V))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 l A) V)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 l A) V)) 1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 V) 1) (log.f64 (/.f64 A l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 l V)) (*.f64 (log.f64 A) 1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 c0 (pow.f64 (*.f64 (/.f64 l A) V) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 c0) 2) (*.f64 (cbrt.f64 c0) (pow.f64 (*.f64 (/.f64 l A) V) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))) (cbrt.f64 (/.f64 (*.f64 c0 c0) (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (*.f64 c0 c0) (*.f64 (/.f64 l A) V))) (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 c0) (*.f64 (sqrt.f64 c0) (pow.f64 (*.f64 (/.f64 l A) V) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))) (sqrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 c0) (/.f64 1 (neg.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 l A) V) -1/2) c0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 c0) 2) 1) (/.f64 (cbrt.f64 c0) (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 c0) 1) (/.f64 (sqrt.f64 c0) (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (*.f64 (/.f64 l A) V))) (/.f64 c0 (pow.f64 (*.f64 (/.f64 l A) V) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 c0) 2) (cbrt.f64 (*.f64 (/.f64 l A) V))) (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 c0) (cbrt.f64 (*.f64 (/.f64 l A) V))) (/.f64 (sqrt.f64 c0) (pow.f64 (*.f64 (/.f64 l A) V) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 l A) V) -1/4) (/.f64 c0 (pow.f64 (*.f64 (/.f64 l A) V) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 c0) 2) (pow.f64 (*.f64 (/.f64 l A) V) 1/4)) (/.f64 (cbrt.f64 c0) (pow.f64 (*.f64 (/.f64 l A) V) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 l A) -1/2) (/.f64 c0 (sqrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 c0) 2) (sqrt.f64 (/.f64 l A))) (/.f64 (cbrt.f64 c0) (sqrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 c0) (sqrt.f64 (/.f64 l A))) (/.f64 (sqrt.f64 c0) (sqrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 c0 c0) (*.f64 (/.f64 l A) V)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) c0) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 c0 3) (pow.f64 (*.f64 (/.f64 l A) V) 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) c0) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))) 2)) (cbrt.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))) (sqrt.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 c0 (neg.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (*.f64 c0 c0) (*.f64 (/.f64 l A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 c0 3) (pow.f64 (*.f64 (/.f64 l A) V) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) c0)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 c0) 1) (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 c0) (*.f64 (log.f64 (*.f64 (/.f64 l A) V)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 c0) 1) (*.f64 (log.f64 (*.f64 (/.f64 l A) V)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 c0) (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 c0) 1) (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))) 1)))))))

simplify17.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
associate-/l*_binary64
associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010396
116396
220396
323396
424396
Stop Event
saturated
Counts
185 → 141
Calls
Call 1
Inputs
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(/.f64 (*.f64 V l) A)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(/.f64 (*.f64 V l) A)
(/.f64 V (/.f64 A l))
(*.f64 (/.f64 V A) l)
(*.f64 l (/.f64 V A))
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.8b
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
6.4b
(*.f64 (/.f64 V A) l)
17.0b
(sqrt.f64 (*.f64 (/.f64 V A) l))
Compiler

Compiled 30 to 8 computations (73.3% saved)

series5.0ms (0%)

Counts
1 → 12
Calls

12 calls:

TimeVariablePointExpression
0.0ms
V
@-inf
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
0.0ms
A
@0
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
0.0ms
l
@-inf
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
0.0ms
A
@-inf
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
0.0ms
l
@inf
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))

rewrite57.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
538×log-prod_binary64
402×exp-prod_binary64
332×pow-prod-down_binary64
257×pow2_binary64
201×pow-unpow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0912
119112
2261312
Stop Event
node limit
Counts
1 → 55
Calls
Call 1
Inputs
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 c0 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 c0) 2) (*.f64 (cbrt.f64 c0) (pow.f64 (*.f64 (/.f64 V A) l) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))) (cbrt.f64 (/.f64 (*.f64 c0 c0) (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (*.f64 c0 c0) (*.f64 (/.f64 V A) l))) (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 c0) (*.f64 (sqrt.f64 c0) (pow.f64 (*.f64 (/.f64 V A) l) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))) (sqrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 c0) (/.f64 1 (neg.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 c0) 2) 1) (/.f64 (cbrt.f64 c0) (sqrt.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 c0) 1) (/.f64 (sqrt.f64 c0) (sqrt.f64 (*.f64 (/.f64 V A) l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (*.f64 (/.f64 V A) l))) (/.f64 c0 (pow.f64 (*.f64 (/.f64 V A) l) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 c0) 2) (cbrt.f64 (*.f64 (/.f64 V A) l))) (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 c0) (cbrt.f64 (*.f64 (/.f64 V A) l))) (/.f64 (sqrt.f64 c0) (pow.f64 (*.f64 (/.f64 V A) l) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/4) (/.f64 c0 (pow.f64 (*.f64 (/.f64 V A) l) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 c0) 2) (pow.f64 (*.f64 (/.f64 V A) l) 1/4)) (/.f64 (cbrt.f64 c0) (pow.f64 (*.f64 (/.f64 V A) l) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 V A) -1/2) (/.f64 c0 (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 c0) 2) (sqrt.f64 (/.f64 V A))) (/.f64 (cbrt.f64 c0) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 c0) (sqrt.f64 (/.f64 V A))) (/.f64 (sqrt.f64 c0) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 c0 c0) (*.f64 (/.f64 V A) l)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 c0 3) (pow.f64 (*.f64 (/.f64 V A) l) 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))) 2)) (cbrt.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))) (sqrt.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 c0 (neg.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (*.f64 c0 c0) (*.f64 (/.f64 V A) l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0) -3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 c0 3) (pow.f64 (*.f64 (/.f64 V A) l) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0) -3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 c0) 1) (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 c0) (*.f64 (log.f64 (*.f64 (/.f64 V A) l)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 c0) 1) (*.f64 (log.f64 (*.f64 (/.f64 V A) l)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 c0) (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 c0) 1) (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 V A) l))) 1)))))))

simplify10.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09144
113144
215144
Stop Event
saturated
Counts
67 → 56
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)

localize17.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
1.0b
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))))
6.4b
(*.f64 (/.f64 A V) (/.f64 1 l))
16.9b
(sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l)))
Compiler

Compiled 40 to 20 computations (50% saved)

series11.0ms (0.1%)

Counts
3 → 48
Calls

30 calls:

TimeVariablePointExpression
1.0ms
A
@0
(sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l)))
0.0ms
V
@-inf
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))))
0.0ms
A
@-inf
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))))
0.0ms
A
@-inf
(sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l)))
0.0ms
l
@-inf
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))))

rewrite70.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
595×log-prod_binary64
421×pow-prod-down_binary64
286×pow2_binary64
236×pow-unpow_binary64
204×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01128
123028
2305328
Stop Event
node limit
Counts
3 → 127
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l)))
(*.f64 (/.f64 A V) (/.f64 1 l))
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) (pow.f64 (/.f64 A (*.f64 V l)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/6) (cbrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (pow.f64 (/.f64 A (*.f64 V l)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 l -1/2) (sqrt.f64 (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A V)) (pow.f64 l -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 V l)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 A (*.f64 V l))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (/.f64 A (*.f64 V l)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/4 (log.f64 (/.f64 A (*.f64 V l)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 A (*.f64 V l))) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 A (*.f64 V l))) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 A (*.f64 V l)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 A (*.f64 V l))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 A (*.f64 V l)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 A (*.f64 V l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 A (/.f64 l (/.f64 1 V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 A (/.f64 (*.f64 V l) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 A (/.f64 V (/.f64 1 l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 A V) l)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (/.f64 V A) l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 l (/.f64 V A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 l (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 V l) A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 V (/.f64 A l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 l) (/.f64 V A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (/.f64 A V)) 2) (/.f64 l (cbrt.f64 (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A V)) (/.f64 l (sqrt.f64 (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (*.f64 (/.f64 V A) (neg.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (*.f64 (neg.f64 l) (/.f64 V A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 A) (neg.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 A) (*.f64 (neg.f64 l) V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 A) (*.f64 l (neg.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 A l) V)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 A V)) (neg.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 A l)) (neg.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 A) 1) (*.f64 (neg.f64 V) l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 A -1) (*.f64 V (neg.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 A) -1) (*.f64 (neg.f64 V) (neg.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (neg.f64 A)) (*.f64 (neg.f64 l) (neg.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 A V) (sqrt.f64 l)) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 A V) 1) l)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 A V) (pow.f64 (cbrt.f64 l) 2)) (cbrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 A l) 1) V)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 A l) (pow.f64 (cbrt.f64 V) 2)) (cbrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 A l) (sqrt.f64 V)) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 A) (/.f64 1 l)) (neg.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (/.f64 A V)) (neg.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 A V) -1) (neg.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 l) (neg.f64 A)) (neg.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 V l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/6) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (/.f64 A V) 3) (pow.f64 l 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 V A) l) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 l (/.f64 V A)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 l (/.f64 A V)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 V l) A) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 V (/.f64 A l)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (/.f64 A V) 3) (pow.f64 l 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 A (*.f64 V l))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (/.f64 A (*.f64 V l)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 A (*.f64 V l)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 A (*.f64 V l)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 A (*.f64 V l))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 A (*.f64 V l))) 1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 1) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l))))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l)))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 A (*.f64 V l)) (*.f64 c0 c0)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (/.f64 A (*.f64 V l)) (*.f64 c0 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 1) 1))))))

simplify14.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09396
113396
215396
Stop Event
saturated
Counts
175 → 128
Calls
Call 1
Inputs
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(/.f64 A (*.f64 V l))
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)

localize11.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (sqrt.f64 (/.f64 A l)) c0)
0.3b
(/.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) (sqrt.f64 V))
7.6b
(sqrt.f64 (/.f64 A l))
Compiler

Compiled 32 to 9 computations (71.9% saved)

series17.0ms (0.1%)

Counts
3 → 12
Calls

27 calls:

TimeVariablePointExpression
3.0ms
l
@inf
(*.f64 (sqrt.f64 (/.f64 A l)) c0)
1.0ms
A
@0
(sqrt.f64 (/.f64 A l))
1.0ms
c0
@0
(*.f64 (sqrt.f64 (/.f64 A l)) c0)
1.0ms
l
@-inf
(*.f64 (sqrt.f64 (/.f64 A l)) c0)
1.0ms
A
@-inf
(sqrt.f64 (/.f64 A l))

rewrite84.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
581×log-prod_binary64
428×exp-prod_binary64
366×pow-prod-down_binary64
275×pow2_binary64
207×pow-unpow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01029
121029
2285229
Stop Event
node limit
Counts
3 → 128
Calls
Call 1
Inputs
(sqrt.f64 (/.f64 A l))
(/.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) (sqrt.f64 V))
(*.f64 (sqrt.f64 (/.f64 A l)) c0)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 A l)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A l)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 A l))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A l))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 A l))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A l)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 A l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A l) 1/6) (cbrt.f64 (/.f64 A l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A l)) (pow.f64 (/.f64 A l) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A l) 1/4) (pow.f64 (/.f64 A l) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 A) (pow.f64 l -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (/.f64 l A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 l) (sqrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 A) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (neg.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 A)) (neg.f64 (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A l) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A l) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A l) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A l) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A l) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 A l)) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A l) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 l A) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (sqrt.f64 (/.f64 A l))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1/2) (log.f64 (/.f64 A l)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 l A)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 l) (sqrt.f64 A)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (/.f64 A l)))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (/.f64 A l)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (sqrt.f64 (/.f64 A l))))) (sqrt.f64 (log.f64 (sqrt.f64 (/.f64 A l)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (/.f64 A l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 A l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 A l)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A l) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 A l))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 A l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 A l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 A l)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A l))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (/.f64 A l))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 A l) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/4 (log.f64 (/.f64 A l))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 A l)) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 A l)) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 A l))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V))) c0)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V))) c0))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A l)) (/.f64 1 (/.f64 (sqrt.f64 V) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A l)) (*.f64 c0 (pow.f64 V -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 c0 (*.f64 (sqrt.f64 (/.f64 A l)) (pow.f64 V -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) (pow.f64 V -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0)) (cbrt.f64 (/.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0)) V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0)) V)) (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0))) (*.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)) (pow.f64 V -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0)) (sqrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)) (*.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)) (pow.f64 V -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 A l)) (neg.f64 c0)) (/.f64 1 (neg.f64 (sqrt.f64 V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 V -1/2) (*.f64 (sqrt.f64 (/.f64 A l)) c0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 A l)) 1) (/.f64 c0 (sqrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 c0 1) (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0))) 1) (/.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)) (sqrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)) 1) (/.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)) (sqrt.f64 V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (cbrt.f64 V)) (/.f64 c0 (pow.f64 V 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 c0 (cbrt.f64 V)) (/.f64 (sqrt.f64 (/.f64 A l)) (pow.f64 V 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 V)) (/.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) (pow.f64 V 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0))) (cbrt.f64 V)) (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)) (cbrt.f64 V)) (/.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)) (pow.f64 V 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (pow.f64 V 1/4)) (/.f64 c0 (pow.f64 V 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 c0 (pow.f64 V 1/4)) (/.f64 (sqrt.f64 (/.f64 A l)) (pow.f64 V 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 V -1/4) (/.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) (pow.f64 V 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0))) (pow.f64 V 1/4)) (/.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)) (pow.f64 V 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0)) V) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 V) (*.f64 (sqrt.f64 (/.f64 A l)) c0)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) 3) (pow.f64 V 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (sqrt.f64 V) (*.f64 (sqrt.f64 (/.f64 A l)) c0)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0)))) (sqrt.f64 (log.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) (neg.f64 (sqrt.f64 V))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0)) V))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) 3) (pow.f64 V 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sqrt.f64 V) (*.f64 (sqrt.f64 (/.f64 A l)) c0))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)) c0)) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 A l)) c0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A l)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A l))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A l))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A l))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 c0 (sqrt.f64 A)) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0))) 2)) (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)))) (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0)) 1) 1))))))

simplify11.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09144
113144
215144
Stop Event
saturated
Counts
140 → 129
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 1 (*.f64 (sqrt.f64 (/.f64 l A)) (sqrt.f64 V)))
0.1b
(*.f64 (sqrt.f64 (/.f64 l A)) (sqrt.f64 V))
0.8b
(*.f64 c0 (/.f64 1 (*.f64 (sqrt.f64 (/.f64 l A)) (sqrt.f64 V))))
8.0b
(sqrt.f64 (/.f64 l A))
Compiler

Compiled 45 to 14 computations (68.9% saved)

series17.0ms (0.1%)

Counts
4 → 12
Calls

36 calls:

TimeVariablePointExpression
1.0ms
l
@0
(sqrt.f64 (/.f64 l A))
1.0ms
V
@-inf
(/.f64 1 (*.f64 (sqrt.f64 (/.f64 l A)) (sqrt.f64 V)))
1.0ms
l
@-inf
(sqrt.f64 (/.f64 l A))
1.0ms
A
@-inf
(sqrt.f64 (/.f64 l A))
1.0ms
A
@0
(sqrt.f64 (/.f64 l A))

rewrite72.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
619×log-prod_binary64
434×pow-prod-down_binary64
299×pow2_binary64
234×pow-unpow_binary64
213×pow-to-exp_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01239
124837
2315736
Stop Event
node limit
Counts
4 → 146
Calls
Call 1
Inputs
(sqrt.f64 (/.f64 l A))
(*.f64 c0 (/.f64 1 (*.f64 (sqrt.f64 (/.f64 l A)) (sqrt.f64 V))))
(*.f64 (sqrt.f64 (/.f64 l A)) (sqrt.f64 V))
(/.f64 1 (*.f64 (sqrt.f64 (/.f64 l A)) (sqrt.f64 V)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 l A)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 l A)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 l A))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 l A))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 l A))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 l A)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 l A)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 l A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 l A) 1/6) (cbrt.f64 (/.f64 l A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 l A)) (pow.f64 (/.f64 l A) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 l A) 1/4) (pow.f64 (/.f64 l A) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 l) (pow.f64 A -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (/.f64 A l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 A) (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 l) (sqrt.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (neg.f64 l)) (sqrt.f64 (neg.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 l)) (neg.f64 (sqrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 l A) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 l A)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 l A) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 l A) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 l A) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 l A) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 l A)) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 l A) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A l) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A l)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 l)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (/.f64 l A)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 l A)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 l A) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 l A))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 l A)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 l A))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3/2 (log.f64 (/.f64 l A))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 l A) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 l A) 1/4)) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A l) V))) c0)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A l) V))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A l) V))) c0))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A l) V))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) c0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 c0) 2) (/.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) (cbrt.f64 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 c0) (/.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) (sqrt.f64 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 c0) (neg.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 c0 (sqrt.f64 V)) (sqrt.f64 (/.f64 l A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 c0 (sqrt.f64 (/.f64 l A))) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 c0 (pow.f64 (*.f64 (/.f64 l A) V) 1/4)) (pow.f64 (*.f64 (/.f64 l A) V) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 c0 1) (sqrt.f64 (*.f64 (/.f64 l A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 c0 (cbrt.f64 (*.f64 (/.f64 l A) V))) (pow.f64 (*.f64 (/.f64 l A) V) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 c0) (neg.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 c0 -1) (neg.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 c0 (sqrt.f64 (/.f64 A l))) (sqrt.f64 V))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 c0 c0) (*.f64 (/.f64 l A) V)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 c0 3) (pow.f64 (*.f64 (/.f64 l A) V) 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) c0) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (*.f64 c0 c0) (*.f64 (/.f64 l A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A l) V))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 c0 3) (pow.f64 (*.f64 (/.f64 l A) V) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V))))) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 l A)) (pow.f64 V -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (/.f64 (/.f64 A l) V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 V) (sqrt.f64 (/.f64 A l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (*.f64 (/.f64 l A) V)) (pow.f64 (*.f64 (/.f64 l A) V) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 (/.f64 l A) V) 1/4) (pow.f64 (*.f64 (/.f64 l A) V) -1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 l V) 1/2) (sqrt.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 V l) 1/2) (sqrt.f64 A))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (/.f64 A l) V)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) -3/2) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 l A) V) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) -1/6) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) -1/4) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (/.f64 l A) V))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 l A) V) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 l A) V)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 l A) V) 3/2)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 l A) V) 1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 l A) V) 1/4)) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 (/.f64 A l) V)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A l) V)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A l) V))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A l) V))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A l) V))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 (/.f64 A l) V)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 (/.f64 A l) V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (/.f64 A l) V)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 l A) V) -1/6) (cbrt.f64 (/.f64 (/.f64 A l) V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (/.f64 A l) V)) (pow.f64 (*.f64 (/.f64 l A) V) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (/.f64 l A) V) -1/4) (pow.f64 (*.f64 (/.f64 l A) V) -1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (neg.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A l)) (pow.f64 V -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 V -1/2) (sqrt.f64 (/.f64 A l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (*.f64 (/.f64 l A) V))) (pow.f64 (*.f64 (/.f64 l A) V) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (/.f64 A l) V)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 A l) V) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) -3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 l A) V) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 3/2) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) -1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 1/6) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) -1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 l A) V) 1/4) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 (neg.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (/.f64 A l) V))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 (/.f64 A l) V))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 (/.f64 A l) V)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 l A) V) -3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 (/.f64 A l) V))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 (/.f64 A l) V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 (/.f64 A l) V))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 l A) V))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 (/.f64 A l) V))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 l A) V) -3/2)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 l A) V)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 l A) V) -1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 l A) V) -1/4)) 2))))))

simplify10.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09144
113144
215144
Stop Event
saturated
Counts
158 → 147
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
Outputs
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)

eval130.0ms (1.1%)

Compiler

Compiled 8885 to 3075 computations (65.4% saved)

prune150.0ms (1.3%)

Pruning

32 alts after pruning (21 fresh and 11 done)

PrunedKeptTotal
New6848692
Fresh51318
Picked101
Done11112
Total69132723
Error
0.2b
Counts
723 → 32
Alt Table
Click to see full alt table
StatusErrorProgram
25.5b
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 (neg.f64 A) l)) (sqrt.f64 (neg.f64 V))))
19.4b
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
21.4b
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0))
26.4b
(*.f64 c0 (*.f64 (pow.f64 (/.f64 A V) 1/4) (*.f64 (pow.f64 (/.f64 A V) 1/4) (pow.f64 l -1/2))))
19.7b
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) c0))
50.5b
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 (neg.f64 A) V)) (sqrt.f64 (neg.f64 l))))
19.0b
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
49.6b
(/.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) (sqrt.f64 V))
28.4b
(/.f64 (/.f64 c0 (sqrt.f64 (/.f64 V A))) (sqrt.f64 l))
26.3b
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l)))
36.4b
(*.f64 (sqrt.f64 A) (*.f64 c0 (pow.f64 (*.f64 V l) -1/2)))
56.5b
(log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 (/.f64 A V) l))))
19.1b
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
36.3b
(/.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 (*.f64 V l)))
21.5b
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))))
39.1b
(*.f64 c0 (/.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 l (neg.f64 V)))))
35.7b
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)
49.0b
(sqrt.f64 (/.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0)) V))
19.5b
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
21.4b
(/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2))
25.6b
(/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))
21.2b
(*.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)
47.1b
(*.f64 (/.f64 c0 (sqrt.f64 V)) (/.f64 (sqrt.f64 A) (sqrt.f64 l)))
19.4b
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
21.3b
(/.f64 c0 (/.f64 1 (pow.f64 (*.f64 (/.f64 V A) l) -1/2)))
47.8b
(*.f64 c0 (/.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (neg.f64 V))) (sqrt.f64 (neg.f64 l))))
49.7b
(/.f64 (/.f64 c0 (sqrt.f64 (/.f64 l A))) (sqrt.f64 V))
49.4b
(sqrt.f64 (/.f64 (*.f64 A (*.f64 c0 c0)) (*.f64 V l)))
26.6b
(*.f64 (pow.f64 (/.f64 V A) -1/2) (/.f64 c0 (sqrt.f64 l)))
19.4b
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l))))
26.3b
(/.f64 c0 (/.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 A V))))
25.5b
(*.f64 c0 (*.f64 (pow.f64 (/.f64 V A) -1/2) (pow.f64 l -1/2)))
Compiler

Compiled 442 to 309 computations (30.1% saved)

regimes1.2s (10.2%)

Counts
58 → 4
Calls
Call 1
Inputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
(/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
(*.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)
(*.f64 c0 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))
(/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2))
(*.f64 c0 (pow.f64 (*.f64 V (/.f64 l A)) -1/2))
(*.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) 1/2))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) c0))
(sqrt.f64 (/.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0)) V))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0))
(sqrt.f64 (/.f64 (*.f64 A (*.f64 c0 c0)) (*.f64 V l)))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) c0))
(*.f64 c0 (/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l))))
(sqrt.f64 (*.f64 (/.f64 (/.f64 A V) l) (*.f64 c0 c0)))
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))))
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l))))
(*.f64 c0 (/.f64 1 (sqrt.f64 (/.f64 l (/.f64 A V)))))
(/.f64 c0 (/.f64 1 (pow.f64 (*.f64 (/.f64 V A) l) -1/2)))
(*.f64 c0 (sqrt.f64 (/.f64 (*.f64 (/.f64 1 V) (neg.f64 A)) (neg.f64 l))))
(/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))
(/.f64 (/.f64 c0 (sqrt.f64 (/.f64 l A))) (sqrt.f64 V))
(/.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) (sqrt.f64 V))
(/.f64 (/.f64 c0 (sqrt.f64 (/.f64 V A))) (sqrt.f64 l))
(/.f64 c0 (/.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 A V))))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l)))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)))
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)
(/.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 (*.f64 V l)))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l)))
(*.f64 c0 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))))
(*.f64 (pow.f64 (/.f64 V A) -1/2) (/.f64 c0 (sqrt.f64 l)))
(*.f64 c0 (*.f64 (pow.f64 l -1/2) (sqrt.f64 (/.f64 A V))))
(*.f64 (sqrt.f64 A) (*.f64 c0 (pow.f64 (*.f64 V l) -1/2)))
(*.f64 c0 (cbrt.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3/2)))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 (neg.f64 A) l)) (sqrt.f64 (neg.f64 V))))
(*.f64 c0 (*.f64 (pow.f64 (/.f64 V A) -1/2) (pow.f64 l -1/2)))
(*.f64 c0 (/.f64 1 (*.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 V A)))))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 (neg.f64 A) V)) (sqrt.f64 (neg.f64 l))))
(*.f64 c0 (/.f64 1 (*.f64 (sqrt.f64 (/.f64 l A)) (sqrt.f64 V))))
(*.f64 c0 (*.f64 (sqrt.f64 A) (sqrt.f64 (/.f64 1 (*.f64 V l)))))
(*.f64 c0 (/.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 l (neg.f64 V)))))
(*.f64 (/.f64 c0 (sqrt.f64 V)) (/.f64 (sqrt.f64 A) (sqrt.f64 l)))
(/.f64 (/.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 l)) (sqrt.f64 V))
(cbrt.f64 (pow.f64 (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A)))) 3))
(pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0)) 2)
(*.f64 c0 (/.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (neg.f64 V))) (sqrt.f64 (neg.f64 l))))
(cbrt.f64 (*.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3/2) (pow.f64 c0 3)))
(/.f64 (/.f64 (*.f64 (sqrt.f64 (/.f64 A V)) c0) (pow.f64 l 1/4)) (pow.f64 l 1/4))
(*.f64 c0 (*.f64 (pow.f64 (/.f64 A V) 1/4) (*.f64 (pow.f64 (/.f64 A V) 1/4) (pow.f64 l -1/2))))
(log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 (/.f64 A V) l))))
(log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 (/.f64 A V) l))))
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (*.f64 V l)) 2)) (/.f64 A (cbrt.f64 (*.f64 V l))))))
Outputs
(/.f64 (/.f64 c0 (sqrt.f64 (/.f64 V A))) (sqrt.f64 l))
(*.f64 c0 (/.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 l (neg.f64 V)))))
(*.f64 c0 (/.f64 1 (*.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 V A)))))
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)
Calls

9 calls:

227.0ms
c0
209.0ms
A
166.0ms
l
143.0ms
(*.f64 V l)
124.0ms
(*.f64 V l)
Results
ErrorSegmentsBranch
13.9b9c0
8.2b5A
8.6b2V
7.9b4l
9.4b5(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
9.9b3(sqrt.f64 (/.f64 A (*.f64 V l)))
9.9b3(/.f64 A (*.f64 V l))
5.2b4(*.f64 V l)
5.2b4(*.f64 V l)
Compiler

Compiled 652 to 272 computations (58.3% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-0.0
3.53e-321
0.0ms
-2.4812552089133582e-300
-0.0
0.0ms
-inf
-7.345288685434828e+288
Compiler

Compiled 19 to 14 computations (26.3% saved)

regimes900.0ms (7.7%)

Counts
46 → 4
Calls
Call 1
Inputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
(/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
(*.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)
(*.f64 c0 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))
(/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2))
(*.f64 c0 (pow.f64 (*.f64 V (/.f64 l A)) -1/2))
(*.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) 1/2))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) c0))
(sqrt.f64 (/.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0)) V))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0))
(sqrt.f64 (/.f64 (*.f64 A (*.f64 c0 c0)) (*.f64 V l)))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) c0))
(*.f64 c0 (/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l))))
(sqrt.f64 (*.f64 (/.f64 (/.f64 A V) l) (*.f64 c0 c0)))
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))))
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l))))
(*.f64 c0 (/.f64 1 (sqrt.f64 (/.f64 l (/.f64 A V)))))
(/.f64 c0 (/.f64 1 (pow.f64 (*.f64 (/.f64 V A) l) -1/2)))
(*.f64 c0 (sqrt.f64 (/.f64 (*.f64 (/.f64 1 V) (neg.f64 A)) (neg.f64 l))))
(/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))
(/.f64 (/.f64 c0 (sqrt.f64 (/.f64 l A))) (sqrt.f64 V))
(/.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) (sqrt.f64 V))
(/.f64 (/.f64 c0 (sqrt.f64 (/.f64 V A))) (sqrt.f64 l))
(/.f64 c0 (/.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 A V))))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l)))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)))
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)
(/.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 (*.f64 V l)))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l)))
(*.f64 c0 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))))
(*.f64 (pow.f64 (/.f64 V A) -1/2) (/.f64 c0 (sqrt.f64 l)))
(*.f64 c0 (*.f64 (pow.f64 l -1/2) (sqrt.f64 (/.f64 A V))))
(*.f64 (sqrt.f64 A) (*.f64 c0 (pow.f64 (*.f64 V l) -1/2)))
(*.f64 c0 (cbrt.f64 (pow.f64 (/.f64 (/.f64 A V) l) 3/2)))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 (neg.f64 A) l)) (sqrt.f64 (neg.f64 V))))
(*.f64 c0 (*.f64 (pow.f64 (/.f64 V A) -1/2) (pow.f64 l -1/2)))
(*.f64 c0 (/.f64 1 (*.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 V A)))))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 (neg.f64 A) V)) (sqrt.f64 (neg.f64 l))))
(*.f64 c0 (/.f64 1 (*.f64 (sqrt.f64 (/.f64 l A)) (sqrt.f64 V))))
(*.f64 c0 (*.f64 (sqrt.f64 A) (sqrt.f64 (/.f64 1 (*.f64 V l)))))
Outputs
(/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
(*.f64 (pow.f64 (/.f64 V A) -1/2) (/.f64 c0 (sqrt.f64 l)))
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)
Calls

9 calls:

180.0ms
c0
129.0ms
l
112.0ms
(*.f64 V l)
106.0ms
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
94.0ms
(*.f64 V l)
Results
ErrorSegmentsBranch
13.9b9c0
9.3b4A
9.5b3V
8.9b5l
9.9b5(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
9.9b3(sqrt.f64 (/.f64 A (*.f64 V l)))
9.9b3(/.f64 A (*.f64 V l))
7.1b4(*.f64 V l)
7.1b4(*.f64 V l)
Compiler

Compiled 506 to 217 computations (57.1% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-0.0
3.53e-321
0.0ms
-3.4583209570031776e-207
-2.8723655636386055e-215
0.0ms
-8.427776748489817e+194
-2.2861121825355473e+184
Compiler

Compiled 19 to 14 computations (26.3% saved)

regimes647.0ms (5.6%)

Counts
36 → 4
Calls
Call 1
Inputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
(/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
(*.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)
(*.f64 c0 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))
(/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2))
(*.f64 c0 (pow.f64 (*.f64 V (/.f64 l A)) -1/2))
(*.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) 1/2))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) c0))
(sqrt.f64 (/.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0)) V))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0))
(sqrt.f64 (/.f64 (*.f64 A (*.f64 c0 c0)) (*.f64 V l)))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) c0))
(*.f64 c0 (/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l))))
(sqrt.f64 (*.f64 (/.f64 (/.f64 A V) l) (*.f64 c0 c0)))
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))))
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l))))
(*.f64 c0 (/.f64 1 (sqrt.f64 (/.f64 l (/.f64 A V)))))
(/.f64 c0 (/.f64 1 (pow.f64 (*.f64 (/.f64 V A) l) -1/2)))
(*.f64 c0 (sqrt.f64 (/.f64 (*.f64 (/.f64 1 V) (neg.f64 A)) (neg.f64 l))))
(/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))
(/.f64 (/.f64 c0 (sqrt.f64 (/.f64 l A))) (sqrt.f64 V))
(/.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) (sqrt.f64 V))
(/.f64 (/.f64 c0 (sqrt.f64 (/.f64 V A))) (sqrt.f64 l))
(/.f64 c0 (/.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 A V))))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l)))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)))
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)
(/.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 (*.f64 V l)))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l)))
(*.f64 c0 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))))
Outputs
(/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
(/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))
(*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0)
Calls

9 calls:

139.0ms
V
110.0ms
l
88.0ms
A
83.0ms
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
52.0ms
(*.f64 V l)
Results
ErrorSegmentsBranch
17.7b3c0
9.5b6A
13.0b5V
10.1b4l
9.9b5(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
9.9b3(sqrt.f64 (/.f64 A (*.f64 V l)))
9.9b3(/.f64 A (*.f64 V l))
7.1b4(*.f64 V l)
7.1b4(*.f64 V l)
Compiler

Compiled 400 to 171 computations (57.3% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-0.0
3.53e-321
0.0ms
-2.8723655636386055e-215
-1.5780052451700522e-216
0.0ms
-8.427776748489817e+194
-2.2861121825355473e+184
Compiler

Compiled 19 to 14 computations (26.3% saved)

regimes459.0ms (3.9%)

Counts
32 → 5
Calls
Call 1
Inputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
(/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
(*.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)
(*.f64 c0 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))
(/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2))
(*.f64 c0 (pow.f64 (*.f64 V (/.f64 l A)) -1/2))
(*.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) 1/2))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) c0))
(sqrt.f64 (/.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0)) V))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0))
(sqrt.f64 (/.f64 (*.f64 A (*.f64 c0 c0)) (*.f64 V l)))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) c0))
(*.f64 c0 (/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l))))
(sqrt.f64 (*.f64 (/.f64 (/.f64 A V) l) (*.f64 c0 c0)))
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))))
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l))))
(*.f64 c0 (/.f64 1 (sqrt.f64 (/.f64 l (/.f64 A V)))))
(/.f64 c0 (/.f64 1 (pow.f64 (*.f64 (/.f64 V A) l) -1/2)))
(*.f64 c0 (sqrt.f64 (/.f64 (*.f64 (/.f64 1 V) (neg.f64 A)) (neg.f64 l))))
(/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))
(/.f64 (/.f64 c0 (sqrt.f64 (/.f64 l A))) (sqrt.f64 V))
(/.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) (sqrt.f64 V))
(/.f64 (/.f64 c0 (sqrt.f64 (/.f64 V A))) (sqrt.f64 l))
(/.f64 c0 (/.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 A V))))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l)))
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A l)) (sqrt.f64 V)))
Outputs
(*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l)))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
(/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
(/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))
Calls

9 calls:

79.0ms
A
73.0ms
V
56.0ms
l
48.0ms
(*.f64 V l)
47.0ms
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
Results
ErrorSegmentsBranch
17.9b3c0
13.8b5A
13.0b5V
12.3b4l
9.9b5(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
9.9b3(sqrt.f64 (/.f64 A (*.f64 V l)))
9.9b3(/.f64 A (*.f64 V l))
12.0b4(*.f64 V l)
12.0b4(*.f64 V l)
Compiler

Compiled 364 to 164 computations (54.9% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
4.960558091035576e+293
+inf
0.0ms
0.0
1.0642e-319
0.0ms
-1.2400876693275141e-298
-4.983902548559934e-304
0.0ms
-inf
-2.832984368759816e+306
Compiler

Compiled 19 to 14 computations (26.3% saved)

regimes408.0ms (3.5%)

Counts
30 → 5
Calls
Call 1
Inputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
(/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
(*.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)
(*.f64 c0 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))
(/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2))
(*.f64 c0 (pow.f64 (*.f64 V (/.f64 l A)) -1/2))
(*.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) 1/2))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) c0))
(sqrt.f64 (/.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0)) V))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0))
(sqrt.f64 (/.f64 (*.f64 A (*.f64 c0 c0)) (*.f64 V l)))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) c0))
(*.f64 c0 (/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l))))
(sqrt.f64 (*.f64 (/.f64 (/.f64 A V) l) (*.f64 c0 c0)))
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))))
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l))))
(*.f64 c0 (/.f64 1 (sqrt.f64 (/.f64 l (/.f64 A V)))))
(/.f64 c0 (/.f64 1 (pow.f64 (*.f64 (/.f64 V A) l) -1/2)))
(*.f64 c0 (sqrt.f64 (/.f64 (*.f64 (/.f64 1 V) (neg.f64 A)) (neg.f64 l))))
(/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))
(/.f64 (/.f64 c0 (sqrt.f64 (/.f64 l A))) (sqrt.f64 V))
(/.f64 (*.f64 (sqrt.f64 (/.f64 A l)) c0) (sqrt.f64 V))
(/.f64 (/.f64 c0 (sqrt.f64 (/.f64 V A))) (sqrt.f64 l))
(/.f64 c0 (/.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 A V))))
Outputs
(/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
(/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
(/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))
Calls

9 calls:

66.0ms
A
51.0ms
l
49.0ms
V
48.0ms
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
46.0ms
(*.f64 V l)
Results
ErrorSegmentsBranch
17.9b3c0
13.8b5A
14.1b4V
12.3b4l
9.9b5(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
9.9b3(sqrt.f64 (/.f64 A (*.f64 V l)))
9.9b3(/.f64 A (*.f64 V l))
12.0b4(*.f64 V l)
12.0b4(*.f64 V l)
Compiler

Compiled 346 to 160 computations (53.8% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
4.960558091035576e+293
+inf
0.0ms
0.0
1.0642e-319
0.0ms
-1.2400876693275141e-298
-4.983902548559934e-304
0.0ms
-inf
-2.832984368759816e+306
Compiler

Compiled 19 to 14 computations (26.3% saved)

regimes274.0ms (2.4%)

Counts
25 → 3
Calls
Call 1
Inputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
(/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
(*.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)
(*.f64 c0 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))
(/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2))
(*.f64 c0 (pow.f64 (*.f64 V (/.f64 l A)) -1/2))
(*.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) 1/2))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) c0))
(sqrt.f64 (/.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0)) V))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0))
(sqrt.f64 (/.f64 (*.f64 A (*.f64 c0 c0)) (*.f64 V l)))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) c0))
(*.f64 c0 (/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l))))
(sqrt.f64 (*.f64 (/.f64 (/.f64 A V) l) (*.f64 c0 c0)))
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))))
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 1 V) (/.f64 A l))))
(*.f64 c0 (/.f64 1 (sqrt.f64 (/.f64 l (/.f64 A V)))))
(/.f64 c0 (/.f64 1 (pow.f64 (*.f64 (/.f64 V A) l) -1/2)))
(*.f64 c0 (sqrt.f64 (/.f64 (*.f64 (/.f64 1 V) (neg.f64 A)) (neg.f64 l))))
Outputs
(/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2))
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
(*.f64 c0 (/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l))))
Calls

9 calls:

54.0ms
A
37.0ms
(*.f64 V l)
37.0ms
(*.f64 V l)
31.0ms
l
24.0ms
V
Results
ErrorSegmentsBranch
19.0b1c0
16.8b5A
17.4b2V
17.0b2l
16.3b3(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
15.0b3(sqrt.f64 (/.f64 A (*.f64 V l)))
15.0b3(/.f64 A (*.f64 V l))
15.9b4(*.f64 V l)
15.9b4(*.f64 V l)
Compiler

Compiled 301 to 144 computations (52.2% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
6.7755765981078975e+292
+inf
0.0ms
3.854e-321
3.57078307710743e-302
Compiler

Compiled 19 to 14 computations (26.3% saved)

regimes214.0ms (1.8%)

Counts
18 → 3
Calls
Call 1
Inputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
(/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
(*.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)
(*.f64 c0 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))
(/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2))
(*.f64 c0 (pow.f64 (*.f64 V (/.f64 l A)) -1/2))
(*.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) 1/2))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 l A) V)) c0))
(sqrt.f64 (/.f64 (*.f64 (/.f64 A l) (*.f64 c0 c0)) V))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 (/.f64 V A) l)) c0))
(sqrt.f64 (/.f64 (*.f64 A (*.f64 c0 c0)) (*.f64 V l)))
(/.f64 1 (/.f64 (sqrt.f64 (*.f64 V (/.f64 l A))) c0))
Outputs
(/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2))
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
(*.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)
Calls

9 calls:

44.0ms
A
29.0ms
(*.f64 V l)
28.0ms
(*.f64 V l)
25.0ms
l
19.0ms
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
Results
ErrorSegmentsBranch
19.0b1c0
16.8b5A
17.4b2V
17.0b2l
16.3b3(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
15.0b3(sqrt.f64 (/.f64 A (*.f64 V l)))
15.0b3(/.f64 A (*.f64 V l))
15.9b4(*.f64 V l)
15.9b4(*.f64 V l)
Compiler

Compiled 228 to 113 computations (50.4% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
6.7755765981078975e+292
+inf
0.0ms
3.854e-321
3.57078307710743e-302
Compiler

Compiled 19 to 14 computations (26.3% saved)

regimes125.0ms (1.1%)

Counts
10 → 3
Calls
Call 1
Inputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
(/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
(*.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)
(*.f64 c0 (pow.f64 (*.f64 (/.f64 V A) l) -1/2))
Outputs
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
(*.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)
Calls

8 calls:

29.0ms
A
20.0ms
(*.f64 V l)
17.0ms
l
13.0ms
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
12.0ms
(sqrt.f64 (/.f64 A (*.f64 V l)))
Results
ErrorSegmentsBranch
19.0b1c0
16.8b5A
17.4b2V
17.0b2l
16.3b3(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
15.0b3(sqrt.f64 (/.f64 A (*.f64 V l)))
15.0b3(/.f64 A (*.f64 V l))
15.9b4(*.f64 V l)
Compiler

Compiled 144 to 82 computations (43.1% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
6.7755765981078975e+292
+inf
0.0ms
3.854e-321
3.57078307710743e-302
Compiler

Compiled 19 to 14 computations (26.3% saved)

regimes111.0ms (1%)

Counts
8 → 3
Calls
Call 1
Inputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
(/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
Outputs
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
(/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A)))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
Calls

8 calls:

25.0ms
A
18.0ms
(*.f64 V l)
15.0ms
l
12.0ms
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
11.0ms
(sqrt.f64 (/.f64 A (*.f64 V l)))
Results
ErrorSegmentsBranch
19.0b1c0
16.8b5A
17.4b2V
17.0b2l
16.3b3(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))
15.0b3(sqrt.f64 (/.f64 A (*.f64 V l)))
15.0b3(/.f64 A (*.f64 V l))
15.9b4(*.f64 V l)
Compiler

Compiled 126 to 76 computations (39.7% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
6.7755765981078975e+292
+inf
0.0ms
3.854e-321
3.57078307710743e-302
Compiler

Compiled 19 to 14 computations (26.3% saved)

regimes48.0ms (0.4%)

Counts
5 → 5
Calls
Call 1
Inputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
Outputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V)))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
Calls

4 calls:

20.0ms
A
13.0ms
c0
9.0ms
l
4.0ms
V
Results
ErrorSegmentsBranch
18.1b3c0
16.8b5A
19.4b1V
18.3b2l
Compiler

Compiled 64 to 39 computations (39.1% saved)

bsearch51.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
2.0ms
8.574489698335233e+274
1.7483146222384498e+277
23.0ms
7.163175961897837e-93
1.3342835841574713e-87
23.0ms
-3.490758128650867e-48
-3.124442780965604e-56
2.0ms
-1.9516183050794972e+148
-2.5759738705819075e+141
Compiler

Compiled 539 to 374 computations (30.6% saved)

regimes43.0ms (0.4%)

Counts
4 → 5
Calls
Call 1
Inputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
Outputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
Calls

4 calls:

18.0ms
A
11.0ms
c0
7.0ms
l
5.0ms
V
Results
ErrorSegmentsBranch
18.1b3c0
16.9b5A
19.4b1V
18.3b2l
Compiler

Compiled 56 to 36 computations (35.7% saved)

bsearch9.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
2.0ms
8.574489698335233e+274
1.7483146222384498e+277
2.0ms
7.0580088417203874e-127
2.045781136278172e-125
3.0ms
-3.490758128650867e-48
-3.124442780965604e-56
2.0ms
-1.9516183050794972e+148
-2.5759738705819075e+141
Compiler

Compiled 123 to 86 computations (30.1% saved)

regimes34.0ms (0.3%)

Counts
3 → 3
Calls
Call 1
Inputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
Outputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))
Calls

4 calls:

11.0ms
A
11.0ms
c0
7.0ms
l
4.0ms
V
Results
ErrorSegmentsBranch
18.1b3c0
18.2b3A
19.4b1V
18.3b2l
Compiler

Compiled 48 to 32 computations (33.3% saved)

bsearch32.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
11.0ms
1.6200482150263143e+140
2.3343919266230016e+160
21.0ms
2.9890256463979626e-273
7.689483163660095e-270
Compiler

Compiled 45 to 32 computations (28.9% saved)

regimes31.0ms (0.3%)

Accuracy

Total -7.6b remaining (-42%)

Threshold costs -7.6b (-42%)

Counts
2 → 3
Calls
Call 1
Inputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
Outputs
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
(/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V))))
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
Calls

4 calls:

11.0ms
c0
9.0ms
A
6.0ms
l
3.0ms
V
Results
ErrorSegmentsBranch
18.2b3c0
18.2b3A
19.4b1V
18.3b2l
Compiler

Compiled 40 to 28 computations (30% saved)

bsearch5.0ms (0%)

Algorithm
binary-search
Steps
TimeLeftRight
3.0ms
-3.490758128650867e-48
-3.124442780965604e-56
2.0ms
-1.9516183050794972e+148
-2.5759738705819075e+141
Compiler

Compiled 71 to 50 computations (29.6% saved)

simplify41.0ms (0.4%)

Algorithm
egg-herbie
Rules
18×*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01381044
11601044
21691044
31751044
41781044
51791044
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 (*.f64 V l) -inf.0) (/.f64 (/.f64 c0 (sqrt.f64 (/.f64 V A))) (sqrt.f64 l)) (if (<=.f64 (*.f64 V l) -6032057205060441/3016028602530220424421062271578867838525126125874252890898307532480811172246863646685486789069132871854112712507200418582406770249989531589552959798883475511096677545853948017425342019529539590198394174553047792145043723038206885734470238620775335376572758801465612196212014773714996912064944617579072807182486470656) (*.f64 c0 (/.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 l (neg.f64 V))))) (if (<=.f64 (*.f64 V l) 0) (*.f64 c0 (/.f64 1 (*.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 V A))))) (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0))))
(if (<=.f64 (*.f64 V l) -499999999999999988538882384714859598020732597094189431887223670286290898673927114447209430123954968903878300398056269985965808322842590849616633906975620536835002183524807772105054962541171572736) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))) (if (<=.f64 (*.f64 V l) -5783580587434429/2891790293717214716875887454417538932071786405736015385275803577203398482289867263903614895099115516898199414270242812495998255990659472330369590362610632812985135197678301307466375242232528412389127536106326559094512549888) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A))) (if (<=.f64 (*.f64 V l) 0) (*.f64 (pow.f64 (/.f64 V A) -1/2) (/.f64 c0 (sqrt.f64 l))) (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0))))
(if (<=.f64 (*.f64 V l) -499999999999999988538882384714859598020732597094189431887223670286290898673927114447209430123954968903878300398056269985965808322842590849616633906975620536835002183524807772105054962541171572736) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))) (if (<=.f64 (*.f64 V l) -7762590461503545/388129523075177233787244872115625638814221504279174152784763009506512738171594221582719602207161619487621932674282768301542895011028703597861071818760295284801113744005212476387566321407899611206315749798429117187723211713454014464) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A))) (if (<=.f64 (*.f64 V l) 0) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))) (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0))))
(if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) -inf.0) (*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l))) (if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) -4712544691453469/47125446914534694131579097993419809976955095716785201420286055195012674566357244479460731079205201122720511132925006540350105785156086431086764996857554304860885586653967937772270969055149056096849908977391371752266308172471982589601097478449614615258949356272900190565812730839296826751014759649673012612226351104) (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) (if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) 0) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))) (if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) 500000000000000033218233870624051559273578085293146227242730553688428373313942025291772445173343784902203060391783730334018872146080525445438937693685560099880385440039019562564899736303066977469942164287306646602841967984783674295365678010359632817483559061875818696759295984370225714747670528) (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))))))
(if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) -inf.0) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))) (if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) -4712544691453469/47125446914534694131579097993419809976955095716785201420286055195012674566357244479460731079205201122720511132925006540350105785156086431086764996857554304860885586653967937772270969055149056096849908977391371752266308172471982589601097478449614615258949356272900190565812730839296826751014759649673012612226351104) (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) (if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) 0) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))) (if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) 500000000000000033218233870624051559273578085293146227242730553688428373313942025291772445173343784902203060391783730334018872146080525445438937693685560099880385440039019562564899736303066977469942164287306646602841967984783674295365678010359632817483559061875818696759295984370225714747670528) (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))))))
(if (<=.f64 (/.f64 A (*.f64 V l)) 253/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2)) (if (<=.f64 (/.f64 A (*.f64 V l)) 99999999999999992462348437353960485060448933957923525202610654848990348279466077292501969423268405025328970231162545648343655275306678872441733790178059478330735395060467469727994972900530063978805843953102113868000379620369084502134308975505229555772913629423636305841602377586326247764393984) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A))) (*.f64 c0 (/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l))))))
(if (<=.f64 (/.f64 A (*.f64 V l)) 253/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2)) (if (<=.f64 (/.f64 A (*.f64 V l)) 99999999999999992462348437353960485060448933957923525202610654848990348279466077292501969423268405025328970231162545648343655275306678872441733790178059478330735395060467469727994972900530063978805843953102113868000379620369084502134308975505229555772913629423636305841602377586326247764393984) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A))) (*.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)))
(if (<=.f64 (/.f64 A (*.f64 V l)) 253/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V))) (if (<=.f64 (/.f64 A (*.f64 V l)) 99999999999999992462348437353960485060448933957923525202610654848990348279466077292501969423268405025328970231162545648343655275306678872441733790178059478330735395060467469727994972900530063978805843953102113868000379620369084502134308975505229555772913629423636305841602377586326247764393984) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A))) (*.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)))
(if (<=.f64 (/.f64 A (*.f64 V l)) 253/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V))) (if (<=.f64 (/.f64 A (*.f64 V l)) 99999999999999992462348437353960485060448933957923525202610654848990348279466077292501969423268405025328970231162545648343655275306678872441733790178059478330735395060467469727994972900530063978805843953102113868000379620369084502134308975505229555772913629423636305841602377586326247764393984) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A))) (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))
(if (<=.f64 A -9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l)))) (if (<=.f64 A -5594715494892101/1645504557321206042154969182557350504982735865633579863348609024) (/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V)))) (if (<=.f64 A 5823336329662291/4479489484355608421114884561136888556243290994469299069799978201927583742360321890761754986543214231552) (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V))) (if (<=.f64 A 1000000000000000052069140800249855752009185079750964144650090664977064943362508663270311404514719386165843308728919567930102413767433897865855658269158968045714503601765690788895124181432711335776992950015243623307738608946937362752018518070418086469181314516804918593340833792) (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))))))
(if (<=.f64 A -9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l)))) (if (<=.f64 A -8424983333484575/842498333348457493583344221469363458551160763204392890034487820288) (/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V)))) (if (<=.f64 A 3048582568667961/3048582568667961163458591044719888970457615373696260889510895468384152088691177363398736428772941378085768487423248655171335913749304966119424) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l)))) (if (<=.f64 A 1000000000000000052069140800249855752009185079750964144650090664977064943362508663270311404514719386165843308728919567930102413767433897865855658269158968045714503601765690788895124181432711335776992950015243623307738608946937362752018518070418086469181314516804918593340833792) (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))))))
(if (<=.f64 c0 7282248378069001/2436328502849999770088345596968797077719056714398751881716976614303237172691606525616403766470502564806326229057852167045864792466300773511644496824078163354882819424989118257467697413872513412088199898369804594718421399481348718736436590903867241403206934700776069386770457147497978527744) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l)))) (if (<=.f64 c0 999999999999999980835596172437374590573120014030318793091164810154100112203678582976298268616221151962702060266176005440567032331208403948233373515776) (/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V)))) (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))
(if (<=.f64 A -9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l)))) (if (<=.f64 A -8424983333484575/842498333348457493583344221469363458551160763204392890034487820288) (/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V)))) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))))
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
Outputs
(if (<=.f64 (*.f64 V l) -inf.0) (/.f64 (/.f64 c0 (sqrt.f64 (/.f64 V A))) (sqrt.f64 l)) (if (<=.f64 (*.f64 V l) -6032057205060441/3016028602530220424421062271578867838525126125874252890898307532480811172246863646685486789069132871854112712507200418582406770249989531589552959798883475511096677545853948017425342019529539590198394174553047792145043723038206885734470238620775335376572758801465612196212014773714996912064944617579072807182486470656) (*.f64 c0 (/.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 l (neg.f64 V))))) (if (<=.f64 (*.f64 V l) 0) (*.f64 c0 (/.f64 1 (*.f64 (sqrt.f64 l) (sqrt.f64 (/.f64 V A))))) (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0))))
(if (<=.f64 (*.f64 V l) -inf.0) (/.f64 (/.f64 c0 (sqrt.f64 (/.f64 V A))) (sqrt.f64 l)) (if (<=.f64 (*.f64 V l) -6032057205060441/3016028602530220424421062271578867838525126125874252890898307532480811172246863646685486789069132871854112712507200418582406770249989531589552959798883475511096677545853948017425342019529539590198394174553047792145043723038206885734470238620775335376572758801465612196212014773714996912064944617579072807182486470656) (*.f64 c0 (/.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 l (neg.f64 V))))) (if (<=.f64 (*.f64 V l) 0) (*.f64 c0 (/.f64 1 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))) (*.f64 c0 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))))))
(if (<=.f64 (*.f64 V l) -inf.0) (/.f64 (/.f64 c0 (sqrt.f64 (/.f64 V A))) (sqrt.f64 l)) (if (<=.f64 (*.f64 V l) -6032057205060441/3016028602530220424421062271578867838525126125874252890898307532480811172246863646685486789069132871854112712507200418582406770249989531589552959798883475511096677545853948017425342019529539590198394174553047792145043723038206885734470238620775335376572758801465612196212014773714996912064944617579072807182486470656) (*.f64 c0 (/.f64 (sqrt.f64 (neg.f64 A)) (sqrt.f64 (*.f64 V (neg.f64 l))))) (if (<=.f64 (*.f64 V l) 0) (*.f64 c0 (/.f64 1 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))) (*.f64 c0 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))))))
(if (<=.f64 (*.f64 V l) -499999999999999988538882384714859598020732597094189431887223670286290898673927114447209430123954968903878300398056269985965808322842590849616633906975620536835002183524807772105054962541171572736) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))) (if (<=.f64 (*.f64 V l) -5783580587434429/2891790293717214716875887454417538932071786405736015385275803577203398482289867263903614895099115516898199414270242812495998255990659472330369590362610632812985135197678301307466375242232528412389127536106326559094512549888) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A))) (if (<=.f64 (*.f64 V l) 0) (*.f64 (pow.f64 (/.f64 V A) -1/2) (/.f64 c0 (sqrt.f64 l))) (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0))))
(if (<=.f64 (*.f64 V l) -499999999999999988538882384714859598020732597094189431887223670286290898673927114447209430123954968903878300398056269985965808322842590849616633906975620536835002183524807772105054962541171572736) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))) (if (<=.f64 (*.f64 V l) -5783580587434429/2891790293717214716875887454417538932071786405736015385275803577203398482289867263903614895099115516898199414270242812495998255990659472330369590362610632812985135197678301307466375242232528412389127536106326559094512549888) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 V l) A))) (if (<=.f64 (*.f64 V l) 0) (*.f64 (pow.f64 (/.f64 V A) -1/2) (/.f64 c0 (sqrt.f64 l))) (*.f64 c0 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))))))
(if (<=.f64 (*.f64 V l) -499999999999999988538882384714859598020732597094189431887223670286290898673927114447209430123954968903878300398056269985965808322842590849616633906975620536835002183524807772105054962541171572736) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))) (if (<=.f64 (*.f64 V l) -7762590461503545/388129523075177233787244872115625638814221504279174152784763009506512738171594221582719602207161619487621932674282768301542895011028703597861071818760295284801113744005212476387566321407899611206315749798429117187723211713454014464) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A))) (if (<=.f64 (*.f64 V l) 0) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))) (*.f64 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l))) c0))))
(if (<=.f64 (*.f64 V l) -499999999999999988538882384714859598020732597094189431887223670286290898673927114447209430123954968903878300398056269985965808322842590849616633906975620536835002183524807772105054962541171572736) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))) (if (<=.f64 (*.f64 V l) -7762590461503545/388129523075177233787244872115625638814221504279174152784763009506512738171594221582719602207161619487621932674282768301542895011028703597861071818760295284801113744005212476387566321407899611206315749798429117187723211713454014464) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 V l) A))) (if (<=.f64 (*.f64 V l) 0) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))) (*.f64 c0 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))))))
(if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) -inf.0) (*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l))) (if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) -4712544691453469/47125446914534694131579097993419809976955095716785201420286055195012674566357244479460731079205201122720511132925006540350105785156086431086764996857554304860885586653967937772270969055149056096849908977391371752266308172471982589601097478449614615258949356272900190565812730839296826751014759649673012612226351104) (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) (if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) 0) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))) (if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) 500000000000000033218233870624051559273578085293146227242730553688428373313942025291772445173343784902203060391783730334018872146080525445438937693685560099880385440039019562564899736303066977469942164287306646602841967984783674295365678010359632817483559061875818696759295984370225714747670528) (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))))))
(if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) -inf.0) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))) (if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) -4712544691453469/47125446914534694131579097993419809976955095716785201420286055195012674566357244479460731079205201122720511132925006540350105785156086431086764996857554304860885586653967937772270969055149056096849908977391371752266308172471982589601097478449614615258949356272900190565812730839296826751014759649673012612226351104) (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) (if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) 0) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l))) (if (<=.f64 (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) 500000000000000033218233870624051559273578085293146227242730553688428373313942025291772445173343784902203060391783730334018872146080525445438937693685560099880385440039019562564899736303066977469942164287306646602841967984783674295365678010359632817483559061875818696759295984370225714747670528) (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) (/.f64 c0 (*.f64 (sqrt.f64 (/.f64 V A)) (sqrt.f64 l)))))))
(if (<=.f64 (/.f64 A (*.f64 V l)) 253/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2)) (if (<=.f64 (/.f64 A (*.f64 V l)) 99999999999999992462348437353960485060448933957923525202610654848990348279466077292501969423268405025328970231162545648343655275306678872441733790178059478330735395060467469727994972900530063978805843953102113868000379620369084502134308975505229555772913629423636305841602377586326247764393984) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A))) (*.f64 c0 (/.f64 1 (sqrt.f64 (*.f64 (/.f64 V A) l))))))
(if (<=.f64 (/.f64 A (*.f64 V l)) 253/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2)) (if (<=.f64 (/.f64 A (*.f64 V l)) 99999999999999992462348437353960485060448933957923525202610654848990348279466077292501969423268405025328970231162545648343655275306678872441733790178059478330735395060467469727994972900530063978805843953102113868000379620369084502134308975505229555772913629423636305841602377586326247764393984) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 V l) A))) (*.f64 c0 (/.f64 1 (sqrt.f64 (*.f64 l (/.f64 V A)))))))
(if (<=.f64 (/.f64 A (*.f64 V l)) 253/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2)) (if (<=.f64 (/.f64 A (*.f64 V l)) 99999999999999992462348437353960485060448933957923525202610654848990348279466077292501969423268405025328970231162545648343655275306678872441733790178059478330735395060467469727994972900530063978805843953102113868000379620369084502134308975505229555772913629423636305841602377586326247764393984) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A))) (*.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)))
(if (<=.f64 (/.f64 A (*.f64 V l)) 253/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (/.f64 c0 (pow.f64 (/.f64 (/.f64 A V) l) -1/2)) (if (<=.f64 (/.f64 A (*.f64 V l)) 99999999999999992462348437353960485060448933957923525202610654848990348279466077292501969423268405025328970231162545648343655275306678872441733790178059478330735395060467469727994972900530063978805843953102113868000379620369084502134308975505229555772913629423636305841602377586326247764393984) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 V l) A))) (*.f64 c0 (pow.f64 (*.f64 l (/.f64 V A)) -1/2))))
(if (<=.f64 (/.f64 A (*.f64 V l)) 253/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V))) (if (<=.f64 (/.f64 A (*.f64 V l)) 99999999999999992462348437353960485060448933957923525202610654848990348279466077292501969423268405025328970231162545648343655275306678872441733790178059478330735395060467469727994972900530063978805843953102113868000379620369084502134308975505229555772913629423636305841602377586326247764393984) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A))) (*.f64 (pow.f64 (*.f64 (/.f64 V A) l) -1/2) c0)))
(if (<=.f64 (/.f64 A (*.f64 V l)) 253/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V))) (if (<=.f64 (/.f64 A (*.f64 V l)) 99999999999999992462348437353960485060448933957923525202610654848990348279466077292501969423268405025328970231162545648343655275306678872441733790178059478330735395060467469727994972900530063978805843953102113868000379620369084502134308975505229555772913629423636305841602377586326247764393984) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 V l) A))) (*.f64 c0 (pow.f64 (*.f64 l (/.f64 V A)) -1/2))))
(if (<=.f64 (/.f64 A (*.f64 V l)) 253/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V))) (if (<=.f64 (/.f64 A (*.f64 V l)) 99999999999999992462348437353960485060448933957923525202610654848990348279466077292501969423268405025328970231162545648343655275306678872441733790178059478330735395060467469727994972900530063978805843953102113868000379620369084502134308975505229555772913629423636305841602377586326247764393984) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 l V) A))) (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l)))))
(if (<=.f64 (/.f64 A (*.f64 V l)) 253/50600563326827654588123836679729326762389162441035529589225339506857584891998836722990095925359281123796769466079202977847452184346448369216753349985184627480379356069141590341116726935523304085309941919618186267140501870856173174654525838912289889085202514128089692388083353653807625633046581877161501565826926935273373696) (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V))) (if (<=.f64 (/.f64 A (*.f64 V l)) 99999999999999992462348437353960485060448933957923525202610654848990348279466077292501969423268405025328970231162545648343655275306678872441733790178059478330735395060467469727994972900530063978805843953102113868000379620369084502134308975505229555772913629423636305841602377586326247764393984) (/.f64 c0 (sqrt.f64 (/.f64 (*.f64 V l) A))) (/.f64 c0 (sqrt.f64 (*.f64 l (/.f64 V A))))))
(if (<=.f64 A -9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l)))) (if (<=.f64 A -5594715494892101/1645504557321206042154969182557350504982735865633579863348609024) (/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V)))) (if (<=.f64 A 5823336329662291/4479489484355608421114884561136888556243290994469299069799978201927583742360321890761754986543214231552) (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V))) (if (<=.f64 A 1000000000000000052069140800249855752009185079750964144650090664977064943362508663270311404514719386165843308728919567930102413767433897865855658269158968045714503601765690788895124181432711335776992950015243623307738608946937362752018518070418086469181314516804918593340833792) (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))))))
(if (<=.f64 A -9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l)))) (if (<=.f64 A -5594715494892101/1645504557321206042154969182557350504982735865633579863348609024) (/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V)))) (if (<=.f64 A 5823336329662291/4479489484355608421114884561136888556243290994469299069799978201927583742360321890761754986543214231552) (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 A l) V))) (if (<=.f64 A 1000000000000000052069140800249855752009185079750964144650090664977064943362508663270311404514719386165843308728919567930102413767433897865855658269158968045714503601765690788895124181432711335776992950015243623307738608946937362752018518070418086469181314516804918593340833792) (/.f64 c0 (sqrt.f64 (*.f64 l (/.f64 V A)))) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))))))
(if (<=.f64 A -9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l)))) (if (<=.f64 A -8424983333484575/842498333348457493583344221469363458551160763204392890034487820288) (/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V)))) (if (<=.f64 A 3048582568667961/3048582568667961163458591044719888970457615373696260889510895468384152088691177363398736428772941378085768487423248655171335913749304966119424) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l)))) (if (<=.f64 A 1000000000000000052069140800249855752009185079750964144650090664977064943362508663270311404514719386165843308728919567930102413767433897865855658269158968045714503601765690788895124181432711335776992950015243623307738608946937362752018518070418086469181314516804918593340833792) (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 V A) l))) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))))))
(if (<=.f64 A -9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l)))) (if (<=.f64 A -8424983333484575/842498333348457493583344221469363458551160763204392890034487820288) (/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V)))) (if (<=.f64 A 3048582568667961/3048582568667961163458591044719888970457615373696260889510895468384152088691177363398736428772941378085768487423248655171335913749304966119424) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l)))) (if (<=.f64 A 1000000000000000052069140800249855752009185079750964144650090664977064943362508663270311404514719386165843308728919567930102413767433897865855658269158968045714503601765690788895124181432711335776992950015243623307738608946937362752018518070418086469181314516804918593340833792) (/.f64 c0 (sqrt.f64 (*.f64 l (/.f64 V A)))) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))))))
(if (<=.f64 c0 7282248378069001/2436328502849999770088345596968797077719056714398751881716976614303237172691606525616403766470502564806326229057852167045864792466300773511644496824078163354882819424989118257467697413872513412088199898369804594718421399481348718736436590903867241403206934700776069386770457147497978527744) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l)))) (if (<=.f64 c0 999999999999999980835596172437374590573120014030318793091164810154100112203678582976298268616221151962702060266176005440567032331208403948233373515776) (/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V)))) (/.f64 c0 (sqrt.f64 (*.f64 (/.f64 l A) V)))))
(if (<=.f64 c0 7282248378069001/2436328502849999770088345596968797077719056714398751881716976614303237172691606525616403766470502564806326229057852167045864792466300773511644496824078163354882819424989118257467697413872513412088199898369804594718421399481348718736436590903867241403206934700776069386770457147497978527744) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l)))) (if (<=.f64 c0 999999999999999980835596172437374590573120014030318793091164810154100112203678582976298268616221151962702060266176005440567032331208403948233373515776) (/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V)))) (/.f64 c0 (sqrt.f64 (*.f64 V (/.f64 l A))))))
(if (<=.f64 A -9999999999999999890870611821409196126784806260401358945180015464725302399110258148854112806457630061296658928320953898584032761523454337112604672) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l)))) (if (<=.f64 A -8424983333484575/842498333348457493583344221469363458551160763204392890034487820288) (/.f64 c0 (sqrt.f64 (/.f64 l (/.f64 A V)))) (/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))))
(/.f64 c0 (sqrt.f64 (/.f64 V (/.f64 A l))))
Compiler

Compiled 745 to 349 computations (53.2% saved)

soundness0.0ms (0%)

end160.0ms (1.4%)

Compiler

Compiled 817 to 252 computations (69.2% saved)

Profiling

Loading profile data...