Average Error: 15.0 → 0.3
Time: 6.1s
Precision: binary64
Cost: 6912
\[\tan^{-1} \left(N + 1\right) - \tan^{-1} N\]
\[\tan^{-1}_* \frac{1}{1 + N \cdot \left(1 + N\right)}\]
\tan^{-1} \left(N + 1\right) - \tan^{-1} N
\tan^{-1}_* \frac{1}{1 + N \cdot \left(1 + N\right)}
(FPCore (N) :precision binary64 (- (atan (+ N 1.0)) (atan N)))
(FPCore (N) :precision binary64 (atan2 1.0 (+ 1.0 (* N (+ 1.0 N)))))
double code(double N) {
	return atan(N + 1.0) - atan(N);
}
double code(double N) {
	return atan2(1.0, (1.0 + (N * (1.0 + N))));
}

Error

Bits error versus N

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original15.0
Target0.3
Herbie0.3
\[\tan^{-1} \left(\frac{1}{1 + N \cdot \left(N + 1\right)}\right)\]

Alternatives

Alternative 1
Error16.4
Cost46464
\[\tan^{-1}_* \frac{1}{1 + \left(\sqrt[3]{N \cdot \left(1 + N\right)} \cdot \sqrt[3]{N \cdot \left(1 + N\right)}\right) \cdot \left(\sqrt{\sqrt[3]{N \cdot \left(1 + N\right)}} \cdot \sqrt{\sqrt[3]{N \cdot \left(1 + N\right)}}\right)}\]
Alternative 2
Error1.6
Cost40064
\[\sqrt[3]{\tan^{-1}_* \frac{1}{1 + N \cdot \left(1 + N\right)}} \cdot \left(\sqrt[3]{\tan^{-1}_* \frac{1}{1 + N \cdot \left(1 + N\right)}} \cdot \sqrt[3]{\tan^{-1}_* \frac{1}{1 + N \cdot \left(1 + N\right)}}\right)\]
Alternative 3
Error0.6
Cost26880
\[\tan^{-1}_* \frac{1}{1 + \sqrt[3]{N \cdot \left(1 + N\right)} \cdot \left(\sqrt[3]{N \cdot \left(1 + N\right)} \cdot \sqrt[3]{N \cdot \left(1 + N\right)}\right)}\]
Alternative 4
Error0.9
Cost26688
\[\sqrt{\tan^{-1}_* \frac{1}{1 + N \cdot \left(1 + N\right)}} \cdot \sqrt{\tan^{-1}_* \frac{1}{1 + N \cdot \left(1 + N\right)}}\]
Alternative 5
Error0.6
Cost26624
\[\tan^{-1}_* \frac{1}{1 + \sqrt[3]{1 + N} \cdot \left(N \cdot \left(\sqrt[3]{1 + N} \cdot \sqrt[3]{1 + N}\right)\right)}\]
Alternative 6
Error0.6
Cost26368
\[\tan^{-1}_* \frac{1}{1 + \left(\sqrt[3]{N} \cdot \sqrt[3]{N}\right) \cdot \left(\left(1 + N\right) \cdot \sqrt[3]{N}\right)}\]
Alternative 7
Error0.6
Cost26304
\[\tan^{-1}_* \frac{1}{1 + \left(\left(1 + N\right) \cdot \sqrt[3]{N}\right) \cdot {\left(\sqrt[3]{N}\right)}^{2}}\]
Alternative 8
Error0.5
Cost19968
\[\tan^{-1}_* \frac{1}{1 + \left(\left(1 + N\right) \cdot \sqrt[3]{N}\right) \cdot \sqrt[3]{N \cdot N}}\]
Alternative 9
Error10.3
Cost19776
\[\sqrt[3]{{\tan^{-1}_* \frac{1}{1 + N \cdot \left(1 + N\right)}}^{3}}\]
Alternative 10
Error23.9
Cost13760
\[\tan^{-1}_* \frac{1}{1 + \frac{N + {N}^{4}}{N \cdot N + \left(1 - N\right)}}\]
Alternative 11
Error5.4
Cost13504
\[\tan^{-1}_* \frac{1}{1 + \frac{{N}^{3} - N}{N - 1}}\]
Alternative 12
Error15.0
Cost13120
\[\tan^{-1} \left(1 + N\right) - \tan^{-1} N\]
Alternative 13
Error1.6
Cost6784
\[\tan^{-1}_* \frac{1}{1 + N \cdot N}\]
Alternative 14
Error30.8
Cost6656
\[\tan^{-1}_* \frac{1}{1 + N}\]
Alternative 15
Error56.1
Cost64
\[1\]
Alternative 16
Error46.1
Cost64
\[0\]
Alternative 17
Error62.6
Cost64
\[-1\]

Error

Derivation

  1. Initial program 15.0

    \[\tan^{-1} \left(N + 1\right) - \tan^{-1} N\]
  2. Using strategy rm
  3. Applied diff-atan_binary64_122713.8

    \[\leadsto \color{blue}{\tan^{-1}_* \frac{\left(N + 1\right) - N}{1 + \left(N + 1\right) \cdot N}}\]
  4. Simplified0.3

    \[\leadsto \tan^{-1}_* \frac{\color{blue}{1}}{1 + \left(N + 1\right) \cdot N}\]
  5. Simplified0.3

    \[\leadsto \tan^{-1}_* \frac{1}{\color{blue}{1 + N \cdot \left(N + 1\right)}}\]
  6. Simplified0.3

    \[\leadsto \color{blue}{\tan^{-1}_* \frac{1}{1 + N \cdot \left(1 + N\right)}}\]
  7. Final simplification0.3

    \[\leadsto \tan^{-1}_* \frac{1}{1 + N \cdot \left(1 + N\right)}\]

Reproduce

herbie shell --seed 2021042 
(FPCore (N)
  :name "2atan (example 3.5)"
  :precision binary64

  :herbie-target
  (atan (/ 1.0 (+ 1.0 (* N (+ N 1.0)))))

  (- (atan (+ N 1.0)) (atan N)))