Average Error: 8.1 → 8.1
Time: 971.0ms
Precision: binary64
\[\left(_kI + _kP\right) + \frac{_kD \cdot \left(2 \cdot wn\right)}{1 + wn}\]
\[\left(_kI + _kP\right) + \frac{_kD \cdot \left(2 \cdot wn\right)}{1 + wn}\]
\left(_kI + _kP\right) + \frac{_kD \cdot \left(2 \cdot wn\right)}{1 + wn}
\left(_kI + _kP\right) + \frac{_kD \cdot \left(2 \cdot wn\right)}{1 + wn}
double code(double _kI, double _kP, double _kD, double wn) {
	return ((double) (((double) (_kI + _kP)) + ((double) (((double) (_kD * ((double) (2.0 * wn)))) / ((double) (1.0 + wn))))));
}
double code(double _kI, double _kP, double _kD, double wn) {
	return ((double) (((double) (_kI + _kP)) + ((double) (((double) (_kD * ((double) (2.0 * wn)))) / ((double) (1.0 + wn))))));
}

Error

Bits error versus _kI

Bits error versus _kP

Bits error versus _kD

Bits error versus wn

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 8.1

    \[\left(_kI + _kP\right) + \frac{_kD \cdot \left(2 \cdot wn\right)}{1 + wn}\]
  2. Final simplification8.1

    \[\leadsto \left(_kI + _kP\right) + \frac{_kD \cdot \left(2 \cdot wn\right)}{1 + wn}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (_kI _kP _kD wn)
  :name "(+ (+ _kI _kP) (/ (* _kD (* 2 wn)) (+ 1 wn)))"
  :precision binary64
  (+ (+ _kI _kP) (/ (* _kD (* 2.0 wn)) (+ 1.0 wn))))