/* CalcBrakingCurves_Pkg::internalOperators::InitilizeAccForEBDFootCalc */
void InitilizeAccForEBDFootCalc_CalcBrakingCurves_Pkg_internalOperators(
    /* CalcBrakingCurves_Pkg::internalOperators::InitilizeAccForEBDFootCalc::target */Target_real_T_TargetManagement_types *target,
    /* CalcBrakingCurves_Pkg::internalOperators::InitilizeAccForEBDFootCalc::aSafe */ASafe_T_CalcBrakingCurves_types *aSafe,
    /* CalcBrakingCurves_Pkg::internalOperators::InitilizeAccForEBDFootCalc::BCACCForEBDFoot */BCAccumulator_type_CalcBrakingCurves_Pkg *BCACCForEBDFoot)
{
    /* CalcBrakingCurves_Pkg::internalOperators::InitilizeAccForEBDFootCalc::_L9 */
    static L_internal_real_Type_SDM_Types_Pkg _L9;
    /* CalcBrakingCurves_Pkg::internalOperators::InitilizeAccForEBDFootCalc::_L15 */
    static kcg_real _L15;

    (*BCACCForEBDFoot).distance = (*target).distance;
    _L15 = /* 2 */ dV_ebi_for_V_SDM_Types_Pkg((*target).speed) + (*target).speed;
    (*BCACCForEBDFoot).speed = _L15;
    /* 3 */
    getDistanceStepFromDistance_CalcBrakingCurves_Pkg_Step_Function_operators(
        (*target).distance,
        &(*aSafe).distance_definition,
        &_L9,
        &(*BCACCForEBDFoot).distanceIndex);
    /* 3 */
    getSpeedStepFromSpeed_CalcBrakingCurves_Pkg_Step_Function_operators(
        _L15,
        &(*aSafe).speed_definition,
        &_L9,
        &(*BCACCForEBDFoot).speedIndex);
    /* 2 */
    makeEmptyParabolaCurve_CalcBrakingCurves_types(&(*BCACCForEBDFoot).BC);
}
/* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc */
void InitAccWithTargetArc_CalcBrakingCurves_Pkg_internalOperators(
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc::EBDfoot */ L_internal_real_Type_SDM_Types_Pkg EBDfoot,
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc::target */ Target_real_T_TargetManagement_types *target,
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc::aSafe */ ASafe_T_CalcBrakingCurves_types *aSafe,
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc::Output1 */ BCAccumulator_type_CalcBrakingCurves_Pkg *Output1)
{
  kcg_int i;
  array_real_25 tmp3;
  array_real_25 tmp2;
  array_real_25 tmp1;
  ParabolaCurveValid_T_CalcBrakingCurves_types tmp;
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc::_L8 */ kcg_real _L8;
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc::_L9 */ kcg_int _L9;
  
  (*Output1).distance = EBDfoot;
  (*Output1).speed = (*target).speed;
  /* 1 */
  getDistanceStepFromDistance_CalcBrakingCurves_Pkg_Step_Function_operators(
    EBDfoot,
    &(*aSafe).distance_definition,
    &_L8,
    &i);
  (*Output1).distanceIndex = i;
  /* 1 */
  getSpeedStepFromSpeed_CalcBrakingCurves_Pkg_Step_Function_operators(
    (*target).speed,
    &(*aSafe).speed_definition,
    &_L8,
    &_L9);
  (*Output1).speedIndex = _L9;
  (&tmp1[0])[0] = /* 2 */
    getAFromAsafeByIndex_CalcBrakingCurves_Pkg_Step_Function_operators(
      i,
      _L9,
      &(*aSafe).data);
  _L8 = - 1.0;
  for (i = 0; i < 24; i++) {
    (&tmp1[1])[i] = _L8;
  }
  (&tmp3[0])[0] = EBDfoot;
  kcg_copy_array_real_24(&tmp3[1], (array_real_24 *) &tmp1[1]);
  kcg_copy_ParabolaCurveDistances_T_CalcBrakingCurves_types(
    &(*Output1).BC.distances,
    &tmp3);
  (&tmp2[0])[0] = (*target).speed;
  kcg_copy_array_real_24(&tmp2[1], (array_real_24 *) &tmp1[1]);
  kcg_copy_ParabolaCurveSpeeds_T_CalcBrakingCurves_types(
    &(*Output1).BC.speeds,
    &tmp2);
  kcg_copy_ParabolaCurveAccelerations_T_CalcBrakingCurves_types(
    &(*Output1).BC.accelerations,
    &tmp1);
  (&tmp[0])[0] = kcg_true;
  for (i = 0; i < 24; i++) {
    (&tmp[1])[i] = kcg_false;
  }
  kcg_copy_ParabolaCurveValid_T_CalcBrakingCurves_types(
    &(*Output1).BC.valid,
    &tmp);
}
/* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc */
void InitAccWithTargetArc_CalcBrakingCurves_Pkg_internalOperators(
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc::EBDfoot */ L_internal_real_Type_SDM_Types_Pkg EBDfoot,
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc::target */ Target_real_T_TargetManagement_types *target,
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc::aSafe */ ASafe_T_CalcBrakingCurves_types *aSafe,
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc::Output1 */ BCAccumulator_type_CalcBrakingCurves_Pkg *Output1)
{
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc */
  static ParabolaArc_T_CalcBrakingCurves_types mk_struct;
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc */
  static A_internal_real_Type_SDM_Types_Pkg tmp1;
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc */
  static ParabolaCurve_T_CalcBrakingCurves_types tmp;
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc::_L8 */
  static V_internal_real_Type_SDM_Types_Pkg _L8;
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc::_L9 */
  static kcg_int _L9;
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc::_L10 */
  static L_internal_real_Type_SDM_Types_Pkg _L10;
  /* CalcBrakingCurves_Pkg::internalOperators::InitAccWithTargetArc::_L11 */
  static kcg_int _L11;
  
  (*Output1).distance = EBDfoot;
  (*Output1).speed = (*target).speed;
  /* 1 */
  getDistanceStepFromDistance_CalcBrakingCurves_Pkg_Step_Function_operators(
    EBDfoot,
    &(*aSafe).distance_definition,
    &_L10,
    &_L11);
  (*Output1).distanceIndex = _L11;
  /* 1 */
  getSpeedStepFromSpeed_CalcBrakingCurves_Pkg_Step_Function_operators(
    (*target).speed,
    &(*aSafe).speed_definition,
    &_L8,
    &_L9);
  (*Output1).speedIndex = _L9;
  tmp1 = /* 2 */
    getAFromAsafeByIndex_CalcBrakingCurves_Pkg_Step_Function_operators(
      _L11,
      _L9,
      &(*aSafe).data);
  /* 4 */ makeEmptyParabolaCurve_CalcBrakingCurves_types(&tmp);
  mk_struct.distance = EBDfoot;
  mk_struct.speed = (*target).speed;
  mk_struct.acceleration = tmp1;
  /* 1 */
  setArc_CalcBrakingCurves_Pkg_internalOperators(
    &mk_struct,
    &tmp,
    0,
    &(*Output1).BC);
}
/* CalcBrakingCurves_Pkg::internalOperators::InitilizeAccForEBDFootCalc */
void InitilizeAccForEBDFootCalc_CalcBrakingCurves_Pkg_internalOperators(
  /* CalcBrakingCurves_Pkg::internalOperators::InitilizeAccForEBDFootCalc::target */ Target_real_T_TargetManagement_types *target,
  /* CalcBrakingCurves_Pkg::internalOperators::InitilizeAccForEBDFootCalc::aSafe */ ASafe_T_CalcBrakingCurves_types *aSafe,
  /* CalcBrakingCurves_Pkg::internalOperators::InitilizeAccForEBDFootCalc::BCACCForEBDFoot */ BCAccumulator_type_CalcBrakingCurves_Pkg *BCACCForEBDFoot)
{
  kcg_int i;
  /* CalcBrakingCurves_Pkg::internalOperators::InitilizeAccForEBDFootCalc::_L4 */ ParabolaCurveValid_T_CalcBrakingCurves_types _L4;
  /* CalcBrakingCurves_Pkg::internalOperators::InitilizeAccForEBDFootCalc::_L5 */ array_real_25 _L5;
  /* CalcBrakingCurves_Pkg::internalOperators::InitilizeAccForEBDFootCalc::_L11 */ kcg_real _L11;
  /* CalcBrakingCurves_Pkg::internalOperators::InitilizeAccForEBDFootCalc::_L15 */ kcg_real _L15;
  
  (*BCACCForEBDFoot).distance = (*target).distance;
  _L15 = /* 2 */ dV_ebi_for_V_SDM_Types_Pkg((*target).speed) + (*target).speed;
  (*BCACCForEBDFoot).speed = _L15;
  /* 3 */
  getDistanceStepFromDistance_CalcBrakingCurves_Pkg_Step_Function_operators(
    (*target).distance,
    &(*aSafe).distance_definition,
    &_L11,
    &(*BCACCForEBDFoot).distanceIndex);
  /* 3 */
  getSpeedStepFromSpeed_CalcBrakingCurves_Pkg_Step_Function_operators(
    _L15,
    &(*aSafe).speed_definition,
    &_L11,
    &(*BCACCForEBDFoot).speedIndex);
  _L11 = - 1.0;
  for (i = 0; i < 25; i++) {
    _L5[i] = _L11;
    _L4[i] = kcg_false;
  }
  kcg_copy_ParabolaCurveSpeeds_T_CalcBrakingCurves_types(
    &(*BCACCForEBDFoot).BC.speeds,
    &_L5);
  kcg_copy_ParabolaCurveAccelerations_T_CalcBrakingCurves_types(
    &(*BCACCForEBDFoot).BC.accelerations,
    &(*BCACCForEBDFoot).BC.speeds);
  kcg_copy_ParabolaCurveDistances_T_CalcBrakingCurves_types(
    &(*BCACCForEBDFoot).BC.distances,
    &_L5);
  kcg_copy_ParabolaCurveValid_T_CalcBrakingCurves_types(
    &(*BCACCForEBDFoot).BC.valid,
    &_L4);
}