// // File: cwt_rtwutil.cpp // // MATLAB Coder version : 4.3 // C/C++ source code generated on : 30-Mar-2020 11:59:32 // // Include Files #include "cwt_rtwutil.h" #include "cwt.h" #include "rt_nonfinite.h" #include #include #include // Function Definitions // // Arguments : double u0 // double u1 // Return Type : double // double rt_powd_snf(double u0, double u1) { double y; double d; double d1; if (rtIsNaN(u0) || rtIsNaN(u1)) { y = rtNaN; } else { d = std::abs(u0); d1 = std::abs(u1); if (rtIsInf(u1)) { if (d == 1.0) { y = 1.0; } else if (d > 1.0) { if (u1 > 0.0) { y = rtInf; } else { y = 0.0; } } else if (u1 > 0.0) { y = 0.0; } else { y = rtInf; } } else if (d1 == 0.0) { y = 1.0; } else if (d1 == 1.0) { if (u1 > 0.0) { y = u0; } else { y = 1.0 / u0; } } else if (u1 == 2.0) { y = u0 * u0; } else if ((u1 == 0.5) && (u0 >= 0.0)) { y = std::sqrt(u0); } else if ((u0 < 0.0) && (u1 > std::floor(u1))) { y = rtNaN; } else { y = pow(u0, u1); } } return y; } // // File trailer for cwt_rtwutil.cpp // // [EOF] //