46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
/**********************************************************************
|
|
*
|
|
* GEOS - Geometry Engine Open Source
|
|
* http://geos.osgeo.org
|
|
*
|
|
* Copyright (C) 2001-2002 Vivid Solutions Inc.
|
|
* Copyright (C) 2006 Refractions Research Inc.
|
|
*
|
|
* This is free software; you can redistribute and/or modify it under
|
|
* the terms of the GNU Lesser General Public Licence as published
|
|
* by the Free Software Foundation.
|
|
* See the COPYING file for more information.
|
|
*
|
|
**********************************************************************/
|
|
|
|
#pragma once
|
|
|
|
namespace geos {
|
|
namespace util {
|
|
|
|
/// Symmetric Rounding Algorithm
|
|
double sym_round(double val);
|
|
|
|
/// Asymmetric Rounding Algorithm
|
|
double java_math_round(double val);
|
|
|
|
/// Equivalent to Java Math.rint()
|
|
double rint_vc(double val);
|
|
|
|
|
|
/// Default rounding method for GEOS
|
|
///
|
|
/// @note Always use this rounding method, to easy easy switching
|
|
/// between different rounding method for the whole codebase.
|
|
inline double
|
|
round(double val)
|
|
{
|
|
return java_math_round(val);
|
|
}
|
|
|
|
/// Equivalent to std::clamp() in C++17
|
|
double clamp(double x, double min, double max);
|
|
|
|
}
|
|
} // namespace geos::util
|