summaryrefslogtreecommitdiffstats
path: root/util.c
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2020-04-19 16:28:10 -0400
committerTavian Barnes <tavianator@tavianator.com>2020-05-01 09:52:56 -0400
commitc653c8cda8f49d3bbe07190a6477367290ff7f04 (patch)
treecbba1dbb655b851739bcc38b7839758e845dae64 /util.c
parentd95e93bf70f3351e6fd489284794ef7909fd94ce (diff)
downloadkd-forest-c653c8cda8f49d3bbe07190a6477367290ff7f04.tar.xz
Begin re-writing in Rust
Diffstat (limited to 'util.c')
-rw-r--r--util.c66
1 files changed, 0 insertions, 66 deletions
diff --git a/util.c b/util.c
deleted file mode 100644
index a2573a4..0000000
--- a/util.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*********************************************************************
- * kd-forest *
- * Copyright (C) 2014 Tavian Barnes <tavianator@tavianator.com> *
- * *
- * This program is free software. It comes without any warranty, to *
- * the extent permitted by applicable law. You can redistribute it *
- * and/or modify it under the terms of the Do What The Fuck You Want *
- * To Public License, Version 2, as published by Sam Hocevar. See *
- * the COPYING file or http://www.wtfpl.net/ for more details. *
- *********************************************************************/
-
-#include "util.h"
-#include <stdlib.h>
-
-void *
-xmalloc(size_t size)
-{
- void *ret = malloc(size);
- if (!ret) {
- abort();
- }
- return ret;
-}
-
-void *
-xrealloc(void *ptr, size_t size)
-{
- void *ret = realloc(ptr, size);
- if (!ret) {
- abort();
- }
- return ret;
-}
-
-// Based on sample rand() implementation from POSIX.1-2001
-
-static unsigned long xrand_next = 0;
-
-void xsrand(unsigned int seed) {
- xrand_next = seed;
-}
-
-static unsigned int xrand_simple(void) {
- xrand_next = xrand_next*1103515245 + 12345;
- return (unsigned int)(xrand_next/65536)%32768;
-}
-
-static unsigned int xrand_full(void) {
- unsigned int low = xrand_simple();
- unsigned int high = xrand_simple();
- return low | (high << 15);
-}
-
-#define XRAND_RANGE 1073741824U
-
-unsigned int
-xrand(unsigned int range)
-{
- // Compensate for bias if XRAND_RANGE isn't a multiple of range
- unsigned int limit = XRAND_RANGE - XRAND_RANGE%range;
- unsigned int res;
- do {
- res = xrand_full();
- } while (res >= limit);
- return res%range;
-}