Numeric.SpecFunctions:$slogFactorial from math-functions-0.1.5.2, A

Time bar (total: 1.7s)

analyze1.0ms (0.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
50%50%50%0%0%0%0%2
75%75%25%0%0%0%0%3
87.5%87.5%12.5%0%0%0%0%4
93.8%93.7%6.2%0%0%0%0%5
96.9%96.8%3.1%0%0%0%0%6
98.4%98.4%1.6%0%0%0%0%7
99.2%99.2%0.8%0%0%0%0%8
99.6%99.6%0.4%0%0%0%0%9
99.8%99.8%0.2%0%0%0%0%10
99.9%99.9%0.1%0%0%0%0%11
100%99.9%0%0%0%0%0%12
Compiler

Compiled 7 to 5 computations (28.6% saved)

sample858.0ms (51.5%)

Results
705.0ms6188×body256valid
142.0ms2068×body256infinite
Bogosity

preprocess51.0ms (3%)

Algorithm
egg-herbie
Rules
24×fma-def
17×associate-/r*
*-commutative
associate-*r*
associate-/l/
Problems
252×No Errors
(/.f64 1 (*.f64 x x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01039
12639
24339
38739
412839
515239
Stop Event
saturated
Calls
Call 1
Inputs
(/.f64 1 (*.f64 x x))
(/.f64 1 (*.f64 x x))
(/.f64 1 (*.f64 (neg.f64 x) (neg.f64 x)))
Outputs
(/.f64 1 (*.f64 x x))
(/.f64 1 (*.f64 x x))
(/.f64 1 (*.f64 (neg.f64 x) (neg.f64 x)))
(/.f64 1 (*.f64 x x))
Symmetry

(abs x)

Compiler

Compiled 18 to 10 computations (44.4% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune1.0ms (0.1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
99.1%
(/.f64 1 (*.f64 x x))
99.1%
(/.f64 1 (*.f64 x x))
Compiler

Compiled 12 to 8 computations (33.3% saved)

localize20.0ms (1.2%)

Localize:

Found 2 expressions with local error:

NewAccuracyProgram
99.1%
(/.f64 1 (*.f64 x x))
99.1%
(/.f64 1 (*.f64 x x))
Compiler

Compiled 12 to 6 computations (50% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@0
(/.f64 1 (*.f64 x x))
0.0ms
x
@inf
(/.f64 1 (*.f64 x x))
0.0ms
x
@-inf
(/.f64 1 (*.f64 x x))

rewrite93.0ms (5.6%)

Algorithm
rewrite-once
batch-egg-rewrite
Rules
298×associate-*r/
282×associate-*l*
210×associate-*l/
191×unswap-sqr
183×unpow-prod-down
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0613
1247
2717
32497
411037
Stop Event
node limit
Counts
1 → 43
Calls
Call 1
Inputs
(/.f64 1 (*.f64 x x))
Outputs
-9
-8
-6
-4
-3
-2
-3/2
-1
-3/4
-1/2
-1/4
-1/8
-1/16
0
1/8
1/4
1/2
3/4
1
3/2
2
3
4
6
8
9
12
18
x
Calls

3 calls:

1.0ms
(/.f64 1 (*.f64 x x))
0.0ms
(/.f64 1 (*.f64 x x))
0.0ms
(/.f64 1 (*.f64 x x))

simplify74.0ms (4.4%)

Algorithm
egg-herbie
Rules
562×fma-def
440×associate-*r/
428×*-commutative
393×associate-/l*
333×associate-+r+
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
063407
187407
2268407
31061407
44068257
Stop Event
node limit
Counts
55 → 44
Calls
Call 1
Inputs
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
-9
-8
-6
-4
-3
-2
-3/2
-1
-3/4
-1/2
-1/4
-1/8
-1/16
0
1/8
1/4
1/2
3/4
1
3/2
2
3
4
6
8
9
12
18
(exp.f64 (log.f64 (/.f64 1 (*.f64 x x))))
(log.f64 (exp.f64 (/.f64 1 (*.f64 x x))))
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 x x))) (sqrt.f64 (/.f64 1 (*.f64 x x))))
(log1p.f64 (expm1.f64 (/.f64 1 (*.f64 x x))))
(expm1.f64 (log1p.f64 (/.f64 1 (*.f64 x x))))
(*.f64 1 (/.f64 1 (*.f64 x x)))
(*.f64 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 x x))) (cbrt.f64 (/.f64 1 (*.f64 x x)))) (cbrt.f64 (/.f64 1 (*.f64 x x))))
(cbrt.f64 (*.f64 (*.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (*.f64 x x))) (/.f64 1 (*.f64 x x))))
(pow.f64 (/.f64 1 (*.f64 x x)) 1)
(binary32->binary64 (binary64->binary32 (/.f64 1 (*.f64 x x))))
(binary32->binary64 (binary64->binary32 (/.f64 1 (*.f64 x x))))
(binary32->binary64 (/.f32 1 (*.f32 (binary64->binary32 x) (binary64->binary32 x))))
(binary32->binary64 (binary64->binary32 (/.f64 1 (*.f64 x x))))
(binary32->binary64 (binary64->binary32 (/.f64 1 (*.f64 x x))))
(binary32->binary64 (/.f32 1 (*.f32 (binary64->binary32 x) (binary64->binary32 x))))
Outputs
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
-9
-8
-6
-4
-3
-2
-3/2
-1
-3/4
-1/2
-1/4
-1/8
-1/16
0
1/8
1/4
1/2
3/4
1
3/2
2
3
4
6
8
9
12
18
(exp.f64 (log.f64 (/.f64 1 (*.f64 x x))))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(log.f64 (exp.f64 (/.f64 1 (*.f64 x x))))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(*.f64 (sqrt.f64 (/.f64 1 (*.f64 x x))) (sqrt.f64 (/.f64 1 (*.f64 x x))))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(log1p.f64 (expm1.f64 (/.f64 1 (*.f64 x x))))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(expm1.f64 (log1p.f64 (/.f64 1 (*.f64 x x))))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(*.f64 1 (/.f64 1 (*.f64 x x)))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(*.f64 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 x x))) (cbrt.f64 (/.f64 1 (*.f64 x x)))) (cbrt.f64 (/.f64 1 (*.f64 x x))))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(cbrt.f64 (*.f64 (*.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (*.f64 x x))) (/.f64 1 (*.f64 x x))))
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(pow.f64 (/.f64 1 (*.f64 x x)) 1)
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
(binary32->binary64 (binary64->binary32 (/.f64 1 (*.f64 x x))))
(binary32->binary64 (binary64->binary32 (pow.f64 x -2)))
(binary32->binary64 (binary64->binary32 (/.f64 1 (*.f64 x x))))
(binary32->binary64 (binary64->binary32 (pow.f64 x -2)))
(binary32->binary64 (/.f32 1 (*.f32 (binary64->binary32 x) (binary64->binary32 x))))
(binary32->binary64 (/.f32 (/.f32 1 (binary64->binary32 x)) (binary64->binary32 x)))
(binary32->binary64 (binary64->binary32 (/.f64 1 (*.f64 x x))))
(binary32->binary64 (binary64->binary32 (pow.f64 x -2)))
(binary32->binary64 (binary64->binary32 (/.f64 1 (*.f64 x x))))
(binary32->binary64 (binary64->binary32 (pow.f64 x -2)))
(binary32->binary64 (/.f32 1 (*.f32 (binary64->binary32 x) (binary64->binary32 x))))
(binary32->binary64 (/.f32 (/.f32 1 (binary64->binary32 x)) (binary64->binary32 x)))

eval6.0ms (0.4%)

Compiler

Compiled 163 to 106 computations (35% saved)

prune16.0ms (1%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New39544
Fresh000
Picked011
Done000
Total39645
Accuracy
100.0%
Counts
45 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 x -2)
99.1%
(/.f64 1 (*.f64 x x))
4.4%
18
4.4%
1/2
4.4%
1/8
28.9%
0
100.0%
(pow.f64 x -2)
99.1%
(/.f64 1 (*.f64 x x))
4.4%
18
4.4%
1/2
4.4%
1/8
28.9%
0
Compiler

Compiled 36 to 30 computations (16.7% saved)

localize19.0ms (1.1%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune4.0ms (0.2%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New000
Fresh044
Picked011
Done011
Total066
Accuracy
100.0%
Counts
6 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 x -2)
99.1%
(/.f64 1 (*.f64 x x))
4.4%
18
4.4%
1/2
4.4%
1/8
28.9%
0
100.0%
(pow.f64 x -2)
99.1%
(/.f64 1 (*.f64 x x))
4.4%
18
4.4%
1/2
4.4%
1/8
28.9%
0
Compiler

Compiled 36 to 30 computations (16.7% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune4.0ms (0.2%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New000
Fresh044
Picked000
Done022
Total066
Accuracy
100.0%
Counts
6 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 x -2)
99.1%
(/.f64 1 (*.f64 x x))
4.4%
18
4.4%
1/2
4.4%
1/8
28.9%
0
100.0%
(pow.f64 x -2)
99.1%
(/.f64 1 (*.f64 x x))
4.4%
18
4.4%
1/2
4.4%
1/8
28.9%
0
Compiler

Compiled 36 to 30 computations (16.7% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune3.0ms (0.2%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New000
Fresh044
Picked000
Done022
Total066
Accuracy
100.0%
Counts
6 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 x -2)
99.1%
(/.f64 1 (*.f64 x x))
4.4%
18
4.4%
1/2
4.4%
1/8
28.9%
0
Compiler

Compiled 31 to 25 computations (19.4% saved)

regimes64.0ms (3.8%)

Counts
6 → 1
Calls
Call 1
Inputs
0
1/8
1/2
18
(/.f64 1 (*.f64 x x))
(pow.f64 x -2)
Outputs
(pow.f64 x -2)
Calls

3 calls:

5.0ms
x
4.0ms
(/.f64 1 (*.f64 x x))
3.0ms
(*.f64 x x)
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(/.f64 1 (*.f64 x x))
100.0%1(*.f64 x x)
Compiler

Compiled 25 to 17 computations (32% saved)

regimes14.0ms (0.9%)

Counts
5 → 1
Calls
Call 1
Inputs
0
1/8
1/2
18
(/.f64 1 (*.f64 x x))
Outputs
(/.f64 1 (*.f64 x x))
Calls

3 calls:

5.0ms
x
3.0ms
(*.f64 x x)
3.0ms
(/.f64 1 (*.f64 x x))
Results
AccuracySegmentsBranch
99.1%1x
99.1%1(/.f64 1 (*.f64 x x))
99.1%1(*.f64 x x)
Compiler

Compiled 22 to 15 computations (31.8% saved)

regimes12.0ms (0.7%)

Counts
4 → 2
Calls
Call 1
Inputs
0
1/8
1/2
18
Outputs
1/2
0
Calls

1 calls:

11.0ms
x
Results
AccuracySegmentsBranch
30.6%2x
Compiler

Compiled 7 to 6 computations (14.3% saved)

regimes10.0ms (0.6%)

Counts
2 → 2
Calls
Call 1
Inputs
0
1/8
Outputs
1/8
0
Calls

1 calls:

9.0ms
x
Results
AccuracySegmentsBranch
30.6%2x
Compiler

Compiled 5 to 4 computations (20% saved)

regimes3.0ms (0.2%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
0
Outputs
0
Calls

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
28.9%1x
Compiler

Compiled 4 to 3 computations (25% saved)

bsearch12.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
12.0ms
4.40629760698198e+76
6.898358916840948e+80
Results
11.0ms128×body256valid
Compiler

Compiled 58 to 55 computations (5.2% saved)

bsearch12.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
11.0ms
4.40629760698198e+76
6.898358916840948e+80
Results
10.0ms128×body256valid
Compiler

Compiled 58 to 55 computations (5.2% saved)

simplify10.0ms (0.6%)

Algorithm
egg-herbie
Rules
1-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02043
12543
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(pow.f64 x -2)
(/.f64 1 (*.f64 x x))
(if (<=.f64 x 119999999999999992791711785436734146363018478165098748993720564156436311965696) 1/2 0)
(if (<=.f64 x 160000000000000007529621519344875134264953622525866092228459352558371992502272) 1/8 0)
0
Outputs
(pow.f64 x -2)
(/.f64 1 (*.f64 x x))
(if (<=.f64 x 119999999999999992791711785436734146363018478165098748993720564156436311965696) 1/2 0)
(if (<=.f64 x 160000000000000007529621519344875134264953622525866092228459352558371992502272) 1/8 0)
0
Compiler

Compiled 26 to 21 computations (19.2% saved)

soundness336.0ms (20.2%)

Rules
562×fma-def
440×associate-*r/
428×*-commutative
393×associate-/l*
333×associate-+r+
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
063407
187407
2268407
31061407
44068257
0613
1247
2717
32497
411037
0613
1247
2717
32497
411037
0613
1247
2717
32497
411037
Stop Event
node limit
node limit
node limit
node limit
Compiler

Compiled 55 to 38 computations (30.9% saved)

end0.0ms (0%)

preprocess45.0ms (2.7%)

Remove

(abs x)

Compiler

Compiled 76 to 56 computations (26.3% saved)

Profiling

Loading profile data...