Пример #1
0
/* Function Definitions */
void b_asin(const emlrtStack *sp, real_T x[2])
{
  boolean_T p;
  int32_T k;
  emlrtStack st;
  emlrtStack b_st;
  st.prev = sp;
  st.tls = sp->tls;
  b_st.prev = &st;
  b_st.tls = st.tls;
  p = false;
  for (k = 0; k < 2; k++) {
    if (p || ((x[k] < -1.0) || (x[k] > 1.0))) {
      p = true;
    } else {
      p = false;
    }
  }

  if (p) {
    st.site = &rb_emlrtRSI;
    b_st.site = &rb_emlrtRSI;
    e_error(&b_st);
  }

  for (k = 0; k < 2; k++) {
    x[k] = muDoubleScalarAsin(x[k]);
  }
}
Пример #2
0
void c_asin(const emlrtStack *sp, real_T *x)
{
  emlrtStack st;
  emlrtStack b_st;
  st.prev = sp;
  st.tls = sp->tls;
  b_st.prev = &st;
  b_st.tls = st.tls;
  if ((*x < -1.0) || (*x > 1.0)) {
    st.site = &rb_emlrtRSI;
    b_st.site = &rb_emlrtRSI;
    e_error(&b_st);
  }

  *x = muDoubleScalarAsin(*x);
}
static void sf_c7_WEC_Sim_Driver(SFc7_WEC_Sim_DriverInstanceStruct
  *chartInstance)
{
  int32_T c7_i2;
  int32_T c7_i3;
  int32_T c7_i4;
  real_T c7_Q[4];
  uint32_T c7_debug_family_var_map[4];
  real_T c7_nargin = 1.0;
  real_T c7_nargout = 1.0;
  real_T c7_E[3];
  int32_T c7_i5;
  real_T c7_a;
  real_T c7_b;
  real_T c7_y;
  real_T c7_b_a;
  real_T c7_b_b;
  real_T c7_b_y;
  real_T c7_c_b;
  real_T c7_c_y;
  real_T c7_d_b;
  real_T c7_d_y;
  real_T c7_A;
  real_T c7_B;
  real_T c7_x;
  real_T c7_e_y;
  real_T c7_b_x;
  real_T c7_f_y;
  real_T c7_g_y;
  real_T c7_c_x;
  real_T c7_d_x;
  real_T c7_c_a;
  real_T c7_e_b;
  real_T c7_h_y;
  real_T c7_d_a;
  real_T c7_f_b;
  real_T c7_i_y;
  real_T c7_g_b;
  real_T c7_j_y;
  real_T c7_e_x;
  real_T c7_f_x;
  real_T c7_e_a;
  real_T c7_h_b;
  real_T c7_k_y;
  real_T c7_f_a;
  real_T c7_i_b;
  real_T c7_l_y;
  real_T c7_j_b;
  real_T c7_m_y;
  real_T c7_k_b;
  real_T c7_n_y;
  real_T c7_b_A;
  real_T c7_b_B;
  real_T c7_g_x;
  real_T c7_o_y;
  real_T c7_h_x;
  real_T c7_p_y;
  real_T c7_q_y;
  real_T c7_i_x;
  real_T c7_j_x;
  int32_T c7_i6;
  real_T (*c7_b_E)[3];
  real_T (*c7_b_Q)[4];
  boolean_T guard1 = FALSE;
  c7_b_E = (real_T (*)[3])ssGetOutputPortSignal(chartInstance->S, 1);
  c7_b_Q = (real_T (*)[4])ssGetInputPortSignal(chartInstance->S, 0);
  _sfTime_ = (real_T)ssGetT(chartInstance->S);
  _SFD_CC_CALL(CHART_ENTER_SFUNCTION_TAG, 3U, chartInstance->c7_sfEvent);
  for (c7_i2 = 0; c7_i2 < 4; c7_i2++) {
    _SFD_DATA_RANGE_CHECK((*c7_b_Q)[c7_i2], 0U);
  }

  for (c7_i3 = 0; c7_i3 < 3; c7_i3++) {
    _SFD_DATA_RANGE_CHECK((*c7_b_E)[c7_i3], 1U);
  }

  chartInstance->c7_sfEvent = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG, 3U, chartInstance->c7_sfEvent);
  for (c7_i4 = 0; c7_i4 < 4; c7_i4++) {
    c7_Q[c7_i4] = (*c7_b_Q)[c7_i4];
  }

  _SFD_SYMBOL_SCOPE_PUSH_EML(0U, 4U, 4U, c7_debug_family_names,
    c7_debug_family_var_map);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c7_nargin, 0U, c7_c_sf_marshallOut,
    c7_b_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(&c7_nargout, 1U, c7_c_sf_marshallOut,
    c7_b_sf_marshallIn);
  _SFD_SYMBOL_SCOPE_ADD_EML(c7_Q, 2U, c7_b_sf_marshallOut);
  _SFD_SYMBOL_SCOPE_ADD_EML_IMPORTABLE(c7_E, 3U, c7_sf_marshallOut,
    c7_sf_marshallIn);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(0U, chartInstance->c7_sfEvent, 3);
  for (c7_i5 = 0; c7_i5 < 3; c7_i5++) {
    c7_E[c7_i5] = 0.0;
  }

  _SFD_EML_CALL(0U, chartInstance->c7_sfEvent, 4);
  c7_a = c7_Q[0];
  c7_b = c7_Q[1];
  c7_y = c7_a * c7_b;
  c7_b_a = c7_Q[2];
  c7_b_b = c7_Q[3];
  c7_b_y = c7_b_a * c7_b_b;
  c7_c_b = c7_y + c7_b_y;
  c7_c_y = 2.0 * c7_c_b;
  c7_d_b = c7_mpower(chartInstance, c7_Q[1]) + c7_mpower(chartInstance, c7_Q[2]);
  c7_d_y = 2.0 * c7_d_b;
  c7_A = c7_c_y;
  c7_B = 1.0 - c7_d_y;
  c7_x = c7_A;
  c7_e_y = c7_B;
  c7_b_x = c7_x;
  c7_f_y = c7_e_y;
  c7_g_y = c7_b_x / c7_f_y;
  c7_c_x = c7_g_y;
  c7_d_x = c7_c_x;
  c7_d_x = muDoubleScalarAtan(c7_d_x);
  c7_E[0] = c7_d_x;
  _SFD_EML_CALL(0U, chartInstance->c7_sfEvent, 5);
  c7_c_a = c7_Q[0];
  c7_e_b = c7_Q[2];
  c7_h_y = c7_c_a * c7_e_b;
  c7_d_a = c7_Q[3];
  c7_f_b = c7_Q[1];
  c7_i_y = c7_d_a * c7_f_b;
  c7_g_b = c7_h_y - c7_i_y;
  c7_j_y = 2.0 * c7_g_b;
  c7_e_x = c7_j_y;
  c7_f_x = c7_e_x;
  guard1 = FALSE;
  if (c7_f_x < -1.0) {
    guard1 = TRUE;
  } else {
    if (1.0 < c7_f_x) {
      guard1 = TRUE;
    }
  }

  if (guard1 == TRUE) {
    c7_eml_error(chartInstance);
  }

  c7_f_x = muDoubleScalarAsin(c7_f_x);
  c7_E[1] = c7_f_x;
  _SFD_EML_CALL(0U, chartInstance->c7_sfEvent, 6);
  c7_e_a = c7_Q[0];
  c7_h_b = c7_Q[3];
  c7_k_y = c7_e_a * c7_h_b;
  c7_f_a = c7_Q[1];
  c7_i_b = c7_Q[2];
  c7_l_y = c7_f_a * c7_i_b;
  c7_j_b = c7_k_y + c7_l_y;
  c7_m_y = 2.0 * c7_j_b;
  c7_k_b = c7_mpower(chartInstance, c7_Q[2]) + c7_mpower(chartInstance, c7_Q[3]);
  c7_n_y = 2.0 * c7_k_b;
  c7_b_A = c7_m_y;
  c7_b_B = 1.0 - c7_n_y;
  c7_g_x = c7_b_A;
  c7_o_y = c7_b_B;
  c7_h_x = c7_g_x;
  c7_p_y = c7_o_y;
  c7_q_y = c7_h_x / c7_p_y;
  c7_i_x = c7_q_y;
  c7_j_x = c7_i_x;
  c7_j_x = muDoubleScalarAtan(c7_j_x);
  c7_E[2] = c7_j_x;
  _SFD_EML_CALL(0U, chartInstance->c7_sfEvent, -6);
  _SFD_SYMBOL_SCOPE_POP();
  for (c7_i6 = 0; c7_i6 < 3; c7_i6++) {
    (*c7_b_E)[c7_i6] = c7_E[c7_i6];
  }

  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG, 3U, chartInstance->c7_sfEvent);
  _SFD_CHECK_FOR_STATE_INCONSISTENCY(_WEC_Sim_DriverMachineNumber_,
    chartInstance->chartNumber, chartInstance->instanceNumber);
}