diff options
author | derobins <dana.e.robinson@gmail.com> | 2016-12-02 05:51:07 (GMT) |
---|---|---|
committer | derobins <dana.e.robinson@gmail.com> | 2016-12-02 05:51:07 (GMT) |
commit | 0c5f56a865725f1e5aaf14704ebcb0704e07bb59 (patch) | |
tree | b2cf16485484089abda346f0739ddcc53895f79a /src/H5system.c | |
parent | 63bcd73f1f53a8b4bb31083cbc30f9a90663438f (diff) | |
download | hdf5-0c5f56a865725f1e5aaf14704ebcb0704e07bb59.zip hdf5-0c5f56a865725f1e5aaf14704ebcb0704e07bb59.tar.gz hdf5-0c5f56a865725f1e5aaf14704ebcb0704e07bb59.tar.bz2 |
Added Windows-only versions of the round() functions, which do not
exist in VS2012 and earlier.
Tested on: 32-bit Windows 7 w/ VS2012 Pro
Diffstat (limited to 'src/H5system.c')
-rw-r--r-- | src/H5system.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/H5system.c b/src/H5system.c index 5205d08..4aada77 100644 --- a/src/H5system.c +++ b/src/H5system.c @@ -932,6 +932,56 @@ Wnanosleep(uint64_t nanosec) FUNC_LEAVE_NOAPI_VOID } /* end Wnanosleep() */ + +/*------------------------------------------------------------------------- + * Function: Wllround, Wllroundf, Wlround, Wlroundf, Wround, Wroundf + * + * Purpose: Wrapper function for round functions for use with VS2012 + * and earlier. + * + * Return: The rounded value that was passed in. + * + * Programmer: Dana Robinson + * December 2016 + * + *------------------------------------------------------------------------- + */ +long long +Wllround(double arg) +{ + return (long long)(arg < 0.0 ? HDceil(arg - 0.5) : HDfloor(arg + 0.5)); +} + +long long +Wllroundf(float arg) +{ + return (long long)(arg < 0.0F ? HDceil(arg - 0.5F) : HDfloor(arg + 0.5F)); +} + +long +Wlround(double arg) +{ + return (long)(arg < 0.0 ? HDceil(arg - 0.5) : HDfloor(arg + 0.5)); +} + +long +Wlroundf(float arg) +{ + return (long)(arg < 0.0F ? HDceil(arg - 0.5F) : HDfloor(arg + 0.5F)); +} + +double +Wround(double arg) +{ + return arg < 0.0 ? HDceil(arg - 0.5) : HDfloor(arg + 0.5); +} + +float +Wroundf(float arg) +{ + return arg < 0.0F ? HDceil(arg - 0.5F) : HDfloor(arg + 0.5F); +} + #endif /* H5_HAVE_WIN32_API */ |