ENA, Section 1.4, Mentioned, A

Time bar (total: 4.7s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%49.6%50.4%0%0%0%0
100%49.6%0%50.4%0%0%0%1
Compiler

Compiled 12 to 9 computations (25% saved)

sample3.5s (75.8%)

Results
2.6s4395×body2048valid
584.0ms2080×body1024valid
202.0ms1037×body512valid
105.0ms744×body256valid
Bogosity

preprocess16.0ms (0.3%)

Algorithm
egg-herbie
Rules
22×sub-neg
16×fma-def
12×+-commutative
associate--r+
associate-+l-
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01022
11722
22222
33122
44122
55522
67022
77922
88222
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 1 (cos.f64 x))
(-.f64 1 (cos.f64 (neg.f64 x)))
Outputs
(-.f64 1 (cos.f64 x))
(-.f64 1 (cos.f64 (neg.f64 x)))
(-.f64 1 (cos.f64 x))
Symmetry

(abs x)

Compiler

Compiled 6 to 5 computations (16.7% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Rules
16×sub-neg
12×fma-def
+-commutative
associate--r+
associate-+l-
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
11111
21511
32211
42911
53911
65011
76211
86511
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(-.f64 1 (cos.f64 x))
Outputs
(-.f64 1 (cos.f64 x))

eval0.0ms (0%)

Compiler

Compiled 5 to 4 computations (20% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Accurracy
55.8%
Counts
2 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.8%
(-.f64 1 (cos.f64 x))
55.8%
(-.f64 1 (cos.f64 x))
Compiler

Compiled 10 to 8 computations (20% saved)

localize87.0ms (1.9%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
55.8%
(-.f64 1 (cos.f64 x))
Compiler

Compiled 10 to 6 computations (40% saved)

series1.0ms (0%)

Counts
1 → 4
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(-.f64 1 (cos.f64 x))
0.0ms
x
@inf
(-.f64 1 (cos.f64 x))
0.0ms
x
@-inf
(-.f64 1 (cos.f64 x))

rewrite54.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
1386×pow1
1278×add-exp-log
1278×log1p-expm1-u
1278×expm1-log1p-u
1252×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
114011
2169111
Stop Event
node limit
Counts
1 → 28
Calls
Call 1
Inputs
(-.f64 1 (cos.f64 x))
Outputs
(+.f64 1 (neg.f64 (cos.f64 x)))
(+.f64 1 (*.f64 (neg.f64 (cos.f64 x)) 1))
(+.f64 (neg.f64 (cos.f64 x)) 1)
(*.f64 1 (-.f64 1 (cos.f64 x)))
(*.f64 (-.f64 1 (cos.f64 x)) 1)
(*.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) (pow.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) 2))
(*.f64 (pow.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) 2) (cbrt.f64 (-.f64 1 (cos.f64 x))))
(*.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) (sqrt.f64 (-.f64 1 (cos.f64 x))))
(*.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (/.f64 1 (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2)))))
(*.f64 (*.f64 (sin.f64 x) (sin.f64 x)) (/.f64 1 (+.f64 1 (cos.f64 x))))
(/.f64 1 (/.f64 (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))) (-.f64 1 (pow.f64 (cos.f64 x) 3))))
(/.f64 1 (/.f64 (+.f64 1 (cos.f64 x)) (*.f64 (sin.f64 x) (sin.f64 x))))
(/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))))
(/.f64 (*.f64 (sin.f64 x) (sin.f64 x)) (+.f64 1 (cos.f64 x)))
(/.f64 (neg.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3))) (neg.f64 (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2)))))
(/.f64 (neg.f64 (*.f64 (sin.f64 x) (sin.f64 x))) (neg.f64 (+.f64 1 (cos.f64 x))))
(/.f64 (+.f64 1 (pow.f64 (neg.f64 (cos.f64 x)) 3)) (+.f64 1 (-.f64 (*.f64 (neg.f64 (cos.f64 x)) (neg.f64 (cos.f64 x))) (neg.f64 (cos.f64 x)))))
(/.f64 (-.f64 1 (*.f64 (neg.f64 (cos.f64 x)) (neg.f64 (cos.f64 x)))) (-.f64 1 (neg.f64 (cos.f64 x))))
(pow.f64 (-.f64 1 (cos.f64 x)) 1)
(pow.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) 3)
(pow.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 3) 1/3)
(pow.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) 2)
(sqrt.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 2))
(log.f64 (exp.f64 (-.f64 1 (cos.f64 x))))
(cbrt.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 3))
(expm1.f64 (log1p.f64 (-.f64 1 (cos.f64 x))))
(exp.f64 (log1p.f64 (neg.f64 (cos.f64 x))))
(log1p.f64 (expm1.f64 (-.f64 1 (cos.f64 x))))

simplify52.0ms (1.1%)

Algorithm
egg-herbie
Rules
1070×associate-/l*
998×div-sub
824×distribute-lft-in
782×distribute-rgt-in
724×associate-/r*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
093800
1231740
2679670
33306670
Stop Event
node limit
Counts
32 → 44
Calls
Call 1
Inputs
(*.f64 1/2 (pow.f64 x 2))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/24 (pow.f64 x 4)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/40320 (pow.f64 x 8)))))
(+.f64 1 (neg.f64 (cos.f64 x)))
(+.f64 1 (*.f64 (neg.f64 (cos.f64 x)) 1))
(+.f64 (neg.f64 (cos.f64 x)) 1)
(*.f64 1 (-.f64 1 (cos.f64 x)))
(*.f64 (-.f64 1 (cos.f64 x)) 1)
(*.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) (pow.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) 2))
(*.f64 (pow.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) 2) (cbrt.f64 (-.f64 1 (cos.f64 x))))
(*.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) (sqrt.f64 (-.f64 1 (cos.f64 x))))
(*.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (/.f64 1 (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2)))))
(*.f64 (*.f64 (sin.f64 x) (sin.f64 x)) (/.f64 1 (+.f64 1 (cos.f64 x))))
(/.f64 1 (/.f64 (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))) (-.f64 1 (pow.f64 (cos.f64 x) 3))))
(/.f64 1 (/.f64 (+.f64 1 (cos.f64 x)) (*.f64 (sin.f64 x) (sin.f64 x))))
(/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))))
(/.f64 (*.f64 (sin.f64 x) (sin.f64 x)) (+.f64 1 (cos.f64 x)))
(/.f64 (neg.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3))) (neg.f64 (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2)))))
(/.f64 (neg.f64 (*.f64 (sin.f64 x) (sin.f64 x))) (neg.f64 (+.f64 1 (cos.f64 x))))
(/.f64 (+.f64 1 (pow.f64 (neg.f64 (cos.f64 x)) 3)) (+.f64 1 (-.f64 (*.f64 (neg.f64 (cos.f64 x)) (neg.f64 (cos.f64 x))) (neg.f64 (cos.f64 x)))))
(/.f64 (-.f64 1 (*.f64 (neg.f64 (cos.f64 x)) (neg.f64 (cos.f64 x)))) (-.f64 1 (neg.f64 (cos.f64 x))))
(pow.f64 (-.f64 1 (cos.f64 x)) 1)
(pow.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) 3)
(pow.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 3) 1/3)
(pow.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) 2)
(sqrt.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 2))
(log.f64 (exp.f64 (-.f64 1 (cos.f64 x))))
(cbrt.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 3))
(expm1.f64 (log1p.f64 (-.f64 1 (cos.f64 x))))
(exp.f64 (log1p.f64 (neg.f64 (cos.f64 x))))
(log1p.f64 (expm1.f64 (-.f64 1 (cos.f64 x))))
Outputs
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (*.f64 x x))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/24 (pow.f64 x 4)))
(fma.f64 1/2 (*.f64 x x) (*.f64 -1/24 (pow.f64 x 4)))
(fma.f64 -1/24 (pow.f64 x 4) (*.f64 1/2 (*.f64 x x)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (*.f64 1/720 (pow.f64 x 6))))
(fma.f64 1/2 (*.f64 x x) (fma.f64 -1/24 (pow.f64 x 4) (*.f64 1/720 (pow.f64 x 6))))
(fma.f64 -1/24 (pow.f64 x 4) (fma.f64 1/2 (*.f64 x x) (*.f64 1/720 (pow.f64 x 6))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/24 (pow.f64 x 4)) (+.f64 (*.f64 1/720 (pow.f64 x 6)) (*.f64 -1/40320 (pow.f64 x 8)))))
(fma.f64 1/2 (*.f64 x x) (fma.f64 -1/24 (pow.f64 x 4) (fma.f64 1/720 (pow.f64 x 6) (*.f64 -1/40320 (pow.f64 x 8)))))
(fma.f64 1/2 (*.f64 x x) (fma.f64 1/720 (pow.f64 x 6) (fma.f64 -1/24 (pow.f64 x 4) (*.f64 -1/40320 (pow.f64 x 8)))))
(+.f64 1 (neg.f64 (cos.f64 x)))
(-.f64 1 (cos.f64 x))
(+.f64 1 (*.f64 (neg.f64 (cos.f64 x)) 1))
(-.f64 1 (cos.f64 x))
(+.f64 (neg.f64 (cos.f64 x)) 1)
(-.f64 1 (cos.f64 x))
(*.f64 1 (-.f64 1 (cos.f64 x)))
(-.f64 1 (cos.f64 x))
(*.f64 (-.f64 1 (cos.f64 x)) 1)
(-.f64 1 (cos.f64 x))
(*.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) (pow.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) 2))
(-.f64 1 (cos.f64 x))
(*.f64 (pow.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) 2) (cbrt.f64 (-.f64 1 (cos.f64 x))))
(-.f64 1 (cos.f64 x))
(*.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) (sqrt.f64 (-.f64 1 (cos.f64 x))))
(-.f64 1 (cos.f64 x))
(*.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (/.f64 1 (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2)))))
(*.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (/.f64 1 (+.f64 (+.f64 1 (cos.f64 x)) (pow.f64 (cos.f64 x) 2))))
(/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))))
(/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (fma.f64 (cos.f64 x) (+.f64 1 (cos.f64 x)) 1))
(*.f64 (*.f64 (sin.f64 x) (sin.f64 x)) (/.f64 1 (+.f64 1 (cos.f64 x))))
(/.f64 (*.f64 (*.f64 (sin.f64 x) (sin.f64 x)) 1) (+.f64 1 (cos.f64 x)))
(/.f64 (*.f64 (sin.f64 x) (sin.f64 x)) (+.f64 1 (cos.f64 x)))
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
(/.f64 1 (/.f64 (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))) (-.f64 1 (pow.f64 (cos.f64 x) 3))))
(*.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (/.f64 1 (+.f64 (+.f64 1 (cos.f64 x)) (pow.f64 (cos.f64 x) 2))))
(/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))))
(/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (fma.f64 (cos.f64 x) (+.f64 1 (cos.f64 x)) 1))
(/.f64 1 (/.f64 (+.f64 1 (cos.f64 x)) (*.f64 (sin.f64 x) (sin.f64 x))))
(/.f64 (*.f64 (*.f64 (sin.f64 x) (sin.f64 x)) 1) (+.f64 1 (cos.f64 x)))
(/.f64 (*.f64 (sin.f64 x) (sin.f64 x)) (+.f64 1 (cos.f64 x)))
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
(/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))))
(*.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (/.f64 1 (+.f64 (+.f64 1 (cos.f64 x)) (pow.f64 (cos.f64 x) 2))))
(/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (fma.f64 (cos.f64 x) (+.f64 1 (cos.f64 x)) 1))
(/.f64 (*.f64 (sin.f64 x) (sin.f64 x)) (+.f64 1 (cos.f64 x)))
(/.f64 (*.f64 (*.f64 (sin.f64 x) (sin.f64 x)) 1) (+.f64 1 (cos.f64 x)))
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
(/.f64 (neg.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3))) (neg.f64 (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2)))))
(*.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (/.f64 1 (+.f64 (+.f64 1 (cos.f64 x)) (pow.f64 (cos.f64 x) 2))))
(/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))))
(/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (fma.f64 (cos.f64 x) (+.f64 1 (cos.f64 x)) 1))
(/.f64 (neg.f64 (*.f64 (sin.f64 x) (sin.f64 x))) (neg.f64 (+.f64 1 (cos.f64 x))))
(/.f64 (*.f64 (*.f64 (sin.f64 x) (sin.f64 x)) 1) (+.f64 1 (cos.f64 x)))
(/.f64 (*.f64 (sin.f64 x) (sin.f64 x)) (+.f64 1 (cos.f64 x)))
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
(/.f64 (+.f64 1 (pow.f64 (neg.f64 (cos.f64 x)) 3)) (+.f64 1 (-.f64 (*.f64 (neg.f64 (cos.f64 x)) (neg.f64 (cos.f64 x))) (neg.f64 (cos.f64 x)))))
(*.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (/.f64 1 (+.f64 (+.f64 1 (cos.f64 x)) (pow.f64 (cos.f64 x) 2))))
(/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (+.f64 1 (+.f64 (cos.f64 x) (pow.f64 (cos.f64 x) 2))))
(/.f64 (-.f64 1 (pow.f64 (cos.f64 x) 3)) (fma.f64 (cos.f64 x) (+.f64 1 (cos.f64 x)) 1))
(/.f64 (-.f64 1 (*.f64 (neg.f64 (cos.f64 x)) (neg.f64 (cos.f64 x)))) (-.f64 1 (neg.f64 (cos.f64 x))))
(/.f64 (*.f64 (*.f64 (sin.f64 x) (sin.f64 x)) 1) (+.f64 1 (cos.f64 x)))
(/.f64 (*.f64 (sin.f64 x) (sin.f64 x)) (+.f64 1 (cos.f64 x)))
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
(pow.f64 (-.f64 1 (cos.f64 x)) 1)
(-.f64 1 (cos.f64 x))
(pow.f64 (cbrt.f64 (-.f64 1 (cos.f64 x))) 3)
(-.f64 1 (cos.f64 x))
(pow.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 3) 1/3)
(-.f64 1 (cos.f64 x))
(pow.f64 (sqrt.f64 (-.f64 1 (cos.f64 x))) 2)
(-.f64 1 (cos.f64 x))
(sqrt.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 2))
(-.f64 1 (cos.f64 x))
(log.f64 (exp.f64 (-.f64 1 (cos.f64 x))))
(-.f64 1 (cos.f64 x))
(cbrt.f64 (pow.f64 (-.f64 1 (cos.f64 x)) 3))
(-.f64 1 (cos.f64 x))
(expm1.f64 (log1p.f64 (-.f64 1 (cos.f64 x))))
(-.f64 1 (cos.f64 x))
(exp.f64 (log1p.f64 (neg.f64 (cos.f64 x))))
(log1p.f64 (expm1.f64 (-.f64 1 (cos.f64 x))))
(-.f64 1 (cos.f64 x))

eval9.0ms (0.2%)

Compiler

Compiled 491 to 309 computations (37.1% saved)

prune7.0ms (0.2%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New42244
Fresh000
Picked011
Done000
Total42345
Accurracy
100.0%
Counts
45 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.8%
(-.f64 1 (cos.f64 x))
100.0%
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
99.3%
(*.f64 1/2 (*.f64 x x))
55.8%
(-.f64 1 (cos.f64 x))
100.0%
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
99.3%
(*.f64 1/2 (*.f64 x x))
Compiler

Compiled 38 to 28 computations (26.3% saved)

localize61.0ms (1.3%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(*.f64 1/2 (*.f64 x x))
Compiler

Compiled 30 to 17 computations (43.3% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite46.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1058×pow1
1024×add-sqr-sqrt
976×add-exp-log
976×log1p-expm1-u
976×expm1-log1p-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
112213
2138313
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 x x))
Outputs
(-.f64 (+.f64 1 (*.f64 1/2 (*.f64 x x))) 1)
(pow.f64 (*.f64 1/2 (*.f64 x x)) 1)
(pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 x x))) 3)
(pow.f64 (pow.f64 (*.f64 1/2 (*.f64 x x)) 3) 1/3)
(pow.f64 (*.f64 x (sqrt.f64 1/2)) 2)
(sqrt.f64 (*.f64 1/4 (pow.f64 x 4)))
(log.f64 (pow.f64 (exp.f64 1/2) (*.f64 x x)))
(cbrt.f64 (pow.f64 (*.f64 1/2 (*.f64 x x)) 3))
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 x x))))
(exp.f64 (log.f64 (*.f64 1/2 (*.f64 x x))))
(log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 x x))))

simplify55.0ms (1.2%)

Algorithm
egg-herbie
Rules
2120×log-prod
1106×distribute-rgt-in
1092×distribute-lft-in
768×associate-*r*
688×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
038299
190299
2319299
32131299
47005299
Stop Event
node limit
Counts
23 → 13
Calls
Call 1
Inputs
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (pow.f64 x 2))
(-.f64 (+.f64 1 (*.f64 1/2 (*.f64 x x))) 1)
(pow.f64 (*.f64 1/2 (*.f64 x x)) 1)
(pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 x x))) 3)
(pow.f64 (pow.f64 (*.f64 1/2 (*.f64 x x)) 3) 1/3)
(pow.f64 (*.f64 x (sqrt.f64 1/2)) 2)
(sqrt.f64 (*.f64 1/4 (pow.f64 x 4)))
(log.f64 (pow.f64 (exp.f64 1/2) (*.f64 x x)))
(cbrt.f64 (pow.f64 (*.f64 1/2 (*.f64 x x)) 3))
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 x x))))
(exp.f64 (log.f64 (*.f64 1/2 (*.f64 x x))))
(log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 x x))))
Outputs
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (*.f64 x x))
(*.f64 1/2 (pow.f64 x 2))
(*.f64 1/2 (*.f64 x x))
(-.f64 (+.f64 1 (*.f64 1/2 (*.f64 x x))) 1)
(*.f64 1/2 (*.f64 x x))
(pow.f64 (*.f64 1/2 (*.f64 x x)) 1)
(*.f64 1/2 (*.f64 x x))
(pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 x x))) 3)
(*.f64 1/2 (*.f64 x x))
(pow.f64 (pow.f64 (*.f64 1/2 (*.f64 x x)) 3) 1/3)
(*.f64 1/2 (*.f64 x x))
(pow.f64 (*.f64 x (sqrt.f64 1/2)) 2)
(*.f64 1/2 (*.f64 x x))
(sqrt.f64 (*.f64 1/4 (pow.f64 x 4)))
(*.f64 1/2 (*.f64 x x))
(log.f64 (pow.f64 (exp.f64 1/2) (*.f64 x x)))
(*.f64 1/2 (*.f64 x x))
(cbrt.f64 (pow.f64 (*.f64 1/2 (*.f64 x x)) 3))
(*.f64 1/2 (*.f64 x x))
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 x x))))
(*.f64 1/2 (*.f64 x x))
(exp.f64 (log.f64 (*.f64 1/2 (*.f64 x x))))
(*.f64 1/2 (*.f64 x x))
(log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 x x))))
(*.f64 1/2 (*.f64 x x))

eval2.0ms (0%)

Compiler

Compiled 92 to 60 computations (34.8% saved)

prune4.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New12113
Fresh000
Picked022
Done011
Total12416
Accurracy
100.0%
Counts
16 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
98.8%
(pow.f64 (*.f64 x (sqrt.f64 1/2)) 2)
55.8%
(-.f64 1 (cos.f64 x))
100.0%
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
99.3%
(*.f64 1/2 (*.f64 x x))
98.8%
(pow.f64 (*.f64 x (sqrt.f64 1/2)) 2)
55.8%
(-.f64 1 (cos.f64 x))
100.0%
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
99.3%
(*.f64 1/2 (*.f64 x x))
Compiler

Compiled 52 to 40 computations (23.1% saved)

localize33.0ms (0.7%)

Local Accuracy

Found 2 expressions with local accuracy:

NewAccuracyProgram
99.6%
(pow.f64 (*.f64 x (sqrt.f64 1/2)) 2)
99.3%
(*.f64 x (sqrt.f64 1/2))
Compiler

Compiled 17 to 14 computations (17.6% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite67.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
1456×pow1
1338×add-exp-log
1338×log1p-expm1-u
1338×expm1-log1p-u
1306×add-log-exp
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0928
118424
2195824
Stop Event
node limit
Counts
2 → 35
Calls
Call 1
Inputs
(*.f64 x (sqrt.f64 1/2))
(pow.f64 (*.f64 x (sqrt.f64 1/2)) 2)
Outputs
(-.f64 (+.f64 1 (*.f64 x (sqrt.f64 1/2))) 1)
(pow.f64 (*.f64 x (sqrt.f64 1/2)) 1)
(pow.f64 (*.f64 1/2 (*.f64 x x)) 1/2)
(pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 1/2))) 3)
(pow.f64 (pow.f64 (*.f64 x (sqrt.f64 1/2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (sqrt.f64 1/2))) 2)
(sqrt.f64 (*.f64 1/2 (*.f64 x x)))
(fabs.f64 (*.f64 x (sqrt.f64 1/2)))
(log.f64 (pow.f64 (exp.f64 x) (sqrt.f64 1/2)))
(cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 1/2)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (sqrt.f64 1/2))))
(exp.f64 (log.f64 (*.f64 x (sqrt.f64 1/2))))
(log1p.f64 (expm1.f64 (*.f64 x (sqrt.f64 1/2))))
(-.f64 (+.f64 1 (*.f64 1/2 (*.f64 x x))) 1)
(*.f64 x (*.f64 (sqrt.f64 1/2) (*.f64 x (sqrt.f64 1/2))))
(*.f64 1/2 (*.f64 x x))
(*.f64 (sqrt.f64 1/2) (*.f64 x (*.f64 x (sqrt.f64 1/2))))
(*.f64 (*.f64 x (sqrt.f64 1/2)) (*.f64 x (sqrt.f64 1/2)))
(*.f64 (*.f64 1/2 (*.f64 x x)) 1)
(*.f64 1 (*.f64 1/2 (*.f64 x x)))
(*.f64 (cbrt.f64 (*.f64 1/2 (*.f64 x x))) (cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 1/2)) 4)))
(*.f64 (cbrt.f64 (*.f64 1/2 (*.f64 x x))) (*.f64 (cbrt.f64 (*.f64 x (sqrt.f64 1/2))) (*.f64 x (sqrt.f64 1/2))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 1/2)) 4)) (cbrt.f64 (*.f64 1/2 (*.f64 x x))))
(*.f64 (*.f64 x x) 1/2)
(*.f64 (sqrt.f64 (*.f64 x (sqrt.f64 1/2))) (*.f64 (sqrt.f64 (*.f64 x (sqrt.f64 1/2))) (*.f64 x (sqrt.f64 1/2))))
(*.f64 (*.f64 (*.f64 x (sqrt.f64 1/2)) (sqrt.f64 (*.f64 x (sqrt.f64 1/2)))) (sqrt.f64 (*.f64 x (sqrt.f64 1/2))))
(*.f64 (*.f64 (*.f64 x (sqrt.f64 1/2)) x) (sqrt.f64 1/2))
(*.f64 (*.f64 (*.f64 x (sqrt.f64 1/2)) (sqrt.f64 1/2)) x)
(*.f64 (*.f64 (*.f64 x (sqrt.f64 1/2)) (cbrt.f64 (*.f64 1/2 (*.f64 x x)))) (cbrt.f64 (*.f64 x (sqrt.f64 1/2))))
(sqrt.f64 (pow.f64 (*.f64 x (sqrt.f64 1/2)) 4))
(log.f64 (pow.f64 (exp.f64 (*.f64 x x)) 1/2))
(cbrt.f64 (pow.f64 (*.f64 1/2 (*.f64 x x)) 3))
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 x x))))
(exp.f64 (log.f64 (*.f64 1/2 (*.f64 x x))))
(log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 x x))))

simplify68.0ms (1.5%)

Algorithm
egg-herbie
Rules
1238×fma-def
1214×distribute-rgt-in
1210×distribute-lft-in
1080×log-prod
600×associate-+r+
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0791097
1193777
2677769
32251769
47376769
Stop Event
node limit
Counts
59 → 42
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(-.f64 (+.f64 1 (*.f64 x (sqrt.f64 1/2))) 1)
(pow.f64 (*.f64 x (sqrt.f64 1/2)) 1)
(pow.f64 (*.f64 1/2 (*.f64 x x)) 1/2)
(pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 1/2))) 3)
(pow.f64 (pow.f64 (*.f64 x (sqrt.f64 1/2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (sqrt.f64 1/2))) 2)
(sqrt.f64 (*.f64 1/2 (*.f64 x x)))
(fabs.f64 (*.f64 x (sqrt.f64 1/2)))
(log.f64 (pow.f64 (exp.f64 x) (sqrt.f64 1/2)))
(cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 1/2)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (sqrt.f64 1/2))))
(exp.f64 (log.f64 (*.f64 x (sqrt.f64 1/2))))
(log1p.f64 (expm1.f64 (*.f64 x (sqrt.f64 1/2))))
(-.f64 (+.f64 1 (*.f64 1/2 (*.f64 x x))) 1)
(*.f64 x (*.f64 (sqrt.f64 1/2) (*.f64 x (sqrt.f64 1/2))))
(*.f64 1/2 (*.f64 x x))
(*.f64 (sqrt.f64 1/2) (*.f64 x (*.f64 x (sqrt.f64 1/2))))
(*.f64 (*.f64 x (sqrt.f64 1/2)) (*.f64 x (sqrt.f64 1/2)))
(*.f64 (*.f64 1/2 (*.f64 x x)) 1)
(*.f64 1 (*.f64 1/2 (*.f64 x x)))
(*.f64 (cbrt.f64 (*.f64 1/2 (*.f64 x x))) (cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 1/2)) 4)))
(*.f64 (cbrt.f64 (*.f64 1/2 (*.f64 x x))) (*.f64 (cbrt.f64 (*.f64 x (sqrt.f64 1/2))) (*.f64 x (sqrt.f64 1/2))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 1/2)) 4)) (cbrt.f64 (*.f64 1/2 (*.f64 x x))))
(*.f64 (*.f64 x x) 1/2)
(*.f64 (sqrt.f64 (*.f64 x (sqrt.f64 1/2))) (*.f64 (sqrt.f64 (*.f64 x (sqrt.f64 1/2))) (*.f64 x (sqrt.f64 1/2))))
(*.f64 (*.f64 (*.f64 x (sqrt.f64 1/2)) (sqrt.f64 (*.f64 x (sqrt.f64 1/2)))) (sqrt.f64 (*.f64 x (sqrt.f64 1/2))))
(*.f64 (*.f64 (*.f64 x (sqrt.f64 1/2)) x) (sqrt.f64 1/2))
(*.f64 (*.f64 (*.f64 x (sqrt.f64 1/2)) (sqrt.f64 1/2)) x)
(*.f64 (*.f64 (*.f64 x (sqrt.f64 1/2)) (cbrt.f64 (*.f64 1/2 (*.f64 x x)))) (cbrt.f64 (*.f64 x (sqrt.f64 1/2))))
(sqrt.f64 (pow.f64 (*.f64 x (sqrt.f64 1/2)) 4))
(log.f64 (pow.f64 (exp.f64 (*.f64 x x)) 1/2))
(cbrt.f64 (pow.f64 (*.f64 1/2 (*.f64 x x)) 3))
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 x x))))
(exp.f64 (log.f64 (*.f64 1/2 (*.f64 x x))))
(log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 x x))))
Outputs
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (sqrt.f64 1/2) x)
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (pow.f64 (sqrt.f64 1/2) 2) (pow.f64 x 2))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(-.f64 (+.f64 1 (*.f64 x (sqrt.f64 1/2))) 1)
(*.f64 (sqrt.f64 1/2) x)
(pow.f64 (*.f64 x (sqrt.f64 1/2)) 1)
(*.f64 (sqrt.f64 1/2) x)
(pow.f64 (*.f64 1/2 (*.f64 x x)) 1/2)
(*.f64 (sqrt.f64 1/2) x)
(pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 1/2))) 3)
(*.f64 (sqrt.f64 1/2) x)
(pow.f64 (pow.f64 (*.f64 x (sqrt.f64 1/2)) 3) 1/3)
(*.f64 (sqrt.f64 1/2) x)
(pow.f64 (sqrt.f64 (*.f64 x (sqrt.f64 1/2))) 2)
(*.f64 (sqrt.f64 1/2) x)
(sqrt.f64 (*.f64 1/2 (*.f64 x x)))
(*.f64 (sqrt.f64 1/2) x)
(fabs.f64 (*.f64 x (sqrt.f64 1/2)))
(*.f64 (sqrt.f64 1/2) x)
(log.f64 (pow.f64 (exp.f64 x) (sqrt.f64 1/2)))
(*.f64 (sqrt.f64 1/2) x)
(cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 1/2)) 3))
(*.f64 (sqrt.f64 1/2) x)
(expm1.f64 (log1p.f64 (*.f64 x (sqrt.f64 1/2))))
(*.f64 (sqrt.f64 1/2) x)
(exp.f64 (log.f64 (*.f64 x (sqrt.f64 1/2))))
(*.f64 (sqrt.f64 1/2) x)
(log1p.f64 (expm1.f64 (*.f64 x (sqrt.f64 1/2))))
(*.f64 (sqrt.f64 1/2) x)
(-.f64 (+.f64 1 (*.f64 1/2 (*.f64 x x))) 1)
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 x (*.f64 (sqrt.f64 1/2) (*.f64 x (sqrt.f64 1/2))))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 1/2 (*.f64 x x))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 (/.f64 x 2) x)
(*.f64 (sqrt.f64 1/2) (*.f64 x (*.f64 x (sqrt.f64 1/2))))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (*.f64 x (sqrt.f64 1/2)) (*.f64 x (sqrt.f64 1/2)))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (*.f64 1/2 (*.f64 x x)) 1)
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 1 (*.f64 1/2 (*.f64 x x)))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (cbrt.f64 (*.f64 1/2 (*.f64 x x))) (cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 1/2)) 4)))
(*.f64 (cbrt.f64 (*.f64 1/2 (*.f64 x x))) (cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) x) 4)))
(*.f64 (cbrt.f64 (*.f64 1/2 (*.f64 x x))) (cbrt.f64 (*.f64 1/4 (pow.f64 x 4))))
(*.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 x 4))) (cbrt.f64 (*.f64 (/.f64 x 2) x)))
(*.f64 (cbrt.f64 (*.f64 1/2 (*.f64 x x))) (*.f64 (cbrt.f64 (*.f64 x (sqrt.f64 1/2))) (*.f64 x (sqrt.f64 1/2))))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 1/2)) 4)) (cbrt.f64 (*.f64 1/2 (*.f64 x x))))
(*.f64 (cbrt.f64 (*.f64 1/2 (*.f64 x x))) (cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) x) 4)))
(*.f64 (cbrt.f64 (*.f64 1/2 (*.f64 x x))) (cbrt.f64 (*.f64 1/4 (pow.f64 x 4))))
(*.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 x 4))) (cbrt.f64 (*.f64 (/.f64 x 2) x)))
(*.f64 (*.f64 x x) 1/2)
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (sqrt.f64 (*.f64 x (sqrt.f64 1/2))) (*.f64 (sqrt.f64 (*.f64 x (sqrt.f64 1/2))) (*.f64 x (sqrt.f64 1/2))))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (*.f64 (*.f64 x (sqrt.f64 1/2)) (sqrt.f64 (*.f64 x (sqrt.f64 1/2)))) (sqrt.f64 (*.f64 x (sqrt.f64 1/2))))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (*.f64 (*.f64 x (sqrt.f64 1/2)) x) (sqrt.f64 1/2))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (*.f64 (*.f64 x (sqrt.f64 1/2)) (sqrt.f64 1/2)) x)
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(*.f64 (*.f64 (*.f64 x (sqrt.f64 1/2)) (cbrt.f64 (*.f64 1/2 (*.f64 x x)))) (cbrt.f64 (*.f64 x (sqrt.f64 1/2))))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(sqrt.f64 (pow.f64 (*.f64 x (sqrt.f64 1/2)) 4))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(log.f64 (pow.f64 (exp.f64 (*.f64 x x)) 1/2))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(cbrt.f64 (pow.f64 (*.f64 1/2 (*.f64 x x)) 3))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 x x))))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(exp.f64 (log.f64 (*.f64 1/2 (*.f64 x x))))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 x x))))
(*.f64 x (*.f64 x (pow.f64 (sqrt.f64 1/2) 2)))
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)

eval9.0ms (0.2%)

Compiler

Compiled 394 to 296 computations (24.9% saved)

prune18.0ms (0.4%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New41142
Fresh000
Picked101
Done123
Total43346
Accurracy
100.0%
Counts
46 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.8%
(-.f64 1 (cos.f64 x))
99.4%
(*.f64 (/.f64 x 2) x)
100.0%
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
55.8%
(-.f64 1 (cos.f64 x))
99.4%
(*.f64 (/.f64 x 2) x)
100.0%
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
Compiler

Compiled 38 to 28 computations (26.3% saved)

localize21.0ms (0.5%)

Compiler

Compiled 12 to 8 computations (33.3% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done022
Total033
Accurracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.8%
(-.f64 1 (cos.f64 x))
99.4%
(*.f64 (/.f64 x 2) x)
100.0%
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
Compiler

Compiled 47 to 34 computations (27.7% saved)

regimes8.0ms (0.2%)

Counts
5 → 1
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(-.f64 1 (cos.f64 x))
(pow.f64 (*.f64 x (sqrt.f64 1/2)) 2)
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
Outputs
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
Calls

3 calls:

4.0ms
x
2.0ms
(cos.f64 x)
2.0ms
(-.f64 1 (cos.f64 x))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(-.f64 1 (cos.f64 x))
100.0%1(cos.f64 x)
Compiler

Compiled 38 to 27 computations (28.9% saved)

regimes10.0ms (0.2%)

Counts
4 → 1
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 x x))
(*.f64 (/.f64 x 2) x)
(-.f64 1 (cos.f64 x))
(pow.f64 (*.f64 x (sqrt.f64 1/2)) 2)
Outputs
(*.f64 (/.f64 x 2) x)
Calls

3 calls:

3.0ms
x
2.0ms
(-.f64 1 (cos.f64 x))
2.0ms
(cos.f64 x)
Results
AccuracySegmentsBranch
99.4%1x
99.4%1(-.f64 1 (cos.f64 x))
99.4%1(cos.f64 x)
Compiler

Compiled 31 to 22 computations (29% saved)

regimes3.0ms (0.1%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 x x))
Outputs
(*.f64 1/2 (*.f64 x x))
Calls

1 calls:

2.0ms
x
Results
AccuracySegmentsBranch
99.3%1x
Compiler

Compiled 8 to 5 computations (37.5% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01347
11647
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
(*.f64 (/.f64 x 2) x)
(*.f64 1/2 (*.f64 x x))
Outputs
(*.f64 (sin.f64 x) (tan.f64 (/.f64 x 2)))
(*.f64 (/.f64 x 2) x)
(*.f64 x (/.f64 x 2))
(*.f64 1/2 (*.f64 x x))
Compiler

Compiled 20 to 14 computations (30% saved)

soundness439.0ms (9.4%)

Rules
1386×pow1
1278×add-exp-log
1278×log1p-expm1-u
1278×expm1-log1p-u
1252×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
114011
2169111
093800
1231740
2679670
33306670
093800
1231740
2679670
33306670
0613
112213
2138313
0791097
1193777
2677769
32251769
47376769
Stop Event
node limit
node limit
node limit
node limit
node limit
Compiler

Compiled 317 to 193 computations (39.1% saved)

end0.0ms (0%)

preprocess39.0ms (0.8%)

Remove

(abs x)

Compiler

Compiled 84 to 58 computations (31% saved)

Profiling

Loading profile data...