diff --git a/include/simulink_math_fcn.c b/include/simulink_math_fcn.c index 723f392940610c2744241d996512bc2a9e326954..b11aa03dcd34dbe8f43f9c2571c5b10efd513687 100644 --- a/include/simulink_math_fcn.c +++ b/include/simulink_math_fcn.c @@ -19,14 +19,19 @@ int mod_int (int x, int y) { } double rem_real (double x, double y) { - return fmod(x, y); + if (x == 0.0 || y == 0.0){ + return 0.0; + }else{ + return fmod(x, y); + } } double mod_real (double x, double y) { double tmp = 0.; if (y == 0.) { return x; }; + if (x == 0.) { return 0; }; tmp = fmod(x, y); - if (y < 0. && tmp > 0.) { + if (y*tmp < 0.) { return tmp+y; } else {