x + \left(y \cdot z\right) \cdot \left(\tanh \left(\frac{t}{y}\right) - \tanh \left(\frac{x}{y}\right)\right)x + \left(\sqrt[3]{y \cdot \left(z \cdot \left(\tanh \left(\frac{t}{y}\right) - \tanh \left(\frac{x}{y}\right)\right)\right)} \cdot \sqrt[3]{y \cdot \left(z \cdot \left(\tanh \left(\frac{t}{y}\right) - \tanh \left(\frac{x}{y}\right)\right)\right)}\right) \cdot \left(\sqrt[3]{y} \cdot \sqrt[3]{z \cdot \left(\tanh \left(\frac{t}{y}\right) - \tanh \left(\frac{x}{y}\right)\right)}\right)double f(double x, double y, double z, double t) {
double r197834 = x;
double r197835 = y;
double r197836 = z;
double r197837 = r197835 * r197836;
double r197838 = t;
double r197839 = r197838 / r197835;
double r197840 = tanh(r197839);
double r197841 = r197834 / r197835;
double r197842 = tanh(r197841);
double r197843 = r197840 - r197842;
double r197844 = r197837 * r197843;
double r197845 = r197834 + r197844;
return r197845;
}
double f(double x, double y, double z, double t) {
double r197846 = x;
double r197847 = y;
double r197848 = z;
double r197849 = t;
double r197850 = r197849 / r197847;
double r197851 = tanh(r197850);
double r197852 = r197846 / r197847;
double r197853 = tanh(r197852);
double r197854 = r197851 - r197853;
double r197855 = r197848 * r197854;
double r197856 = r197847 * r197855;
double r197857 = cbrt(r197856);
double r197858 = r197857 * r197857;
double r197859 = cbrt(r197847);
double r197860 = cbrt(r197855);
double r197861 = r197859 * r197860;
double r197862 = r197858 * r197861;
double r197863 = r197846 + r197862;
return r197863;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 4.6 |
|---|---|
| Target | 2.1 |
| Herbie | 2.4 |
Initial program 4.6
rmApplied associate-*l*2.1
rmApplied add-cube-cbrt2.5
rmApplied cbrt-prod2.4
Final simplification2.4
herbie shell --seed 2019298
(FPCore (x y z t)
:name "SynthBasics:moogVCF from YampaSynth-0.2"
:precision binary64
:herbie-target
(+ x (* y (* z (- (tanh (/ t y)) (tanh (/ x y))))))
(+ x (* (* y z) (- (tanh (/ t y)) (tanh (/ x y))))))