Average Error: 1.0 → 0.0
Time: 7.6s
Precision: 64
\[\frac{4}{\left(\left(3 \cdot \pi\right) \cdot \left(1 - v \cdot v\right)\right) \cdot \sqrt{2 - 6 \cdot \left(v \cdot v\right)}}\]
\[\frac{\frac{\frac{1}{\pi} \cdot \frac{4}{3}}{1 - v \cdot v}}{\sqrt{\mathsf{fma}\left(-6, v \cdot v, 2\right)}}\]
\frac{4}{\left(\left(3 \cdot \pi\right) \cdot \left(1 - v \cdot v\right)\right) \cdot \sqrt{2 - 6 \cdot \left(v \cdot v\right)}}
\frac{\frac{\frac{1}{\pi} \cdot \frac{4}{3}}{1 - v \cdot v}}{\sqrt{\mathsf{fma}\left(-6, v \cdot v, 2\right)}}
double f(double v) {
        double r6320906 = 4.0;
        double r6320907 = 3.0;
        double r6320908 = atan2(1.0, 0.0);
        double r6320909 = r6320907 * r6320908;
        double r6320910 = 1.0;
        double r6320911 = v;
        double r6320912 = r6320911 * r6320911;
        double r6320913 = r6320910 - r6320912;
        double r6320914 = r6320909 * r6320913;
        double r6320915 = 2.0;
        double r6320916 = 6.0;
        double r6320917 = r6320916 * r6320912;
        double r6320918 = r6320915 - r6320917;
        double r6320919 = sqrt(r6320918);
        double r6320920 = r6320914 * r6320919;
        double r6320921 = r6320906 / r6320920;
        return r6320921;
}

double f(double v) {
        double r6320922 = 1.0;
        double r6320923 = atan2(1.0, 0.0);
        double r6320924 = r6320922 / r6320923;
        double r6320925 = 1.3333333333333333;
        double r6320926 = r6320924 * r6320925;
        double r6320927 = v;
        double r6320928 = r6320927 * r6320927;
        double r6320929 = r6320922 - r6320928;
        double r6320930 = r6320926 / r6320929;
        double r6320931 = -6.0;
        double r6320932 = 2.0;
        double r6320933 = fma(r6320931, r6320928, r6320932);
        double r6320934 = sqrt(r6320933);
        double r6320935 = r6320930 / r6320934;
        return r6320935;
}

Error

Bits error versus v

Derivation

  1. Initial program 1.0

    \[\frac{4}{\left(\left(3 \cdot \pi\right) \cdot \left(1 - v \cdot v\right)\right) \cdot \sqrt{2 - 6 \cdot \left(v \cdot v\right)}}\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\frac{\frac{\frac{\frac{4}{3}}{\pi}}{1 - v \cdot v}}{\sqrt{\mathsf{fma}\left(-6, v \cdot v, 2\right)}}}\]
  3. Using strategy rm
  4. Applied div-inv0.0

    \[\leadsto \frac{\frac{\color{blue}{\frac{4}{3} \cdot \frac{1}{\pi}}}{1 - v \cdot v}}{\sqrt{\mathsf{fma}\left(-6, v \cdot v, 2\right)}}\]
  5. Final simplification0.0

    \[\leadsto \frac{\frac{\frac{1}{\pi} \cdot \frac{4}{3}}{1 - v \cdot v}}{\sqrt{\mathsf{fma}\left(-6, v \cdot v, 2\right)}}\]

Reproduce

herbie shell --seed 2019156 +o rules:numerics
(FPCore (v)
  :name "Falkner and Boettcher, Equation (22+)"
  (/ 4 (* (* (* 3 PI) (- 1 (* v v))) (sqrt (- 2 (* 6 (* v v)))))))