/* Copyright (C) 2014-2020, Dirk Krause SPDX-License-Identifier: BSD-3-Clause */ /* WARNING: This file was generated by the dkct program (see http://dktools.sourceforge.net/ for details). Changes you make here will be lost if dkct is run again! You should modify the original source and run dkct on it. Original source: dk3madic.ctr */ /** @file dk3madic.c The dk3madic module. */ #line 64 "dk3madic.ctr" #include "dk3ma.h" #line 72 "dk3madic.ctr" int dk3ma_d_to_i_ok(double x, int *ec) { int back = 0; if ((double)DK3_I_MIN <= x) { if ((double)DK3_I_MAX >= x) { back = (int)x; } else { back = DK3_I_MAX; if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; } } } else { back = DK3_I_MIN; if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; } } return back; } unsigned dk3ma_d_to_u_ok(double x, int *ec) { unsigned back = 0U; if (0.0 <= x) { if ((double)DK3_U_MAX >= x) { back = (unsigned)x; } else { back = DK3_U_MAX; if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; } } } else { if (NULL != ec) { *ec = DK3_ERROR_MATH_OUT_OF_RANGE; } } return back; }