Diagrams.Color.HSV:lerp from diagrams-contrib-1.3.0.5

Time bar (total: 4.5s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 13 to 9 computations (30.8% saved)

sample1.2s (26.9%)

Results
1.0s6517×256valid
167.0ms1739×256infinite
Bogosity

preprocess286.0ms (6.4%)

Algorithm
egg-herbie
Rules
2212×fma-def
754×fma-neg
392×distribute-rgt-in
392×unsub-neg
266×distribute-lft-in
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
80-0-(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))
00-0-x
00-0-(*.f64 (-.f64 1 x) y)
00-0-(*.f64 x z)
00-0-z
00-0-(-.f64 1 x)
00-0-y
00-0-1
Iterations

Useful iterations: 9 (0.0ms)

IterNodesCost
040399
1102387
2236379
3682351
41707339
52868337
63236337
73276337
83280337
93280317
103923317
113923317
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))
(+.f64 (*.f64 (-.f64 1 (neg.f64 x)) y) (*.f64 (neg.f64 x) z))
(+.f64 (*.f64 (-.f64 1 x) (neg.f64 y)) (*.f64 x z))
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x (neg.f64 z)))
(neg.f64 (+.f64 (*.f64 (-.f64 1 (neg.f64 x)) y) (*.f64 (neg.f64 x) z)))
(neg.f64 (+.f64 (*.f64 (-.f64 1 x) (neg.f64 y)) (*.f64 x z)))
(neg.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x (neg.f64 z))))
(+.f64 (*.f64 (-.f64 1 y) x) (*.f64 y z))
(+.f64 (*.f64 (-.f64 1 z) y) (*.f64 z x))
(+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))
Outputs
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))
(fma.f64 (-.f64 1 x) y (*.f64 x z))
(fma.f64 x z (*.f64 (-.f64 1 x) y))
(-.f64 y (*.f64 x (-.f64 y z)))
(+.f64 y (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))
(fma.f64 (-.f64 1 x) y (*.f64 x z))
(fma.f64 x z (*.f64 (-.f64 1 x) y))
(-.f64 y (*.f64 x (-.f64 y z)))
(+.f64 y (*.f64 x (-.f64 z y)))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 (-.f64 1 (neg.f64 x)) y) (*.f64 (neg.f64 x) z))
(fma.f64 (-.f64 1 (neg.f64 x)) y (*.f64 x (neg.f64 z)))
(-.f64 (*.f64 y (+.f64 1 x)) (*.f64 x z))
(+.f64 y (*.f64 x (-.f64 y z)))
(fma.f64 x (-.f64 y z) y)
(+.f64 (*.f64 (-.f64 1 x) (neg.f64 y)) (*.f64 x z))
(fma.f64 (-.f64 1 x) (neg.f64 y) (*.f64 x z))
(-.f64 (*.f64 x z) (*.f64 (-.f64 1 x) y))
(fma.f64 x z (*.f64 y (+.f64 x -1)))
(-.f64 (*.f64 x (+.f64 y z)) y)
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x (neg.f64 z)))
(fma.f64 (-.f64 1 x) y (*.f64 x (neg.f64 z)))
(-.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))
(-.f64 y (*.f64 x (+.f64 y z)))
(neg.f64 (+.f64 (*.f64 (-.f64 1 (neg.f64 x)) y) (*.f64 (neg.f64 x) z)))
(neg.f64 (fma.f64 (-.f64 1 (neg.f64 x)) y (*.f64 x (neg.f64 z))))
(-.f64 (*.f64 x z) (*.f64 y (+.f64 1 x)))
(fma.f64 y (-.f64 -1 x) (*.f64 x z))
(-.f64 (*.f64 x (-.f64 z y)) y)
(neg.f64 (+.f64 (*.f64 (-.f64 1 x) (neg.f64 y)) (*.f64 x z)))
(fma.f64 (-.f64 1 x) y (*.f64 x (neg.f64 z)))
(-.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))
(-.f64 y (*.f64 x (+.f64 y z)))
(neg.f64 (+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x (neg.f64 z))))
(fma.f64 (-.f64 1 x) (neg.f64 y) (*.f64 x z))
(-.f64 (*.f64 x z) (*.f64 (-.f64 1 x) y))
(fma.f64 x z (*.f64 y (+.f64 x -1)))
(-.f64 (*.f64 x (+.f64 y z)) y)
(+.f64 (*.f64 (-.f64 1 y) x) (*.f64 y z))
(fma.f64 (-.f64 1 y) x (*.f64 y z))
(fma.f64 x (-.f64 1 y) (*.f64 y z))
(+.f64 x (*.f64 y (-.f64 z x)))
(fma.f64 y (-.f64 z x) x)
(+.f64 (*.f64 (-.f64 1 z) y) (*.f64 z x))
(fma.f64 (-.f64 1 z) y (*.f64 x z))
(fma.f64 x z (*.f64 y (-.f64 1 z)))
(fma.f64 y (-.f64 1 z) (*.f64 x z))
(-.f64 y (*.f64 z (-.f64 y x)))
(+.f64 y (*.f64 z (-.f64 x y)))
(fma.f64 z (-.f64 x y) y)
(+.f64 (*.f64 (-.f64 1 x) z) (*.f64 x y))
(fma.f64 (-.f64 1 x) z (*.f64 x y))
(fma.f64 x y (*.f64 (-.f64 1 x) z))
(+.f64 z (*.f64 x (-.f64 y z)))
(fma.f64 x (-.f64 y z) z)
Compiler

Compiled 68 to 38 computations (44.1% saved)

eval1.0ms (0%)

Compiler

Compiled 39 to 18 computations (53.8% saved)

prune2.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
98.0%
(fma.f64 (-.f64 1 x) y (*.f64 x z))
100.0%
(-.f64 y (*.f64 x (-.f64 y z)))
Compiler

Compiled 21 to 13 computations (38.1% saved)

localize46.0ms (1%)

Localize:

Found 2 expressions with local error:

NewAccuracyProgram
98.0%
(fma.f64 (-.f64 1 x) y (*.f64 x z))
100.0%
(*.f64 x (-.f64 y z))
Compiler

Compiled 40 to 14 computations (65% saved)

series10.0ms (0.2%)

Counts
2 → 60
Calls

18 calls:

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

rewrite213.0ms (4.8%)

Algorithm
batch-egg-rewrite
Rules
1334×prod-diff
979×log1p-expm1-u
979×expm1-log1p-u
342×expm1-udef
340×log1p-udef
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01655
119655
2254455
Stop Event
node limit
Counts
2 → 44
Calls
Call 1
Inputs
(*.f64 x (-.f64 y z))
(fma.f64 (-.f64 1 x) y (*.f64 x z))
Outputs
(+.f64 (*.f64 x y) (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 (neg.f64 z) x))
(-.f64 (exp.f64 (log1p.f64 (*.f64 x (-.f64 y z)))) 1)
(/.f64 (*.f64 x (-.f64 (pow.f64 y 3) (pow.f64 z 3))) (fma.f64 y y (*.f64 z (+.f64 y z))))
(/.f64 (*.f64 x (-.f64 (pow.f64 y 2) (pow.f64 z 2))) (+.f64 y z))
(/.f64 (*.f64 (-.f64 (pow.f64 y 3) (pow.f64 z 3)) x) (fma.f64 y y (*.f64 z (+.f64 y z))))
(/.f64 (*.f64 (-.f64 (pow.f64 y 2) (pow.f64 z 2)) x) (+.f64 y z))
(pow.f64 (*.f64 x (-.f64 y z)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) 3)
(pow.f64 (pow.f64 (*.f64 x (-.f64 y z)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 y z))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (-.f64 y z)) 2))
(log.f64 (pow.f64 (exp.f64 x) (-.f64 y z)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 x (-.f64 y z)))))
(cbrt.f64 (pow.f64 (*.f64 x (-.f64 y z)) 3))
(cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (-.f64 y z) 3)))
(cbrt.f64 (*.f64 (pow.f64 (-.f64 y z) 3) (pow.f64 x 3)))
(expm1.f64 (log1p.f64 (*.f64 x (-.f64 y z))))
(exp.f64 (log.f64 (*.f64 x (-.f64 y z))))
(exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 y z))) 1))
(log1p.f64 (expm1.f64 (*.f64 x (-.f64 y z))))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 x z))
(+.f64 (*.f64 (*.f64 y (-.f64 1 x)) 1) (*.f64 x z))
(-.f64 (exp.f64 (log1p.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)))) 1)
(*.f64 1 (fma.f64 (-.f64 1 x) y (*.f64 x z)))
(*.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)) 1)
(*.f64 (cbrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) (pow.f64 (cbrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) 2))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) 2) (cbrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(*.f64 (sqrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) (sqrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(/.f64 (+.f64 (pow.f64 (*.f64 y (-.f64 1 x)) 3) (pow.f64 (*.f64 x z) 3)) (+.f64 (*.f64 (*.f64 y (-.f64 1 x)) (*.f64 y (-.f64 1 x))) (-.f64 (pow.f64 (*.f64 x z) 2) (*.f64 (*.f64 y (-.f64 1 x)) (*.f64 x z)))))
(/.f64 (-.f64 (*.f64 (*.f64 y (-.f64 1 x)) (*.f64 y (-.f64 1 x))) (pow.f64 (*.f64 x z) 2)) (-.f64 (*.f64 y (-.f64 1 x)) (*.f64 x z)))
(pow.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)) 1)
(pow.f64 (cbrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) 3)
(pow.f64 (pow.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)) 3) 1/3)
(pow.f64 (sqrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) 2)
(sqrt.f64 (pow.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)) 2))
(log.f64 (exp.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)))))
(cbrt.f64 (pow.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)) 3))
(expm1.f64 (log1p.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(exp.f64 (log.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(exp.f64 (*.f64 (log.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) 1))
(log1p.f64 (expm1.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))

simplify75.0ms (1.7%)

Algorithm
egg-herbie
Rules
1020×times-frac
740×distribute-lft-in
726×distribute-rgt-in
716×fma-def
646×log-prod
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01343211
13342810
211982793
351352668
Stop Event
node limit
Counts
104 → 74
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 -1 (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 -1 (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
y
(+.f64 y (*.f64 x (+.f64 z (*.f64 -1 y))))
(+.f64 y (*.f64 x (+.f64 z (*.f64 -1 y))))
(+.f64 y (*.f64 x (+.f64 z (*.f64 -1 y))))
(*.f64 x (+.f64 z (*.f64 -1 y)))
(+.f64 y (*.f64 x (+.f64 z (*.f64 -1 y))))
(+.f64 y (*.f64 x (+.f64 z (*.f64 -1 y))))
(+.f64 y (*.f64 x (+.f64 z (*.f64 -1 y))))
(*.f64 -1 (*.f64 x (+.f64 y (*.f64 -1 z))))
(+.f64 y (*.f64 -1 (*.f64 x (+.f64 y (*.f64 -1 z)))))
(+.f64 y (*.f64 -1 (*.f64 x (+.f64 y (*.f64 -1 z)))))
(+.f64 y (*.f64 -1 (*.f64 x (+.f64 y (*.f64 -1 z)))))
(*.f64 x z)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(*.f64 x z)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(*.f64 x z)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 x y) (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 (neg.f64 z) x))
(-.f64 (exp.f64 (log1p.f64 (*.f64 x (-.f64 y z)))) 1)
(/.f64 (*.f64 x (-.f64 (pow.f64 y 3) (pow.f64 z 3))) (fma.f64 y y (*.f64 z (+.f64 y z))))
(/.f64 (*.f64 x (-.f64 (pow.f64 y 2) (pow.f64 z 2))) (+.f64 y z))
(/.f64 (*.f64 (-.f64 (pow.f64 y 3) (pow.f64 z 3)) x) (fma.f64 y y (*.f64 z (+.f64 y z))))
(/.f64 (*.f64 (-.f64 (pow.f64 y 2) (pow.f64 z 2)) x) (+.f64 y z))
(pow.f64 (*.f64 x (-.f64 y z)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) 3)
(pow.f64 (pow.f64 (*.f64 x (-.f64 y z)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 y z))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (-.f64 y z)) 2))
(log.f64 (pow.f64 (exp.f64 x) (-.f64 y z)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 x (-.f64 y z)))))
(cbrt.f64 (pow.f64 (*.f64 x (-.f64 y z)) 3))
(cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (-.f64 y z) 3)))
(cbrt.f64 (*.f64 (pow.f64 (-.f64 y z) 3) (pow.f64 x 3)))
(expm1.f64 (log1p.f64 (*.f64 x (-.f64 y z))))
(exp.f64 (log.f64 (*.f64 x (-.f64 y z))))
(exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 y z))) 1))
(log1p.f64 (expm1.f64 (*.f64 x (-.f64 y z))))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 x z))
(+.f64 (*.f64 (*.f64 y (-.f64 1 x)) 1) (*.f64 x z))
(-.f64 (exp.f64 (log1p.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)))) 1)
(*.f64 1 (fma.f64 (-.f64 1 x) y (*.f64 x z)))
(*.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)) 1)
(*.f64 (cbrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) (pow.f64 (cbrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) 2))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) 2) (cbrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(*.f64 (sqrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) (sqrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(/.f64 (+.f64 (pow.f64 (*.f64 y (-.f64 1 x)) 3) (pow.f64 (*.f64 x z) 3)) (+.f64 (*.f64 (*.f64 y (-.f64 1 x)) (*.f64 y (-.f64 1 x))) (-.f64 (pow.f64 (*.f64 x z) 2) (*.f64 (*.f64 y (-.f64 1 x)) (*.f64 x z)))))
(/.f64 (-.f64 (*.f64 (*.f64 y (-.f64 1 x)) (*.f64 y (-.f64 1 x))) (pow.f64 (*.f64 x z) 2)) (-.f64 (*.f64 y (-.f64 1 x)) (*.f64 x z)))
(pow.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)) 1)
(pow.f64 (cbrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) 3)
(pow.f64 (pow.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)) 3) 1/3)
(pow.f64 (sqrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) 2)
(sqrt.f64 (pow.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)) 2))
(log.f64 (exp.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)))))
(cbrt.f64 (pow.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)) 3))
(expm1.f64 (log1p.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(exp.f64 (log.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(exp.f64 (*.f64 (log.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) 1))
(log1p.f64 (expm1.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
Outputs
(*.f64 -1 (*.f64 x z))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(*.f64 x y)
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(*.f64 x y)
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(*.f64 x y)
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(*.f64 -1 (*.f64 x z))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(*.f64 -1 (*.f64 x z))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
y
(+.f64 y (*.f64 x (+.f64 z (*.f64 -1 y))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 y (*.f64 x (+.f64 z (*.f64 -1 y))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 y (*.f64 x (+.f64 z (*.f64 -1 y))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(*.f64 x (+.f64 z (*.f64 -1 y)))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 x (-.f64 z y))
(+.f64 y (*.f64 x (+.f64 z (*.f64 -1 y))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 y (*.f64 x (+.f64 z (*.f64 -1 y))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 y (*.f64 x (+.f64 z (*.f64 -1 y))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(*.f64 -1 (*.f64 x (+.f64 y (*.f64 -1 z))))
(*.f64 x (+.f64 z (neg.f64 y)))
(*.f64 x (-.f64 z y))
(+.f64 y (*.f64 -1 (*.f64 x (+.f64 y (*.f64 -1 z)))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 y (*.f64 -1 (*.f64 x (+.f64 y (*.f64 -1 z)))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 y (*.f64 -1 (*.f64 x (+.f64 y (*.f64 -1 z)))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(*.f64 x z)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(*.f64 y (-.f64 1 x))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(*.f64 x z)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(*.f64 x z)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 x y) (*.f64 x (neg.f64 z)))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 y x) (*.f64 (neg.f64 z) x))
(*.f64 x (-.f64 y z))
(-.f64 (exp.f64 (log1p.f64 (*.f64 x (-.f64 y z)))) 1)
(*.f64 x (-.f64 y z))
(/.f64 (*.f64 x (-.f64 (pow.f64 y 3) (pow.f64 z 3))) (fma.f64 y y (*.f64 z (+.f64 y z))))
(/.f64 x (/.f64 (fma.f64 y y (*.f64 z (+.f64 z y))) (-.f64 (pow.f64 y 3) (pow.f64 z 3))))
(*.f64 (/.f64 x (fma.f64 y y (*.f64 z (+.f64 z y)))) (-.f64 (pow.f64 y 3) (pow.f64 z 3)))
(*.f64 (-.f64 (pow.f64 y 3) (pow.f64 z 3)) (/.f64 x (fma.f64 z (+.f64 z y) (pow.f64 y 2))))
(/.f64 (*.f64 x (-.f64 (pow.f64 y 2) (pow.f64 z 2))) (+.f64 y z))
(/.f64 x (/.f64 (+.f64 z y) (-.f64 (pow.f64 y 2) (pow.f64 z 2))))
(*.f64 (/.f64 x (+.f64 z y)) (-.f64 (pow.f64 y 2) (pow.f64 z 2)))
(*.f64 (-.f64 (pow.f64 y 2) (pow.f64 z 2)) (/.f64 x (+.f64 z y)))
(/.f64 x (/.f64 1 (-.f64 y z)))
(/.f64 (*.f64 (-.f64 (pow.f64 y 3) (pow.f64 z 3)) x) (fma.f64 y y (*.f64 z (+.f64 y z))))
(/.f64 x (/.f64 (fma.f64 y y (*.f64 z (+.f64 z y))) (-.f64 (pow.f64 y 3) (pow.f64 z 3))))
(*.f64 (/.f64 x (fma.f64 y y (*.f64 z (+.f64 z y)))) (-.f64 (pow.f64 y 3) (pow.f64 z 3)))
(*.f64 (-.f64 (pow.f64 y 3) (pow.f64 z 3)) (/.f64 x (fma.f64 z (+.f64 z y) (pow.f64 y 2))))
(/.f64 (*.f64 (-.f64 (pow.f64 y 2) (pow.f64 z 2)) x) (+.f64 y z))
(/.f64 x (/.f64 (+.f64 z y) (-.f64 (pow.f64 y 2) (pow.f64 z 2))))
(*.f64 (/.f64 x (+.f64 z y)) (-.f64 (pow.f64 y 2) (pow.f64 z 2)))
(*.f64 (-.f64 (pow.f64 y 2) (pow.f64 z 2)) (/.f64 x (+.f64 z y)))
(/.f64 x (/.f64 1 (-.f64 y z)))
(pow.f64 (*.f64 x (-.f64 y z)) 1)
(*.f64 x (-.f64 y z))
(pow.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) 3)
(*.f64 x (-.f64 y z))
(pow.f64 (pow.f64 (*.f64 x (-.f64 y z)) 3) 1/3)
(*.f64 x (-.f64 y z))
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 y z))) 2)
(*.f64 x (-.f64 y z))
(sqrt.f64 (pow.f64 (*.f64 x (-.f64 y z)) 2))
(*.f64 x (-.f64 y z))
(log.f64 (pow.f64 (exp.f64 x) (-.f64 y z)))
(*.f64 x (-.f64 y z))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 x (-.f64 y z)))))
(*.f64 x (-.f64 y z))
(cbrt.f64 (pow.f64 (*.f64 x (-.f64 y z)) 3))
(*.f64 x (-.f64 y z))
(cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (-.f64 y z) 3)))
(*.f64 x (-.f64 y z))
(cbrt.f64 (*.f64 (pow.f64 (-.f64 y z) 3) (pow.f64 x 3)))
(*.f64 x (-.f64 y z))
(expm1.f64 (log1p.f64 (*.f64 x (-.f64 y z))))
(*.f64 x (-.f64 y z))
(exp.f64 (log.f64 (*.f64 x (-.f64 y z))))
(*.f64 x (-.f64 y z))
(exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 y z))) 1))
(*.f64 x (-.f64 y z))
(log1p.f64 (expm1.f64 (*.f64 x (-.f64 y z))))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 x z) (*.f64 y (-.f64 1 x)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 y (-.f64 1 x)) (*.f64 x z))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(+.f64 (*.f64 (*.f64 y (-.f64 1 x)) 1) (*.f64 x z))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(-.f64 (exp.f64 (log1p.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)))) 1)
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(*.f64 1 (fma.f64 (-.f64 1 x) y (*.f64 x z)))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(*.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)) 1)
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(*.f64 (cbrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) (pow.f64 (cbrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) 2))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) 2) (cbrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(*.f64 (sqrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) (sqrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(/.f64 (+.f64 (pow.f64 (*.f64 y (-.f64 1 x)) 3) (pow.f64 (*.f64 x z) 3)) (+.f64 (*.f64 (*.f64 y (-.f64 1 x)) (*.f64 y (-.f64 1 x))) (-.f64 (pow.f64 (*.f64 x z) 2) (*.f64 (*.f64 y (-.f64 1 x)) (*.f64 x z)))))
(/.f64 (+.f64 (pow.f64 (*.f64 y (-.f64 1 x)) 3) (pow.f64 (*.f64 x z) 3)) (fma.f64 (*.f64 y (-.f64 1 x)) (*.f64 y (-.f64 1 x)) (-.f64 (pow.f64 (*.f64 x z) 2) (*.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))))))
(/.f64 (+.f64 (pow.f64 (*.f64 y (-.f64 1 x)) 3) (pow.f64 (*.f64 x z) 3)) (fma.f64 (pow.f64 y 2) (*.f64 (-.f64 1 x) (-.f64 1 x)) (*.f64 (*.f64 x z) (-.f64 (*.f64 x z) (*.f64 y (-.f64 1 x))))))
(/.f64 (+.f64 (pow.f64 (*.f64 y (-.f64 1 x)) 3) (pow.f64 (*.f64 x z) 3)) (+.f64 (pow.f64 (*.f64 x z) 2) (*.f64 (*.f64 y (-.f64 1 x)) (-.f64 (*.f64 y (-.f64 1 x)) (*.f64 x z)))))
(/.f64 (+.f64 (pow.f64 (*.f64 y (-.f64 1 x)) 3) (pow.f64 (*.f64 x z) 3)) (-.f64 (pow.f64 (*.f64 x z) 2) (*.f64 (*.f64 y (-.f64 1 x)) (fma.f64 x z (*.f64 y (+.f64 -1 x))))))
(/.f64 (-.f64 (*.f64 (*.f64 y (-.f64 1 x)) (*.f64 y (-.f64 1 x))) (pow.f64 (*.f64 x z) 2)) (-.f64 (*.f64 y (-.f64 1 x)) (*.f64 x z)))
(/.f64 (-.f64 (*.f64 (pow.f64 y 2) (*.f64 (-.f64 1 x) (-.f64 1 x))) (pow.f64 (*.f64 x z) 2)) (-.f64 (*.f64 y (-.f64 1 x)) (*.f64 x z)))
(/.f64 (-.f64 (*.f64 (-.f64 1 x) (*.f64 (-.f64 1 x) (pow.f64 y 2))) (pow.f64 (*.f64 x z) 2)) (-.f64 (*.f64 y (-.f64 1 x)) (*.f64 x z)))
(/.f64 (fma.f64 x (-.f64 z y) y) 1)
(pow.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)) 1)
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(pow.f64 (cbrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) 3)
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(pow.f64 (pow.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)) 3) 1/3)
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(pow.f64 (sqrt.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) 2)
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(sqrt.f64 (pow.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)) 2))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(log.f64 (exp.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(cbrt.f64 (pow.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z)) 3))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(expm1.f64 (log1p.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(exp.f64 (log.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(exp.f64 (*.f64 (log.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))) 1))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)
(log1p.f64 (expm1.f64 (fma.f64 (-.f64 1 x) y (*.f64 x z))))
(+.f64 y (*.f64 x (+.f64 z (neg.f64 y))))
(fma.f64 x (-.f64 z y) y)

eval189.0ms (4.2%)

Compiler

Compiled 995 to 502 computations (49.5% saved)

prune16.0ms (0.4%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New68674
Fresh000
Picked202
Done000
Total70676
Accuracy
100.0%
Counts
76 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(-.f64 y (/.f64 x (/.f64 1 (-.f64 y z))))
77.0%
(-.f64 y (*.f64 x (neg.f64 z)))
58.0%
(-.f64 y (*.f64 x y))
69.0%
(*.f64 x (-.f64 z y))
46.5%
(*.f64 x z)
33.0%
y
Compiler

Compiled 94 to 62 computations (34% saved)

localize131.0ms (2.9%)

Localize:

Found 2 expressions with local error:

NewAccuracyProgram
100.0%
(*.f64 x (-.f64 z y))
99.7%
(/.f64 x (/.f64 1 (-.f64 y z)))
Compiler

Compiled 59 to 20 computations (66.1% saved)

series6.0ms (0.1%)

Counts
2 → 60
Calls

18 calls:

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

rewrite116.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
1624×prod-diff
1078×log1p-expm1-u
549×expm1-log1p-u
352×expm1-udef
352×log1p-udef
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01550
120544
2298044
Stop Event
node limit
Counts
2 → 59
Calls
Call 1
Inputs
(/.f64 x (/.f64 1 (-.f64 y z)))
(*.f64 x (-.f64 z y))
Outputs
(+.f64 (*.f64 x y) (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 (neg.f64 z) x))
(-.f64 (exp.f64 (log1p.f64 (*.f64 x (-.f64 y z)))) 1)
(*.f64 x (-.f64 y z))
(*.f64 1 (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 y z) x)
(*.f64 (*.f64 x (-.f64 y z)) 1)
(*.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) 2) (cbrt.f64 (*.f64 x (-.f64 y z))))
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (-.f64 y z)))
(*.f64 (sqrt.f64 (*.f64 x (-.f64 y z))) (sqrt.f64 (*.f64 x (-.f64 y z))))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (-.f64 y z)))
(*.f64 (neg.f64 x) (/.f64 1 (/.f64 -1 (-.f64 y z))))
(*.f64 (/.f64 1 (cbrt.f64 (pow.f64 (-.f64 y z) -2))) (/.f64 x (/.f64 1 (cbrt.f64 (-.f64 y z)))))
(*.f64 (/.f64 1 (pow.f64 (-.f64 y z) -1/2)) (/.f64 x (pow.f64 (-.f64 y z) -1/2)))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (/.f64 1 (-.f64 y z))))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 (pow.f64 (-.f64 y z) -2))) (cbrt.f64 (*.f64 x (-.f64 y z))))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (-.f64 y z) -1/2)) (/.f64 (cbrt.f64 x) (pow.f64 (-.f64 y z) -1/2)))
(*.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (/.f64 1 (-.f64 y z))))
(*.f64 (/.f64 (sqrt.f64 x) (cbrt.f64 (pow.f64 (-.f64 y z) -2))) (/.f64 (sqrt.f64 x) (/.f64 1 (cbrt.f64 (-.f64 y z)))))
(*.f64 (*.f64 x (pow.f64 (cbrt.f64 (-.f64 y z)) 2)) (cbrt.f64 (-.f64 y z)))
(*.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)))
(*.f64 (/.f64 x -1) (neg.f64 (-.f64 y z)))
(pow.f64 (*.f64 x (-.f64 y z)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) 3)
(pow.f64 (pow.f64 (*.f64 x (-.f64 y z)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 y z))) 2)
(pow.f64 (/.f64 1 (*.f64 x (-.f64 y z))) -1)
(neg.f64 (/.f64 x (/.f64 -1 (-.f64 y z))))
(sqrt.f64 (pow.f64 (*.f64 x (-.f64 y z)) 2))
(log.f64 (pow.f64 (exp.f64 x) (-.f64 y z)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 x (-.f64 y z)))))
(cbrt.f64 (pow.f64 (*.f64 x (-.f64 y z)) 3))
(cbrt.f64 (/.f64 (pow.f64 x 3) (pow.f64 (/.f64 1 (-.f64 y z)) 3)))
(expm1.f64 (log1p.f64 (*.f64 x (-.f64 y z))))
(exp.f64 (log.f64 (*.f64 x (-.f64 y z))))
(exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 y z))) 1))
(log1p.f64 (expm1.f64 (*.f64 x (-.f64 y z))))
(+.f64 (*.f64 x z) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 (neg.f64 y) x))
(-.f64 (exp.f64 (log1p.f64 (*.f64 x (-.f64 z y)))) 1)
(/.f64 (*.f64 x (-.f64 (pow.f64 z 3) (pow.f64 y 3))) (fma.f64 z z (*.f64 y (+.f64 y z))))
(/.f64 (*.f64 x (-.f64 (pow.f64 z 2) (pow.f64 y 2))) (+.f64 y z))
(/.f64 (*.f64 (-.f64 (pow.f64 z 3) (pow.f64 y 3)) x) (fma.f64 z z (*.f64 y (+.f64 y z))))
(/.f64 (*.f64 (-.f64 (pow.f64 z 2) (pow.f64 y 2)) x) (+.f64 y z))
(pow.f64 (*.f64 x (-.f64 z y)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (-.f64 z y))) 3)
(pow.f64 (pow.f64 (*.f64 x (-.f64 z y)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 z y))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (-.f64 z y)) 2))
(log.f64 (pow.f64 (exp.f64 (-.f64 z y)) x))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 x (-.f64 z y)))))
(cbrt.f64 (pow.f64 (*.f64 x (-.f64 z y)) 3))
(cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (-.f64 z y) 3)))
(cbrt.f64 (*.f64 (pow.f64 (-.f64 z y) 3) (pow.f64 x 3)))
(expm1.f64 (log1p.f64 (*.f64 x (-.f64 z y))))
(exp.f64 (log.f64 (*.f64 x (-.f64 z y))))
(exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 z y))) 1))
(log1p.f64 (expm1.f64 (*.f64 x (-.f64 z y))))

simplify83.0ms (1.8%)

Algorithm
egg-herbie
Rules
1192×log-prod
814×distribute-rgt-in
808×distribute-lft-in
778×unswap-sqr
520×associate-/l*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01732839
14202815
213042809
372962809
Stop Event
node limit
Counts
119 → 78
Calls
Call 1
Inputs
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 -1 (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 -1 (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 -1 (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 -1 (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x z)
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x z)
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x z)
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 -1 (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 -1 (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(+.f64 (*.f64 x y) (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 y x) (*.f64 (neg.f64 z) x))
(-.f64 (exp.f64 (log1p.f64 (*.f64 x (-.f64 y z)))) 1)
(*.f64 x (-.f64 y z))
(*.f64 1 (*.f64 x (-.f64 y z)))
(*.f64 (-.f64 y z) x)
(*.f64 (*.f64 x (-.f64 y z)) 1)
(*.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) 2) (cbrt.f64 (*.f64 x (-.f64 y z))))
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (-.f64 y z)))
(*.f64 (sqrt.f64 (*.f64 x (-.f64 y z))) (sqrt.f64 (*.f64 x (-.f64 y z))))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (-.f64 y z)))
(*.f64 (neg.f64 x) (/.f64 1 (/.f64 -1 (-.f64 y z))))
(*.f64 (/.f64 1 (cbrt.f64 (pow.f64 (-.f64 y z) -2))) (/.f64 x (/.f64 1 (cbrt.f64 (-.f64 y z)))))
(*.f64 (/.f64 1 (pow.f64 (-.f64 y z) -1/2)) (/.f64 x (pow.f64 (-.f64 y z) -1/2)))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (/.f64 1 (-.f64 y z))))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 (pow.f64 (-.f64 y z) -2))) (cbrt.f64 (*.f64 x (-.f64 y z))))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (-.f64 y z) -1/2)) (/.f64 (cbrt.f64 x) (pow.f64 (-.f64 y z) -1/2)))
(*.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (/.f64 1 (-.f64 y z))))
(*.f64 (/.f64 (sqrt.f64 x) (cbrt.f64 (pow.f64 (-.f64 y z) -2))) (/.f64 (sqrt.f64 x) (/.f64 1 (cbrt.f64 (-.f64 y z)))))
(*.f64 (*.f64 x (pow.f64 (cbrt.f64 (-.f64 y z)) 2)) (cbrt.f64 (-.f64 y z)))
(*.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)))
(*.f64 (/.f64 x -1) (neg.f64 (-.f64 y z)))
(pow.f64 (*.f64 x (-.f64 y z)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) 3)
(pow.f64 (pow.f64 (*.f64 x (-.f64 y z)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 y z))) 2)
(pow.f64 (/.f64 1 (*.f64 x (-.f64 y z))) -1)
(neg.f64 (/.f64 x (/.f64 -1 (-.f64 y z))))
(sqrt.f64 (pow.f64 (*.f64 x (-.f64 y z)) 2))
(log.f64 (pow.f64 (exp.f64 x) (-.f64 y z)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 x (-.f64 y z)))))
(cbrt.f64 (pow.f64 (*.f64 x (-.f64 y z)) 3))
(cbrt.f64 (/.f64 (pow.f64 x 3) (pow.f64 (/.f64 1 (-.f64 y z)) 3)))
(expm1.f64 (log1p.f64 (*.f64 x (-.f64 y z))))
(exp.f64 (log.f64 (*.f64 x (-.f64 y z))))
(exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 y z))) 1))
(log1p.f64 (expm1.f64 (*.f64 x (-.f64 y z))))
(+.f64 (*.f64 x z) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 z x) (*.f64 (neg.f64 y) x))
(-.f64 (exp.f64 (log1p.f64 (*.f64 x (-.f64 z y)))) 1)
(/.f64 (*.f64 x (-.f64 (pow.f64 z 3) (pow.f64 y 3))) (fma.f64 z z (*.f64 y (+.f64 y z))))
(/.f64 (*.f64 x (-.f64 (pow.f64 z 2) (pow.f64 y 2))) (+.f64 y z))
(/.f64 (*.f64 (-.f64 (pow.f64 z 3) (pow.f64 y 3)) x) (fma.f64 z z (*.f64 y (+.f64 y z))))
(/.f64 (*.f64 (-.f64 (pow.f64 z 2) (pow.f64 y 2)) x) (+.f64 y z))
(pow.f64 (*.f64 x (-.f64 z y)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (-.f64 z y))) 3)
(pow.f64 (pow.f64 (*.f64 x (-.f64 z y)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 z y))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (-.f64 z y)) 2))
(log.f64 (pow.f64 (exp.f64 (-.f64 z y)) x))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 x (-.f64 z y)))))
(cbrt.f64 (pow.f64 (*.f64 x (-.f64 z y)) 3))
(cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (-.f64 z y) 3)))
(cbrt.f64 (*.f64 (pow.f64 (-.f64 z y) 3) (pow.f64 x 3)))
(expm1.f64 (log1p.f64 (*.f64 x (-.f64 z y))))
(exp.f64 (log.f64 (*.f64 x (-.f64 z y))))
(exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 z y))) 1))
(log1p.f64 (expm1.f64 (*.f64 x (-.f64 z y))))
Outputs
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 -1 (*.f64 x z))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(*.f64 x y)
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(*.f64 x y)
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(*.f64 x y)
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(*.f64 -1 (*.f64 x z))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(*.f64 -1 (*.f64 x z))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x z)) (*.f64 x y))
(*.f64 x (-.f64 y z))
(*.f64 -1 (*.f64 x y))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(*.f64 x z)
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(*.f64 x z)
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(*.f64 x z)
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(*.f64 -1 (*.f64 x y))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(*.f64 -1 (*.f64 x y))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 -1 (*.f64 x y)) (*.f64 x z))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 x y) (*.f64 x (neg.f64 z)))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 y x) (*.f64 (neg.f64 z) x))
(*.f64 x (-.f64 y z))
(-.f64 (exp.f64 (log1p.f64 (*.f64 x (-.f64 y z)))) 1)
(*.f64 x (-.f64 y z))
(*.f64 x (-.f64 y z))
(*.f64 1 (*.f64 x (-.f64 y z)))
(*.f64 x (-.f64 y z))
(*.f64 (-.f64 y z) x)
(*.f64 x (-.f64 y z))
(*.f64 (*.f64 x (-.f64 y z)) 1)
(*.f64 x (-.f64 y z))
(*.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) (pow.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) 2))
(*.f64 x (-.f64 y z))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) 2) (cbrt.f64 (*.f64 x (-.f64 y z))))
(*.f64 x (-.f64 y z))
(*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (-.f64 y z)))
(*.f64 x (-.f64 y z))
(*.f64 (sqrt.f64 (*.f64 x (-.f64 y z))) (sqrt.f64 (*.f64 x (-.f64 y z))))
(*.f64 x (-.f64 y z))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (-.f64 y z)))
(*.f64 x (-.f64 y z))
(*.f64 (neg.f64 x) (/.f64 1 (/.f64 -1 (-.f64 y z))))
(*.f64 x (-.f64 y z))
(*.f64 (/.f64 1 (cbrt.f64 (pow.f64 (-.f64 y z) -2))) (/.f64 x (/.f64 1 (cbrt.f64 (-.f64 y z)))))
(*.f64 (/.f64 1 (cbrt.f64 (pow.f64 (-.f64 y z) -2))) (*.f64 (/.f64 x 1) (cbrt.f64 (-.f64 y z))))
(*.f64 (/.f64 x (cbrt.f64 (pow.f64 (-.f64 y z) -2))) (cbrt.f64 (-.f64 y z)))
(*.f64 (cbrt.f64 (-.f64 y z)) (/.f64 x (cbrt.f64 (pow.f64 (-.f64 y z) -2))))
(*.f64 (/.f64 1 (pow.f64 (-.f64 y z) -1/2)) (/.f64 x (pow.f64 (-.f64 y z) -1/2)))
(*.f64 x (-.f64 y z))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (/.f64 1 (-.f64 y z))))
(*.f64 x (-.f64 y z))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 (pow.f64 (-.f64 y z) -2))) (cbrt.f64 (*.f64 x (-.f64 y z))))
(*.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) (/.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 (pow.f64 (-.f64 y z) -2))))
(/.f64 (*.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 (pow.f64 (-.f64 y z) -2)))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (-.f64 y z) -1/2)) (/.f64 (cbrt.f64 x) (pow.f64 (-.f64 y z) -1/2)))
(*.f64 x (-.f64 y z))
(*.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (/.f64 1 (-.f64 y z))))
(*.f64 x (-.f64 y z))
(*.f64 (/.f64 (sqrt.f64 x) (cbrt.f64 (pow.f64 (-.f64 y z) -2))) (/.f64 (sqrt.f64 x) (/.f64 1 (cbrt.f64 (-.f64 y z)))))
(*.f64 (/.f64 1 (cbrt.f64 (pow.f64 (-.f64 y z) -2))) (*.f64 (/.f64 x 1) (cbrt.f64 (-.f64 y z))))
(*.f64 (/.f64 x (cbrt.f64 (pow.f64 (-.f64 y z) -2))) (cbrt.f64 (-.f64 y z)))
(*.f64 (cbrt.f64 (-.f64 y z)) (/.f64 x (cbrt.f64 (pow.f64 (-.f64 y z) -2))))
(*.f64 (*.f64 x (pow.f64 (cbrt.f64 (-.f64 y z)) 2)) (cbrt.f64 (-.f64 y z)))
(*.f64 x (-.f64 y z))
(*.f64 (*.f64 x (sqrt.f64 (-.f64 y z))) (sqrt.f64 (-.f64 y z)))
(*.f64 x (-.f64 y z))
(*.f64 (/.f64 x -1) (neg.f64 (-.f64 y z)))
(*.f64 x (-.f64 y z))
(pow.f64 (*.f64 x (-.f64 y z)) 1)
(*.f64 x (-.f64 y z))
(pow.f64 (cbrt.f64 (*.f64 x (-.f64 y z))) 3)
(*.f64 x (-.f64 y z))
(pow.f64 (pow.f64 (*.f64 x (-.f64 y z)) 3) 1/3)
(*.f64 x (-.f64 y z))
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 y z))) 2)
(*.f64 x (-.f64 y z))
(pow.f64 (/.f64 1 (*.f64 x (-.f64 y z))) -1)
(*.f64 x (-.f64 y z))
(neg.f64 (/.f64 x (/.f64 -1 (-.f64 y z))))
(*.f64 x (-.f64 y z))
(sqrt.f64 (pow.f64 (*.f64 x (-.f64 y z)) 2))
(*.f64 x (-.f64 y z))
(log.f64 (pow.f64 (exp.f64 x) (-.f64 y z)))
(*.f64 x (-.f64 y z))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 x (-.f64 y z)))))
(*.f64 x (-.f64 y z))
(cbrt.f64 (pow.f64 (*.f64 x (-.f64 y z)) 3))
(*.f64 x (-.f64 y z))
(cbrt.f64 (/.f64 (pow.f64 x 3) (pow.f64 (/.f64 1 (-.f64 y z)) 3)))
(*.f64 x (-.f64 y z))
(expm1.f64 (log1p.f64 (*.f64 x (-.f64 y z))))
(*.f64 x (-.f64 y z))
(exp.f64 (log.f64 (*.f64 x (-.f64 y z))))
(*.f64 x (-.f64 y z))
(exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 y z))) 1))
(*.f64 x (-.f64 y z))
(log1p.f64 (expm1.f64 (*.f64 x (-.f64 y z))))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 x z) (*.f64 x (neg.f64 y)))
(*.f64 x (-.f64 y z))
(+.f64 (*.f64 z x) (*.f64 (neg.f64 y) x))
(*.f64 x (-.f64 y z))
(-.f64 (exp.f64 (log1p.f64 (*.f64 x (-.f64 z y)))) 1)
(*.f64 x (-.f64 y z))
(/.f64 (*.f64 x (-.f64 (pow.f64 z 3) (pow.f64 y 3))) (fma.f64 z z (*.f64 y (+.f64 y z))))
(/.f64 x (/.f64 (fma.f64 z z (*.f64 y (+.f64 y z))) (-.f64 (pow.f64 z 3) (pow.f64 y 3))))
(*.f64 (/.f64 (-.f64 (pow.f64 z 3) (pow.f64 y 3)) (fma.f64 z z (*.f64 y (+.f64 y z)))) x)
(*.f64 x (/.f64 (-.f64 (pow.f64 z 3) (pow.f64 y 3)) (fma.f64 y (+.f64 y z) (pow.f64 z 2))))
(/.f64 (*.f64 x (-.f64 (pow.f64 z 2) (pow.f64 y 2))) (+.f64 y z))
(/.f64 x (/.f64 (+.f64 y z) (-.f64 (pow.f64 z 2) (pow.f64 y 2))))
(*.f64 (/.f64 (-.f64 (pow.f64 z 2) (pow.f64 y 2)) (+.f64 y z)) x)
(*.f64 x (/.f64 (-.f64 (pow.f64 z 2) (pow.f64 y 2)) (+.f64 y z)))
(/.f64 (*.f64 (-.f64 (pow.f64 z 3) (pow.f64 y 3)) x) (fma.f64 z z (*.f64 y (+.f64 y z))))
(/.f64 x (/.f64 (fma.f64 z z (*.f64 y (+.f64 y z))) (-.f64 (pow.f64 z 3) (pow.f64 y 3))))
(*.f64 (/.f64 (-.f64 (pow.f64 z 3) (pow.f64 y 3)) (fma.f64 z z (*.f64 y (+.f64 y z)))) x)
(*.f64 x (/.f64 (-.f64 (pow.f64 z 3) (pow.f64 y 3)) (fma.f64 y (+.f64 y z) (pow.f64 z 2))))
(/.f64 (*.f64 (-.f64 (pow.f64 z 2) (pow.f64 y 2)) x) (+.f64 y z))
(/.f64 x (/.f64 (+.f64 y z) (-.f64 (pow.f64 z 2) (pow.f64 y 2))))
(*.f64 (/.f64 (-.f64 (pow.f64 z 2) (pow.f64 y 2)) (+.f64 y z)) x)
(*.f64 x (/.f64 (-.f64 (pow.f64 z 2) (pow.f64 y 2)) (+.f64 y z)))
(pow.f64 (*.f64 x (-.f64 z y)) 1)
(*.f64 x (-.f64 y z))
(pow.f64 (cbrt.f64 (*.f64 x (-.f64 z y))) 3)
(*.f64 x (-.f64 y z))
(pow.f64 (pow.f64 (*.f64 x (-.f64 z y)) 3) 1/3)
(*.f64 x (-.f64 y z))
(pow.f64 (sqrt.f64 (*.f64 x (-.f64 z y))) 2)
(*.f64 x (-.f64 y z))
(sqrt.f64 (pow.f64 (*.f64 x (-.f64 z y)) 2))
(*.f64 x (-.f64 y z))
(log.f64 (pow.f64 (exp.f64 (-.f64 z y)) x))
(*.f64 x (-.f64 y z))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 x (-.f64 z y)))))
(*.f64 x (-.f64 y z))
(cbrt.f64 (pow.f64 (*.f64 x (-.f64 z y)) 3))
(*.f64 x (-.f64 y z))
(cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (-.f64 z y) 3)))
(*.f64 x (-.f64 y z))
(cbrt.f64 (*.f64 (pow.f64 (-.f64 z y) 3) (pow.f64 x 3)))
(*.f64 x (-.f64 y z))
(expm1.f64 (log1p.f64 (*.f64 x (-.f64 z y))))
(*.f64 x (-.f64 y z))
(exp.f64 (log.f64 (*.f64 x (-.f64 z y))))
(*.f64 x (-.f64 y z))
(exp.f64 (*.f64 (log.f64 (*.f64 x (-.f64 z y))) 1))
(*.f64 x (-.f64 y z))
(log1p.f64 (expm1.f64 (*.f64 x (-.f64 z y))))
(*.f64 x (-.f64 y z))

eval183.0ms (4.1%)

Compiler

Compiled 905 to 380 computations (58% saved)

prune13.0ms (0.3%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New77178
Fresh011
Picked055
Done000
Total77784
Accuracy
100.0%
Counts
84 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(-.f64 y (/.f64 x (/.f64 1 (-.f64 y z))))
77.0%
(-.f64 y (*.f64 x (neg.f64 z)))
58.0%
(-.f64 y (*.f64 x y))
69.0%
(*.f64 x (-.f64 z y))
27.2%
(*.f64 x (neg.f64 y))
46.5%
(*.f64 x z)
33.0%
y
Compiler

Compiled 54 to 36 computations (33.3% saved)

localize92.0ms (2.1%)

Compiler

Compiled 27 to 9 computations (66.7% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune4.0ms (0.1%)

Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done055
Total077
Accuracy
100.0%
Counts
7 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(-.f64 y (/.f64 x (/.f64 1 (-.f64 y z))))
77.0%
(-.f64 y (*.f64 x (neg.f64 z)))
58.0%
(-.f64 y (*.f64 x y))
69.0%
(*.f64 x (-.f64 z y))
27.2%
(*.f64 x (neg.f64 y))
46.5%
(*.f64 x z)
33.0%
y
Compiler

Compiled 114 to 63 computations (44.7% saved)

regimes55.0ms (1.2%)

Counts
10 → 1
Calls
Call 1
Inputs
y
(*.f64 x z)
(*.f64 x (neg.f64 y))
(*.f64 x (-.f64 z y))
(-.f64 y (*.f64 x y))
(-.f64 y (*.f64 x (neg.f64 z)))
(-.f64 y (*.f64 x (-.f64 y z)))
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))
(-.f64 y (/.f64 x (/.f64 1 (-.f64 y z))))
(fma.f64 (-.f64 1 x) y (*.f64 x z))
Outputs
(-.f64 y (*.f64 x (-.f64 y z)))
Calls

4 calls:

36.0ms
(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))
7.0ms
x
6.0ms
y
6.0ms
z
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1z
100.0%1(+.f64 (*.f64 (-.f64 1 x) y) (*.f64 x z))
Compiler

Compiled 24 to 17 computations (29.2% saved)

regimes47.0ms (1%)

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

3 calls:

17.0ms
z
17.0ms
y
12.0ms
x
Results
AccuracySegmentsBranch
99.1%3x
90.6%3y
90.0%3z
Compiler

Compiled 12 to 9 computations (25% saved)

regimes68.0ms (1.5%)

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

3 calls:

40.0ms
z
15.0ms
y
12.0ms
x
Results
AccuracySegmentsBranch
83.7%5z
84.3%3y
87.0%3x
Compiler

Compiled 12 to 9 computations (25% saved)

regimes11.0ms (0.3%)

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

1 calls:

11.0ms
x
Results
AccuracySegmentsBranch
87.0%3x
Compiler

Compiled 4 to 3 computations (25% saved)

regimes99.0ms (2.2%)

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

3 calls:

51.0ms
x
28.0ms
z
20.0ms
y
Results
AccuracySegmentsBranch
66.8%8z
66.4%7y
72.8%8x
Compiler

Compiled 12 to 9 computations (25% saved)

regimes8.0ms (0.2%)

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

1 calls:

8.0ms
x
Results
AccuracySegmentsBranch
64.6%3x
Compiler

Compiled 4 to 3 computations (25% saved)

regimes32.0ms (0.7%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
y
Outputs
y
Calls

3 calls:

26.0ms
z
2.0ms
x
2.0ms
y
Results
AccuracySegmentsBranch
33.0%1z
33.0%1y
33.0%1x
Compiler

Compiled 12 to 9 computations (25% saved)

bsearch31.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
15.0ms
6.637981260061498e-24
1.966846536883743e-20
16.0ms
-3638062.1524844468
-3.00943947935239
Results
28.0ms272×256valid
Compiler

Compiled 341 to 234 computations (31.4% saved)

bsearch33.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
17.0ms
1.4026600890134293e-92
2.870955717463293e-85
16.0ms
-5.995945842460021e-81
-1.614081673792818e-87
Results
29.0ms288×256valid
Compiler

Compiled 342 to 229 computations (33% saved)

bsearch77.0ms (1.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
62.0ms
1.4026600890134293e-92
2.870955717463293e-85
16.0ms
-5.995945842460021e-81
-1.614081673792818e-87
Results
74.0ms288×256valid
Compiler

Compiled 270 to 193 computations (28.5% saved)

bsearch120.0ms (2.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
18.0ms
1.383500144132669e+270
7.5487686273101695e+286
18.0ms
3.9283288412241106e+124
1.3752403188705217e+137
19.0ms
1.966846536883743e-20
53913807.77002424
17.0ms
1.4026600890134293e-92
2.870955717463293e-85
17.0ms
-5.995945842460021e-81
-1.614081673792818e-87
14.0ms
-3.04090342569208e+20
-550663721012036350.0
17.0ms
-6.087103241352648e+221
-9.876315560035993e+213
Results
81.0ms794×256valid
27.0ms262×256infinite
Compiler

Compiled 954 to 703 computations (26.3% saved)

bsearch32.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
16.0ms
1.4026600890134293e-92
2.870955717463293e-85
16.0ms
-5.995945842460021e-81
-1.614081673792818e-87
Results
29.0ms288×256valid
Compiler

Compiled 234 to 175 computations (25.2% saved)

simplify39.0ms (0.9%)

Algorithm
egg-herbie
Rules
116×unsub-neg
102×distribute-lft-neg-in
78×neg-mul-1
54×neg-sub0
50×distribute-rgt-neg-in
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
069475
1115465
2151465
3192461
4236461
5270461
6335461
7383461
8400461
9421461
10436461
11457461
12469461
13472461
Stop Event
done
saturated
Calls
Call 1
Inputs
(-.f64 y (*.f64 x (-.f64 y z)))
(if (<=.f64 x -3433994715870003/1125899906842624) (*.f64 x (-.f64 z y)) (if (<=.f64 x 6479986479451465/332306998946228968225951765070086144) (-.f64 y (*.f64 x (neg.f64 z))) (*.f64 x (-.f64 z y))))
(if (<=.f64 x -7436652464262241/4374501449566023848745004454235242730706338861786424872851541212819905998398751846447026354046107648) (*.f64 x (-.f64 z y)) (if (<=.f64 x 2379728788563917/69992023193056381579920071267763883691301421788582797965624659405118495974380029543152421664737722368) (-.f64 y (*.f64 x y)) (*.f64 x (-.f64 z y))))
(if (<=.f64 x -5711349092553401/559936185544451052639360570142111069530411374308662383724997275240947967795040236345219373317901778944) (*.f64 x (-.f64 z y)) (if (<=.f64 x 3499601159652819/34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861184) y (*.f64 x (-.f64 z y))))
(if (<=.f64 x -619999999999999976539734284055945337236865532469571528472821269448226169911048199408623490821092176806944947110748605268169526358469956356554970794014938257729651853428482156537980806455424772424437528862400104628224) (*.f64 x z) (if (<=.f64 x -138000000000000000000) (*.f64 x (neg.f64 y)) (if (<=.f64 x -1401207495564117/17087896287367280659160173649356416916821636178853222159576332862577757806245124400183696695492608) (*.f64 x z) (if (<=.f64 x 3499601159652819/34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861184) y (if (<=.f64 x 47000000) (*.f64 x z) (if (<=.f64 x 8999999999999999474116579868461264967828796023031115904996716880160119525048759417489849051200299265440506422348096784589389824) (*.f64 x (neg.f64 y)) (if (<=.f64 x 4199999999999999750750962081390993538279346283038461554734619651139515968613999779251399666260414095461832400250994518393823970191026377819892858692799769860301967611420781345476869424307826423864225357268646007009205838779526802794593324242121461474451921253467547140084046434926592) (*.f64 x z) (*.f64 x (neg.f64 y)))))))))
(if (<=.f64 x -1067993517960455/4271974071841820164790043412339104229205409044713305539894083215644439451561281100045924173873152) (*.f64 x z) (if (<=.f64 x 4899441623513947/17498005798264095394980017816940970922825355447145699491406164851279623993595007385788105416184430592) y (*.f64 x z)))
y
Outputs
(-.f64 y (*.f64 x (-.f64 y z)))
(if (<=.f64 x -3433994715870003/1125899906842624) (*.f64 x (-.f64 z y)) (if (<=.f64 x 6479986479451465/332306998946228968225951765070086144) (-.f64 y (*.f64 x (neg.f64 z))) (*.f64 x (-.f64 z y))))
(if (or (<=.f64 x -3433994715870003/1125899906842624) (not (<=.f64 x 6479986479451465/332306998946228968225951765070086144))) (*.f64 x (-.f64 z y)) (-.f64 y (*.f64 x (neg.f64 z))))
(if (or (<=.f64 x -3433994715870003/1125899906842624) (not (<=.f64 x 6479986479451465/332306998946228968225951765070086144))) (*.f64 x (-.f64 z y)) (+.f64 y (*.f64 x z)))
(if (<=.f64 x -7436652464262241/4374501449566023848745004454235242730706338861786424872851541212819905998398751846447026354046107648) (*.f64 x (-.f64 z y)) (if (<=.f64 x 2379728788563917/69992023193056381579920071267763883691301421788582797965624659405118495974380029543152421664737722368) (-.f64 y (*.f64 x y)) (*.f64 x (-.f64 z y))))
(if (or (<=.f64 x -7436652464262241/4374501449566023848745004454235242730706338861786424872851541212819905998398751846447026354046107648) (not (<=.f64 x 2379728788563917/69992023193056381579920071267763883691301421788582797965624659405118495974380029543152421664737722368))) (*.f64 x (-.f64 z y)) (-.f64 y (*.f64 y x)))
(if (<=.f64 x -5711349092553401/559936185544451052639360570142111069530411374308662383724997275240947967795040236345219373317901778944) (*.f64 x (-.f64 z y)) (if (<=.f64 x 3499601159652819/34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861184) y (*.f64 x (-.f64 z y))))
(if (or (<=.f64 x -5711349092553401/559936185544451052639360570142111069530411374308662383724997275240947967795040236345219373317901778944) (not (<=.f64 x 3499601159652819/34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861184))) (*.f64 x (-.f64 z y)) y)
(if (<=.f64 x -619999999999999976539734284055945337236865532469571528472821269448226169911048199408623490821092176806944947110748605268169526358469956356554970794014938257729651853428482156537980806455424772424437528862400104628224) (*.f64 x z) (if (<=.f64 x -138000000000000000000) (*.f64 x (neg.f64 y)) (if (<=.f64 x -1401207495564117/17087896287367280659160173649356416916821636178853222159576332862577757806245124400183696695492608) (*.f64 x z) (if (<=.f64 x 3499601159652819/34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861184) y (if (<=.f64 x 47000000) (*.f64 x z) (if (<=.f64 x 8999999999999999474116579868461264967828796023031115904996716880160119525048759417489849051200299265440506422348096784589389824) (*.f64 x (neg.f64 y)) (if (<=.f64 x 4199999999999999750750962081390993538279346283038461554734619651139515968613999779251399666260414095461832400250994518393823970191026377819892858692799769860301967611420781345476869424307826423864225357268646007009205838779526802794593324242121461474451921253467547140084046434926592) (*.f64 x z) (*.f64 x (neg.f64 y)))))))))
(if (<=.f64 x -619999999999999976539734284055945337236865532469571528472821269448226169911048199408623490821092176806944947110748605268169526358469956356554970794014938257729651853428482156537980806455424772424437528862400104628224) (*.f64 x z) (if (<=.f64 x -138000000000000000000) (*.f64 x (neg.f64 y)) (if (<=.f64 x -1401207495564117/17087896287367280659160173649356416916821636178853222159576332862577757806245124400183696695492608) (*.f64 x z) (if (<=.f64 x 3499601159652819/34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861184) y (if (<=.f64 x 47000000) (*.f64 x z) (if (or (<=.f64 x 8999999999999999474116579868461264967828796023031115904996716880160119525048759417489849051200299265440506422348096784589389824) (not (<=.f64 x 4199999999999999750750962081390993538279346283038461554734619651139515968613999779251399666260414095461832400250994518393823970191026377819892858692799769860301967611420781345476869424307826423864225357268646007009205838779526802794593324242121461474451921253467547140084046434926592))) (*.f64 x (neg.f64 y)) (*.f64 x z)))))))
(if (<=.f64 x -619999999999999976539734284055945337236865532469571528472821269448226169911048199408623490821092176806944947110748605268169526358469956356554970794014938257729651853428482156537980806455424772424437528862400104628224) (*.f64 x z) (if (<=.f64 x -138000000000000000000) (*.f64 y (neg.f64 x)) (if (<=.f64 x -1401207495564117/17087896287367280659160173649356416916821636178853222159576332862577757806245124400183696695492608) (*.f64 x z) (if (<=.f64 x 3499601159652819/34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861184) y (if (or (<=.f64 x 47000000) (not (or (<=.f64 x 8999999999999999474116579868461264967828796023031115904996716880160119525048759417489849051200299265440506422348096784589389824) (not (<=.f64 x 4199999999999999750750962081390993538279346283038461554734619651139515968613999779251399666260414095461832400250994518393823970191026377819892858692799769860301967611420781345476869424307826423864225357268646007009205838779526802794593324242121461474451921253467547140084046434926592))))) (*.f64 x z) (*.f64 y (neg.f64 x)))))))
(if (<=.f64 x -619999999999999976539734284055945337236865532469571528472821269448226169911048199408623490821092176806944947110748605268169526358469956356554970794014938257729651853428482156537980806455424772424437528862400104628224) (*.f64 x z) (if (<=.f64 x -138000000000000000000) (*.f64 y (neg.f64 x)) (if (<=.f64 x -1401207495564117/17087896287367280659160173649356416916821636178853222159576332862577757806245124400183696695492608) (*.f64 x z) (if (<=.f64 x 3499601159652819/34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861184) y (if (or (<=.f64 x 47000000) (and (not (<=.f64 x 8999999999999999474116579868461264967828796023031115904996716880160119525048759417489849051200299265440506422348096784589389824)) (<=.f64 x 4199999999999999750750962081390993538279346283038461554734619651139515968613999779251399666260414095461832400250994518393823970191026377819892858692799769860301967611420781345476869424307826423864225357268646007009205838779526802794593324242121461474451921253467547140084046434926592))) (*.f64 x z) (*.f64 y (neg.f64 x)))))))
(if (<=.f64 x -1067993517960455/4271974071841820164790043412339104229205409044713305539894083215644439451561281100045924173873152) (*.f64 x z) (if (<=.f64 x 4899441623513947/17498005798264095394980017816940970922825355447145699491406164851279623993595007385788105416184430592) y (*.f64 x z)))
(if (or (<=.f64 x -1067993517960455/4271974071841820164790043412339104229205409044713305539894083215644439451561281100045924173873152) (not (<=.f64 x 4899441623513947/17498005798264095394980017816940970922825355447145699491406164851279623993595007385788105416184430592))) (*.f64 x z) y)
y
Compiler

Compiled 142 to 88 computations (38% saved)

soundness1.0s (22.4%)

Rules
2212×fma-def
2212×fma-def
1192×log-prod
1020×times-frac
1020×times-frac
Iterations

Useful iterations: 9 (0.0ms)

IterNodesCost
040399
1102387
2236379
3682351
41707339
52868337
63236337
73276337
83280337
93280317
103923317
113923317
040399
1102387
2236379
3682351
41707339
52868337
63236337
73276337
83280337
93280317
103923317
113923317
01343211
13342810
211982793
351352668
01732839
14202815
213042809
372962809
01343211
13342810
211982793
351352668
Stop Event
node limit
node limit
node limit
saturated
saturated
Compiler

Compiled 203 to 101 computations (50.2% saved)

end0.0ms (0%)

preprocess155.0ms (3.5%)

Compiler

Compiled 292 to 156 computations (46.6% saved)

Profiling

Loading profile data...