Average Error: 0.0 → 0.0
Time: 21.5s
Precision: 64
Internal Precision: 128
\[\frac{-\left(f + n\right)}{f - n}\]
\[\frac{-1}{\frac{f}{f + n} - \frac{n}{f + n}}\]

Error

Bits error versus f

Bits error versus n

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\frac{-\left(f + n\right)}{f - n}\]
  2. Using strategy rm
  3. Applied neg-mul-10.0

    \[\leadsto \frac{\color{blue}{-1 \cdot \left(f + n\right)}}{f - n}\]
  4. Applied associate-/l*0.0

    \[\leadsto \color{blue}{\frac{-1}{\frac{f - n}{f + n}}}\]
  5. Using strategy rm
  6. Applied div-sub0.0

    \[\leadsto \frac{-1}{\color{blue}{\frac{f}{f + n} - \frac{n}{f + n}}}\]
  7. Final simplification0.0

    \[\leadsto \frac{-1}{\frac{f}{f + n} - \frac{n}{f + n}}\]

Reproduce

herbie shell --seed 2018362 +o rules:numerics
(FPCore (f n)
  :name "subtraction fraction"
  (/ (- (+ f n)) (- f n)))

Details

Time bar (total: 19.4s)Debug log

start151.0ms

Algorithm
intervals

setup57.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.0b

localize62.0ms

Local error

Found 1 expressions with local error:

0.0b
(/ (- (+ f n)) (- f n))

rewrite16.0ms

Algorithm
rewrite-expression-head
Counts
1 → 63
Calls

1 calls. Slowest were:

12.0ms
(/ (- (+ f n)) (- f n))

series48.0ms

Counts
1 → 3
Calls

1 calls. Slowest were:

48.0ms
(/ (- (+ f n)) (- f n))

simplify1.2s

Counts
81 → 66
Calls

81 calls. Slowest were:

250.0ms
(- (- (* f f) (* n n)))
98.0ms
(/ (* (* (- (+ f n)) (- (+ f n))) (- (+ f n))) (* (* (- f n) (- f n)) (- f n)))
55.0ms
(/ (- (* (cbrt (+ f n)) (cbrt (+ f n)))) (* (cbrt (- f n)) (cbrt (- f n))))

prune488.0ms

Pruning

4 alts after pruning (4 fresh and 0 done)

Merged error: 0.0b

localize12.0ms

Local error

Found 2 expressions with local error:

0.0b
(/ (- f n) (+ f n))
0.0b
(/ -1 (/ (- f n) (+ f n)))

rewrite8.0ms

Algorithm
rewrite-expression-head
Counts
2 → 62
Calls

2 calls. Slowest were:

5.0ms
(/ (- f n) (+ f n))
1.0ms
(/ -1 (/ (- f n) (+ f n)))

series108.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

57.0ms
(/ -1 (/ (- f n) (+ f n)))
51.0ms
(/ (- f n) (+ f n))

simplify860.0ms

Counts
52 → 68
Calls

52 calls. Slowest were:

335.0ms
(/ (* (* (- f n) (- f n)) (- f n)) (* (* (+ f n) (+ f n)) (+ f n)))
94.0ms
(+ (* f f) (- (* n n) (* f n)))
68.0ms
(+ (* f f) (- (* n n) (* f n)))

prune753.0ms

Pruning

3 alts after pruning (3 fresh and 0 done)

Merged error: 0b

localize12.0ms

Local error

Found 4 expressions with local error:

0.0b
(/ n (+ f n))
0.0b
(- (/ f (+ f n)) (/ n (+ f n)))
0.0b
(/ f (+ f n))
0.0b
(/ -1 (- (/ f (+ f n)) (/ n (+ f n))))

rewrite23.0ms

Algorithm
rewrite-expression-head
Counts
4 → 121
Calls

4 calls. Slowest were:

13.0ms
(- (/ f (+ f n)) (/ n (+ f n)))
6.0ms
(/ -1 (- (/ f (+ f n)) (/ n (+ f n))))
1.0ms
(/ n (+ f n))

series156.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

69.0ms
(/ -1 (- (/ f (+ f n)) (/ n (+ f n))))
46.0ms
(- (/ f (+ f n)) (/ n (+ f n)))
22.0ms
(/ f (+ f n))
20.0ms
(/ n (+ f n))

simplify10.1s

Counts
124 → 133
Calls

124 calls. Slowest were:

565.0ms
(- (* f (+ f n)) (* (+ f n) n))
478.0ms
(fma (/ f (- (* f f) (* n n))) (- f n) (- (* (/ 1 (+ f n)) n)))
455.0ms
(fma (/ f (+ (pow f 3) (pow n 3))) (+ (* f f) (- (* n n) (* f n))) (- (* (/ 1 (+ f n)) n)))

prune1.4s

Pruning

3 alts after pruning (2 fresh and 1 done)

Merged error: 0b

localize11.0ms

Local error

Found 4 expressions with local error:

0.0b
(* (/ -1 (- (/ f (+ f n)) (/ n (+ f n)))) (/ -1 (- (/ f (+ f n)) (/ n (+ f n)))))
0.0b
(/ n (+ f n))
0.0b
(/ n (+ f n))
0.0b
(/ n (+ f n))

rewrite12.0ms

Algorithm
rewrite-expression-head
Counts
4 → 86
Calls

4 calls. Slowest were:

8.0ms
(* (/ -1 (- (/ f (+ f n)) (/ n (+ f n)))) (/ -1 (- (/ f (+ f n)) (/ n (+ f n)))))
1.0ms
(/ n (+ f n))
1.0ms
(/ n (+ f n))

series132.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

58.0ms
(* (/ -1 (- (/ f (+ f n)) (/ n (+ f n)))) (/ -1 (- (/ f (+ f n)) (/ n (+ f n)))))
30.0ms
(/ n (+ f n))
24.0ms
(/ n (+ f n))
20.0ms
(/ n (+ f n))

simplify2.4s

Counts
51 → 98
Calls

51 calls. Slowest were:

603.0ms
(/ -1 (- (* f (+ f n)) (* (+ f n) n)))
286.0ms
(* (- (/ f (+ f n)) (/ n (+ f n))) (- (/ f (+ f n)) (/ n (+ f n))))
269.0ms
(/ -1 (- (* (/ f (+ f n)) (/ f (+ f n))) (* (/ n (+ f n)) (/ n (+ f n)))))

prune1.2s

Pruning

3 alts after pruning (1 fresh and 2 done)

Merged error: 0b

regimes87.0ms

Accuracy

0% (0.0b remaining)

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

bsearch1.0ms