Numeric.SpecFunctions:logGammaCorrection from math-functions-0.1.5.2

Time bar (total: 2.8s)

start0.0ms (0%)

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

analyze0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated; 0ms collecting garbage
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
100%100%0%0%0%0%0%1
Compiler

Compiled 9 to 8 computations (11.1% saved)

sample974.0ms (34.7%)

Memory
0.1MiB live, 1 086.1MiB allocated; 216ms collecting garbage
Samples
599.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 286.0ms
ival-mult: 165.0ms (57.7% of total)
ival-sub: 101.0ms (35.3% of total)
exact: 9.0ms (3.1% of total)
ival-true: 6.0ms (2.1% of total)
ival-assert: 3.0ms (1% of total)
adjust: 2.0ms (0.7% of total)
Bogosity

explain121.0ms (4.3%)

Memory
30.1MiB live, 127.1MiB allocated; 25ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
00-0-#s(literal 2 binary64)
00-0-#s(literal 1 binary64)
00-0-(*.f64 (*.f64 x x) #s(literal 2 binary64))
00-0-(*.f64 x x)
00-0-x
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
72.0ms512×0valid
Compiler

Compiled 47 to 22 computations (53.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-mult: 7.0ms (61.8% of total)
ival-sub: 3.0ms (26.5% of total)
exact: 1.0ms (8.8% of total)
ival-true: 0.0ms (0% of total)
adjust: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess180.0ms (6.4%)

Memory
-12.0MiB live, 222.8MiB allocated; 73ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
12315
27315
321215
471014
5348814
067
097
1197
2567
32027
46607
540367
085356
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
Outputs
(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
(fma.f64 #s(literal 2 binary64) (*.f64 x x) #s(literal -1 binary64))
Symmetry

(abs x)

Compiler

Compiled 7 to 6 computations (14.3% saved)

eval0.0ms (0%)

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

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
Compiler

Compiled 7 to 6 computations (14.3% saved)

simplify142.0ms (5%)

Memory
-5.1MiB live, 203.5MiB allocated; 27ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x x)
cost-diff0
(*.f64 (*.f64 x x) #s(literal 2 binary64))
cost-diff1
(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0618
0918
11918
25618
320218
466018
5403618
0853517
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x x)
x
#s(literal 2 binary64)
#s(literal 1 binary64)
Outputs
(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
(fma.f64 #s(literal 2 binary64) (*.f64 x x) #s(literal -1 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(*.f64 x x)
x
#s(literal 2 binary64)
#s(literal 1 binary64)

localize35.0ms (1.3%)

Memory
-9.1MiB live, 36.6MiB allocated; 3ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
accuracy0.0
(*.f64 x x)
accuracy0.00390625
(*.f64 (*.f64 x x) #s(literal 2 binary64))
Samples
30.0ms256×0valid
Compiler

Compiled 20 to 8 computations (60% saved)

Precisions
Click to see histograms. Total time spent on operations: 24.0ms
ival-mult: 23.0ms (93.9% of total)
ival-sub: 1.0ms (4.1% 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)

series2.0ms (0.1%)

Memory
4.9MiB live, 4.9MiB allocated; 0ms collecting garbage
Counts
3 → 5
Calls
Call 1
Inputs
(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x x)
Outputs
-1
(- (* 2 (pow x 2)) 1)
(* 2 (pow x 2))
(pow x 2)
(* (pow x 2) (- 2 (/ 1 (pow x 2))))
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((- (* (* x x) 2) 1) (* (* x x) 2) (* x x))
1.0ms
x
@-inf
((- (* (* x x) 2) 1) (* (* x x) 2) (* x x))
1.0ms
x
@0
((- (* (* x x) 2) 1) (* (* x x) 2) (* x x))

simplify143.0ms (5.1%)

Memory
-3.8MiB live, 137.9MiB allocated; 25ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01027
11727
24927
317727
489927
5715927
0815926
Stop Event
iter limit
node limit
Counts
5 → 5
Calls
Call 1
Inputs
-1
(- (* 2 (pow x 2)) 1)
(* 2 (pow x 2))
(pow x 2)
(* (pow x 2) (- 2 (/ 1 (pow x 2))))
Outputs
-1
#s(literal -1 binary64)
(- (* 2 (pow x 2)) 1)
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
(* 2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (- 2 (/ 1 (pow x 2))))
(*.f64 (*.f64 (-.f64 #s(literal 2 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x) x)

rewrite49.0ms (1.8%)

Memory
-1.8MiB live, 43.5MiB allocated; 8ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0615
0915
13415
023414
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
3 → 60
Calls
Call 1
Inputs
(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x x)
Outputs
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 #s(literal 2 binary64) (*.f64 x x) #s(literal 1 binary64))))
(/.f64 (neg.f64 (fma.f64 #s(literal 8 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal -1 binary64))) (neg.f64 (+.f64 (fma.f64 #s(literal 2 binary64) (*.f64 x x) #s(literal 1 binary64)) (pow.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 #s(literal 2 binary64) (*.f64 x x) #s(literal 1 binary64)))
(/.f64 (fma.f64 #s(literal 8 binary64) (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal -1 binary64)) (+.f64 (fma.f64 #s(literal 2 binary64) (*.f64 x x) #s(literal 1 binary64)) (pow.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 2 binary64))))
(fma.f64 (*.f64 #s(literal 2 binary64) (neg.f64 x)) (neg.f64 x) #s(literal -1 binary64))
(fma.f64 (*.f64 #s(literal 2 binary64) (fabs.f64 x)) (fabs.f64 x) #s(literal -1 binary64))
(fma.f64 (*.f64 #s(literal 2 binary64) x) x #s(literal -1 binary64))
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 2 binary64)) #s(literal -1 binary64))
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 2 binary64)) #s(literal -1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal -1 binary64))
(fma.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 1 binary64) #s(literal -1 binary64))
(fma.f64 #s(literal 2 binary64) (*.f64 (*.f64 x x) #s(literal 1 binary64)) #s(literal -1 binary64))
(fma.f64 #s(literal 2 binary64) (*.f64 x x) #s(literal -1 binary64))
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
(fma.f64 x (*.f64 (*.f64 #s(literal 2 binary64) x) #s(literal 1 binary64)) #s(literal -1 binary64))
(fma.f64 x (*.f64 #s(literal 2 binary64) x) #s(literal -1 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 2 binary64)) (fma.f64 #s(literal 2 binary64) (*.f64 x x) #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 #s(literal 2 binary64) (*.f64 x x) #s(literal 1 binary64))))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 3 binary64)) (+.f64 (fma.f64 #s(literal 2 binary64) (*.f64 x x) #s(literal 1 binary64)) (pow.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 2 binary64)))) (/.f64 #s(literal 1 binary64) (+.f64 (fma.f64 #s(literal 2 binary64) (*.f64 x x) #s(literal 1 binary64)) (pow.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 2 binary64)))))
(-.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 1 binary64))
(+.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal -1 binary64))
(*.f64 (*.f64 #s(literal 2 binary64) (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 #s(literal 2 binary64) (fabs.f64 x)) (fabs.f64 x))
(*.f64 (*.f64 #s(literal 2 binary64) x) x)
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 2 binary64)))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 2 binary64)))
(*.f64 #s(literal 1 binary64) (*.f64 #s(literal 2 binary64) (*.f64 x x)))
(*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 1 binary64))
(*.f64 #s(literal 2 binary64) (*.f64 (*.f64 x x) #s(literal 1 binary64)))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x (*.f64 (*.f64 #s(literal 2 binary64) x) #s(literal 1 binary64)))
(*.f64 x (*.f64 #s(literal 2 binary64) x))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 x x))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 x x))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 x x))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 x x))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) x (*.f64 x x))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 x x))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 x x))
(fma.f64 #s(literal 1 binary64) (*.f64 x x) (*.f64 #s(literal 1 binary64) (*.f64 x x)))
(fma.f64 (*.f64 x x) #s(literal 1 binary64) (*.f64 (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 x x (*.f64 x x))
(+.f64 (*.f64 #s(literal 1 binary64) (*.f64 x x)) (*.f64 #s(literal 1 binary64) (*.f64 x x)))
(+.f64 (*.f64 (*.f64 x x) #s(literal 1 binary64)) (*.f64 (*.f64 x x) #s(literal 1 binary64)))
(+.f64 (*.f64 x x) (*.f64 x x))
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) x)
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 x x)
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(neg.f64 (*.f64 x (neg.f64 x)))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))

eval7.0ms (0.2%)

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

Compiled 693 to 168 computations (75.8% saved)

prune2.0ms (0.1%)

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

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New63265
Fresh000
Picked101
Done000
Total64266
Accuracy
100.0%
Counts
66 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
50.9%
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
Compiler

Compiled 15 to 13 computations (13.3% saved)

simplify127.0ms (4.5%)

Memory
3.7MiB live, 192.8MiB allocated; 31ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x x)
cost-diff0
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
cost-diff0
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01022
01322
12422
27022
326721
484621
5382721
0817121
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
#s(literal -1 binary64)
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
(*.f64 x x)
x
#s(literal 2 binary64)
#s(literal -1 binary64)
Outputs
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
#s(literal -1 binary64)
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
(fma.f64 (*.f64 #s(literal 2 binary64) x) x #s(literal -1 binary64))
(*.f64 x x)
x
#s(literal 2 binary64)
#s(literal -1 binary64)

localize66.0ms (2.4%)

Memory
9.5MiB live, 109.2MiB allocated; 18ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
accuracy0.0
(*.f64 x x)
accuracy31.40477586776202
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
Samples
15.0ms256×0valid
Compiler

Compiled 23 to 10 computations (56.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
ival-mult: 6.0ms (67.9% of total)
ival-sub: 1.0ms (11.3% of total)
ival-add: 1.0ms (11.3% 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)

series3.0ms (0.1%)

Memory
-42.3MiB live, 4.7MiB allocated; 4ms collecting garbage
Counts
3 → 5
Calls
Call 1
Inputs
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
(*.f64 x x)
Outputs
-1
(- (* 2 (pow x 2)) 1)
(pow x 2)
(* 2 (pow x 2))
(* (pow x 2) (- 2 (/ 1 (pow x 2))))
Calls

3 calls:

TimeVariablePointExpression
2.0ms
x
@inf
((- (* (* x x) 2) 1) (+ (* (* x x) 2) -1) (* x x))
0.0ms
x
@-inf
((- (* (* x x) 2) 1) (+ (* (* x x) 2) -1) (* x x))
0.0ms
x
@0
((- (* (* x x) 2) 1) (+ (* (* x x) 2) -1) (* x x))

simplify113.0ms (4%)

Memory
34.8MiB live, 81.6MiB allocated; 2ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01027
11727
24927
317727
489927
5715227
0815226
Stop Event
iter limit
node limit
Counts
5 → 5
Calls
Call 1
Inputs
-1
(- (* 2 (pow x 2)) 1)
(pow x 2)
(* 2 (pow x 2))
(* (pow x 2) (- 2 (/ 1 (pow x 2))))
Outputs
-1
#s(literal -1 binary64)
(- (* 2 (pow x 2)) 1)
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
(pow x 2)
(*.f64 x x)
(* 2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(* (pow x 2) (- 2 (/ 1 (pow x 2))))
(*.f64 (*.f64 (-.f64 #s(literal 2 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x) x)

rewrite63.0ms (2.2%)

Memory
-9.3MiB live, 36.4MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01018
01318
14817
033617
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
3 → 46
Calls
Call 1
Inputs
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
(*.f64 x x)
Outputs
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64))) (-.f64 #s(literal -1 binary64) (*.f64 (*.f64 x x) #s(literal 2 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal 1 binary64))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 8 binary64) #s(literal -1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (*.f64 x x) #s(literal -2 binary64)))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 8 binary64) #s(literal -1 binary64))) (neg.f64 (+.f64 (fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal 1 binary64)) (pow.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal 1 binary64)))
(/.f64 (fma.f64 (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 8 binary64) #s(literal -1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64)) (*.f64 (*.f64 x x) #s(literal -2 binary64)))))
(/.f64 (fma.f64 (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 8 binary64) #s(literal -1 binary64)) (+.f64 (fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal 1 binary64)) (pow.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64))))
(/.f64 (fma.f64 (pow.f64 (*.f64 x x) #s(literal 3 binary64)) #s(literal 8 binary64) #s(literal -1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (*.f64 x x) #s(literal -2 binary64))))
(fma.f64 (*.f64 #s(literal 2 binary64) (neg.f64 x)) (neg.f64 x) #s(literal -1 binary64))
(fma.f64 (*.f64 #s(literal 2 binary64) (fabs.f64 x)) (fabs.f64 x) #s(literal -1 binary64))
(fma.f64 (*.f64 #s(literal 2 binary64) x) x #s(literal -1 binary64))
(fma.f64 (*.f64 (*.f64 x x) #s(literal -2 binary64)) #s(literal -1 binary64) #s(literal -1 binary64))
(fma.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 2 binary64)) #s(literal -1 binary64))
(fma.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 2 binary64)) #s(literal -1 binary64))
(fma.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64) #s(literal -1 binary64))
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal -1 binary64))
(fma.f64 #s(literal 2 binary64) (*.f64 (*.f64 x x) #s(literal 1 binary64)) #s(literal -1 binary64))
(fma.f64 #s(literal 2 binary64) (*.f64 x x) #s(literal -1 binary64))
(fma.f64 x (*.f64 (*.f64 #s(literal 2 binary64) x) #s(literal 1 binary64)) #s(literal -1 binary64))
(fma.f64 x (*.f64 #s(literal 2 binary64) x) #s(literal -1 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64)) (fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal 1 binary64))))
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 3 binary64)) (+.f64 (fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal 1 binary64)) (pow.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64)))) (/.f64 #s(literal 1 binary64) (+.f64 (fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal 1 binary64)) (pow.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64)))))
(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
(-.f64 #s(literal -1 binary64) (*.f64 (neg.f64 (*.f64 x x)) #s(literal 2 binary64)))
(-.f64 #s(literal -1 binary64) (*.f64 #s(literal -2 binary64) (*.f64 x x)))
(-.f64 #s(literal -1 binary64) (*.f64 (neg.f64 x) (*.f64 #s(literal 2 binary64) x)))
(+.f64 (/.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (*.f64 x x) #s(literal -2 binary64)))) (/.f64 #s(literal -1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (*.f64 x x) #s(literal -2 binary64)))))
(+.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal -1 binary64))
(+.f64 #s(literal -1 binary64) (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) x)
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 x x)
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(neg.f64 (*.f64 x (neg.f64 x)))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))

eval5.0ms (0.2%)

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

Compiled 602 to 128 computations (78.7% saved)

prune2.0ms (0.1%)

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

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New49150
Fresh000
Picked022
Done000
Total49352
Accuracy
100.0%
Counts
52 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
50.3%
#s(approx (- (* (* x x) 2) 1) (*.f64 (*.f64 x x) #s(literal 2 binary64)))
50.9%
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
Compiler

Compiled 28 to 23 computations (17.9% saved)

simplify190.0ms (6.8%)

Memory
-39.9MiB live, 86.8MiB allocated; 99ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x x)
cost-diff0
(*.f64 (*.f64 x x) #s(literal 2 binary64))
cost-diff0
#s(approx (- (* (* x x) 2) 1) (*.f64 (*.f64 x x) #s(literal 2 binary64)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0923
01123
12123
25823
320423
466623
5404523
0854822
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (- (* (* x x) 2) 1) (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x x)
x
#s(literal 2 binary64)
Outputs
#s(approx (- (* (* x x) 2) 1) (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x x)
x
#s(literal 2 binary64)

localize16.0ms (0.6%)

Memory
12.9MiB live, 12.9MiB allocated; 0ms collecting garbage
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 x x)
accuracy0.00390625
(*.f64 (*.f64 x x) #s(literal 2 binary64))
accuracy31.798677460662574
#s(approx (- (* (* x x) 2) 1) (*.f64 (*.f64 x x) #s(literal 2 binary64)))
Samples
10.0ms256×0valid
Compiler

Compiled 19 to 8 computations (57.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 3.0ms (58.8% of total)
ival-sub: 1.0ms (19.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)

series2.0ms (0.1%)

Memory
1.7MiB live, 1.7MiB allocated; 0ms collecting garbage
Counts
3 → 5
Calls
Call 1
Inputs
#s(approx (- (* (* x x) 2) 1) (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x x)
Outputs
-1
(- (* 2 (pow x 2)) 1)
(* 2 (pow x 2))
(pow x 2)
(* (pow x 2) (- 2 (/ 1 (pow x 2))))
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((- (* (* x x) 2) 1) (* (* x x) 2) (* x x))
1.0ms
x
@-inf
((- (* (* x x) 2) 1) (* (* x x) 2) (* x x))
0.0ms
x
@0
((- (* (* x x) 2) 1) (* (* x x) 2) (* x x))

simplify133.0ms (4.7%)

Memory
-10.3MiB live, 78.4MiB allocated; 12ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01027
11727
24927
317727
489927
5715227
0815226
Stop Event
iter limit
node limit
Counts
5 → 5
Calls
Call 1
Inputs
-1
(- (* 2 (pow x 2)) 1)
(* 2 (pow x 2))
(pow x 2)
(* (pow x 2) (- 2 (/ 1 (pow x 2))))
Outputs
-1
#s(literal -1 binary64)
(- (* 2 (pow x 2)) 1)
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
(* 2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(pow x 2)
(*.f64 x x)
(* (pow x 2) (- 2 (/ 1 (pow x 2))))
(*.f64 (*.f64 (-.f64 #s(literal 2 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x) x)

rewrite55.0ms (2%)

Memory
-10.9MiB live, 45.5MiB allocated; 11ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0921
01121
13621
023620
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
3 → 41
Calls
Call 1
Inputs
#s(approx (- (* (* x x) 2) 1) (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 x x)
Outputs
#s(approx (- (* (* x x) 2) 1) (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(*.f64 (*.f64 #s(literal 2 binary64) (neg.f64 x)) (neg.f64 x))
(*.f64 (*.f64 #s(literal 2 binary64) (fabs.f64 x)) (fabs.f64 x))
(*.f64 (*.f64 #s(literal 2 binary64) x) x)
(*.f64 (neg.f64 x) (*.f64 (neg.f64 x) #s(literal 2 binary64)))
(*.f64 (fabs.f64 x) (*.f64 (fabs.f64 x) #s(literal 2 binary64)))
(*.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
(*.f64 (*.f64 x x) #s(literal 2 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(*.f64 #s(literal 2 binary64) (*.f64 (*.f64 x x) #s(literal 1 binary64)))
(*.f64 #s(literal 2 binary64) (*.f64 x x))
(*.f64 x (*.f64 (*.f64 #s(literal 2 binary64) x) #s(literal 1 binary64)))
(*.f64 x (*.f64 #s(literal 2 binary64) x))
(fma.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)) (*.f64 x x))
(fma.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)) (*.f64 x x))
(fma.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)) (*.f64 x x))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)) (*.f64 x x))
(fma.f64 (pow.f64 x #s(literal 1 binary64)) x (*.f64 x x))
(fma.f64 (neg.f64 x) (neg.f64 x) (*.f64 x x))
(fma.f64 (fabs.f64 x) (fabs.f64 x) (*.f64 x x))
(fma.f64 (*.f64 x x) #s(literal 1 binary64) (*.f64 (*.f64 x x) #s(literal 1 binary64)))
(fma.f64 #s(literal 1 binary64) (*.f64 x x) (*.f64 #s(literal 1 binary64) (*.f64 x x)))
(fma.f64 x x (*.f64 x x))
(+.f64 (*.f64 #s(literal 1 binary64) (*.f64 x x)) (*.f64 #s(literal 1 binary64) (*.f64 x x)))
(+.f64 (*.f64 (*.f64 x x) #s(literal 1 binary64)) (*.f64 (*.f64 x x) #s(literal 1 binary64)))
(+.f64 (*.f64 x x) (*.f64 x x))
(*.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 x)))
(*.f64 (neg.f64 (fabs.f64 x)) (neg.f64 (fabs.f64 x)))
(*.f64 (fabs.f64 (fabs.f64 x)) (fabs.f64 (fabs.f64 x)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) (pow.f64 x #s(literal 1 binary64)))
(*.f64 (pow.f64 x #s(literal 1 binary64)) x)
(*.f64 (neg.f64 x) (neg.f64 x))
(*.f64 (fabs.f64 x) (fabs.f64 x))
(*.f64 x x)
(pow.f64 (neg.f64 x) #s(literal 2 binary64))
(pow.f64 (fabs.f64 x) #s(literal 2 binary64))
(pow.f64 x #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 x) x))
(neg.f64 (*.f64 x (neg.f64 x)))
(fabs.f64 (*.f64 x x))
(exp.f64 (*.f64 (log.f64 x) #s(literal 2 binary64)))

eval5.0ms (0.2%)

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

Compiled 712 to 133 computations (81.3% saved)

prune4.0ms (0.1%)

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

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New46046
Fresh000
Picked011
Done022
Total46349
Accuracy
100.0%
Counts
49 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
50.3%
#s(approx (- (* (* x x) 2) 1) (*.f64 (*.f64 x x) #s(literal 2 binary64)))
50.9%
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
Compiler

Compiled 63 to 38 computations (39.7% saved)

regimes10.0ms (0.4%)

Memory
-24.0MiB live, 21.5MiB allocated; 5ms collecting garbage
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
#s(approx (- (* (* x x) 2) 1) (*.f64 (*.f64 x x) #s(literal 2 binary64)))
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
Outputs
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
Calls

4 calls:

3.0ms
x
2.0ms
(*.f64 (*.f64 x x) #s(literal 2 binary64))
2.0ms
(*.f64 x x)
1.0ms
(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
Results
AccuracySegmentsBranch
100.0%1(*.f64 x x)
100.0%1(*.f64 (*.f64 x x) #s(literal 2 binary64))
100.0%1(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
100.0%1x
Compiler

Compiled 16 to 13 computations (18.8% saved)

regimes5.0ms (0.2%)

Memory
15.6MiB live, 15.6MiB allocated; 0ms collecting garbage
Counts
2 → 2
Calls
Call 1
Inputs
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
#s(approx (- (* (* x x) 2) 1) (*.f64 (*.f64 x x) #s(literal 2 binary64)))
Outputs
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
#s(approx (- (* (* x x) 2) 1) (*.f64 (*.f64 x x) #s(literal 2 binary64)))
Calls

4 calls:

1.0ms
x
1.0ms
(*.f64 (*.f64 x x) #s(literal 2 binary64))
1.0ms
(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
1.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
99.4%2(*.f64 x x)
99.4%2(*.f64 (*.f64 x x) #s(literal 2 binary64))
99.4%2(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
99.4%2x
Compiler

Compiled 16 to 13 computations (18.8% saved)

regimes7.0ms (0.2%)

Memory
-31.8MiB live, 14.3MiB allocated; 4ms collecting garbage
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
Outputs
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
Calls

4 calls:

3.0ms
(*.f64 x x)
1.0ms
x
1.0ms
(*.f64 (*.f64 x x) #s(literal 2 binary64))
1.0ms
(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
Results
AccuracySegmentsBranch
50.9%1(*.f64 x x)
50.9%1(*.f64 (*.f64 x x) #s(literal 2 binary64))
50.9%1(-.f64 (*.f64 (*.f64 x x) #s(literal 2 binary64)) #s(literal 1 binary64))
50.9%1x
Compiler

Compiled 16 to 13 computations (18.8% saved)

bsearch12.0ms (0.4%)

Memory
26.5MiB live, 26.5MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
11.0ms
0.12886321219464955
28473.366371047636
Samples
6.0ms144×0valid
Compiler

Compiled 208 to 190 computations (8.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-mult: 2.0ms (69.6% of total)
ival-sub: 1.0ms (34.8% 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)

simplify56.0ms (2%)

Memory
18.2MiB live, 65.0MiB allocated; 4ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01541
12541
26241
321741
4109341
5445741
Stop Event
node limit
Calls
Call 1
Inputs
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
(if (<=.f64 x #s(literal 3152519739159347/4503599627370496 binary64)) #s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64)) #s(approx (- (* (* x x) 2) 1) (*.f64 (*.f64 x x) #s(literal 2 binary64))))
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))
Outputs
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal -1 binary64))
(if (<=.f64 x #s(literal 3152519739159347/4503599627370496 binary64)) #s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64)) #s(approx (- (* (* x x) 2) 1) (*.f64 (*.f64 x x) #s(literal 2 binary64))))
#s(approx (- (* (* x x) 2) 1) #s(literal -1 binary64))

derivations240.0ms (8.6%)

Memory
-48.1MiB live, 194.7MiB allocated; 26ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01027
11727
24927
317727
489927
5715227
0815226
0615
0915
13415
023414
01027
11727
24927
317727
489927
5715927
0815926
Stop Event
done
iter limit
node limit
iter limit
iter limit
iter limit
unsound
iter limit
iter limit
node limit
Compiler

Compiled 41 to 16 computations (61% saved)

preprocess35.0ms (1.2%)

Memory
1.4MiB live, 47.1MiB allocated; 4ms collecting garbage
Remove

(abs x)

Compiler

Compiled 108 to 54 computations (50% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...