/* 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: dk3madlc.ctr */ #ifndef DK3MADLC_H_INCLUDED /** Avoid multiple inclusions. */ #define DK3MADLC_H_INCLUDED 1 #line 10 "dk3madlc.ctr" /** @file dk3madlc.h Conversion from double to long, unsigned long, long long, unsigned long long, intmax_t, uintmax_t, dk3_im_t and dk3_um_t. */ #include #include #if DK3_HAVE_SYS_TYPES_H #include #endif #if DK3_HAVE_STDINT #include #endif #if DK3_HAVE_INTTYPES_H #include #endif #if DK3_HAVE_LIMITS_H #include #endif #if DK3_HAVE_MATH_H #include #endif #if DK3_HAVE_FLOAT_H #include #endif #ifdef __cplusplus extern "C" { #endif /** Convert double number to size. @param v Value to convert. @param ec Pointer to error code variable, may be NULL. Set to DK3_ERROR_MATH_OUT_OF_RANGE for negative v values, DK3_ERROR_MATH_OVERFLOW for values too large. @return Conversion result. */ size_t dk3ma_d_to_sz_ok(double v, int *ec); /** Convert double value to long. @param x Double value. @param ec Pointer to error code variable. Set to DK3_ERROR_MATH_OVERFLOW if the absolute value is too large. @return Conversion result. */ long dk3ma_d_to_l_ok(double x, int *ec); /** Convert double value to unsigned long. @param x Double value. @param ec Pointer to error code variable. Set to DK3_ERROR_MATH_OUT_OF_RANGE for negative v values, DK3_ERROR_MATH_OVERFLOW for values too large. @return Conversion result. */ unsigned long dk3ma_d_to_ul_ok(double x, int *ec); #if DK3_HAVE_LONG_LONG /** Convert double to long long. @param x Value to convert. @param ec Pointer to error code variable, may be NULL. Set to DK3_ERROR_MATH_OVERFLOW if the absolute value is too large. @return Conversion result. */ long long dk3ma_d_to_ll_ok(double x, int *ec); /** Convert double to unsigned long long. @param x Value to convert. @param ec Pointer to error code variable, may be NULL. Set to DK3_ERROR_MATH_OUT_OF_RANGE for negative v values, DK3_ERROR_MATH_OVERFLOW for values too large. @return Conversion result. */ unsigned long long dk3ma_d_to_ull_ok(double x, int *ec); #endif #if DK3_HAVE_INTMAX_T /** Convert double to intmax_t. @param x Value to convert. @param ec Pointer to error code variable, may be NULL. Set to DK3_ERROR_MATH_OVERFLOW if the absolute value is too large. @return Conversion result. */ intmax_t dk3ma_d_to_intmax_t_ok(double x, int *ec); /** Convert double to uintmax_t. @param x Value to convert. @param ec Pointer to error code variable, may be NULL. Set to DK3_ERROR_MATH_OUT_OF_RANGE for negative v values, DK3_ERROR_MATH_OVERFLOW for values too large. @return Conversion result. */ uintmax_t dk3ma_d_to_uintmax_t_ok(double x, int *ec); #endif /** Convert double precision floating point number to dk3_im_t. @param x Value to convert. @param ec Pointer to error code variable, may be NULL. Set to DK3_ERROR_MATH_OVERFLOW if the absolute value is too large. @return Conversion result. */ dk3_im_t dk3ma_d_to_im_ok(double x, int *ec); /** Convert double precision floating point number to dk3_um_t. @param x Value to convert. @param ec Pointer to error code variable, may be NULL. Set to DK3_ERROR_MATH_OUT_OF_RANGE for negative v values, DK3_ERROR_MATH_OVERFLOW for values too large. @return Conversion result. */ dk3_um_t dk3ma_d_to_um_ok(double x, int *ec); #ifdef __cplusplus } #endif #endif