/* 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: dk3madsc.ctr */ /** @file dk3madsc.c The dk3madsc module. */ #line 68 "dk3madsc.ctr" #include "dk3ma.h" #line 76 "dk3madsc.ctr" short dk3ma_d_to_s_ok(double x, int *ec) { short back = 0; if ((double)DK3_S_MIN <= x) { if ((double)DK3_S_MAX >= x) { back = (short)x; } else { back = DK3_S_MAX; if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; } } } else { back = DK3_S_MIN; if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; } } return back; } unsigned short dk3ma_d_to_us_ok(double x, int *ec) { unsigned short back = 0U; if (0.0 <= x) { if ((double)DK3_US_MAX >= x) { back = (unsigned short)x; } else { back = DK3_US_MAX; if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; } } } else { if (NULL != ec) { *ec = DK3_ERROR_MATH_OUT_OF_RANGE; } } return back; }