/* * File: div_repeat_s32_floor.c * * Code generated for Simulink model 'SOC'. * * Model version : 1.52 * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020 * C/C++ source code generated on : Tue Sep 14 16:42:25 2021 */ #include "rtwtypes.h" #include "div_nzp_repeat_u32.h" #include "div_nzp_repeat_u32_ceiling.h" #include "div_repeat_s32_floor.h" int32_T div_repeat_s32_floor(int32_T numerator, int32_T denominator, uint32_T nRepeatSub) { int32_T quotient; uint32_T absDenominator; uint32_T absNumerator; if (denominator == 0) { quotient = numerator >= 0 ? MAX_int32_T : MIN_int32_T; /* Divide by zero handler */ } else { absNumerator = numerator < 0 ? ~(uint32_T)numerator + 1U : (uint32_T) numerator; absDenominator = denominator < 0 ? ~(uint32_T)denominator + 1U : (uint32_T) denominator; if ((numerator < 0) != (denominator < 0)) { quotient = -(int32_T)div_nzp_repeat_u32_ceiling(absNumerator, absDenominator, nRepeatSub); } else { quotient = (int32_T)div_nzp_repeat_u32(absNumerator, absDenominator, nRepeatSub); } } return quotient; } /* * File trailer for generated code. * * [EOF] */