Average Error: 0.1 → 0.1
Time: 4.3s
Precision: 64
Internal Precision: 128
\[0.954929658551372 \cdot x - 0.12900613773279798 \cdot \left(\left(x \cdot x\right) \cdot x\right)\]
\[(0.954929658551372 \cdot x + \left(\left(\left(-x\right) \cdot \left(0.12900613773279798 \cdot x\right)\right) \cdot x\right))_*\]

Error

Bits error versus x

Derivation

  1. Initial program 0.1

    \[0.954929658551372 \cdot x - 0.12900613773279798 \cdot \left(\left(x \cdot x\right) \cdot x\right)\]
  2. Using strategy rm
  3. Applied fma-neg0.1

    \[\leadsto \color{blue}{(0.954929658551372 \cdot x + \left(-0.12900613773279798 \cdot \left(\left(x \cdot x\right) \cdot x\right)\right))_*}\]
  4. Using strategy rm
  5. Applied associate-*r*0.1

    \[\leadsto (0.954929658551372 \cdot x + \left(-\color{blue}{\left(0.12900613773279798 \cdot \left(x \cdot x\right)\right) \cdot x}\right))_*\]
  6. Using strategy rm
  7. Applied associate-*r*0.1

    \[\leadsto (0.954929658551372 \cdot x + \left(-\color{blue}{\left(\left(0.12900613773279798 \cdot x\right) \cdot x\right)} \cdot x\right))_*\]
  8. Final simplification0.1

    \[\leadsto (0.954929658551372 \cdot x + \left(\left(\left(-x\right) \cdot \left(0.12900613773279798 \cdot x\right)\right) \cdot x\right))_*\]

Reproduce

herbie shell --seed 2019010 +o rules:numerics
(FPCore (x)
  :name "Rosa's Benchmark"
  (- (* 0.954929658551372 x) (* 0.12900613773279798 (* (* x x) x))))

Details

Time bar (total: 3.9s)Debug log

sample172.0ms

Algorithm
intervals

simplify54.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
54.0ms
(- (* 0.954929658551372 x) (* 0.12900613773279798 (* (* x x) x)))

prune18.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.1b

localize15.0ms

Local error

Found 1 expressions with local error:

0.1b
(fma (- 0.12900613773279798) (pow x 3) (* 0.954929658551372 x))

rewrite3.0ms

Algorithm
rewrite-expression-head
Rules
add-log-exp
log1p-expm1-u
fma-udef
add-cube-cbrt
add-exp-log
add-cbrt-cube
*-un-lft-identity
pow1
expm1-log1p-u
add-sqr-sqrt
Counts
1 → 10
Calls
1 calls:
Slowest
1.0ms
(fma (- 0.12900613773279798) (pow x 3) (* 0.954929658551372 x))

series62.0ms

Counts
1 → 3
Calls
1 calls:
Slowest
62.0ms
(fma (- 0.12900613773279798) (pow x 3) (* 0.954929658551372 x))

simplify131.0ms

Counts
3 → 13
Calls
3 calls:
Slowest
57.0ms
(- (* 0.954929658551372 x) (* 0.12900613773279798 (pow x 3)))
38.0ms
(- (* 0.954929658551372 x) (* 0.12900613773279798 (pow x 3)))
35.0ms
(- (* 0.954929658551372 x) (* 0.12900613773279798 (pow x 3)))

prune75.0ms

Pruning

4 alts after pruning (3 fresh and 1 done)

Merged error: 0.0b

localize11.0ms

Local error

Found 3 expressions with local error:

0.1b
(* (* x x) x)
0.1b
(* 0.12900613773279798 (* (* x x) x))
0.0b
(- (* 0.954929658551372 x) (* 0.12900613773279798 (* (* x x) x)))

rewrite10.0ms

Algorithm
rewrite-expression-head
Rules
add-log-exp
log1p-expm1-u
add-cube-cbrt
add-exp-log
add-cbrt-cube
*-un-lft-identity
pow1
expm1-log1p-u
add-sqr-sqrt
*-commutative
flip--
pow3
prod-diff
associate-*l*
associate-*r*
diff-log
fma-neg
flip3--
pow-plus
sub-neg
pow2
Counts
3 → 40
Calls
3 calls:
Slowest
4.0ms
(* (* x x) x)
3.0ms
(* 0.12900613773279798 (* (* x x) x))
3.0ms
(- (* 0.954929658551372 x) (* 0.12900613773279798 (* (* x x) x)))

series70.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
40.0ms
(- (* 0.954929658551372 x) (* 0.12900613773279798 (* (* x x) x)))
17.0ms
(* 0.12900613773279798 (* (* x x) x))
14.0ms
(* (* x x) x)

simplify430.0ms

Counts
12 → 49
Calls
12 calls:
Slowest
101.0ms
(/ (exp (* 0.954929658551372 x)) (exp (* 0.12900613773279798 (* (* x x) x))))
95.0ms
(fma (- (* (* x x) x)) 0.12900613773279798 (* (* (* x x) x) 0.12900613773279798))
63.0ms
(- (* 0.954929658551372 x) (* 0.12900613773279798 (pow x 3)))
52.0ms
(fma 0.954929658551372 x (- (* (* (* x x) x) 0.12900613773279798)))
46.0ms
(- (* 0.954929658551372 x) (* 0.12900613773279798 (pow x 3)))

prune287.0ms

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0.0b

localize14.0ms

Local error

Found 3 expressions with local error:

0.1b
(* (* x x) x)
0.1b
(* 0.12900613773279798 (* (* x x) x))
0.0b
(fma 0.954929658551372 x (- (* 0.12900613773279798 (* (* x x) x))))

rewrite12.0ms

Algorithm
rewrite-expression-head
Rules
add-log-exp
log1p-expm1-u
add-cube-cbrt
add-exp-log
add-cbrt-cube
*-un-lft-identity
pow1
expm1-log1p-u
add-sqr-sqrt
*-commutative
fma-udef
pow3
associate-*l*
associate-*r*
pow-plus
pow2
Counts
3 → 34
Calls
3 calls:
Slowest
6.0ms
(* (* x x) x)
5.0ms
(* 0.12900613773279798 (* (* x x) x))
0.0ms
(fma 0.954929658551372 x (- (* 0.12900613773279798 (* (* x x) x))))

series112.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
58.0ms
(fma 0.954929658551372 x (- (* 0.12900613773279798 (* (* x x) x))))
32.0ms
(* 0.12900613773279798 (* (* x x) x))
22.0ms
(* (* x x) x)

simplify218.0ms

Counts
9 → 43
Calls
9 calls:
Slowest
75.0ms
(- (* 0.954929658551372 x) (* 0.12900613773279798 (pow x 3)))
70.0ms
(- (* 0.954929658551372 x) (* 0.12900613773279798 (pow x 3)))
53.0ms
(- (* 0.954929658551372 x) (* 0.12900613773279798 (pow x 3)))
5.0ms
(* 0.12900613773279798 (pow x 3))
5.0ms
(* 0.12900613773279798 (pow x 3))

prune337.0ms

Pruning

5 alts after pruning (3 fresh and 2 done)

Merged error: 0.0b

localize10.0ms

Local error

Found 3 expressions with local error:

0.1b
(* 0.12900613773279798 (* x x))
0.1b
(* (* 0.12900613773279798 (* x x)) x)
0.0b
(fma 0.954929658551372 x (- (* (* 0.12900613773279798 (* x x)) x)))

rewrite4.0ms

Algorithm
rewrite-expression-head
Rules
add-log-exp
log1p-expm1-u
add-cube-cbrt
add-exp-log
add-cbrt-cube
*-un-lft-identity
pow1
expm1-log1p-u
add-sqr-sqrt
*-commutative
fma-udef
associate-*l*
associate-*r*
Counts
3 → 32
Calls
3 calls:
Slowest
3.0ms
(* (* 0.12900613773279798 (* x x)) x)
1.0ms
(* 0.12900613773279798 (* x x))
0.0ms
(fma 0.954929658551372 x (- (* (* 0.12900613773279798 (* x x)) x)))

series89.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
54.0ms
(fma 0.954929658551372 x (- (* (* 0.12900613773279798 (* x x)) x)))
22.0ms
(* (* 0.12900613773279798 (* x x)) x)
12.0ms
(* 0.12900613773279798 (* x x))

simplify157.0ms

Counts
9 → 41
Calls
9 calls:
Slowest
54.0ms
(- (* 0.954929658551372 x) (* 0.12900613773279798 (pow x 3)))
40.0ms
(- (* 0.954929658551372 x) (* 0.12900613773279798 (pow x 3)))
35.0ms
(- (* 0.954929658551372 x) (* 0.12900613773279798 (pow x 3)))
5.0ms
(* 0.12900613773279798 (pow x 3))
5.0ms
(* 0.12900613773279798 (pow x 3))

prune329.0ms

Pruning

4 alts after pruning (2 fresh and 2 done)

Merged error: 0.0b

regimes39.0ms

Accuracy

0% (0.1b remaining)

Error of 0.1b against oracle of 0.0b and baseline of 0.1b

bsearch4.0ms

end0.0ms

sample1.2s

Algorithm
intervals