2-ancestry mixing, zero discriminant

Time bar (total: 3.2s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated; 0ms collecting garbage

analyze11.0ms (0.4%)

Memory
23.7MiB live, 23.7MiB allocated; 0ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
50%50%50%0.1%0%0%0%3
50%50%50%0.1%0%0%0%4
75%74.9%25%0.1%0%0%0%5
75%74.9%25%0.1%0%0%0%6
87.5%87.4%12.5%0.1%0%0%0%7
87.5%87.4%12.5%0.1%0%0%0%8
93.8%93.7%6.2%0.1%0%0%0%9
93.8%93.7%6.2%0.1%0%0%0%10
96.9%96.8%3.1%0.1%0%0%0%11
96.9%96.8%3.1%0.1%0%0%0%12
Compiler

Compiled 8 to 8 computations (0% saved)

sample769.0ms (24.1%)

Memory
-21.3MiB live, 2 428.3MiB allocated; 302ms collecting garbage
Samples
512.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 258.0ms
ival-mult: 114.0ms (44.2% of total)
ival-div: 74.0ms (28.7% of total)
ival-cbrt: 54.0ms (20.9% of total)
ival-true: 5.0ms (1.9% of total)
exact: 4.0ms (1.6% of total)
adjust: 3.0ms (1.2% of total)
ival-assert: 3.0ms (1.2% of total)
Bogosity

explain66.0ms (2.1%)

Memory
2.6MiB live, 388.1MiB allocated; 12ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
630-4(5.734958673097553e-50 -2.5351742670289087e+268)(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
00-0-(/.f64 g (*.f64 #s(literal 2 binary64) a))
00-0-#s(literal 2 binary64)
00-0-a
00-0-g
00-0-(*.f64 #s(literal 2 binary64) a)
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
cbrt.f64(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))uflow-rescue340
(/.f64 g (*.f64 #s(literal 2 binary64) a))underflow34
cbrt.f64(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))oflow-rescue250
(/.f64 g (*.f64 #s(literal 2 binary64) a))overflow25
Confusion
Predicted +Predicted -
+594
-0193
Precision
1.0
Recall
0.9365079365079365
Confusion?
Predicted +Predicted MaybePredicted -
+5904
-00193
Precision?
1.0
Recall?
0.9365079365079365
Freqs
test
numberfreq
0197
159
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
32.0ms512×0valid
Compiler

Compiled 44 to 22 computations (50% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
ival-mult: 5.0ms (37.6% of total)
ival-div: 4.0ms (30.1% of total)
ival-cbrt: 3.0ms (22.6% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess185.0ms (5.8%)

Memory
-7.5MiB live, 229.2MiB allocated; 15ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01636
13332
26332
311632
428932
5143132
6622932
066
096
1156
2246
3446
4896
53146
620156
081896
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
Outputs
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
(cbrt.f64 (/.f64 g (*.f64 a #s(literal 2 binary64))))
Compiler

Compiled 6 to 6 computations (0% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated; 0ms collecting garbage
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune1.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
76.7%
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
Compiler

Compiled 6 to 6 computations (0% saved)

simplify101.0ms (3.2%)

Memory
29.5MiB live, 221.6MiB allocated; 9ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 #s(literal 2 binary64) a)
cost-diff0
(/.f64 g (*.f64 #s(literal 2 binary64) a))
cost-diff0
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0617
0917
11517
22417
34417
48917
531417
6201517
0818917
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
(/.f64 g (*.f64 #s(literal 2 binary64) a))
g
(*.f64 #s(literal 2 binary64) a)
#s(literal 2 binary64)
a
Outputs
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
(cbrt.f64 (/.f64 g (*.f64 a #s(literal 2 binary64))))
(/.f64 g (*.f64 #s(literal 2 binary64) a))
(/.f64 g (*.f64 a #s(literal 2 binary64)))
g
(*.f64 #s(literal 2 binary64) a)
(*.f64 a #s(literal 2 binary64))
#s(literal 2 binary64)
a

localize32.0ms (1%)

Memory
-9.0MiB live, 136.5MiB allocated; 9ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(/.f64 g (*.f64 #s(literal 2 binary64) a))
accuracy0.0
(*.f64 #s(literal 2 binary64) a)
accuracy14.939461412936401
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
Samples
24.0ms256×0valid
Compiler

Compiled 19 to 8 computations (57.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
ival-div: 2.0ms (32.5% of total)
ival-mult: 2.0ms (32.5% of total)
ival-cbrt: 2.0ms (32.5% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series35.0ms (1.1%)

Memory
11.0MiB live, 91.2MiB allocated; 16ms collecting garbage
Counts
3 → 5
Calls
Call 1
Inputs
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
(/.f64 g (*.f64 #s(literal 2 binary64) a))
(*.f64 #s(literal 2 binary64) a)
Outputs
(* (cbrt (/ g a)) (cbrt 1/2))
(* 1/2 (/ g a))
(* -1 (* (cbrt (/ g a)) (cbrt -1/2)))
(* 2 a)
(* (cbrt (/ g a)) (* (cbrt -1) (cbrt -1/2)))
Calls

6 calls:

TimeVariablePointExpression
9.0ms
g
@0
((cbrt (/ g (* 2 a))) (/ g (* 2 a)) (* 2 a))
9.0ms
a
@0
((cbrt (/ g (* 2 a))) (/ g (* 2 a)) (* 2 a))
5.0ms
g
@-inf
((cbrt (/ g (* 2 a))) (/ g (* 2 a)) (* 2 a))
4.0ms
a
@-inf
((cbrt (/ g (* 2 a))) (/ g (* 2 a)) (* 2 a))
4.0ms
g
@inf
((cbrt (/ g (* 2 a))) (/ g (* 2 a)) (* 2 a))

simplify153.0ms (4.8%)

Memory
17.7MiB live, 342.1MiB allocated; 58ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01831
13531
26131
38131
414331
546831
6330531
0838131
Stop Event
iter limit
node limit
Counts
5 → 5
Calls
Call 1
Inputs
(* (cbrt (/ g a)) (cbrt 1/2))
(* 1/2 (/ g a))
(* -1 (* (cbrt (/ g a)) (cbrt -1/2)))
(* 2 a)
(* (cbrt (/ g a)) (* (cbrt -1) (cbrt -1/2)))
Outputs
(* (cbrt (/ g a)) (cbrt 1/2))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a)))
(* 1/2 (/ g a))
(*.f64 g (/.f64 #s(literal 1/2 binary64) a))
(* -1 (* (cbrt (/ g a)) (cbrt -1/2)))
(*.f64 (neg.f64 (cbrt.f64 #s(literal -1/2 binary64))) (cbrt.f64 (/.f64 g a)))
(* 2 a)
(*.f64 #s(literal 2 binary64) a)
(* (cbrt (/ g a)) (* (cbrt -1) (cbrt -1/2)))
(*.f64 (neg.f64 (cbrt.f64 #s(literal -1/2 binary64))) (cbrt.f64 (/.f64 g a)))

rewrite42.0ms (1.3%)

Memory
-22.1MiB live, 125.1MiB allocated; 16ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0614
0914
12314
08714
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
3 → 25
Calls
Call 1
Inputs
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
(/.f64 g (*.f64 #s(literal 2 binary64) a))
(*.f64 #s(literal 2 binary64) a)
Outputs
(*.f64 (pow.f64 (/.f64 g (*.f64 a #s(literal 2 binary64))) #s(literal 1/6 binary64)) (pow.f64 (/.f64 g (*.f64 a #s(literal 2 binary64))) #s(literal 1/6 binary64)))
(pow.f64 (/.f64 g (*.f64 a #s(literal 2 binary64))) #s(literal 1/3 binary64))
(/.f64 (neg.f64 (cbrt.f64 g)) (neg.f64 (cbrt.f64 (*.f64 a #s(literal 2 binary64)))))
(/.f64 (cbrt.f64 (/.f64 g #s(literal 2 binary64))) (cbrt.f64 a))
(/.f64 (cbrt.f64 (neg.f64 g)) (cbrt.f64 (*.f64 #s(literal -2 binary64) a)))
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 a #s(literal 2 binary64))))
(cbrt.f64 (/.f64 g (*.f64 a #s(literal 2 binary64))))
(exp.f64 (*.f64 (log.f64 (/.f64 g (*.f64 a #s(literal 2 binary64)))) #s(literal 1/3 binary64)))
(/.f64 (/.f64 g a) #s(literal 2 binary64))
(/.f64 (neg.f64 (/.f64 g #s(literal 2 binary64))) (neg.f64 a))
(/.f64 (neg.f64 (neg.f64 g)) (neg.f64 (*.f64 #s(literal -2 binary64) a)))
(/.f64 (/.f64 g #s(literal 2 binary64)) a)
(/.f64 (neg.f64 g) (*.f64 #s(literal -2 binary64) a))
(/.f64 g (*.f64 a #s(literal 2 binary64)))
(neg.f64 (/.f64 (neg.f64 g) (*.f64 a #s(literal 2 binary64))))
(neg.f64 (/.f64 g (*.f64 #s(literal -2 binary64) a)))
(*.f64 a #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) a)
(/.f64 (-.f64 (*.f64 a a) (*.f64 a a)) (-.f64 a a))
(/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))
(fma.f64 #s(literal 1 binary64) a (*.f64 #s(literal 1 binary64) a))
(fma.f64 a #s(literal 1 binary64) (*.f64 a #s(literal 1 binary64)))
(+.f64 (*.f64 #s(literal 1 binary64) a) (*.f64 #s(literal 1 binary64) a))
(+.f64 (*.f64 a #s(literal 1 binary64)) (*.f64 a #s(literal 1 binary64)))
(+.f64 a a)

eval3.0ms (0.1%)

Memory
25.2MiB live, 25.2MiB allocated; 0ms collecting garbage
Compiler

Compiled 267 to 106 computations (60.3% saved)

prune6.0ms (0.2%)

Memory
-23.4MiB live, 24.1MiB allocated; 1ms collecting garbage
Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New22729
Fresh000
Picked101
Done000
Total23730
Accuracy
99.6%
Counts
30 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
33.3%
(pow.f64 (/.f64 g (*.f64 a #s(literal 2 binary64))) #s(literal 1/3 binary64))
98.7%
(/.f64 (cbrt.f64 (/.f64 g #s(literal 2 binary64))) (cbrt.f64 a))
98.7%
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 a #s(literal 2 binary64))))
31.3%
(cbrt.f64 (/.f64 g (/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))))
76.7%
(cbrt.f64 (/.f64 g (+.f64 a a)))
76.7%
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a))))
76.7%
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a))))
Compiler

Compiled 148 to 118 computations (20.3% saved)

simplify157.0ms (4.9%)

Memory
-10.0MiB live, 421.1MiB allocated; 52ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
cost-diff0
(cbrt.f64 (/.f64 g a))
cost-diff0
(cbrt.f64 #s(literal 1/2 binary64))
cost-diff0
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a)))
cost-diff0
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a))))
cost-diff0
(*.f64 a #s(literal 2 binary64))
cost-diff0
(/.f64 g (*.f64 a #s(literal 2 binary64)))
cost-diffInfinite
(pow.f64 (/.f64 g (*.f64 a #s(literal 2 binary64))) #s(literal 1/3 binary64))
cost-diff0
(/.f64 #s(literal 1/2 binary64) a)
cost-diff0
(*.f64 g (/.f64 #s(literal 1/2 binary64) a))
cost-diff0
#s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a)))
cost-diff0
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a))))
cost-diff0
(+.f64 a a)
cost-diff0
(/.f64 g (+.f64 a a))
cost-diff0
(cbrt.f64 (/.f64 g (+.f64 a a)))
cost-diff0
(*.f64 a #s(literal 2 binary64))
cost-diff0
(cbrt.f64 (*.f64 a #s(literal 2 binary64)))
cost-diff0
(cbrt.f64 g)
cost-diff0
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 a #s(literal 2 binary64))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026121
042120
154120
263120
384120
4137120
5431120
62458120
08184120
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 a #s(literal 2 binary64))))
(cbrt.f64 g)
g
(cbrt.f64 (*.f64 a #s(literal 2 binary64)))
(*.f64 a #s(literal 2 binary64))
a
#s(literal 2 binary64)
(cbrt.f64 (/.f64 g (+.f64 a a)))
(/.f64 g (+.f64 a a))
g
(+.f64 a a)
a
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a))))
#s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a)))
(*.f64 g (/.f64 #s(literal 1/2 binary64) a))
g
(/.f64 #s(literal 1/2 binary64) a)
#s(literal 1/2 binary64)
a
(pow.f64 (/.f64 g (*.f64 a #s(literal 2 binary64))) #s(literal 1/3 binary64))
(/.f64 g (*.f64 a #s(literal 2 binary64)))
g
(*.f64 a #s(literal 2 binary64))
a
#s(literal 2 binary64)
#s(literal 1/3 binary64)
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a))))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a)))
(cbrt.f64 #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(cbrt.f64 (/.f64 g a))
(/.f64 g a)
g
a
Outputs
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 a #s(literal 2 binary64))))
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 #s(literal 2 binary64) a)))
(cbrt.f64 g)
g
(cbrt.f64 (*.f64 a #s(literal 2 binary64)))
(cbrt.f64 (*.f64 #s(literal 2 binary64) a))
(*.f64 a #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) a)
a
#s(literal 2 binary64)
(cbrt.f64 (/.f64 g (+.f64 a a)))
(cbrt.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) a) g))
(/.f64 g (+.f64 a a))
(*.f64 (/.f64 #s(literal 1/2 binary64) a) g)
g
(+.f64 a a)
(*.f64 #s(literal 2 binary64) a)
a
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a))))
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 (/.f64 #s(literal 1/2 binary64) a) g)))
#s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a)))
#s(approx (/ g (* 2 a)) (*.f64 (/.f64 #s(literal 1/2 binary64) a) g))
(*.f64 g (/.f64 #s(literal 1/2 binary64) a))
(*.f64 (/.f64 #s(literal 1/2 binary64) a) g)
g
(/.f64 #s(literal 1/2 binary64) a)
#s(literal 1/2 binary64)
a
(pow.f64 (/.f64 g (*.f64 a #s(literal 2 binary64))) #s(literal 1/3 binary64))
(cbrt.f64 (*.f64 (/.f64 #s(literal 1/2 binary64) a) g))
(/.f64 g (*.f64 a #s(literal 2 binary64)))
(*.f64 (/.f64 #s(literal 1/2 binary64) a) g)
g
(*.f64 a #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) a)
a
#s(literal 2 binary64)
#s(literal 1/3 binary64)
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a))))
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 1/2 binary64))))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a)))
(*.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 1/2 binary64)))
(cbrt.f64 #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(cbrt.f64 (/.f64 g a))
(/.f64 g a)
g
a

localize113.0ms (3.5%)

Memory
-10.0MiB live, 572.1MiB allocated; 54ms collecting garbage
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(cbrt.f64 #s(literal 1/2 binary64))
accuracy0.0
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a))))
accuracy0.4544525390737681
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a)))
accuracy14.874374317060191
(cbrt.f64 (/.f64 g a))
accuracy0.0
(/.f64 g (*.f64 a #s(literal 2 binary64)))
accuracy0.0
(*.f64 a #s(literal 2 binary64))
accuracy42.52973488824753
(pow.f64 (/.f64 g (*.f64 a #s(literal 2 binary64))) #s(literal 1/3 binary64))
accuracy0.0
(/.f64 #s(literal 1/2 binary64) a)
accuracy0.0
#s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a)))
accuracy0.24609375
(*.f64 g (/.f64 #s(literal 1/2 binary64) a))
accuracy14.939461412936401
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a))))
accuracy0.0
(/.f64 g (+.f64 a a))
accuracy0.0
(+.f64 a a)
accuracy14.939461412936401
(cbrt.f64 (/.f64 g (+.f64 a a)))
accuracy0.0
(*.f64 a #s(literal 2 binary64))
accuracy0.3561325195368841
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 a #s(literal 2 binary64))))
accuracy0.5840989258319566
(cbrt.f64 g)
accuracy0.5967751465266304
(cbrt.f64 (*.f64 a #s(literal 2 binary64)))
Samples
95.0ms256×0valid
Compiler

Compiled 103 to 25 computations (75.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 47.0ms
const: 15.0ms (31.6% of total)
ival-div: 11.0ms (23.2% of total)
ival-cbrt: 11.0ms (23.2% of total)
ival-mult: 7.0ms (14.7% of total)
ival-add: 2.0ms (4.2% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series70.0ms (2.2%)

Memory
21.5MiB live, 257.7MiB allocated; 11ms collecting garbage
Counts
17 → 18
Calls
Call 1
Inputs
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 a #s(literal 2 binary64))))
(cbrt.f64 g)
(cbrt.f64 (*.f64 a #s(literal 2 binary64)))
(*.f64 a #s(literal 2 binary64))
(cbrt.f64 (/.f64 g (+.f64 a a)))
(/.f64 g (+.f64 a a))
(+.f64 a a)
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a))))
#s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a)))
(*.f64 g (/.f64 #s(literal 1/2 binary64) a))
(/.f64 #s(literal 1/2 binary64) a)
(pow.f64 (/.f64 g (*.f64 a #s(literal 2 binary64))) #s(literal 1/3 binary64))
(/.f64 g (*.f64 a #s(literal 2 binary64)))
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a))))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a)))
(cbrt.f64 #s(literal 1/2 binary64))
(cbrt.f64 (/.f64 g a))
Outputs
(* (cbrt (/ g a)) (/ 1 (cbrt 2)))
(cbrt g)
(* (cbrt (/ g a)) (cbrt 1/2))
(* 1/2 (/ g a))
(cbrt (/ g a))
(* -1 (* (cbrt (/ g a)) (/ (cbrt -1) (cbrt 2))))
(* -1 (* (cbrt g) (cbrt -1)))
(* -1 (* (cbrt (/ g a)) (cbrt -1/2)))
(* -1 (* (cbrt (/ g a)) (* (cbrt -1) (cbrt 1/2))))
(* -1 (* (cbrt (/ g a)) (cbrt -1)))
(* (cbrt a) (cbrt 2))
(* 2 a)
(/ 1/2 a)
(* (cbrt (/ g a)) (/ (cbrt -1) (cbrt -2)))
(* -1 (* (cbrt a) (cbrt -2)))
(* (cbrt (/ g a)) (* (cbrt -1) (cbrt -1/2)))
(* (cbrt (/ g a)) (* (pow (cbrt -1) 2) (cbrt 1/2)))
(* (cbrt (/ g a)) (pow (cbrt -1) 2))
Calls

6 calls:

TimeVariablePointExpression
17.0ms
a
@inf
((/ (cbrt g) (cbrt (* a 2))) (cbrt g) (cbrt (* a 2)) (* a 2) (cbrt (/ g (+ a a))) (/ g (+ a a)) (+ a a) (cbrt (/ g (* 2 a))) (/ g (* 2 a)) (* g (/ 1/2 a)) (/ 1/2 a) (pow (/ g (* a 2)) 1/3) (/ g (* a 2)) (cbrt (/ g (* 2 a))) (* (cbrt 1/2) (cbrt (/ g a))) (cbrt 1/2) (cbrt (/ g a)))
12.0ms
a
@-inf
((/ (cbrt g) (cbrt (* a 2))) (cbrt g) (cbrt (* a 2)) (* a 2) (cbrt (/ g (+ a a))) (/ g (+ a a)) (+ a a) (cbrt (/ g (* 2 a))) (/ g (* 2 a)) (* g (/ 1/2 a)) (/ 1/2 a) (pow (/ g (* a 2)) 1/3) (/ g (* a 2)) (cbrt (/ g (* 2 a))) (* (cbrt 1/2) (cbrt (/ g a))) (cbrt 1/2) (cbrt (/ g a)))
12.0ms
g
@0
((/ (cbrt g) (cbrt (* a 2))) (cbrt g) (cbrt (* a 2)) (* a 2) (cbrt (/ g (+ a a))) (/ g (+ a a)) (+ a a) (cbrt (/ g (* 2 a))) (/ g (* 2 a)) (* g (/ 1/2 a)) (/ 1/2 a) (pow (/ g (* a 2)) 1/3) (/ g (* a 2)) (cbrt (/ g (* 2 a))) (* (cbrt 1/2) (cbrt (/ g a))) (cbrt 1/2) (cbrt (/ g a)))
11.0ms
g
@-inf
((/ (cbrt g) (cbrt (* a 2))) (cbrt g) (cbrt (* a 2)) (* a 2) (cbrt (/ g (+ a a))) (/ g (+ a a)) (+ a a) (cbrt (/ g (* 2 a))) (/ g (* 2 a)) (* g (/ 1/2 a)) (/ 1/2 a) (pow (/ g (* a 2)) 1/3) (/ g (* a 2)) (cbrt (/ g (* 2 a))) (* (cbrt 1/2) (cbrt (/ g a))) (cbrt 1/2) (cbrt (/ g a)))
9.0ms
a
@0
((/ (cbrt g) (cbrt (* a 2))) (cbrt g) (cbrt (* a 2)) (* a 2) (cbrt (/ g (+ a a))) (/ g (+ a a)) (+ a a) (cbrt (/ g (* 2 a))) (/ g (* 2 a)) (* g (/ 1/2 a)) (/ 1/2 a) (pow (/ g (* a 2)) 1/3) (/ g (* a 2)) (cbrt (/ g (* 2 a))) (* (cbrt 1/2) (cbrt (/ g a))) (cbrt 1/2) (cbrt (/ g a)))

simplify97.0ms (3%)

Memory
14.0MiB live, 155.8MiB allocated; 8ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
046103
19999
220699
343599
4157699
5556697
0869297
Stop Event
iter limit
node limit
Counts
18 → 18
Calls
Call 1
Inputs
(* (cbrt (/ g a)) (/ 1 (cbrt 2)))
(cbrt g)
(* (cbrt (/ g a)) (cbrt 1/2))
(* 1/2 (/ g a))
(cbrt (/ g a))
(* -1 (* (cbrt (/ g a)) (/ (cbrt -1) (cbrt 2))))
(* -1 (* (cbrt g) (cbrt -1)))
(* -1 (* (cbrt (/ g a)) (cbrt -1/2)))
(* -1 (* (cbrt (/ g a)) (* (cbrt -1) (cbrt 1/2))))
(* -1 (* (cbrt (/ g a)) (cbrt -1)))
(* (cbrt a) (cbrt 2))
(* 2 a)
(/ 1/2 a)
(* (cbrt (/ g a)) (/ (cbrt -1) (cbrt -2)))
(* -1 (* (cbrt a) (cbrt -2)))
(* (cbrt (/ g a)) (* (cbrt -1) (cbrt -1/2)))
(* (cbrt (/ g a)) (* (pow (cbrt -1) 2) (cbrt 1/2)))
(* (cbrt (/ g a)) (pow (cbrt -1) 2))
Outputs
(* (cbrt (/ g a)) (/ 1 (cbrt 2)))
(/.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 2 binary64)))
(cbrt g)
(cbrt.f64 g)
(* (cbrt (/ g a)) (cbrt 1/2))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a)))
(* 1/2 (/ g a))
(*.f64 #s(literal 1/2 binary64) (/.f64 g a))
(cbrt (/ g a))
(cbrt.f64 (/.f64 g a))
(* -1 (* (cbrt (/ g a)) (/ (cbrt -1) (cbrt 2))))
(/.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 2 binary64)))
(* -1 (* (cbrt g) (cbrt -1)))
(cbrt.f64 g)
(* -1 (* (cbrt (/ g a)) (cbrt -1/2)))
(*.f64 (neg.f64 (cbrt.f64 #s(literal -1/2 binary64))) (cbrt.f64 (/.f64 g a)))
(* -1 (* (cbrt (/ g a)) (* (cbrt -1) (cbrt 1/2))))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a)))
(* -1 (* (cbrt (/ g a)) (cbrt -1)))
(cbrt.f64 (/.f64 g a))
(* (cbrt a) (cbrt 2))
(*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64)))
(* 2 a)
(*.f64 #s(literal 2 binary64) a)
(/ 1/2 a)
(/.f64 #s(literal 1/2 binary64) a)
(* (cbrt (/ g a)) (/ (cbrt -1) (cbrt -2)))
(neg.f64 (/.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal -2 binary64))))
(* -1 (* (cbrt a) (cbrt -2)))
(*.f64 (neg.f64 (cbrt.f64 #s(literal -2 binary64))) (cbrt.f64 a))
(* (cbrt (/ g a)) (* (cbrt -1) (cbrt -1/2)))
(*.f64 (neg.f64 (cbrt.f64 #s(literal -1/2 binary64))) (cbrt.f64 (/.f64 g a)))
(* (cbrt (/ g a)) (* (pow (cbrt -1) 2) (cbrt 1/2)))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a)))
(* (cbrt (/ g a)) (pow (cbrt -1) 2))
(cbrt.f64 (/.f64 g a))

rewrite21.0ms (0.7%)

Memory
4.5MiB live, 51.6MiB allocated; 2ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026100
04296
010496
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
17 → 58
Calls
Call 1
Inputs
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 a #s(literal 2 binary64))))
(cbrt.f64 g)
(cbrt.f64 (*.f64 a #s(literal 2 binary64)))
(*.f64 a #s(literal 2 binary64))
(cbrt.f64 (/.f64 g (+.f64 a a)))
(/.f64 g (+.f64 a a))
(+.f64 a a)
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a))))
#s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a)))
(*.f64 g (/.f64 #s(literal 1/2 binary64) a))
(/.f64 #s(literal 1/2 binary64) a)
(pow.f64 (/.f64 g (*.f64 a #s(literal 2 binary64))) #s(literal 1/3 binary64))
(/.f64 g (*.f64 a #s(literal 2 binary64)))
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a))))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a)))
(cbrt.f64 #s(literal 1/2 binary64))
(cbrt.f64 (/.f64 g a))
Outputs
(*.f64 (pow.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)) #s(literal 1/6 binary64)) (pow.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)) #s(literal 1/6 binary64)))
(pow.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)) #s(literal 1/3 binary64))
(/.f64 (neg.f64 (cbrt.f64 g)) (neg.f64 (cbrt.f64 (*.f64 #s(literal 2 binary64) a))))
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 #s(literal 2 binary64) a)))
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
(exp.f64 (*.f64 (log.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a))) #s(literal 1/3 binary64)))
(pow.f64 g #s(literal 1/3 binary64))
(cbrt.f64 g)
(*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64)))
(pow.f64 (*.f64 #s(literal 2 binary64) a) #s(literal 1/3 binary64))
(cbrt.f64 (*.f64 #s(literal 2 binary64) a))
(*.f64 #s(literal 2 binary64) a)
(*.f64 a #s(literal 2 binary64))
(/.f64 (-.f64 (*.f64 a a) (*.f64 a a)) (-.f64 a a))
(/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))
(+.f64 a a)
(*.f64 (pow.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)) #s(literal 1/6 binary64)) (pow.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)) #s(literal 1/6 binary64)))
(pow.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)) #s(literal 1/3 binary64))
(/.f64 (neg.f64 (cbrt.f64 g)) (neg.f64 (cbrt.f64 (*.f64 #s(literal 2 binary64) a))))
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 #s(literal 2 binary64) a)))
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
(exp.f64 (*.f64 (log.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a))) #s(literal 1/3 binary64)))
(/.f64 (/.f64 g #s(literal 2 binary64)) a)
(/.f64 (neg.f64 g) (neg.f64 (*.f64 #s(literal 2 binary64) a)))
(/.f64 (/.f64 g a) #s(literal 2 binary64))
(/.f64 g (*.f64 #s(literal 2 binary64) a))
(*.f64 #s(literal 2 binary64) a)
(*.f64 a #s(literal 2 binary64))
(/.f64 (-.f64 (*.f64 a a) (*.f64 a a)) (-.f64 a a))
(/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))
(+.f64 a a)
(pow.f64 #s(approx (/ g (* 2 a)) (*.f64 (/.f64 #s(literal 1/2 binary64) a) g)) #s(literal 1/3 binary64))
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 (/.f64 #s(literal 1/2 binary64) a) g)))
#s(approx (/ g (* 2 a)) (*.f64 (/.f64 #s(literal 1/2 binary64) a) g))
(*.f64 (/.f64 #s(literal 1/2 binary64) a) g)
(*.f64 g (/.f64 #s(literal 1/2 binary64) a))
(/.f64 (*.f64 g #s(literal 1/2 binary64)) a)
(/.f64 #s(literal -1/2 binary64) (neg.f64 a))
(/.f64 #s(literal 1/2 binary64) a)
(*.f64 (pow.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)) #s(literal 1/6 binary64)) (pow.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)) #s(literal 1/6 binary64)))
(pow.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)) #s(literal 1/3 binary64))
(/.f64 (neg.f64 (cbrt.f64 g)) (neg.f64 (cbrt.f64 (*.f64 #s(literal 2 binary64) a))))
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 #s(literal 2 binary64) a)))
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
(exp.f64 (*.f64 (log.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a))) #s(literal 1/3 binary64)))
(/.f64 (/.f64 g #s(literal 2 binary64)) a)
(/.f64 (neg.f64 g) (neg.f64 (*.f64 #s(literal 2 binary64) a)))
(/.f64 (/.f64 g a) #s(literal 2 binary64))
(/.f64 g (*.f64 #s(literal 2 binary64) a))
#s(approx (cbrt (/ g (* 2 a))) (cbrt.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 g a))))
(*.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 1/2 binary64)))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a)))
(cbrt.f64 (*.f64 #s(literal 1/2 binary64) (/.f64 g a)))
(pow.f64 #s(literal 1/2 binary64) #s(literal 1/3 binary64))
(cbrt.f64 #s(literal 1/2 binary64))
(pow.f64 (/.f64 g a) #s(literal 1/3 binary64))
(/.f64 (cbrt.f64 g) (cbrt.f64 a))
(cbrt.f64 (/.f64 g a))

eval7.0ms (0.2%)

Memory
-23.7MiB live, 23.5MiB allocated; 1ms collecting garbage
Compiler

Compiled 646 to 155 computations (76% saved)

prune7.0ms (0.2%)

Memory
31.2MiB live, 31.2MiB allocated; 0ms collecting garbage
Pruning

11 alts after pruning (8 fresh and 3 done)

PrunedKeptTotal
New49655
Fresh022
Picked235
Done000
Total511162
Accuracy
99.8%
Counts
62 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
33.3%
(pow.f64 (/.f64 g (+.f64 a a)) #s(literal 1/3 binary64))
98.7%
(/.f64 (cbrt.f64 (/.f64 g #s(literal 2 binary64))) (cbrt.f64 a))
98.2%
(/.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64))))
33.6%
(/.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))))
98.7%
(/.f64 (cbrt.f64 g) (cbrt.f64 (+.f64 a a)))
31.3%
(cbrt.f64 (/.f64 g (/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))))
76.7%
(cbrt.f64 (/.f64 g (+.f64 a a)))
76.7%
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a))))
76.0%
#s(approx (/ (cbrt g) (cbrt (* a 2))) (/.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 2 binary64))))
98.7%
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (/.f64 (cbrt.f64 g) (cbrt.f64 a))))
76.7%
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a))))
Compiler

Compiled 236 to 179 computations (24.2% saved)

simplify98.0ms (3.1%)

Memory
-17.1MiB live, 221.2MiB allocated; 17ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 19 expressions of interest:

NewMetricScoreProgram
cost-diff1
(fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a)))
cost-diff2
(+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64)))
cost-diff6
(-.f64 (*.f64 a a) (*.f64 a a))
cost-diff6
(/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))
cost-diff0
(cbrt.f64 a)
cost-diff0
(*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64)))
cost-diff0
(cbrt.f64 g)
cost-diff0
(/.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64))))
cost-diff0
(cbrt.f64 a)
cost-diff0
(/.f64 g #s(literal 2 binary64))
cost-diff0
(cbrt.f64 (/.f64 g #s(literal 2 binary64)))
cost-diff0
(/.f64 (cbrt.f64 (/.f64 g #s(literal 2 binary64))) (cbrt.f64 a))
cost-diff0
(+.f64 a a)
cost-diff0
(/.f64 g (+.f64 a a))
cost-diffInfinite
(pow.f64 (/.f64 g (+.f64 a a)) #s(literal 1/3 binary64))
cost-diff0
(+.f64 a a)
cost-diff0
(cbrt.f64 (+.f64 a a))
cost-diff0
(cbrt.f64 g)
cost-diff0
(/.f64 (cbrt.f64 g) (cbrt.f64 (+.f64 a a)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026171
047110
172110
2190110
31370110
08442110
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(/.f64 (cbrt.f64 g) (cbrt.f64 (+.f64 a a)))
(cbrt.f64 g)
g
(cbrt.f64 (+.f64 a a))
(+.f64 a a)
a
(pow.f64 (/.f64 g (+.f64 a a)) #s(literal 1/3 binary64))
(/.f64 g (+.f64 a a))
g
(+.f64 a a)
a
#s(literal 1/3 binary64)
(/.f64 (cbrt.f64 (/.f64 g #s(literal 2 binary64))) (cbrt.f64 a))
(cbrt.f64 (/.f64 g #s(literal 2 binary64)))
(/.f64 g #s(literal 2 binary64))
g
#s(literal 2 binary64)
(cbrt.f64 a)
a
(/.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64))))
(cbrt.f64 g)
g
(*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64)))
(cbrt.f64 a)
a
(cbrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
(/.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))))
(cbrt.f64 g)
g
(cbrt.f64 (/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a)))))
(/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))
(+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64)))
(pow.f64 a #s(literal 3 binary64))
a
#s(literal 3 binary64)
(fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a)))
(-.f64 (*.f64 a a) (*.f64 a a))
(*.f64 a a)
Outputs
(/.f64 (cbrt.f64 g) (cbrt.f64 (+.f64 a a)))
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 #s(literal 2 binary64) a)))
(cbrt.f64 g)
g
(cbrt.f64 (+.f64 a a))
(cbrt.f64 (*.f64 #s(literal 2 binary64) a))
(+.f64 a a)
(*.f64 #s(literal 2 binary64) a)
a
(pow.f64 (/.f64 g (+.f64 a a)) #s(literal 1/3 binary64))
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
(/.f64 g (+.f64 a a))
(/.f64 g (*.f64 #s(literal 2 binary64) a))
g
(+.f64 a a)
(*.f64 #s(literal 2 binary64) a)
a
#s(literal 1/3 binary64)
(/.f64 (cbrt.f64 (/.f64 g #s(literal 2 binary64))) (cbrt.f64 a))
(cbrt.f64 (/.f64 g #s(literal 2 binary64)))
(/.f64 g #s(literal 2 binary64))
g
#s(literal 2 binary64)
(cbrt.f64 a)
a
(/.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64))))
(/.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 #s(literal 2 binary64)) (cbrt.f64 a)))
(cbrt.f64 g)
g
(*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64)))
(*.f64 (cbrt.f64 #s(literal 2 binary64)) (cbrt.f64 a))
(cbrt.f64 a)
a
(cbrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
(/.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))))
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 #s(literal 2 binary64) a)))
(cbrt.f64 g)
g
(cbrt.f64 (/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a)))))
(cbrt.f64 (*.f64 #s(literal 2 binary64) a))
(/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))
(*.f64 #s(literal 2 binary64) a)
(+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64)))
(*.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 2 binary64))
(pow.f64 a #s(literal 3 binary64))
a
#s(literal 3 binary64)
(fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a)))
(*.f64 a a)
(-.f64 (*.f64 a a) (*.f64 a a))
#s(literal 0 binary64)
(*.f64 a a)

localize132.0ms (4.1%)

Memory
-3.8MiB live, 221.1MiB allocated; 43ms collecting garbage
Localize:

Found 19 expressions of interest:

NewMetricScoreProgram
accuracy0.5840989258319566
(cbrt.f64 g)
accuracy0.5967751465266304
(cbrt.f64 (/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a)))))
accuracy15.749911934132108
(-.f64 (*.f64 a a) (*.f64 a a))
accuracy41.62273474530994
(/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))
accuracy0.3561325195368841
(/.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64))))
accuracy0.5648613769897464
(cbrt.f64 a)
accuracy0.5840989258319566
(cbrt.f64 g)
accuracy1.0
(cbrt.f64 #s(literal 2 binary64))
accuracy0.0
(/.f64 g #s(literal 2 binary64))
accuracy0.37890625
(/.f64 (cbrt.f64 (/.f64 g #s(literal 2 binary64))) (cbrt.f64 a))
accuracy0.5648613769897464
(cbrt.f64 a)
accuracy0.6514626465266304
(cbrt.f64 (/.f64 g #s(literal 2 binary64)))
accuracy0.0
(/.f64 g (+.f64 a a))
accuracy0.0
(+.f64 a a)
accuracy42.52973488824753
(pow.f64 (/.f64 g (+.f64 a a)) #s(literal 1/3 binary64))
accuracy0.0
(+.f64 a a)
accuracy0.3561325195368841
(/.f64 (cbrt.f64 g) (cbrt.f64 (+.f64 a a)))
accuracy0.5840989258319566
(cbrt.f64 g)
accuracy0.5967751465266304
(cbrt.f64 (+.f64 a a))
Samples
86.0ms202×1valid
19.0ms54×0valid
Compiler

Compiled 177 to 28 computations (84.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 66.0ms
ival-div: 20.0ms (30.2% of total)
ival-cbrt: 15.0ms (22.6% of total)
adjust: 11.0ms (16.6% of total)
ival-mult: 5.0ms (7.5% of total)
ival-pow: 5.0ms (7.5% of total)
ival-add: 5.0ms (7.5% of total)
const: 4.0ms (6% of total)
ival-sub: 2.0ms (3% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series63.0ms (2%)

Memory
54.6MiB live, 135.8MiB allocated; 18ms collecting garbage
Counts
18 → 21
Calls
Call 1
Inputs
(/.f64 (cbrt.f64 g) (cbrt.f64 (+.f64 a a)))
(cbrt.f64 g)
(cbrt.f64 (+.f64 a a))
(+.f64 a a)
(pow.f64 (/.f64 g (+.f64 a a)) #s(literal 1/3 binary64))
(/.f64 g (+.f64 a a))
(/.f64 (cbrt.f64 (/.f64 g #s(literal 2 binary64))) (cbrt.f64 a))
(cbrt.f64 (/.f64 g #s(literal 2 binary64)))
(/.f64 g #s(literal 2 binary64))
(cbrt.f64 a)
(/.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64))))
(*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64)))
(/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))
(-.f64 (*.f64 a a) (*.f64 a a))
(+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64)))
(fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a)))
(cbrt.f64 #s(literal 2 binary64))
(cbrt.f64 (/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a)))))
Outputs
(* (cbrt (/ g a)) (/ 1 (cbrt 2)))
(cbrt g)
(* (cbrt (/ g a)) (cbrt 1/2))
(* 1/2 (/ g a))
(* (cbrt g) (cbrt 1/2))
(* 1/2 g)
(* -1 (* (cbrt (/ g a)) (/ (cbrt -1) (cbrt 2))))
(* -1 (* (cbrt g) (cbrt -1)))
(* -1 (* (cbrt (/ g a)) (cbrt -1/2)))
(* -1 (* (cbrt g) (cbrt -1/2)))
(* (cbrt a) (cbrt 2))
(* 2 a)
(cbrt a)
0
(* 2 (pow a 3))
(pow a 2)
(* (cbrt (/ g a)) (/ (cbrt -1) (cbrt -2)))
(* -1 (* (cbrt a) (cbrt -2)))
(* (cbrt (/ g a)) (* (cbrt -1) (cbrt -1/2)))
(* -1 (* (cbrt a) (cbrt -1)))
(* -1 (* (cbrt a) (* (cbrt -1) (cbrt 2))))
Calls

6 calls:

TimeVariablePointExpression
18.0ms
a
@inf
((/ (cbrt g) (cbrt (+ a a))) (cbrt g) (cbrt (+ a a)) (+ a a) (pow (/ g (+ a a)) 1/3) (/ g (+ a a)) (/ (cbrt (/ g 2)) (cbrt a)) (cbrt (/ g 2)) (/ g 2) (cbrt a) (/ (cbrt g) (* (cbrt a) (cbrt 2))) (* (cbrt a) (cbrt 2)) (/ (+ (pow a 3) (pow a 3)) (+ (* a a) (- (* a a) (* a a)))) (- (* a a) (* a a)) (+ (pow a 3) (pow a 3)) (+ (* a a) (- (* a a) (* a a))) (cbrt 2) (cbrt (/ (+ (pow a 3) (pow a 3)) (+ (* a a) (- (* a a) (* a a))))))
12.0ms
a
@-inf
((/ (cbrt g) (cbrt (+ a a))) (cbrt g) (cbrt (+ a a)) (+ a a) (pow (/ g (+ a a)) 1/3) (/ g (+ a a)) (/ (cbrt (/ g 2)) (cbrt a)) (cbrt (/ g 2)) (/ g 2) (cbrt a) (/ (cbrt g) (* (cbrt a) (cbrt 2))) (* (cbrt a) (cbrt 2)) (/ (+ (pow a 3) (pow a 3)) (+ (* a a) (- (* a a) (* a a)))) (- (* a a) (* a a)) (+ (pow a 3) (pow a 3)) (+ (* a a) (- (* a a) (* a a))) (cbrt 2) (cbrt (/ (+ (pow a 3) (pow a 3)) (+ (* a a) (- (* a a) (* a a))))))
10.0ms
g
@inf
((/ (cbrt g) (cbrt (+ a a))) (cbrt g) (cbrt (+ a a)) (+ a a) (pow (/ g (+ a a)) 1/3) (/ g (+ a a)) (/ (cbrt (/ g 2)) (cbrt a)) (cbrt (/ g 2)) (/ g 2) (cbrt a) (/ (cbrt g) (* (cbrt a) (cbrt 2))) (* (cbrt a) (cbrt 2)) (/ (+ (pow a 3) (pow a 3)) (+ (* a a) (- (* a a) (* a a)))) (- (* a a) (* a a)) (+ (pow a 3) (pow a 3)) (+ (* a a) (- (* a a) (* a a))) (cbrt 2) (cbrt (/ (+ (pow a 3) (pow a 3)) (+ (* a a) (- (* a a) (* a a))))))
8.0ms
g
@-inf
((/ (cbrt g) (cbrt (+ a a))) (cbrt g) (cbrt (+ a a)) (+ a a) (pow (/ g (+ a a)) 1/3) (/ g (+ a a)) (/ (cbrt (/ g 2)) (cbrt a)) (cbrt (/ g 2)) (/ g 2) (cbrt a) (/ (cbrt g) (* (cbrt a) (cbrt 2))) (* (cbrt a) (cbrt 2)) (/ (+ (pow a 3) (pow a 3)) (+ (* a a) (- (* a a) (* a a)))) (- (* a a) (* a a)) (+ (pow a 3) (pow a 3)) (+ (* a a) (- (* a a) (* a a))) (cbrt 2) (cbrt (/ (+ (pow a 3) (pow a 3)) (+ (* a a) (- (* a a) (* a a))))))
7.0ms
a
@0
((/ (cbrt g) (cbrt (+ a a))) (cbrt g) (cbrt (+ a a)) (+ a a) (pow (/ g (+ a a)) 1/3) (/ g (+ a a)) (/ (cbrt (/ g 2)) (cbrt a)) (cbrt (/ g 2)) (/ g 2) (cbrt a) (/ (cbrt g) (* (cbrt a) (cbrt 2))) (* (cbrt a) (cbrt 2)) (/ (+ (pow a 3) (pow a 3)) (+ (* a a) (- (* a a) (* a a)))) (- (* a a) (* a a)) (+ (pow a 3) (pow a 3)) (+ (* a a) (- (* a a) (* a a))) (cbrt 2) (cbrt (/ (+ (pow a 3) (pow a 3)) (+ (* a a) (- (* a a) (* a a))))))

simplify184.0ms (5.8%)

Memory
5.4MiB live, 231.0MiB allocated; 81ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
050122
1108120
2241120
3495120
41674120
57102120
08247120
Stop Event
iter limit
node limit
Counts
21 → 21
Calls
Call 1
Inputs
(* (cbrt (/ g a)) (/ 1 (cbrt 2)))
(cbrt g)
(* (cbrt (/ g a)) (cbrt 1/2))
(* 1/2 (/ g a))
(* (cbrt g) (cbrt 1/2))
(* 1/2 g)
(* -1 (* (cbrt (/ g a)) (/ (cbrt -1) (cbrt 2))))
(* -1 (* (cbrt g) (cbrt -1)))
(* -1 (* (cbrt (/ g a)) (cbrt -1/2)))
(* -1 (* (cbrt g) (cbrt -1/2)))
(* (cbrt a) (cbrt 2))
(* 2 a)
(cbrt a)
0
(* 2 (pow a 3))
(pow a 2)
(* (cbrt (/ g a)) (/ (cbrt -1) (cbrt -2)))
(* -1 (* (cbrt a) (cbrt -2)))
(* (cbrt (/ g a)) (* (cbrt -1) (cbrt -1/2)))
(* -1 (* (cbrt a) (cbrt -1)))
(* -1 (* (cbrt a) (* (cbrt -1) (cbrt 2))))
Outputs
(* (cbrt (/ g a)) (/ 1 (cbrt 2)))
(/.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 2 binary64)))
(cbrt g)
(cbrt.f64 g)
(* (cbrt (/ g a)) (cbrt 1/2))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a)))
(* 1/2 (/ g a))
(*.f64 #s(literal 1/2 binary64) (/.f64 g a))
(* (cbrt g) (cbrt 1/2))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))
(* 1/2 g)
(*.f64 #s(literal 1/2 binary64) g)
(* -1 (* (cbrt (/ g a)) (/ (cbrt -1) (cbrt 2))))
(*.f64 (/.f64 (cbrt.f64 (/.f64 g a)) (neg.f64 (cbrt.f64 #s(literal 2 binary64)))) (cbrt.f64 #s(literal -1 binary64)))
(* -1 (* (cbrt g) (cbrt -1)))
(*.f64 (neg.f64 (cbrt.f64 #s(literal -1 binary64))) (cbrt.f64 g))
(* -1 (* (cbrt (/ g a)) (cbrt -1/2)))
(*.f64 (neg.f64 (cbrt.f64 #s(literal -1/2 binary64))) (cbrt.f64 (/.f64 g a)))
(* -1 (* (cbrt g) (cbrt -1/2)))
(*.f64 (neg.f64 (cbrt.f64 #s(literal -1/2 binary64))) (cbrt.f64 g))
(* (cbrt a) (cbrt 2))
(*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64)))
(* 2 a)
(*.f64 #s(literal 2 binary64) a)
(cbrt a)
(cbrt.f64 a)
0
#s(literal 0 binary64)
(* 2 (pow a 3))
(*.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 2 binary64))
(pow a 2)
(*.f64 a a)
(* (cbrt (/ g a)) (/ (cbrt -1) (cbrt -2)))
(*.f64 (/.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal -2 binary64))) (cbrt.f64 #s(literal -1 binary64)))
(* -1 (* (cbrt a) (cbrt -2)))
(*.f64 (neg.f64 (cbrt.f64 #s(literal -2 binary64))) (cbrt.f64 a))
(* (cbrt (/ g a)) (* (cbrt -1) (cbrt -1/2)))
(*.f64 (*.f64 (cbrt.f64 #s(literal -1/2 binary64)) (cbrt.f64 #s(literal -1 binary64))) (cbrt.f64 (/.f64 g a)))
(* -1 (* (cbrt a) (cbrt -1)))
(*.f64 (neg.f64 (cbrt.f64 a)) (cbrt.f64 #s(literal -1 binary64)))
(* -1 (* (cbrt a) (* (cbrt -1) (cbrt 2))))
(*.f64 (*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64))) (neg.f64 (cbrt.f64 #s(literal -1 binary64))))

rewrite95.0ms (3%)

Memory
-7.2MiB live, 93.9MiB allocated; 81ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025120
04571
014771
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
18 → 69
Calls
Call 1
Inputs
(/.f64 (cbrt.f64 g) (cbrt.f64 (+.f64 a a)))
(cbrt.f64 g)
(cbrt.f64 (+.f64 a a))
(+.f64 a a)
(pow.f64 (/.f64 g (+.f64 a a)) #s(literal 1/3 binary64))
(/.f64 g (+.f64 a a))
(/.f64 (cbrt.f64 (/.f64 g #s(literal 2 binary64))) (cbrt.f64 a))
(cbrt.f64 (/.f64 g #s(literal 2 binary64)))
(/.f64 g #s(literal 2 binary64))
(cbrt.f64 a)
(/.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64))))
(*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64)))
(/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))
(-.f64 (*.f64 a a) (*.f64 a a))
(+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64)))
(fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a)))
(cbrt.f64 #s(literal 2 binary64))
(cbrt.f64 (/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a)))))
Outputs
(*.f64 (pow.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)) #s(literal 1/6 binary64)) (pow.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)) #s(literal 1/6 binary64)))
(pow.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)) #s(literal 1/3 binary64))
(/.f64 (neg.f64 (cbrt.f64 g)) (neg.f64 (cbrt.f64 (*.f64 #s(literal 2 binary64) a))))
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 #s(literal 2 binary64) a)))
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
(exp.f64 (*.f64 (log.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a))) #s(literal 1/3 binary64)))
(pow.f64 g #s(literal 1/3 binary64))
(cbrt.f64 g)
(pow.f64 (*.f64 #s(literal 2 binary64) a) #s(literal 1/3 binary64))
(/.f64 (cbrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64)))) (cbrt.f64 (fma.f64 a a #s(literal 0 binary64))))
(cbrt.f64 (*.f64 #s(literal 2 binary64) a))
(*.f64 #s(literal 2 binary64) a)
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64)))) (neg.f64 (fma.f64 a a #s(literal 0 binary64))))
(/.f64 #s(literal 0 binary64) (-.f64 a a))
(/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))
(+.f64 (/.f64 (pow.f64 a #s(literal 3 binary64)) (fma.f64 a a #s(literal 0 binary64))) (/.f64 (pow.f64 a #s(literal 3 binary64)) (fma.f64 a a #s(literal 0 binary64))))
(+.f64 a a)
(*.f64 (pow.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)) #s(literal 1/6 binary64)) (pow.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)) #s(literal 1/6 binary64)))
(pow.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)) #s(literal 1/3 binary64))
(/.f64 (neg.f64 (cbrt.f64 g)) (neg.f64 (cbrt.f64 (*.f64 #s(literal 2 binary64) a))))
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 #s(literal 2 binary64) a)))
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
(exp.f64 (*.f64 (log.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a))) #s(literal 1/3 binary64)))
(/.f64 (neg.f64 g) (neg.f64 (*.f64 #s(literal 2 binary64) a)))
(/.f64 g (*.f64 #s(literal 2 binary64) a))
(/.f64 (neg.f64 (cbrt.f64 (/.f64 g #s(literal 2 binary64)))) (neg.f64 (cbrt.f64 a)))
(/.f64 (cbrt.f64 (/.f64 g #s(literal 2 binary64))) (cbrt.f64 a))
(cbrt.f64 (/.f64 (/.f64 g #s(literal 2 binary64)) a))
(pow.f64 (/.f64 g #s(literal 2 binary64)) #s(literal 1/3 binary64))
(/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64)))
(cbrt.f64 (/.f64 g #s(literal 2 binary64)))
(/.f64 (neg.f64 g) #s(literal -2 binary64))
(/.f64 g #s(literal 2 binary64))
(pow.f64 a #s(literal 1/3 binary64))
(cbrt.f64 a)
(/.f64 (/.f64 (cbrt.f64 g) (cbrt.f64 a)) (cbrt.f64 #s(literal 2 binary64)))
(/.f64 (neg.f64 (cbrt.f64 g)) (neg.f64 (cbrt.f64 (*.f64 a #s(literal 2 binary64)))))
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 a #s(literal 2 binary64))))
(*.f64 (cbrt.f64 #s(literal 2 binary64)) (cbrt.f64 a))
(*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64)))
(cbrt.f64 (*.f64 a #s(literal 2 binary64)))
(*.f64 #s(literal 2 binary64) a)
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64)))) (neg.f64 (fma.f64 a a #s(literal 0 binary64))))
(/.f64 #s(literal 0 binary64) (-.f64 a a))
(/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))
(+.f64 (/.f64 (pow.f64 a #s(literal 3 binary64)) (fma.f64 a a #s(literal 0 binary64))) (/.f64 (pow.f64 a #s(literal 3 binary64)) (fma.f64 a a #s(literal 0 binary64))))
(+.f64 a a)
#s(literal 0 binary64)
(*.f64 (fma.f64 a a #s(literal 0 binary64)) (*.f64 #s(literal 2 binary64) a))
(*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64)))
(/.f64 (-.f64 (*.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (*.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64)))) (-.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))))
(/.f64 (+.f64 (pow.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 3 binary64)) (pow.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 3 binary64))) (fma.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64)) (-.f64 (*.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (*.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))))))
(fma.f64 (pow.f64 a #s(literal 3/2 binary64)) (pow.f64 a #s(literal 3/2 binary64)) (pow.f64 a #s(literal 3 binary64)))
(fma.f64 (*.f64 a a) a (pow.f64 a #s(literal 3 binary64)))
(fma.f64 a (*.f64 a a) (pow.f64 a #s(literal 3 binary64)))
(+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64)))
(/.f64 (-.f64 (*.f64 (*.f64 a a) (*.f64 a a)) #s(literal 0 binary64)) (-.f64 (*.f64 a a) #s(literal 0 binary64)))
(/.f64 (+.f64 (pow.f64 (*.f64 a a) #s(literal 3 binary64)) #s(literal 0 binary64)) (fma.f64 (*.f64 a a) (*.f64 a a) (-.f64 #s(literal 0 binary64) (*.f64 (*.f64 a a) #s(literal 0 binary64)))))
(fma.f64 (neg.f64 a) (neg.f64 a) #s(literal 0 binary64))
(fma.f64 (fabs.f64 a) (fabs.f64 a) #s(literal 0 binary64))
(fma.f64 a a #s(literal 0 binary64))
(-.f64 (fma.f64 a a (*.f64 a a)) (*.f64 a a))
(+.f64 #s(literal 0 binary64) (*.f64 a a))
(+.f64 (*.f64 a a) #s(literal 0 binary64))
(pow.f64 #s(literal 2 binary64) #s(literal 1/3 binary64))
(cbrt.f64 #s(literal 2 binary64))
(pow.f64 (*.f64 #s(literal 2 binary64) a) #s(literal 1/3 binary64))
(/.f64 (cbrt.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64)))) (cbrt.f64 (fma.f64 a a #s(literal 0 binary64))))
(cbrt.f64 (*.f64 #s(literal 2 binary64) a))

eval18.0ms (0.5%)

Memory
-22.4MiB live, 22.0MiB allocated; 10ms collecting garbage
Compiler

Compiled 1 340 to 293 computations (78.1% saved)

prune8.0ms (0.3%)

Memory
20.6MiB live, 20.6MiB allocated; 0ms collecting garbage
Pruning

15 alts after pruning (9 fresh and 6 done)

PrunedKeptTotal
New87794
Fresh123
Picked235
Done033
Total9015105
Accuracy
99.9%
Counts
105 → 15
Alt Table
Click to see full alt table
StatusAccuracyProgram
33.3%
(pow.f64 (/.f64 g (+.f64 a a)) #s(literal 1/3 binary64))
98.1%
(/.f64 (/.f64 (cbrt.f64 g) (cbrt.f64 a)) (cbrt.f64 #s(literal 2 binary64)))
98.3%
(/.f64 (/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64))) (cbrt.f64 a))
98.7%
(/.f64 (cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))) (cbrt.f64 a))
98.7%
(/.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 a) (pow.f64 #s(literal 2 binary64) #s(literal 1/3 binary64))))
98.2%
(/.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64))))
33.6%
(/.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))))
98.7%
(/.f64 (cbrt.f64 g) (cbrt.f64 (+.f64 a a)))
98.6%
(/.f64 #s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))) (cbrt.f64 a))
31.3%
(cbrt.f64 (/.f64 g (/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))))
76.7%
(cbrt.f64 (/.f64 g (+.f64 a a)))
76.7%
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a))))
76.0%
#s(approx (/ (cbrt g) (cbrt (+ a a))) (/.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 2 binary64))))
98.7%
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (/.f64 (cbrt.f64 g) (cbrt.f64 a))))
76.7%
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a))))
Compiler

Compiled 282 to 237 computations (16% saved)

simplify99.0ms (3.1%)

Memory
13.3MiB live, 152.0MiB allocated; 31ms collecting garbage
Algorithm
egg-herbie
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
cost-diff0
(cbrt.f64 g)
cost-diff0
(/.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))))
cost-diff1
(fma.f64 a a #s(literal 0 binary64))
cost-diff6
(/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))
cost-diff0
(cbrt.f64 #s(literal 2 binary64))
cost-diff0
(cbrt.f64 g)
cost-diff0
(/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64)))
cost-diff0
(/.f64 (/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64))) (cbrt.f64 a))
cost-diff0
(cbrt.f64 #s(literal 1/2 binary64))
cost-diff0
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))
cost-diff0
#s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g)))
cost-diff0
(/.f64 #s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))) (cbrt.f64 a))
cost-diff0
(*.f64 #s(literal 1/2 binary64) g)
cost-diff0
#s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))
cost-diff0
(cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g)))
cost-diff0
(/.f64 (cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))) (cbrt.f64 a))
cost-diff0
(/.f64 (cbrt.f64 g) (cbrt.f64 a))
cost-diff0
(cbrt.f64 #s(literal 1/2 binary64))
cost-diff0
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (/.f64 (cbrt.f64 g) (cbrt.f64 a)))
cost-diff0
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (/.f64 (cbrt.f64 g) (cbrt.f64 a))))
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
033184
053180
177180
2178162
31088162
46709162
08739162
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (/.f64 (cbrt.f64 g) (cbrt.f64 a))))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (/.f64 (cbrt.f64 g) (cbrt.f64 a)))
(cbrt.f64 #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(/.f64 (cbrt.f64 g) (cbrt.f64 a))
(cbrt.f64 g)
g
(cbrt.f64 a)
a
(/.f64 (cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))) (cbrt.f64 a))
(cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g)))
#s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))
(*.f64 #s(literal 1/2 binary64) g)
#s(literal 1/2 binary64)
g
(cbrt.f64 a)
a
(/.f64 #s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))) (cbrt.f64 a))
#s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g)))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))
(cbrt.f64 #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(cbrt.f64 g)
g
(cbrt.f64 a)
a
(/.f64 (/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64))) (cbrt.f64 a))
(/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64)))
(cbrt.f64 g)
g
(cbrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
(cbrt.f64 a)
a
(/.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))))
(cbrt.f64 g)
g
(cbrt.f64 (/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64))))
(/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))
(*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64)))
#s(literal 2 binary64)
(pow.f64 a #s(literal 3 binary64))
a
#s(literal 3 binary64)
(fma.f64 a a #s(literal 0 binary64))
#s(literal 0 binary64)
Outputs
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (/.f64 (cbrt.f64 g) (cbrt.f64 a))))
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (/.f64 (cbrt.f64 g) (cbrt.f64 a)) (cbrt.f64 #s(literal 1/2 binary64))))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (/.f64 (cbrt.f64 g) (cbrt.f64 a)))
(*.f64 (/.f64 (cbrt.f64 g) (cbrt.f64 a)) (cbrt.f64 #s(literal 1/2 binary64)))
(cbrt.f64 #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(/.f64 (cbrt.f64 g) (cbrt.f64 a))
(cbrt.f64 g)
g
(cbrt.f64 a)
a
(/.f64 (cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))) (cbrt.f64 a))
(cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g)))
#s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))
(*.f64 #s(literal 1/2 binary64) g)
#s(literal 1/2 binary64)
g
(cbrt.f64 a)
a
(/.f64 #s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))) (cbrt.f64 a))
(/.f64 #s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 1/2 binary64)))) (cbrt.f64 a))
#s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g)))
#s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 1/2 binary64))))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))
(*.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 1/2 binary64)))
(cbrt.f64 #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(cbrt.f64 g)
g
(cbrt.f64 a)
a
(/.f64 (/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64))) (cbrt.f64 a))
(/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64)))
(cbrt.f64 g)
g
(cbrt.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
(cbrt.f64 a)
a
(/.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))))
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 a #s(literal 2 binary64))))
(cbrt.f64 g)
g
(cbrt.f64 (/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64))))
(cbrt.f64 (*.f64 a #s(literal 2 binary64)))
(/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))
(*.f64 a #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64)))
(*.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 2 binary64))
#s(literal 2 binary64)
(pow.f64 a #s(literal 3 binary64))
a
#s(literal 3 binary64)
(fma.f64 a a #s(literal 0 binary64))
(*.f64 a a)
#s(literal 0 binary64)

localize89.0ms (2.8%)

Memory
-23.4MiB live, 216.3MiB allocated; 16ms collecting garbage
Localize:

Found 20 expressions of interest:

NewMetricScoreProgram
accuracy0.3561325195368841
(/.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))))
accuracy0.5840989258319566
(cbrt.f64 g)
accuracy0.5967751465266304
(cbrt.f64 (/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64))))
accuracy41.62273474530994
(/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))
accuracy0.37890625
(/.f64 (/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64))) (cbrt.f64 a))
accuracy0.5648613769897464
(cbrt.f64 a)
accuracy0.5840989258319566
(cbrt.f64 g)
accuracy1.0
(cbrt.f64 #s(literal 2 binary64))
accuracy0.37890625
(/.f64 #s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))) (cbrt.f64 a))
accuracy0.46617128907376815
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))
accuracy0.5648613769897464
(cbrt.f64 a)
accuracy0.5840989258319566
(cbrt.f64 g)
accuracy0.0
#s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))
accuracy0.37890625
(/.f64 (cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))) (cbrt.f64 a))
accuracy0.5648613769897464
(cbrt.f64 a)
accuracy0.6514626465266304
(cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g)))
accuracy0.35775375976844204
(/.f64 (cbrt.f64 g) (cbrt.f64 a))
accuracy0.4544525390737681
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (/.f64 (cbrt.f64 g) (cbrt.f64 a)))
accuracy0.5648613769897464
(cbrt.f64 a)
accuracy0.5840989258319566
(cbrt.f64 g)
Samples
62.0ms256×0valid
Compiler

Compiled 157 to 31 computations (80.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 40.0ms
ival-div: 12.0ms (29.9% of total)
ival-mult: 12.0ms (29.9% of total)
ival-cbrt: 10.0ms (24.9% of total)
ival-pow: 4.0ms (10% of total)
ival-add: 1.0ms (2.5% of total)
exact: 1.0ms (2.5% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series46.0ms (1.4%)

Memory
6.8MiB live, 104.4MiB allocated; 9ms collecting garbage
Counts
20 → 23
Calls
Call 1
Inputs
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (/.f64 (cbrt.f64 g) (cbrt.f64 a))))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (/.f64 (cbrt.f64 g) (cbrt.f64 a)))
(cbrt.f64 #s(literal 1/2 binary64))
(/.f64 (cbrt.f64 g) (cbrt.f64 a))
(/.f64 (cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))) (cbrt.f64 a))
(cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g)))
#s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))
(*.f64 #s(literal 1/2 binary64) g)
(/.f64 #s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))) (cbrt.f64 a))
#s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g)))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))
(/.f64 (/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64))) (cbrt.f64 a))
(/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64)))
(cbrt.f64 g)
(cbrt.f64 #s(literal 2 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))
(fma.f64 a a #s(literal 0 binary64))
(/.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))))
(cbrt.f64 a)
(cbrt.f64 (/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64))))
Outputs
(* (cbrt (/ g a)) (cbrt 1/2))
(cbrt (/ g a))
(* (cbrt g) (cbrt 1/2))
(* 1/2 g)
(* (cbrt (/ g a)) (/ 1 (cbrt 2)))
(* (cbrt g) (/ 1 (cbrt 2)))
(cbrt g)
(* -1 (* (cbrt (/ g a)) (cbrt -1/2)))
(* -1 (* (cbrt (/ g a)) (* (cbrt -1) (cbrt 1/2))))
(* -1 (* (cbrt (/ g a)) (cbrt -1)))
(* -1 (* (cbrt g) (cbrt -1/2)))
(* -1 (* (cbrt g) (* (cbrt -1) (cbrt 1/2))))
(* -1 (* (cbrt (/ g a)) (/ (cbrt -1) (cbrt 2))))
(* -1 (* (cbrt g) (/ (cbrt -1) (cbrt 2))))
(* -1 (* (cbrt g) (cbrt -1)))
(* 2 a)
(pow a 2)
(cbrt a)
(* (cbrt a) (cbrt 2))
(* (cbrt (/ g a)) (* (cbrt -1) (cbrt -1/2)))
(* (cbrt (/ g a)) (/ (cbrt -1) (cbrt -2)))
(* -1 (* (cbrt a) (cbrt -1)))
(* -1 (* (cbrt a) (cbrt -2)))
Calls

6 calls:

TimeVariablePointExpression
12.0ms
a
@-inf
((cbrt (/ g (* 2 a))) (* (cbrt 1/2) (/ (cbrt g) (cbrt a))) (cbrt 1/2) (/ (cbrt g) (cbrt a)) (/ (cbrt (/ g 2)) (cbrt a)) (cbrt (/ g 2)) (/ g 2) (* 1/2 g) (/ (cbrt (/ g 2)) (cbrt a)) (cbrt (/ g 2)) (* (cbrt 1/2) (cbrt g)) (/ (/ (cbrt g) (cbrt 2)) (cbrt a)) (/ (cbrt g) (cbrt 2)) (cbrt g) (cbrt 2) (/ (* 2 (pow a 3)) (+ (* a a) 0)) (+ (* a a) 0) (/ (cbrt g) (cbrt (/ (* 2 (pow a 3)) (+ (* a a) 0)))) (cbrt a) (cbrt (/ (* 2 (pow a 3)) (+ (* a a) 0))))
11.0ms
g
@-inf
((cbrt (/ g (* 2 a))) (* (cbrt 1/2) (/ (cbrt g) (cbrt a))) (cbrt 1/2) (/ (cbrt g) (cbrt a)) (/ (cbrt (/ g 2)) (cbrt a)) (cbrt (/ g 2)) (/ g 2) (* 1/2 g) (/ (cbrt (/ g 2)) (cbrt a)) (cbrt (/ g 2)) (* (cbrt 1/2) (cbrt g)) (/ (/ (cbrt g) (cbrt 2)) (cbrt a)) (/ (cbrt g) (cbrt 2)) (cbrt g) (cbrt 2) (/ (* 2 (pow a 3)) (+ (* a a) 0)) (+ (* a a) 0) (/ (cbrt g) (cbrt (/ (* 2 (pow a 3)) (+ (* a a) 0)))) (cbrt a) (cbrt (/ (* 2 (pow a 3)) (+ (* a a) 0))))
6.0ms
a
@inf
((cbrt (/ g (* 2 a))) (* (cbrt 1/2) (/ (cbrt g) (cbrt a))) (cbrt 1/2) (/ (cbrt g) (cbrt a)) (/ (cbrt (/ g 2)) (cbrt a)) (cbrt (/ g 2)) (/ g 2) (* 1/2 g) (/ (cbrt (/ g 2)) (cbrt a)) (cbrt (/ g 2)) (* (cbrt 1/2) (cbrt g)) (/ (/ (cbrt g) (cbrt 2)) (cbrt a)) (/ (cbrt g) (cbrt 2)) (cbrt g) (cbrt 2) (/ (* 2 (pow a 3)) (+ (* a a) 0)) (+ (* a a) 0) (/ (cbrt g) (cbrt (/ (* 2 (pow a 3)) (+ (* a a) 0)))) (cbrt a) (cbrt (/ (* 2 (pow a 3)) (+ (* a a) 0))))
6.0ms
g
@inf
((cbrt (/ g (* 2 a))) (* (cbrt 1/2) (/ (cbrt g) (cbrt a))) (cbrt 1/2) (/ (cbrt g) (cbrt a)) (/ (cbrt (/ g 2)) (cbrt a)) (cbrt (/ g 2)) (/ g 2) (* 1/2 g) (/ (cbrt (/ g 2)) (cbrt a)) (cbrt (/ g 2)) (* (cbrt 1/2) (cbrt g)) (/ (/ (cbrt g) (cbrt 2)) (cbrt a)) (/ (cbrt g) (cbrt 2)) (cbrt g) (cbrt 2) (/ (* 2 (pow a 3)) (+ (* a a) 0)) (+ (* a a) 0) (/ (cbrt g) (cbrt (/ (* 2 (pow a 3)) (+ (* a a) 0)))) (cbrt a) (cbrt (/ (* 2 (pow a 3)) (+ (* a a) 0))))
6.0ms
g
@0
((cbrt (/ g (* 2 a))) (* (cbrt 1/2) (/ (cbrt g) (cbrt a))) (cbrt 1/2) (/ (cbrt g) (cbrt a)) (/ (cbrt (/ g 2)) (cbrt a)) (cbrt (/ g 2)) (/ g 2) (* 1/2 g) (/ (cbrt (/ g 2)) (cbrt a)) (cbrt (/ g 2)) (* (cbrt 1/2) (cbrt g)) (/ (/ (cbrt g) (cbrt 2)) (cbrt a)) (/ (cbrt g) (cbrt 2)) (cbrt g) (cbrt 2) (/ (* 2 (pow a 3)) (+ (* a a) 0)) (+ (* a a) 0) (/ (cbrt g) (cbrt (/ (* 2 (pow a 3)) (+ (* a a) 0)))) (cbrt a) (cbrt (/ (* 2 (pow a 3)) (+ (* a a) 0))))

simplify113.0ms (3.5%)

Memory
27.0MiB live, 119.1MiB allocated; 6ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
052150
1121146
2262146
3546146
41874146
55999146
08034146
Stop Event
iter limit
node limit
Counts
23 → 23
Calls
Call 1
Inputs
(* (cbrt (/ g a)) (cbrt 1/2))
(cbrt (/ g a))
(* (cbrt g) (cbrt 1/2))
(* 1/2 g)
(* (cbrt (/ g a)) (/ 1 (cbrt 2)))
(* (cbrt g) (/ 1 (cbrt 2)))
(cbrt g)
(* -1 (* (cbrt (/ g a)) (cbrt -1/2)))
(* -1 (* (cbrt (/ g a)) (* (cbrt -1) (cbrt 1/2))))
(* -1 (* (cbrt (/ g a)) (cbrt -1)))
(* -1 (* (cbrt g) (cbrt -1/2)))
(* -1 (* (cbrt g) (* (cbrt -1) (cbrt 1/2))))
(* -1 (* (cbrt (/ g a)) (/ (cbrt -1) (cbrt 2))))
(* -1 (* (cbrt g) (/ (cbrt -1) (cbrt 2))))
(* -1 (* (cbrt g) (cbrt -1)))
(* 2 a)
(pow a 2)
(cbrt a)
(* (cbrt a) (cbrt 2))
(* (cbrt (/ g a)) (* (cbrt -1) (cbrt -1/2)))
(* (cbrt (/ g a)) (/ (cbrt -1) (cbrt -2)))
(* -1 (* (cbrt a) (cbrt -1)))
(* -1 (* (cbrt a) (cbrt -2)))
Outputs
(* (cbrt (/ g a)) (cbrt 1/2))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a)))
(cbrt (/ g a))
(cbrt.f64 (/.f64 g a))
(* (cbrt g) (cbrt 1/2))
(*.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 1/2 binary64)))
(* 1/2 g)
(*.f64 #s(literal 1/2 binary64) g)
(* (cbrt (/ g a)) (/ 1 (cbrt 2)))
(/.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 2 binary64)))
(* (cbrt g) (/ 1 (cbrt 2)))
(/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64)))
(cbrt g)
(cbrt.f64 g)
(* -1 (* (cbrt (/ g a)) (cbrt -1/2)))
(*.f64 (neg.f64 (cbrt.f64 #s(literal -1/2 binary64))) (cbrt.f64 (/.f64 g a)))
(* -1 (* (cbrt (/ g a)) (* (cbrt -1) (cbrt 1/2))))
(*.f64 (*.f64 (neg.f64 (cbrt.f64 #s(literal 1/2 binary64))) (cbrt.f64 (/.f64 g a))) (cbrt.f64 #s(literal -1 binary64)))
(* -1 (* (cbrt (/ g a)) (cbrt -1)))
(*.f64 (neg.f64 (cbrt.f64 #s(literal -1 binary64))) (cbrt.f64 (/.f64 g a)))
(* -1 (* (cbrt g) (cbrt -1/2)))
(neg.f64 (*.f64 (cbrt.f64 #s(literal -1/2 binary64)) (cbrt.f64 g)))
(* -1 (* (cbrt g) (* (cbrt -1) (cbrt 1/2))))
(neg.f64 (*.f64 (*.f64 (cbrt.f64 #s(literal -1 binary64)) (cbrt.f64 #s(literal 1/2 binary64))) (cbrt.f64 g)))
(* -1 (* (cbrt (/ g a)) (/ (cbrt -1) (cbrt 2))))
(*.f64 (neg.f64 (cbrt.f64 #s(literal -1 binary64))) (/.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 2 binary64))))
(* -1 (* (cbrt g) (/ (cbrt -1) (cbrt 2))))
(neg.f64 (*.f64 (/.f64 (cbrt.f64 #s(literal -1 binary64)) (cbrt.f64 #s(literal 2 binary64))) (cbrt.f64 g)))
(* -1 (* (cbrt g) (cbrt -1)))
(neg.f64 (*.f64 (cbrt.f64 #s(literal -1 binary64)) (cbrt.f64 g)))
(* 2 a)
(*.f64 a #s(literal 2 binary64))
(pow a 2)
(*.f64 a a)
(cbrt a)
(cbrt.f64 a)
(* (cbrt a) (cbrt 2))
(*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64)))
(* (cbrt (/ g a)) (* (cbrt -1) (cbrt -1/2)))
(*.f64 (*.f64 (cbrt.f64 #s(literal -1 binary64)) (cbrt.f64 #s(literal -1/2 binary64))) (cbrt.f64 (/.f64 g a)))
(* (cbrt (/ g a)) (/ (cbrt -1) (cbrt -2)))
(/.f64 (*.f64 (cbrt.f64 #s(literal -1 binary64)) (cbrt.f64 (/.f64 g a))) (cbrt.f64 #s(literal -2 binary64)))
(* -1 (* (cbrt a) (cbrt -1)))
(*.f64 (neg.f64 (cbrt.f64 a)) (cbrt.f64 #s(literal -1 binary64)))
(* -1 (* (cbrt a) (cbrt -2)))
(*.f64 (neg.f64 (cbrt.f64 #s(literal -2 binary64))) (cbrt.f64 a))

rewrite24.0ms (0.7%)

Memory
-8.3MiB live, 38.1MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
033145
053131
0144131
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
20 → 56
Calls
Call 1
Inputs
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (/.f64 (cbrt.f64 g) (cbrt.f64 a))))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (/.f64 (cbrt.f64 g) (cbrt.f64 a)))
(cbrt.f64 #s(literal 1/2 binary64))
(/.f64 (cbrt.f64 g) (cbrt.f64 a))
(/.f64 (cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))) (cbrt.f64 a))
(cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g)))
#s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))
(*.f64 #s(literal 1/2 binary64) g)
(/.f64 #s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))) (cbrt.f64 a))
#s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g)))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))
(/.f64 (/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64))) (cbrt.f64 a))
(/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64)))
(cbrt.f64 g)
(cbrt.f64 #s(literal 2 binary64))
(/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))
(fma.f64 a a #s(literal 0 binary64))
(/.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))))
(cbrt.f64 a)
(cbrt.f64 (/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64))))
Outputs
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 1/2 binary64))))
(*.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 1/2 binary64)))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a)))
(/.f64 (cbrt.f64 (*.f64 #s(literal 1/2 binary64) g)) (cbrt.f64 a))
(pow.f64 #s(literal 1/2 binary64) #s(literal 1/3 binary64))
(cbrt.f64 #s(literal 1/2 binary64))
(/.f64 (neg.f64 (cbrt.f64 g)) (neg.f64 (cbrt.f64 a)))
(/.f64 (cbrt.f64 g) (cbrt.f64 a))
(cbrt.f64 (/.f64 g a))
(/.f64 (neg.f64 (cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g)))) (neg.f64 (cbrt.f64 a)))
(/.f64 (cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))) (cbrt.f64 a))
(cbrt.f64 (/.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g)) a))
(pow.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g)) #s(literal 1/3 binary64))
(cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g)))
#s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))
(*.f64 #s(literal 1/2 binary64) g)
(*.f64 g #s(literal 1/2 binary64))
(/.f64 (neg.f64 #s(approx (cbrt (/ g 2)) (cbrt.f64 (*.f64 #s(literal 1/2 binary64) g)))) (neg.f64 (cbrt.f64 a)))
(/.f64 #s(approx (cbrt (/ g 2)) (cbrt.f64 (*.f64 #s(literal 1/2 binary64) g))) (cbrt.f64 a))
#s(approx (cbrt (/ g 2)) (cbrt.f64 (*.f64 #s(literal 1/2 binary64) g)))
(*.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 1/2 binary64)))
(*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))
(cbrt.f64 (*.f64 #s(literal 1/2 binary64) g))
(/.f64 (neg.f64 (cbrt.f64 (/.f64 g #s(literal 2 binary64)))) (neg.f64 (cbrt.f64 a)))
(/.f64 (cbrt.f64 (/.f64 g #s(literal 2 binary64))) (cbrt.f64 a))
(/.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 #s(literal 2 binary64)) (cbrt.f64 a)))
(pow.f64 (/.f64 g #s(literal 2 binary64)) #s(literal 1/3 binary64))
(/.f64 (neg.f64 (cbrt.f64 g)) (neg.f64 (cbrt.f64 #s(literal 2 binary64))))
(/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64)))
(cbrt.f64 (/.f64 g #s(literal 2 binary64)))
(pow.f64 g #s(literal 1/3 binary64))
(cbrt.f64 g)
(pow.f64 #s(literal 2 binary64) #s(literal 1/3 binary64))
(cbrt.f64 #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) (/.f64 (pow.f64 a #s(literal 3 binary64)) (*.f64 a a)))
(/.f64 (neg.f64 (*.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 2 binary64))) (neg.f64 (*.f64 a a)))
(/.f64 (*.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 2 binary64)) (*.f64 a a))
(*.f64 (neg.f64 a) (neg.f64 a))
(*.f64 (fabs.f64 a) (fabs.f64 a))
(*.f64 a a)
(pow.f64 a #s(literal 2 binary64))
(/.f64 (-.f64 (*.f64 (*.f64 a a) (*.f64 a a)) #s(literal 0 binary64)) (-.f64 (*.f64 a a) #s(literal 0 binary64)))
(/.f64 (+.f64 (pow.f64 (*.f64 a a) #s(literal 3 binary64)) #s(literal 0 binary64)) (fma.f64 (*.f64 a a) (*.f64 a a) (-.f64 #s(literal 0 binary64) (*.f64 (*.f64 a a) #s(literal 0 binary64)))))
(fma.f64 (neg.f64 a) (neg.f64 a) #s(literal 0 binary64))
(fma.f64 (fabs.f64 a) (fabs.f64 a) #s(literal 0 binary64))
(fma.f64 a a #s(literal 0 binary64))
(+.f64 (*.f64 a a) #s(literal 0 binary64))
(+.f64 #s(literal 0 binary64) (*.f64 a a))
(/.f64 (neg.f64 (cbrt.f64 g)) (neg.f64 (cbrt.f64 (/.f64 (*.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 2 binary64)) (*.f64 a a)))))
(/.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 (*.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 2 binary64)) (*.f64 a a))))
(cbrt.f64 (/.f64 g (/.f64 (*.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 2 binary64)) (*.f64 a a))))
(pow.f64 a #s(literal 1/3 binary64))
(cbrt.f64 a)
(pow.f64 (/.f64 (*.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 2 binary64)) (*.f64 a a)) #s(literal 1/3 binary64))
(/.f64 (cbrt.f64 (*.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 2 binary64))) (cbrt.f64 (*.f64 a a)))
(cbrt.f64 (/.f64 (*.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 2 binary64)) (*.f64 a a)))

eval64.0ms (2%)

Memory
-6.7MiB live, 36.8MiB allocated; 55ms collecting garbage
Compiler

Compiled 1 529 to 297 computations (80.6% saved)

prune13.0ms (0.4%)

Memory
-17.2MiB live, 35.1MiB allocated; 3ms collecting garbage
Pruning

16 alts after pruning (6 fresh and 10 done)

PrunedKeptTotal
New1004104
Fresh224
Picked145
Done066
Total10316119
Accuracy
99.9%
Counts
119 → 16
Alt Table
Click to see full alt table
StatusAccuracyProgram
33.3%
(pow.f64 (/.f64 g (+.f64 a a)) #s(literal 1/3 binary64))
43.8%
(/.f64 (pow.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g)) #s(literal 1/3 binary64)) (cbrt.f64 a))
98.1%
(/.f64 (/.f64 (cbrt.f64 g) (cbrt.f64 a)) (cbrt.f64 #s(literal 2 binary64)))
98.3%
(/.f64 (/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64))) (cbrt.f64 a))
98.7%
(/.f64 (cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))) (cbrt.f64 a))
98.7%
(/.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 a) (pow.f64 #s(literal 2 binary64) #s(literal 1/3 binary64))))
98.2%
(/.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64))))
33.6%
(/.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 (*.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 2 binary64)) (*.f64 a a))))
98.7%
(/.f64 (cbrt.f64 g) (cbrt.f64 (+.f64 a a)))
98.6%
(/.f64 #s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))) (cbrt.f64 a))
31.3%
(cbrt.f64 (/.f64 g (/.f64 (*.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 2 binary64)) (*.f64 a a))))
76.7%
(cbrt.f64 (/.f64 g (+.f64 a a)))
76.7%
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a))))
76.0%
#s(approx (/ (/ (cbrt g) (cbrt 2)) (cbrt a)) (/.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 2 binary64))))
98.7%
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (/.f64 (cbrt.f64 g) (cbrt.f64 a))))
76.7%
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a))))
Compiler

Compiled 456 to 251 computations (45% saved)

regimes35.0ms (1.1%)

Memory
7.4MiB live, 101.2MiB allocated; 3ms collecting garbage
Counts
25 → 1
Calls
Call 1
Inputs
(cbrt.f64 (/.f64 g (+.f64 a a)))
(pow.f64 (/.f64 g (+.f64 a a)) #s(literal 1/3 binary64))
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a))))
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
(pow.f64 (/.f64 g (*.f64 a #s(literal 2 binary64))) #s(literal 1/3 binary64))
(/.f64 (cbrt.f64 g) (cbrt.f64 (+.f64 a a)))
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 (/.f64 g a))))
(/.f64 (cbrt.f64 g) (cbrt.f64 (*.f64 a #s(literal 2 binary64))))
(/.f64 (cbrt.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g))) (cbrt.f64 a))
(/.f64 (pow.f64 #s(approx (/ g 2) (*.f64 #s(literal 1/2 binary64) g)) #s(literal 1/3 binary64)) (cbrt.f64 a))
#s(approx (/ (cbrt g) (cbrt (* a 2))) (/.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 2 binary64))))
#s(approx (/ (cbrt g) (cbrt (+ a a))) (/.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 2 binary64))))
#s(approx (/ (/ (cbrt g) (cbrt 2)) (cbrt a)) (/.f64 (cbrt.f64 (/.f64 g a)) (cbrt.f64 #s(literal 2 binary64))))
(/.f64 (cbrt.f64 (/.f64 g #s(literal 2 binary64))) (cbrt.f64 a))
(cbrt.f64 (/.f64 g (/.f64 (*.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 2 binary64)) (*.f64 a a))))
#s(approx (cbrt (/ g (* 2 a))) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (/.f64 (cbrt.f64 g) (cbrt.f64 a))))
(/.f64 #s(approx (cbrt (/ g 2)) (*.f64 (cbrt.f64 #s(literal 1/2 binary64)) (cbrt.f64 g))) (cbrt.f64 a))
(/.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 a) (cbrt.f64 #s(literal 2 binary64))))
(/.f64 (cbrt.f64 g) (*.f64 (cbrt.f64 a) (pow.f64 #s(literal 2 binary64) #s(literal 1/3 binary64))))
(/.f64 (/.f64 (cbrt.f64 g) (cbrt.f64 #s(literal 2 binary64))) (cbrt.f64 a))
(/.f64 (/.f64 (cbrt.f64 g) (cbrt.f64 a)) (cbrt.f64 #s(literal 2 binary64)))
(/.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 (*.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 2 binary64)) (*.f64 a a))))
(/.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a #s(literal 0 binary64)))))
(cbrt.f64 (/.f64 g (/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))))
(/.f64 (cbrt.f64 g) (cbrt.f64 (/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) (pow.f64 a #s(literal 3 binary64))) (fma.f64 a a (-.f64 (*.f64 a a) (*.f64 a a))))))
Outputs
(/.f64 (cbrt.f64 g) (cbrt.f64 (+.f64 a a)))
Calls

5 calls:

7.0ms
g
7.0ms
(/.f64 g (*.f64 #s(literal 2 binary64) a))
7.0ms
a
6.0ms
(*.f64 #s(literal 2 binary64) a)
6.0ms
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
Results
AccuracySegmentsBranch
98.7%1(*.f64 #s(literal 2 binary64) a)
98.7%1(/.f64 g (*.f64 #s(literal 2 binary64) a))
98.7%1(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
98.7%1g
98.7%1a
Compiler

Compiled 16 to 19 computations (-18.8% saved)

regimes13.0ms (0.4%)

Memory
-11.6MiB live, 36.7MiB allocated; 6ms collecting garbage
Counts
5 → 1
Calls
Call 1
Inputs
(cbrt.f64 (/.f64 g (+.f64 a a)))
(pow.f64 (/.f64 g (+.f64 a a)) #s(literal 1/3 binary64))
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a))))
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
(pow.f64 (/.f64 g (*.f64 a #s(literal 2 binary64))) #s(literal 1/3 binary64))
Outputs
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a))))
Calls

5 calls:

4.0ms
(*.f64 #s(literal 2 binary64) a)
2.0ms
g
2.0ms
(/.f64 g (*.f64 #s(literal 2 binary64) a))
2.0ms
a
2.0ms
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
Results
AccuracySegmentsBranch
76.7%1(*.f64 #s(literal 2 binary64) a)
76.7%1a
76.7%1(/.f64 g (*.f64 #s(literal 2 binary64) a))
76.7%1(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
76.7%1g
Compiler

Compiled 16 to 19 computations (-18.8% saved)

regimes7.0ms (0.2%)

Memory
23.7MiB live, 23.7MiB allocated; 0ms collecting garbage
Accuracy

Total -27.8b remaining (-185.9%)

Threshold costs -27.8b (-185.9%)

Counts
2 → 1
Calls
Call 1
Inputs
(cbrt.f64 (/.f64 g (+.f64 a a)))
(pow.f64 (/.f64 g (+.f64 a a)) #s(literal 1/3 binary64))
Outputs
(cbrt.f64 (/.f64 g (+.f64 a a)))
Calls

5 calls:

1.0ms
g
1.0ms
(*.f64 #s(literal 2 binary64) a)
1.0ms
a
1.0ms
(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
1.0ms
(/.f64 g (*.f64 #s(literal 2 binary64) a))
Results
AccuracySegmentsBranch
76.7%1(/.f64 g (*.f64 #s(literal 2 binary64) a))
76.7%1(cbrt.f64 (/.f64 g (*.f64 #s(literal 2 binary64) a)))
76.7%1g
76.7%1(*.f64 #s(literal 2 binary64) a)
76.7%1a
Compiler

Compiled 16 to 19 computations (-18.8% saved)

simplify42.0ms (1.3%)

Memory
-9.7MiB live, 84.7MiB allocated; 3ms collecting garbage
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01625
12225
23125
35125
412225
586325
6630225
Stop Event
node limit
Calls
Call 1
Inputs
(/.f64 (cbrt.f64 g) (cbrt.f64 (+.f64 a a)))
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a))))
(cbrt.f64 (/.f64 g (+.f64 a a)))
Outputs
(/.f64 (cbrt.f64 g) (cbrt.f64 (+.f64 a a)))
(cbrt.f64 #s(approx (/ g (* 2 a)) (*.f64 g (/.f64 #s(literal 1/2 binary64) a))))
(cbrt.f64 (/.f64 g (+.f64 a a)))

derivations143.0ms (4.5%)

Memory
-1.3MiB live, 234.4MiB allocated; 9ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0614
0914
12314
08714
01831
13531
26131
38131
414331
546831
6330531
0838131
026100
04296
010496
Stop Event
fuel
iter limit
iter limit
iter limit
unsound
iter limit
iter limit
node limit
iter limit
iter limit
iter limit
unsound
iter limit
Compiler

Compiled 25 to 16 computations (36% saved)

preprocess34.0ms (1.1%)

Memory
-8.6MiB live, 85.1MiB allocated; 7ms collecting garbage
Compiler

Compiled 62 to 44 computations (29% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...