From bf2a2aeb6863191074e1fee778b9c6066f358648 Mon Sep 17 00:00:00 2001 From: fluffymormegil Date: Sun, 24 Oct 2010 00:29:16 +0100 Subject: [PATCH] Makefile tweaks, repositioning of abs.hh as mathops.hh --- Makefile | 2 +- include/libmormegil/{abs.hh => mathops.hh} | 24 +++++++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) rename include/libmormegil/{abs.hh => mathops.hh} (67%) diff --git a/Makefile b/Makefile index bbda91f..c954ae7 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ LIB_BUILDDIR=lib LIB_REALNAME=libmormegil.so.$(MAJOR_VER).$(MINOR_VER).$(COMPAT_DEPTH) LIB_SONAME=libmormegil.so.$(MAJOR_VER) LIBMORMEGIL_BUILT=$(LIB_BUILDDIR)/$(LIB_REALNAME) -LIBOBJS=$(OBJ_BUILDDIR)/dice.o +LIBOBJS=$(OBJ_BUILDDIR)/dice.o $(OBJ_BUILDDIR)/stlprintf.o LIBS=$(LIB_BUILDDIR)/$(LIB_REALNAME) MANPAGES=man/dice.3 SRCARCH_NAME=libmormegil-$(MAJOR_VER).$(MINOR_VER).$(COMPAT_DEPTH) diff --git a/include/libmormegil/abs.hh b/include/libmormegil/mathops.hh similarity index 67% rename from include/libmormegil/abs.hh rename to include/libmormegil/mathops.hh index d8330ee..6b9a88f 100644 --- a/include/libmormegil/abs.hh +++ b/include/libmormegil/mathops.hh @@ -1,4 +1,4 @@ -// libmormegil/abs.hh +// libmormegil/mathops.hh // // Copyright 2010 Martin Read. All rights reserved. // @@ -26,13 +26,27 @@ // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. -#ifndef libmormegil_abs_hh -#define libmormegil_abs_hh +#ifndef libmormegil_mathops_hh +#define libmormegil_mathops_hh namespace libmormegil { - inline template T abs(const T& i) { i < T(0) ? -i : i; } + template inline T abs(const T& i) { return i < T(0) ? -i : i; } + template inline T sign(const T& orig) + { + return (orig != 0) ? ((orig < 0) ? T(-1) : T(1)) : T(0); + } + // div_up provides an upward-rounding integer divide. + // Before you ask: it isn't reasonable to use + // ceil(double(orig) / double(divisor) + // because while x86 might allow you to conveniently do to-and-fro + // translations between the GPRs and the FPRs, PowerPC (among others) + // does not. + template inline T div_up(T orig, T divisor) + { + return (orig + (divisor - 1)) / divisor; + } } -#endif // libmormegil_abs_hh +#endif // libmormegil_mathops_hh // vim:ts=8:sw=4:expandtab:fo=c -- 2.11.0