private void checkNaN() throws SimulationException {
    double d = 0;
    boolean b = false;
    d += currentStatus.getSimulationTime();
    d += currentStatus.getPreviousTimeStep();
    b |= currentStatus.getRocketPosition().isNaN();
    b |= currentStatus.getRocketVelocity().isNaN();
    b |= currentStatus.getRocketOrientationQuaternion().isNaN();
    b |= currentStatus.getRocketRotationVelocity().isNaN();
    d += currentStatus.getEffectiveLaunchRodLength();

    if (Double.isNaN(d) || b) {
      log.error(
          "Simulation resulted in NaN value:"
              + " simulationTime="
              + currentStatus.getSimulationTime()
              + " previousTimeStep="
              + currentStatus.getPreviousTimeStep()
              + " rocketPosition="
              + currentStatus.getRocketPosition()
              + " rocketVelocity="
              + currentStatus.getRocketVelocity()
              + " rocketOrientationQuaternion="
              + currentStatus.getRocketOrientationQuaternion()
              + " rocketRotationVelocity="
              + currentStatus.getRocketRotationVelocity()
              + " effectiveLaunchRodLength="
              + currentStatus.getEffectiveLaunchRodLength());
      throw new SimulationException(trans.get("BasicEventSimulationEngine.error.NaNResult"));
    }
  }
  private void checkNaN() throws SimulationException {
    double d = 0;
    boolean b = false;
    d += status.getSimulationTime();
    d += status.getPreviousTimeStep();
    b |= status.getRocketPosition().isNaN();
    b |= status.getRocketVelocity().isNaN();
    b |= status.getRocketOrientationQuaternion().isNaN();
    b |= status.getRocketRotationVelocity().isNaN();
    d += status.getEffectiveLaunchRodLength();

    if (Double.isNaN(d) || b) {
      log.error(
          "Simulation resulted in NaN value:"
              + " simulationTime="
              + status.getSimulationTime()
              + " previousTimeStep="
              + status.getPreviousTimeStep()
              + " rocketPosition="
              + status.getRocketPosition()
              + " rocketVelocity="
              + status.getRocketVelocity()
              + " rocketOrientationQuaternion="
              + status.getRocketOrientationQuaternion()
              + " rocketRotationVelocity="
              + status.getRocketRotationVelocity()
              + " effectiveLaunchRodLength="
              + status.getEffectiveLaunchRodLength());
      throw new SimulationException(
          "Simulation resulted in not-a-number (NaN) value, please report a bug.");
    }
  }