From: fluffymormegil Date: Sat, 23 Oct 2010 23:29:16 +0000 (+0100) Subject: Makefile tweaks, repositioning of abs.hh as mathops.hh X-Git-Tag: v1.0.0~3^2~5 X-Git-Url: http://git.blackswordsonics.com/?a=commitdiff_plain;h=bf2a2aeb6863191074e1fee778b9c6066f358648;p=libmormegil Makefile tweaks, repositioning of abs.hh as mathops.hh --- 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/abs.hh deleted file mode 100644 index d8330ee..0000000 --- a/include/libmormegil/abs.hh +++ /dev/null @@ -1,38 +0,0 @@ -// libmormegil/abs.hh -// -// Copyright 2010 Martin Read. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. Neither the name of the author nor the names of any other contributors -// may be used to endorse or promote products derived from this software -// without their specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -// SUCH DAMAGE. - -#ifndef libmormegil_abs_hh -#define libmormegil_abs_hh - -namespace libmormegil -{ - inline template T abs(const T& i) { i < T(0) ? -i : i; } -} -#endif // libmormegil_abs_hh - -// vim:ts=8:sw=4:expandtab:fo=c diff --git a/include/libmormegil/mathops.hh b/include/libmormegil/mathops.hh new file mode 100644 index 0000000..6b9a88f --- /dev/null +++ b/include/libmormegil/mathops.hh @@ -0,0 +1,52 @@ +// libmormegil/mathops.hh +// +// Copyright 2010 Martin Read. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the author nor the names of any other contributors +// may be used to endorse or promote products derived from this software +// without their specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. + +#ifndef libmormegil_mathops_hh +#define libmormegil_mathops_hh + +namespace libmormegil +{ + 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_mathops_hh + +// vim:ts=8:sw=4:expandtab:fo=c