Index: .gitignore
===================================================================
--- .gitignore	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ .gitignore	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -18,4 +18,5 @@
 **/Makefile
 **/Makefile.in
+**/Makefile.dist.in
 /version
 
Index: Makefile.am
===================================================================
--- Makefile.am	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ Makefile.am	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -21,4 +21,5 @@
 
 SUBDIRS = driver src . @LIBCFA_TARGET_DIRS@
+DIST_SUBDIRS = driver src . libcfa benchmark longrun_tests tests tools tools/prettyprinter
 
 @LIBCFA_TARGET_MAKEFILES@ : Makefile $(srcdir)/libcfa/configure
@@ -26,5 +27,5 @@
 	@ls $(config_file) || (echo "Missing config.data, re-run configure script again" && false)
 	@$(eval config_data = $(shell cat $(config_file)))
-	@echo "Configuring libcfa with '$(config_data)''"
+	@echo "Configuring libcfa ($(abs_top_srcdir)/libcfa/configure) with '$(config_data)' from $(shell pwd) / $(dir $@)"
 	@cd $(dir $@) && $(abs_top_srcdir)/libcfa/configure $(config_data)
 
@@ -32,4 +33,6 @@
 
 man1_MANS = doc/man/cfa.1
+
+EXTRA_DIST = LICENSE doc/man/cfa.1 libcfa/configure libcfa/Makefile.dist.am libcfa/Makefile.dist.in
 
 debug=yes
Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ benchmark/Makefile.am	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -66,5 +66,5 @@
 # Dummy hack tricks
 EXTRA_PROGRAMS = dummy # build but do not install
-dummy_SOURCES = dummyC.c dummyCXX.cpp
+nodist_dummy_SOURCES = dummyC.c dummyCXX.cpp
 
 dummyC.c:
@@ -80,5 +80,8 @@
 ## =========================================================================================================
 
-all : basic$(EXEEXT) ctxswitch$(EXEEXT) mutex$(EXEEXT) schedint$(EXEEXT) schedext$(EXEEXT) creation$(EXEEXT)
+# all is used by make dist so ignore it
+all:
+
+all-bench : basic$(EXEEXT) ctxswitch$(EXEEXT) mutex$(EXEEXT) schedint$(EXEEXT) schedext$(EXEEXT) creation$(EXEEXT)
 
 basic_loop_DURATION = 15000000000
@@ -476,5 +479,5 @@
 ## =========================================================================================================
 
-compile$(EXEEXT) :		\
+bcompile$(EXEEXT) :		\
 	compile-array.make	\
 	compile-attributes.make	\
Index: configure.ac
===================================================================
--- configure.ac	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ configure.ac	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -137,4 +137,7 @@
 		\'--enable-gprofiler=*) ;;
 		\'--disable-gprofiler) ;;
+
+		# skip this, it only causes problems
+		\'--srcdir=*) ;;
 
 		# append all other arguments to the sub configure arguments
@@ -202,4 +205,5 @@
 
 	LIBCFA_TARGET_DIRS="${LIBCFA_TARGET_DIRS} ${lib_dir}"
+	LIBCFA_1TARGET_DIR="${lib_dir}"
 	LIBCFA_TARGET_MAKEFILES="${LIBCFA_TARGET_MAKEFILES} ${lib_dir}/Makefile"
 
@@ -213,4 +217,5 @@
 
 AC_SUBST(LIBCFA_TARGET_DIRS)
+AC_SUBST(LIBCFA_1TARGET_DIR)
 AC_SUBST(LIBCFA_TARGET_MAKEFILES)
 
@@ -278,7 +283,8 @@
 	driver/Makefile
 	src/Makefile
-	benchmark/Makefile
+	libcfa/Makefile:libcfa/Makefile.dist.in
 	tests/Makefile
 	longrun_tests/Makefile
+	benchmark/Makefile
 	tools/Makefile
 	tools/prettyprinter/Makefile
Index: libcfa/Makefile.dist.am
===================================================================
--- libcfa/Makefile.dist.am	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ libcfa/Makefile.dist.am	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,27 @@
+######################## -*- Mode: Makefile-Automake -*- ######################
+##
+## Cforall Version 1.0.0 Copyright (C) 2020 University of Waterloo
+##
+## The contents of this file are covered under the licence agreement in the
+## file "LICENCE" distributed with Cforall.
+##
+## Makefile.dist.am --
+##
+## Author           : Thierry Delisle
+## Created On       : Fri Aug dd 12:53:35 2020
+## Last Modified By :
+## Last Modified On :
+## Update Count     :
+###############################################################################
+
+AUTOMAKE_OPTIONS = foreign    # do not require all the GNU file names
+ACLOCAL_AMFLAGS  = -I automake
+
+distdir:
+	@echo "Distributing libcfa from '@LIBCFA_1TARGET_DIR@'"
+	+make -C $(abs_top_builddir)/@LIBCFA_1TARGET_DIR@ distdir \
+	top_distdir=$(top_distdir) \
+	distdir=../$(distdir) \
+	am__remove_distdir=$$(am__remove_distdir) \
+	am__skip_length_check=$(am__skip_length_check) \
+	am__skip_mode_fix=$(am__skip_mode_fix)
Index: libcfa/prelude/Makefile.am
===================================================================
--- libcfa/prelude/Makefile.am	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/prelude/Makefile.am	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -22,4 +22,6 @@
 cfalibdir = ${CFA_LIBDIR}
 cfalib_DATA = gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c defines.hfa
+
+EXTRA_DIST = bootloader.cf builtins.c builtins.def extras.c extras.regx extras.regx2 prelude-gen.cc prototypes.awk prototypes.c prototypes.sed sync-builtins.cf
 
 CC = @LOCAL_CFACC@
Index: libcfa/src/Makefile.am
===================================================================
--- libcfa/src/Makefile.am	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/Makefile.am	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -31,6 +31,6 @@
 # AM_CFAFLAGS for only cfa source
 # use -no-include-stdhdr to prevent rebuild cycles
-# The built sources must not depend on the installed headers
-AM_CFAFLAGS = -quiet -cfalib -I$(srcdir)/stdhdr $(if $(findstring ${gdbwaittarget}, ${@}), -XCFA --gdb) @CONFIG_CFAFLAGS@
+# The built sources must not depend on the installed inst_headers_src
+AM_CFAFLAGS = -quiet -cfalib -I$(srcdir)/stdhdr -I$(srcdir)/concurrency $(if $(findstring ${gdbwaittarget}, ${@}), -XCFA --gdb) @CONFIG_CFAFLAGS@
 AM_CFLAGS = -g -Wall -Wno-unused-function -fPIC -fexceptions -pthread @ARCH_FLAGS@ @CONFIG_CFLAGS@
 AM_CCASFLAGS = -g -Wall -Wno-unused-function @ARCH_FLAGS@ @CONFIG_CFLAGS@
@@ -39,31 +39,90 @@
 #----------------------------------------------------------------------------------------------------------------
 if BUILDLIB
-headers_nosrc = bitmanip.hfa exception.hfa math.hfa gmp.hfa time_t.hfa clock.hfa \
-		bits/align.hfa bits/containers.hfa bits/defs.hfa bits/debug.hfa bits/locks.hfa \
-		containers/list.hfa containers/stackLockFree.hfa concurrency/iofwd.hfa
+inst_headers_nosrc = \
+	bitmanip.hfa \
+	clock.hfa \
+	exception.hfa \
+	gmp.hfa \
+	math.hfa \
+	time_t.hfa \
+	bits/align.hfa \
+	bits/containers.hfa \
+	bits/debug.hfa \
+	bits/defs.hfa \
+	bits/locks.hfa \
+	concurrency/iofwd.hfa \
+	containers/list.hfa \
+	containers/stackLockFree.hfa
 
-headers = common.hfa fstream.hfa heap.hfa iostream.hfa iterator.hfa limits.hfa rational.hfa \
-		time.hfa stdlib.hfa parseargs.hfa \
-		containers/maybe.hfa containers/pair.hfa containers/result.hfa containers/vector.hfa
+inst_headers_src = \
+	common.hfa \
+	fstream.hfa \
+	heap.hfa \
+	iostream.hfa \
+	iterator.hfa \
+	limits.hfa \
+	parseargs.hfa \
+	rational.hfa \
+	stdlib.hfa \
+	time.hfa \
+	containers/maybe.hfa \
+	containers/pair.hfa \
+	containers/result.hfa \
+	containers/vector.hfa
 
-libsrc = startup.cfa interpose.cfa bits/debug.cfa assert.cfa exception.c virtual.c ${headers:.hfa=.cfa}
+libsrc = ${inst_headers_src} ${inst_headers_src:.hfa=.cfa} \
+	assert.cfa \
+	bits/algorithm.hfa \
+	bits/debug.cfa \
+	exception.c \
+	exception.h \
+	interpose.cfa \
+	lsda.h \
+	startup.cfa \
+	startup.hfa \
+	virtual.c \
+	virtual.h
 
 # not all platforms support concurrency, add option do disable it
-thread_headers_nosrc = bits/random.hfa concurrency/invoke.h concurrency/kernel/fwd.hfa
+inst_thread_headers_nosrc = \
+	bits/random.hfa \
+	concurrency/invoke.h \
+	concurrency/kernel/fwd.hfa
 
-thread_headers = concurrency/coroutine.hfa concurrency/thread.hfa concurrency/kernel.hfa \
-		concurrency/monitor.hfa concurrency/mutex.hfa
+inst_thread_headers_src = \
+	concurrency/coroutine.hfa \
+	concurrency/exception.hfa \
+	concurrency/kernel.hfa \
+	concurrency/monitor.hfa \
+	concurrency/mutex.hfa \
+	concurrency/thread.hfa
 
-thread_libsrc = concurrency/CtxSwitch-@ARCHITECTURE@.S concurrency/alarm.cfa \
-		concurrency/invoke.c concurrency/io.cfa concurrency/iocall.cfa \
-		concurrency/io/setup.cfa \
-		concurrency/kernel/startup.cfa concurrency/preemption.cfa \
-		concurrency/ready_queue.cfa concurrency/stats.cfa \
-		${thread_headers:.hfa=.cfa}
+thread_libsrc = ${inst_thread_headers_src} ${inst_thread_headers_src:.hfa=.cfa} \
+	bits/signal.hfa \
+	concurrency/alarm.cfa \
+	concurrency/alarm.hfa \
+	concurrency/CtxSwitch-@ARCHITECTURE@.S \
+	concurrency/invoke.c \
+	concurrency/io.cfa \
+	concurrency/io/setup.cfa \
+	concurrency/io/types.hfa \
+	concurrency/iocall.cfa \
+	concurrency/iofwd.hfa \
+	concurrency/kernel_private.hfa \
+	concurrency/kernel/startup.cfa \
+	concurrency/preemption.cfa \
+	concurrency/preemption.hfa \
+	concurrency/ready_queue.cfa \
+	concurrency/ready_subqueue.hfa \
+	concurrency/snzi.hfa \
+	concurrency/stats.cfa \
+	concurrency/stats.hfa \
+	concurrency/stats.hfa
+
 else
-headers =
-thread_headers =
-headers_nosrc =
-thread_headers_nosrc =
+inst_headers_src =
+inst_thread_headers_src =
+inst_headers_nosrc =
+inst_thread_headers_nosrc =
 libsrc =
 endif
@@ -115,5 +174,6 @@
 
 #----------------------------------------------------------------------------------------------------------------
-libcfa_la_SOURCES = prelude.cfa ${libsrc}
+libcfa_la_SOURCES = ${libsrc}
+nodist_libcfa_la_SOURCES = prelude.cfa
 libcfa_la_LDFLAGS = -version-info @CFA_VERSION@
 
@@ -124,5 +184,6 @@
 
 cfa_includedir = $(CFA_INCDIR)
-nobase_cfa_include_HEADERS = ${stdhdr} ${headers} ${headers_nosrc} ${thread_headers} ${thread_headers_nosrc}
+nobase_cfa_include_HEADERS = ${stdhdr} ${inst_headers_src} ${inst_headers_nosrc} ${inst_thread_headers_src} ${inst_thread_headers_nosrc}
+EXTRA_DIST = stdhdr
 
 #----------------------------------------------------------------------------------------------------------------
Index: libcfa/src/bitmanip.hfa
===================================================================
--- libcfa/src/bitmanip.hfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/bitmanip.hfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -11,6 +11,6 @@
 // Created On       : Sat Mar 14 18:12:27 2020
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Aug 10 09:21:02 2020
-// Update Count     : 139
+// Last Modified On : Sun Aug 23 21:39:28 2020
+// Update Count     : 140
 // 
 
@@ -103,18 +103,4 @@
 	// T floor2( T n, T align ) { verify( is_pow2( align ) ); return n & -align; }
 
-	signed char floor( signed char n, signed char align ) { return n / align * align; }
-	unsigned char floor( unsigned char n, unsigned char align ) { return n / align * align; }
-	short int floor( short int n, short int align ) { return n / align * align; }
-	unsigned short int floor( unsigned short int n, unsigned short int align ) { return n / align * align; }
-	int floor( int n, int align ) { return n / align * align; }
-	unsigned int floor( unsigned int n, unsigned int align ) { return n / align * align; }
-	long int floor( long int n, long int align ) { return n / align * align; }
-	unsigned long int floor( unsigned long int n, unsigned long int align ) { return n / align * align; }
-	long long int floor( long long int n, long long int align ) { return n / align * align; }
-	unsigned long long int floor( unsigned long long int n, unsigned long long int align ) { return n / align * align; }
-
-	// forall( otype T | { T ?/?( T, T ); T ?*?( T, T ); } )
-	// T floor( T n, T align ) { return n / align * align; }
-
 	// Returns n aligned at the ceiling of align, negate, round down, negate is the same as round up.
 	signed char ceiling2( signed char n, signed char align ) { verify( is_pow2( align ) ); return -floor2( -n, align ); }
@@ -131,33 +117,4 @@
 	// forall( otype T | { T floor2( T, T ); T -?( T ); } )
 	// T ceiling2( T n, T align ) { verify( is_pow2( align ) ); return -floor2( -n, align ); }
-
-	signed char ceiling_div( signed char n, char align ) { return (n + (align - 1)) / align; }
-	unsigned char ceiling_div( unsigned char n, unsigned char align ) { return (n + (align - 1)) / align; }
-	short int ceiling_div( short int n, short int align ) { return (n + (align - 1)) / align; }
-	unsigned short int ceiling_div( unsigned short int n, unsigned short int align ) { return (n + (align - 1)) / align; }
-	int ceiling_div( int n, int align ) { return (n + (align - 1)) / align; }
-	unsigned int ceiling_div( unsigned int n, unsigned int align ) { return (n + (align - 1)) / align; }
-	long int ceiling_div( long int n, long int align ) { return (n + (align - 1)) / align; }
-	unsigned long int ceiling_div( unsigned long int n, unsigned long int align ) { return (n + (align - 1)) / align; }
-	long long int ceiling_div( long long int n, long long int align ) { return (n + (align - 1)) / align; }
-	unsigned long long int ceiling_div( unsigned long long int n, unsigned long long int align ) { return (n + (align - 1)) / align; }
-
-	// forall( otype T | { T ?+?( T, T ); T ?-?( T, T ); T ?%?( T, T ); } )
-	// T ceiling_div( T n, T align ) { verify( is_pow2( align ) );return (n + (align - 1)) / align; }
-	
-	// gcc notices the div/mod pair and saves both so only one div.
-	signed char ceiling( signed char n, signed char align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
-	unsigned char ceiling( unsigned char n, unsigned char align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
-	short int ceiling( short int n, short int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
-	unsigned short int ceiling( unsigned short int n, unsigned short int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
-	int ceiling( int n, int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
-	unsigned int ceiling( unsigned int n, unsigned int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
-	long int ceiling( long int n, long int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
-	unsigned long int ceiling( unsigned long int n, unsigned long int align ) { return floor( n + (n % align != 0 ? align - 1 : 0) , align); }
-	long long int ceiling( long long int n, long long int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
-	unsigned long long int ceiling( unsigned long long int n, unsigned long long int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
-
-	// forall( otype T | { void ?{}( T &, one_t ); T ?+?( T, T ); T ?-?( T, T ); T ?/?( T, T ); } )
-	// T ceiling( T n, T align ) { return return floor( n + (n % align != 0 ? align - 1 : 0), align ); *}
 } // distribution
 
Index: libcfa/src/bits/defs.hfa
===================================================================
--- libcfa/src/bits/defs.hfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/bits/defs.hfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -10,6 +10,6 @@
 // Created On       : Thu Nov  9 13:24:10 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Aug 13 22:00:23 2020
-// Update Count     : 19
+// Last Modified On : Wed Aug 26 16:22:32 2020
+// Update Count     : 20
 //
 
@@ -49,5 +49,9 @@
 
 static inline long long int rdtscl(void) {
-	#if defined( __aarch64__ )
+	#if defined( __i386 ) || defined( __x86_64 )
+	unsigned int lo, hi;
+	__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
+	return ( (unsigned long long)lo)|( ((unsigned long long)hi)<<32 );
+	#elif defined( __aarch64__ ) || defined( __arm__ )
 	// https://github.com/google/benchmark/blob/v1.1.0/src/cycleclock.h#L116
 	long long int virtual_timer_value;
@@ -55,7 +59,5 @@
 	return virtual_timer_value;
 	#else
-	unsigned int lo, hi;
-	__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
-	return ( (unsigned long long)lo)|( ((unsigned long long)hi)<<32 );
+		#error unsupported hardware architecture
 	#endif // __ARM_ARCH
 }
Index: bcfa/src/concurrency/CtxSwitch-arm.S
===================================================================
--- libcfa/src/concurrency/CtxSwitch-arm.S	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ 	(revision )
@@ -1,104 +1,0 @@
-// 
-// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
-// 
-// CtxSwitch-arm.S -- 
-// 
-// Author           : Peter A. Buhr
-// Created On       : Sun Aug 16 07:50:13 2020
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Aug 20 18:43:51 2020
-// Update Count     : 24
-// 
-
-// The context switch routine requires the initial the stack of a thread to
-// look like the thread has saved its context in the normal manner.
-
-// Offsets must synchronized with the __stack_context_t in invoke.h.
-
-#define PTR_BYTE	8
-#define SP_OFFSET	( 0 * PTR_BYTE )
-#define FP_OFFSET	( 1 * PTR_BYTE )
-
-// Context switch between coroutines/tasks.
-//   void __cfactx_switch( struct __stack_context_t * from, struct __stack_context_t * to ) ;
-// Arguments "from" in register x0, "to" in register x1.
-
-#define SAVE		20 * 8
-
-	.file "CtxSwitch-arm.S"
-	.text
-	.align 2
-	.global __cfactx_switch
-	.type __cfactx_switch, @function
-__cfactx_switch:
-
-	sub  sp, sp, #SAVE					// push stack
-
-	// Save volatile GP registers x19-x30 on the stack.
-
-	stp  x19, x20, [sp, #0x00]
-	stp  x21, x22, [sp, #0x10]
-	stp  x23, x24, [sp, #0x20]
-	stp  x25, x26, [sp, #0x30]
-	stp  x27, x28, [sp, #0x40]
-	stp  x29, x30, [sp, #0x50]			// x29 => fp
-
-	// Save volatile SIMD/FPU registers d8-d15 on the stack.
-
-	stp  d8,  d9,  [sp, #0x60]
-	stp  d10, d11, [sp, #0x70]
-	stp  d12, d13, [sp, #0x80]
-	stp  d14, d15, [sp, #0x90]
-
-	// Save old context in the "from" area.
-
-	mov  x4, sp							// cannot store sp directly
-	str  x4, [x0, #SP_OFFSET]
-	str  fp, [x0, #FP_OFFSET]
-
-	// Load new context from the "to" area.
-
-	ldr  fp, [x1, #FP_OFFSET]
-	ldr  x4, [x1, #SP_OFFSET]
-	mov  sp, x4							// cannot store sp directly
-
-	// Load volatile GP registers x19-x30 from the stack.
-
-	ldp  x19, x20, [sp, #0x00]
-	ldp  x21, x22, [sp, #0x10]
-	ldp  x23, x24, [sp, #0x20]
-	ldp  x25, x26, [sp, #0x30]
-	ldp  x27, x28, [sp, #0x40]
-	ldp  x29, x30, [sp, #0x50]
-	
-	// Load volatile SIMD/FPU registers d8-d15 from the stack.
-
-	ldp  d8,  d9,  [sp, #0x60]
-	ldp  d10, d11, [sp, #0x70]
-	ldp  d12, d13, [sp, #0x80]
-	ldp  d14, d15, [sp, #0x90]
-
-	add  sp, sp, #SAVE					// pop stack
-	ret									// return to new thread (mov pc, x30)
-
-	.size __cfactx_switch, .-__cfactx_switch
-	.section .note.GNU-stack,"",%progbits // mark no executable stack needed
-
-// Stub to create new stacks which can be context switched to
-//   void __cfactx_invoke_stub( void );
-
-	.text
-	.align 2
-	.global __cfactx_invoke_stub
-	.type __cfactx_invoke_stub, @function
-__cfactx_invoke_stub:
-	mov x0, x19							// load main as parameter 0
-	mov x1, x20							// load this as parameter 1
-	mov x30, x21						// load coroutine invoke routine
-	ret									//   and jmp to it (mov pc, x30)
-	.size __cfactx_invoke_stub, .-__cfactx_invoke_stub
-
-// Local Variables: //
-// mode: c //
-// tab-width: 4 //
-// End: //
Index: libcfa/src/concurrency/CtxSwitch-arm32.S
===================================================================
--- libcfa/src/concurrency/CtxSwitch-arm32.S	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ libcfa/src/concurrency/CtxSwitch-arm32.S	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,62 @@
+	# 32 bit ARM context switch
+	# This function assumes that r9 has no special meaning on the platform it's
+	# being built on.
+	# If r9 is special, uncomment the following line and it will be left alone
+
+	# #define R9_SPECIAL
+
+	#define PTR_BYTE        4
+	#define SP_OFFSET       ( 0 * PTR_BYTE )
+	#define FP_OFFSET       ( 1 * PTR_BYTE )
+	#define PC_OFFSET       ( 2 * PTR_BYTE )
+
+	.text
+	.align  2
+	.global __cfactx_switch
+	.type   __cfactx_switch, %function
+
+__cfactx_switch:
+	# save callee-saved registers: r4-r8, r10, r11, r13(sp) (plus r9 depending on platform specification)
+	# I've seen reference to 31 registers on 64-bit, if this is the case, more need to be saved
+	# save thread state registers: r14(lr)
+	# r12(ip) is intra-procedure-call scratch register, does not need saving between function calls
+
+	#ifdef R9_SPECIAL
+	stmfd r13!, {r4-r8,r10,r11,r14}
+	#else
+	stmfd r13!, {r4-r11,r14}
+	#endif // R9_SPECIAL
+
+	# save floating point registers: s16-s31
+	vstmdb r13!, {s16-s31}
+
+	# save frame pointer and stack pointer to outgoing datastructure
+	str sp, [r0, #SP_OFFSET]
+	str fp, [r0, #FP_OFFSET]
+
+	# restore frame pointer and stack pointer from incoming datastructure
+	ldr fp, [r1, #FP_OFFSET]
+	ldr sp, [r1, #SP_OFFSET]
+
+	# restore floating point registers: s16-s31
+	vldm r13!, {s16-s31}
+	# restore r14(lr)
+	# restore 64-bit extra registers?
+	# restore callee-saved registers: r4-r8, r10, r11, r13
+
+	#ifdef R9_SPECIAL
+	ldmfd r13!, {r4-r8,r10,r11,r15}
+	#else
+	ldmfd r13!, {r4-r11,r14}    # loading r14 back into r15 returns
+
+	mov r15, r14
+	#endif // R9_SPECIAL
+
+	.text
+	.align  2
+	.global __cfactx_invoke_stub
+	.type   __cfactx_invoke_stub, %function
+
+__cfactx_invoke_stub:
+        ldmfd r13!, {r0-r1}
+	mov r15, r1
Index: libcfa/src/concurrency/CtxSwitch-arm64.S
===================================================================
--- libcfa/src/concurrency/CtxSwitch-arm64.S	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ libcfa/src/concurrency/CtxSwitch-arm64.S	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,104 @@
+// 
+// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
+// 
+// CtxSwitch-arm64.S -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Sun Aug 16 07:50:13 2020
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Wed Aug 26 16:24:59 2020
+// Update Count     : 25
+// 
+
+// The context switch routine requires the initial the stack of a thread to
+// look like the thread has saved its context in the normal manner.
+
+// Offsets must synchronized with the __stack_context_t in invoke.h.
+
+#define PTR_BYTE	8
+#define SP_OFFSET	( 0 * PTR_BYTE )
+#define FP_OFFSET	( 1 * PTR_BYTE )
+
+// Context switch between coroutines/tasks.
+//   void __cfactx_switch( struct __stack_context_t * from, struct __stack_context_t * to ) ;
+// Arguments "from" in register x0, "to" in register x1.
+
+#define SAVE		20 * 8
+
+	.file "CtxSwitch-arm64.S"
+	.text
+	.align 2
+	.global __cfactx_switch
+	.type __cfactx_switch, %function
+__cfactx_switch:
+
+	sub  sp, sp, #SAVE					// push stack
+
+	// Save volatile GP registers x19-x30 on the stack.
+
+	stp  x19, x20, [sp, #0x00]
+	stp  x21, x22, [sp, #0x10]
+	stp  x23, x24, [sp, #0x20]
+	stp  x25, x26, [sp, #0x30]
+	stp  x27, x28, [sp, #0x40]
+	stp  x29, x30, [sp, #0x50]			// x29 => fp
+
+	// Save volatile SIMD/FPU registers d8-d15 on the stack.
+
+	stp  d8,  d9,  [sp, #0x60]
+	stp  d10, d11, [sp, #0x70]
+	stp  d12, d13, [sp, #0x80]
+	stp  d14, d15, [sp, #0x90]
+
+	// Save old context in the "from" area.
+
+	mov  x4, sp							// cannot store sp directly
+	str  x4, [x0, #SP_OFFSET]
+	str  fp, [x0, #FP_OFFSET]
+
+	// Load new context from the "to" area.
+
+	ldr  fp, [x1, #FP_OFFSET]
+	ldr  x4, [x1, #SP_OFFSET]
+	mov  sp, x4							// cannot store sp directly
+
+	// Load volatile GP registers x19-x30 from the stack.
+
+	ldp  x19, x20, [sp, #0x00]
+	ldp  x21, x22, [sp, #0x10]
+	ldp  x23, x24, [sp, #0x20]
+	ldp  x25, x26, [sp, #0x30]
+	ldp  x27, x28, [sp, #0x40]
+	ldp  x29, x30, [sp, #0x50]
+	
+	// Load volatile SIMD/FPU registers d8-d15 from the stack.
+
+	ldp  d8,  d9,  [sp, #0x60]
+	ldp  d10, d11, [sp, #0x70]
+	ldp  d12, d13, [sp, #0x80]
+	ldp  d14, d15, [sp, #0x90]
+
+	add  sp, sp, #SAVE					// pop stack
+	ret									// return to new thread (mov pc, x30)
+
+	.size __cfactx_switch, .-__cfactx_switch
+	.section .note.GNU-stack,"",%progbits // mark no executable stack needed
+
+// Stub to create new stacks which can be context switched to
+//   void __cfactx_invoke_stub( void );
+
+	.text
+	.align 2
+	.global __cfactx_invoke_stub
+	.type __cfactx_invoke_stub, %function
+__cfactx_invoke_stub:
+	mov x0, x19							// load main as parameter 0
+	mov x1, x20							// load this as parameter 1
+	mov x30, x21						// load coroutine invoke routine
+	ret									//   and jmp to it (mov pc, x30)
+	.size __cfactx_invoke_stub, .-__cfactx_invoke_stub
+
+// Local Variables: //
+// mode: c //
+// tab-width: 4 //
+// End: //
Index: libcfa/src/concurrency/coroutine.cfa
===================================================================
--- libcfa/src/concurrency/coroutine.cfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/concurrency/coroutine.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -215,8 +215,4 @@
 		return cor;
 	}
-
-	struct $coroutine * __cfactx_cor_active(void) {
-		return active_coroutine();
-	}
 }
 
Index: libcfa/src/concurrency/exception.cfa
===================================================================
--- libcfa/src/concurrency/exception.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ libcfa/src/concurrency/exception.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,91 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+//
+// exception.cfa -- Exceptions in a concurrent environment.
+//
+// Author           : Andrew Beach
+// Created On       : Mon Aug 17 10:41:00 2020
+// Last Modified By : Andrew Beach
+// Last Modified On : Tue Aug 25 14:41:00 2020
+// Update Count     : 0
+//
+
+extern "C" {
+// use this define to make unwind.h play nice, definitely a hack
+#define HIDE_EXPORTS
+#include <unwind.h>
+#undef HIDE_EXPORTS
+}
+
+#include "invoke.h"
+#include "exception.hfa"
+#include "coroutine.hfa"
+
+extern struct $thread * mainThread;
+
+// Common pattern for all the stop functions, wait until the end then act.
+#define STOP_AT_END_FUNCTION(NAME, ...) \
+static _Unwind_Reason_Code NAME( \
+		int version, \
+		_Unwind_Action actions, \
+		_Unwind_Exception_Class exception_class, \
+		struct _Unwind_Exception * unwind_exception, \
+		struct _Unwind_Context * unwind_context, \
+		void * stop_param) { \
+	verify(actions & _UA_CLEANUP_PHASE); \
+	verify(actions & _UA_FORCE_UNWIND); \
+	verify(!(actions & _UA_SEARCH_PHASE)); \
+	verify(!(actions & _UA_HANDLER_FRAME)); \
+	if ( actions & _UA_END_OF_STACK ) { \
+		__VA_ARGS__ \
+	} else { \
+		return _URC_NO_REASON; \
+	} \
+}
+
+STOP_AT_END_FUNCTION(main_cancelstop,
+	abort();
+)
+
+STOP_AT_END_FUNCTION(thread_cancelstop,
+	// TODO: Instead pass information to the joiner.
+	abort();
+)
+
+STOP_AT_END_FUNCTION(coroutine_cancelstop,
+	// TODO: Instead pass information to the last resumer.
+	abort();
+)
+
+extern "C" {
+
+struct exception_context_t * this_exception_context(void) {
+	return &__get_stack( active_coroutine() )->exception_context;
+}
+
+_Unwind_Reason_Code __cfaehm_cancellation_unwind( struct _Unwind_Exception * unwind_exception ) {
+	_Unwind_Stop_Fn stop_func;
+	void * stop_param;
+
+	struct $thread * this_thread = TL_GET( this_thread );
+	if ( &this_thread->self_cor != this_thread->curr_cor ) {
+		struct $coroutine * cor = this_thread->curr_cor;
+		cor->cancellation = unwind_exception;
+
+		stop_func = coroutine_cancelstop;
+		stop_param = cor;
+	} else if ( mainThread == this_thread ) {
+		stop_func = main_cancelstop;
+		stop_param = (void *)0x22;
+	} else {
+		stop_func = thread_cancelstop;
+		stop_param = this_thread;
+	}
+
+	return _Unwind_ForcedUnwind( unwind_exception, stop_func, stop_param );
+}
+
+}
Index: libcfa/src/concurrency/exception.hfa
===================================================================
--- libcfa/src/concurrency/exception.hfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ libcfa/src/concurrency/exception.hfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,35 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+//
+// exception.hfa -- Exceptions in a concurrent environment.
+//
+// Author           : Andrew Beach
+// Created On       : Mon Aug 24 10:41:00 2020
+// Last Modified By : Andrew Beach
+// Last Modified On : Mon Aug 24 14:27:00 2020
+// Update Count     : 0
+//
+
+#pragma once
+
+#include "bits/defs.hfa"
+#include "invoke.h"
+struct _Unwind_Exception;
+
+// It must also be usable as a C header file.
+
+#ifdef __cforall
+extern "C" {
+#endif
+
+struct exception_context_t * this_exception_context(void) OPTIONAL_THREAD;
+
+_Unwind_Reason_Code __cfaehm_cancellation_unwind(
+		struct _Unwind_Exception * unwind_exception ) OPTIONAL_THREAD;
+
+#ifdef __cforall
+}
+#endif
Index: libcfa/src/concurrency/invoke.c
===================================================================
--- libcfa/src/concurrency/invoke.c	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/concurrency/invoke.c	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -29,5 +29,4 @@
 // Called from the kernel when starting a coroutine or task so must switch back to user mode.
 
-extern struct $coroutine * __cfactx_cor_active(void);
 extern struct $coroutine * __cfactx_cor_finish(void);
 extern void __cfactx_cor_leave ( struct $coroutine * );
@@ -36,8 +35,4 @@
 extern void disable_interrupts() OPTIONAL_THREAD;
 extern void enable_interrupts( __cfaabi_dbg_ctx_param );
-
-struct exception_context_t * this_exception_context() {
-	return &__get_stack( __cfactx_cor_active() )->exception_context;
-}
 
 void __cfactx_invoke_coroutine(
Index: libcfa/src/concurrency/invoke.h
===================================================================
--- libcfa/src/concurrency/invoke.h	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/concurrency/invoke.h	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -98,6 +98,4 @@
 	}
 
-	struct exception_context_t * this_exception_context();
-
 	// struct which calls the monitor is accepting
 	struct __waitfor_mask_t {
Index: libcfa/src/concurrency/io/setup.cfa
===================================================================
--- libcfa/src/concurrency/io/setup.cfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/concurrency/io/setup.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -384,5 +384,5 @@
 			/* paranoid */ verify( is_pow2( params_in.num_ready ) || (params_in.num_ready < 8) );
 			sq.ready_cnt = max( params_in.num_ready, 8 );
-			sq.ready = alloc_align( 64, sq.ready_cnt );
+			sq.ready = alloc( sq.ready_cnt, 64`align );
 			for(i; sq.ready_cnt) {
 				sq.ready[i] = -1ul32;
Index: libcfa/src/concurrency/kernel.cfa
===================================================================
--- libcfa/src/concurrency/kernel.cfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/concurrency/kernel.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -10,6 +10,6 @@
 // Created On       : Tue Jan 17 12:27:26 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Aug 14 15:23:00 2020
-// Update Count     : 69
+// Last Modified On : Mon Aug 31 07:08:20 2020
+// Update Count     : 71
 //
 
@@ -74,5 +74,9 @@
 		)
 
-#elif defined( __ARM_ARCH )
+#elif defined( __arm__ )
+	#define __x87_store
+	#define __x87_load
+
+#elif defined( __aarch64__ )
 	#define __x87_store		 \
 		uint32_t __fpcntl[2];    \
@@ -93,5 +97,5 @@
 
 #else
-	#error unknown hardware architecture
+	#error unsupported hardware architecture
 #endif
 
Index: libcfa/src/concurrency/kernel/startup.cfa
===================================================================
--- libcfa/src/concurrency/kernel/startup.cfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/concurrency/kernel/startup.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -579,4 +579,5 @@
 
 	// Lock the RWlock so no-one pushes/pops while we are changing the queue
+	disable_interrupts();
 	uint_fast32_t last_size = ready_mutate_lock();
 
@@ -586,4 +587,6 @@
 	// Unlock the RWlock
 	ready_mutate_unlock( last_size );
+	enable_interrupts_noPoll(); // Don't poll, could be in main cluster
+
 
 	this.io.cnt  = num_io;
@@ -601,4 +604,5 @@
 
 	// Lock the RWlock so no-one pushes/pops while we are changing the queue
+	disable_interrupts();
 	uint_fast32_t last_size = ready_mutate_lock();
 
@@ -608,4 +612,5 @@
 	// Unlock the RWlock
 	ready_mutate_unlock( last_size );
+	enable_interrupts_noPoll(); // Don't poll, could be in main cluster
 
 	#if !defined(__CFA_NO_STATISTICS__)
Index: libcfa/src/concurrency/preemption.cfa
===================================================================
--- libcfa/src/concurrency/preemption.cfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/concurrency/preemption.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -10,6 +10,6 @@
 // Created On       : Mon Jun 5 14:20:42 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Aug 21 13:45:32 2020
-// Update Count     : 52
+// Last Modified On : Wed Aug 26 16:46:03 2020
+// Update Count     : 53
 //
 
@@ -56,8 +56,10 @@
 #elif defined( __x86_64 )
 #define CFA_REG_IP gregs[REG_RIP]
-#elif defined( __ARM_ARCH )
+#elif defined( __arm__ )
+#define CFA_REG_IP arm_pc
+#elif defined( __aarch64__ )
 #define CFA_REG_IP pc
 #else
-#error unknown hardware architecture
+#error unsupported hardware architecture
 #endif
 
Index: libcfa/src/concurrency/ready_queue.cfa
===================================================================
--- libcfa/src/concurrency/ready_queue.cfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/concurrency/ready_queue.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -215,4 +215,29 @@
 }
 
+static inline [unsigned, bool] idx_from_r(unsigned r, unsigned preferred) {
+	unsigned i;
+	bool local;
+	#if defined(BIAS)
+		unsigned rlow  = r % BIAS;
+		unsigned rhigh = r / BIAS;
+		if((0 != rlow) && preferred >= 0) {
+			// (BIAS - 1) out of BIAS chances
+			// Use perferred queues
+			i = preferred + (rhigh % 4);
+			local = true;
+		}
+		else {
+			// 1 out of BIAS chances
+			// Use all queues
+			i = rhigh;
+			local = false;
+		}
+	#else
+		i = r;
+		local = false;
+	#endif
+	return [i, local];
+}
+
 //-----------------------------------------------------------------------
 __attribute__((hot)) bool push(struct cluster * cltr, struct $thread * thrd) with (cltr->ready_queue) {
@@ -222,7 +247,8 @@
 	thrd->link.ts = rdtscl();
 
-	#if defined(BIAS) && !defined(__CFA_NO_STATISTICS__)
-		bool local = false;
-		int preferred =
+	__attribute__((unused)) bool local;
+	__attribute__((unused)) int preferred;
+	#if defined(BIAS)
+		preferred =
 			//*
 			kernelTLS.this_processor ? kernelTLS.this_processor->id * 4 : -1;
@@ -230,6 +256,4 @@
 			thrd->link.preferred * 4;
 			//*/
-
-
 	#endif
 
@@ -238,26 +262,12 @@
 	do {
 		// Pick the index of a lane
-		#if defined(BIAS)
-			unsigned r = __tls_rand();
-			unsigned rlow  = r % BIAS;
-			unsigned rhigh = r / BIAS;
-			if((0 != rlow) && preferred >= 0) {
-				// (BIAS - 1) out of BIAS chances
-				// Use perferred queues
-				i = preferred + (rhigh % 4);
-
-				#if !defined(__CFA_NO_STATISTICS__)
-					local = true;
-					__tls_stats()->ready.pick.push.local++;
-				#endif
-			}
-			else {
-				// 1 out of BIAS chances
-				// Use all queues
-				i = rhigh;
-				local = false;
-			}
-		#else
-			i = __tls_rand();
+		// unsigned r = __tls_rand();
+		unsigned r = __tls_rand_fwd();
+		[i, local] = idx_from_r(r, preferred);
+
+		#if !defined(__CFA_NO_STATISTICS__)
+			if(local) {
+				__tls_stats()->ready.pick.push.local++;
+			}
 		#endif
 
@@ -274,5 +284,9 @@
 
 	// Actually push it
-	bool lane_first = push(lanes.data[i], thrd);
+	#ifdef USE_SNZI
+		bool lane_first =
+	#endif
+
+	push(lanes.data[i], thrd);
 
 	#ifdef USE_SNZI
@@ -287,4 +301,6 @@
 	#endif
 
+	__tls_rand_advance_bck();
+
 	// Unlock and return
 	__atomic_unlock( &lanes.data[i].lock );
@@ -311,8 +327,11 @@
 	/* paranoid */ verify( lanes.count > 0 );
 	unsigned count = __atomic_load_n( &lanes.count, __ATOMIC_RELAXED );
+	int preferred;
 	#if defined(BIAS)
 		// Don't bother trying locally too much
 		int local_tries = 8;
-	#endif
+		preferred = kernelTLS.this_processor->id * 4;
+	#endif
+
 
 	// As long as the list is not empty, try finding a lane that isn't empty and pop from it
@@ -323,36 +342,21 @@
 	#endif
 		// Pick two lists at random
-		unsigned i,j;
-		#if defined(BIAS)
-			#if !defined(__CFA_NO_STATISTICS__)
-				bool local = false;
-			#endif
-			uint64_t r = __tls_rand();
-			unsigned rlow  = r % BIAS;
-			uint64_t rhigh = r / BIAS;
-			if(local_tries && 0 != rlow) {
-				// (BIAS - 1) out of BIAS chances
-				// Use perferred queues
-				unsigned pid = kernelTLS.this_processor->id * 4;
-				i = pid + (rhigh % 4);
-				j = pid + ((rhigh >> 32ull) % 4);
-
-				// count the tries
-				local_tries--;
-
-				#if !defined(__CFA_NO_STATISTICS__)
-					local = true;
-					__tls_stats()->ready.pick.pop.local++;
-				#endif
-			}
-			else {
-				// 1 out of BIAS chances
-				// Use all queues
-				i = rhigh;
-				j = rhigh >> 32ull;
-			}
-		#else
-			i = __tls_rand();
-			j = __tls_rand();
+		// unsigned ri = __tls_rand();
+		// unsigned rj = __tls_rand();
+		unsigned ri = __tls_rand_bck();
+		unsigned rj = __tls_rand_bck();
+
+		unsigned i, j;
+		__attribute__((unused)) bool locali, localj;
+		[i, locali] = idx_from_r(ri, preferred);
+		[j, localj] = idx_from_r(rj, preferred);
+
+		#if !defined(__CFA_NO_STATISTICS__)
+			if(locali) {
+				__tls_stats()->ready.pick.pop.local++;
+			}
+			if(localj) {
+				__tls_stats()->ready.pick.pop.local++;
+			}
 		#endif
 
@@ -364,5 +368,5 @@
 		if(thrd) {
 			#if defined(BIAS) && !defined(__CFA_NO_STATISTICS__)
-				if( local ) __tls_stats()->ready.pick.pop.lsuccess++;
+				if( locali || localj ) __tls_stats()->ready.pick.pop.lsuccess++;
 			#endif
 			return thrd;
@@ -543,5 +547,5 @@
 
 		// Allocate new array (uses realloc and memcpies the data)
-		lanes.data = alloc(lanes.data, ncount);
+		lanes.data = alloc( ncount, lanes.data`realloc );
 
 		// Fix the moved data
@@ -634,5 +638,5 @@
 
 		// Allocate new array (uses realloc and memcpies the data)
-		lanes.data = alloc(lanes.data, lanes.count);
+		lanes.data = alloc( lanes.count, lanes.data`realloc );
 
 		// Fix the moved data
Index: libcfa/src/exception.c
===================================================================
--- libcfa/src/exception.c	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/exception.c	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -10,6 +10,6 @@
 // Created On       : Mon Jun 26 15:13:00 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Aug 21 11:27:56 2020
-// Update Count     : 29
+// Last Modified On : Sat Aug 29 15:52:22 2020
+// Update Count     : 34
 //
 
@@ -18,12 +18,4 @@
 
 #include "exception.h"
-
-// Implementation of the secret header is hardware dependent.
-#if defined( __x86_64 ) || defined( __i386 )
-#elif defined( __ARM_ARCH )
-#warning FIX ME: check if anything needed for ARM
-#else
-#warning Exception Handling: No known architecture detected.
-#endif
 
 #include <stdlib.h>
@@ -34,5 +26,6 @@
 #include "stdhdr/assert.h"
 
-// FIX ME: temporary hack to keep ARM build working
+#if defined( __ARM_ARCH )
+#warning FIX ME: temporary hack to keep ARM build working
 #ifndef _URC_FATAL_PHASE1_ERROR
 #define _URC_FATAL_PHASE1_ERROR 3
@@ -41,4 +34,5 @@
 #define _URC_FATAL_PHASE2_ERROR 2
 #endif // ! _URC_FATAL_PHASE2_ERROR
+#endif // __ARM_ARCH
 
 #include "lsda.h"
@@ -209,9 +203,11 @@
 		void * stop_param) {
 	// Verify actions follow the rules we expect.
-	verify((actions & _UA_CLEANUP_PHASE) && (actions & _UA_FORCE_UNWIND));
-	verify(!(actions & (_UA_SEARCH_PHASE | _UA_HANDLER_FRAME)));
+	verify(actions & _UA_CLEANUP_PHASE);
+	verify(actions & _UA_FORCE_UNWIND);
+	verify(!(actions & _UA_SEARCH_PHASE));
+	verify(!(actions & _UA_HANDLER_FRAME));
 
 	if ( actions & _UA_END_OF_STACK ) {
-		exit(1);
+		abort();
 	} else {
 		return _URC_NO_REASON;
@@ -219,11 +215,27 @@
 }
 
-static struct _Unwind_Exception cancel_exception_storage;
+__attribute__((weak)) _Unwind_Reason_Code
+__cfaehm_cancellation_unwind( struct _Unwind_Exception * exception ) {
+	return _Unwind_ForcedUnwind( exception, _Stop_Fn, (void*)0x22 );
+}
 
 // Cancel the current stack, prefroming approprate clean-up and messaging.
 void __cfaehm_cancel_stack( exception_t * exception ) {
-	// TODO: Detect current stack and pick a particular stop-function.
+	__cfaehm_allocate_exception( exception );
+
+	struct exception_context_t * context = this_exception_context();
+	struct __cfaehm_node * node = EXCEPT_TO_NODE(context->current_exception);
+
+	// Preform clean-up of any extra active exceptions.
+	while ( node->next ) {
+		struct __cfaehm_node * to_free = node->next;
+		node->next = to_free->next;
+		exception_t * except = NODE_TO_EXCEPT( to_free );
+		except->virtual_table->free( except );
+	    free( to_free );
+	}
+
 	_Unwind_Reason_Code ret;
-	ret = _Unwind_ForcedUnwind( &cancel_exception_storage, _Stop_Fn, (void*)0x22 );
+	ret = __cfaehm_cancellation_unwind( &node->unwind_exception );
 	printf("UNWIND ERROR %d after force unwind\n", ret);
 	abort();
@@ -608,3 +620,21 @@
 
 #pragma GCC pop_options
+
+#elif defined( __ARM_ARCH )
+_Unwind_Reason_Code __gcfa_personality_v0(
+		int version,
+		_Unwind_Action actions,
+		unsigned long long exception_class,
+		struct _Unwind_Exception * unwind_exception,
+		struct _Unwind_Context * unwind_context) {
+	return _URC_CONTINUE_UNWIND;
+}
+
+__attribute__((noinline))
+void __cfaehm_try_terminate(void (*try_block)(),
+		void (*catch_block)(int index, exception_t * except),
+		__attribute__((unused)) int (*match_block)(exception_t * except)) {
+}
+#else
+	#error unsupported hardware architecture
 #endif // __x86_64 || __i386
Index: libcfa/src/heap.cfa
===================================================================
--- libcfa/src/heap.cfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/heap.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -10,6 +10,6 @@
 // Created On       : Tue Dec 19 21:58:35 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Aug 12 16:43:38 2020
-// Update Count     : 902
+// Last Modified On : Mon Aug 24 20:29:24 2020
+// Update Count     : 926
 //
 
@@ -27,6 +27,6 @@
 #include "bits/locks.hfa"								// __spinlock_t
 #include "startup.hfa"									// STARTUP_PRIORITY_MEMORY
-//#include "stdlib.hfa"									// bsearchl
-#include "bitmanip.hfa"									// ceiling
+#include "math.hfa"										// ceiling
+#include "bitmanip.hfa"									// is_pow2, ceiling2
 
 #define MIN(x, y) (y > x ? x : y)
@@ -651,7 +651,9 @@
 		#else
 		// for ( HeapManager.Storage * p = top( freeLists[i].freeList ); p != 0p; p = (p)`next->top ) {
-		for ( HeapManager.Storage * p = top( freeLists[i].freeList ); p != 0p; /* p = getNext( p )->top */) {
-			typeof(p) temp = (( p )`next)->top;			// FIX ME: direct assignent fails, initialization works
-			p = temp;
+//		for ( HeapManager.Storage * p = top( freeLists[i].freeList ); p != 0p; /* p = getNext( p )->top */) {
+		for ( HeapManager.Storage * p ;; /* p = getNext( p )->top */) {
+			HeapManager.Storage * temp = p->header.kind.real.next.top; // FIX ME: direct assignent fails, initialization works`
+//			typeof(p) temp = (( p )`next)->top;			// FIX ME: direct assignent fails, initialization works`
+//			p = temp;
 		#endif // BUCKETLOCK
 			total += size;
Index: libcfa/src/iostream.cfa
===================================================================
--- libcfa/src/iostream.cfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/iostream.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Aug 11 22:16:33 2020
-// Update Count     : 1128
+// Last Modified On : Mon Aug 24 08:31:35 2020
+// Update Count     : 1130
 //
 
@@ -20,7 +20,6 @@
 #include <stdint.h>										// UINT64_MAX
 #include <float.h>										// DBL_DIG, LDBL_DIG
-#include <math.h>										// isfinite
 #include <complex.h>									// creal, cimag
-//#include <string.h>									// strlen, strcmp
+//#include <string.h>									// strlen, strcmp, memcpy
 extern "C" {
 extern size_t strlen (const char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
@@ -30,5 +29,6 @@
 } // extern "C"
 
-#include <bitmanip.hfa>									// high1
+#include "math.hfa"										// isfinite, floor, ceiling_div
+#include "bitmanip.hfa"									// high1
 
 
Index: libcfa/src/math.hfa
===================================================================
--- libcfa/src/math.hfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/math.hfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -10,6 +10,6 @@
 // Created On       : Mon Apr 18 23:37:04 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Feb  4 10:27:11 2020
-// Update Count     : 117
+// Last Modified On : Mon Aug 24 08:56:20 2020
+// Update Count     : 126
 //
 
@@ -19,347 +19,408 @@
 #include <complex.h>
 
+//---------------------------------------
+
+#include "common.hfa"
+
 //---------------------- General ----------------------
 
-static inline float ?%?( float x, float y ) { return fmodf( x, y ); }
-static inline float fmod( float x, float y ) { return fmodf( x, y ); }
-static inline double ?%?( double x, double y ) { return fmod( x, y ); }
-// extern "C" { double fmod( double, double ); }
-static inline long double ?%?( long double x, long double y ) { return fmodl( x, y ); }
-static inline long double fmod( long double x, long double y ) { return fmodl( x, y ); }
-
-static inline float remainder( float x, float y ) { return remainderf( x, y ); }
-// extern "C" { double remainder( double, double ); }
-static inline long double remainder( long double x, long double y ) { return remainderl( x, y ); }
-
-static inline float remquo( float x, float y, int * quo ) { return remquof( x, y, quo ); }
-// extern "C" { double remquo( double x, double y, int * quo ); }
-static inline long double remquo( long double x, long double y, int * quo ) { return remquol( x, y, quo ); }
-static inline [ int, float ] remquo( float x, float y ) { int quo; x = remquof( x, y, &quo ); return [ quo, x ]; }
-static inline [ int, double ] remquo( double x, double y ) { int quo; x = remquo( x, y, &quo ); return [ quo, x ]; }
-static inline [ int, long double ] remquo( long double x, long double y ) { int quo; x = remquol( x, y, &quo ); return [ quo, x ]; }
-
-static inline [ float, float ] div( float x, float y ) { y = modff( x / y, &x ); return [ x, y ]; }
-static inline [ double, double ] div( double x, double y ) { y = modf( x / y, &x ); return [ x, y ]; }
-static inline [ long double, long double ] div( long double x, long double y ) { y = modfl( x / y, &x ); return [ x, y ]; }
-
-static inline float fma( float x, float y, float z ) { return fmaf( x, y, z ); }
-// extern "C" { double fma( double, double, double ); }
-static inline long double fma( long double x, long double y, long double z ) { return fmal( x, y, z ); }
-
-static inline float fdim( float x, float y ) { return fdimf( x, y ); }
-// extern "C" { double fdim( double, double ); }
-static inline long double fdim( long double x, long double y ) { return fdiml( x, y ); }
-
-static inline float nan( const char tag[] ) { return nanf( tag ); }
-// extern "C" { double nan( const char [] ); }
-static inline long double nan( const char tag[] ) { return nanl( tag ); }
+static inline {
+	float ?%?( float x, float y ) { return fmodf( x, y ); }
+	float fmod( float x, float y ) { return fmodf( x, y ); }
+	double ?%?( double x, double y ) { return fmod( x, y ); }
+	// extern "C" { double fmod( double, double ); }
+	long double ?%?( long double x, long double y ) { return fmodl( x, y ); }
+	long double fmod( long double x, long double y ) { return fmodl( x, y ); }
+
+	float remainder( float x, float y ) { return remainderf( x, y ); }
+	// extern "C" { double remainder( double, double ); }
+	long double remainder( long double x, long double y ) { return remainderl( x, y ); }
+
+	float remquo( float x, float y, int * quo ) { return remquof( x, y, quo ); }
+	// extern "C" { double remquo( double x, double y, int * quo ); }
+	long double remquo( long double x, long double y, int * quo ) { return remquol( x, y, quo ); }
+	[ int, float ] remquo( float x, float y ) { int quo; x = remquof( x, y, &quo ); return [ quo, x ]; }
+	[ int, double ] remquo( double x, double y ) { int quo; x = remquo( x, y, &quo ); return [ quo, x ]; }
+	[ int, long double ] remquo( long double x, long double y ) { int quo; x = remquol( x, y, &quo ); return [ quo, x ]; }
+
+	[ float, float ] div( float x, float y ) { y = modff( x / y, &x ); return [ x, y ]; }
+	[ double, double ] div( double x, double y ) { y = modf( x / y, &x ); return [ x, y ]; }
+	[ long double, long double ] div( long double x, long double y ) { y = modfl( x / y, &x ); return [ x, y ]; }
+
+	float fma( float x, float y, float z ) { return fmaf( x, y, z ); }
+	// extern "C" { double fma( double, double, double ); }
+	long double fma( long double x, long double y, long double z ) { return fmal( x, y, z ); }
+
+	float fdim( float x, float y ) { return fdimf( x, y ); }
+	// extern "C" { double fdim( double, double ); }
+	long double fdim( long double x, long double y ) { return fdiml( x, y ); }
+
+	float nan( const char tag[] ) { return nanf( tag ); }
+	// extern "C" { double nan( const char [] ); }
+	long double nan( const char tag[] ) { return nanl( tag ); }
+} // distribution
 
 //---------------------- Exponential ----------------------
 
-static inline float exp( float x ) { return expf( x ); }
-// extern "C" { double exp( double ); }
-static inline long double exp( long double x ) { return expl( x ); }
-static inline float _Complex exp( float _Complex x ) { return cexpf( x ); }
-static inline double _Complex exp( double _Complex x ) { return cexp( x ); }
-static inline long double _Complex exp( long double _Complex x ) { return cexpl( x ); }
-
-static inline float exp2( float x ) { return exp2f( x ); }
-// extern "C" { double exp2( double ); }
-static inline long double exp2( long double x ) { return exp2l( x ); }
-//static inline float _Complex exp2( float _Complex x ) { return cexp2f( x ); }
-//static inline double _Complex exp2( double _Complex x ) { return cexp2( x ); }
-//static inline long double _Complex exp2( long double _Complex x ) { return cexp2l( x ); }
-
-static inline float expm1( float x ) { return expm1f( x ); }
-// extern "C" { double expm1( double ); }
-static inline long double expm1( long double x ) { return expm1l( x ); }
-
-static inline float pow( float x, float y ) { return powf( x, y ); }
-// extern "C" { double pow( double, double ); }
-static inline long double pow( long double x, long double y ) { return powl( x, y ); }
-static inline float _Complex pow( float _Complex x, float _Complex y ) { return cpowf( x, y ); }
-static inline double _Complex pow( double _Complex x, double _Complex y ) { return cpow( x, y ); }
-static inline long double _Complex pow( long double _Complex x, long double _Complex y ) { return cpowl( x, y ); }
+static inline {
+	float exp( float x ) { return expf( x ); }
+	// extern "C" { double exp( double ); }
+	long double exp( long double x ) { return expl( x ); }
+	float _Complex exp( float _Complex x ) { return cexpf( x ); }
+	double _Complex exp( double _Complex x ) { return cexp( x ); }
+	long double _Complex exp( long double _Complex x ) { return cexpl( x ); }
+
+	float exp2( float x ) { return exp2f( x ); }
+	// extern "C" { double exp2( double ); }
+	long double exp2( long double x ) { return exp2l( x ); }
+	//float _Complex exp2( float _Complex x ) { return cexp2f( x ); }
+	//double _Complex exp2( double _Complex x ) { return cexp2( x ); }
+	//long double _Complex exp2( long double _Complex x ) { return cexp2l( x ); }
+
+	float expm1( float x ) { return expm1f( x ); }
+	// extern "C" { double expm1( double ); }
+	long double expm1( long double x ) { return expm1l( x ); }
+
+	float pow( float x, float y ) { return powf( x, y ); }
+	// extern "C" { double pow( double, double ); }
+	long double pow( long double x, long double y ) { return powl( x, y ); }
+	float _Complex pow( float _Complex x, float _Complex y ) { return cpowf( x, y ); }
+	double _Complex pow( double _Complex x, double _Complex y ) { return cpow( x, y ); }
+	long double _Complex pow( long double _Complex x, long double _Complex y ) { return cpowl( x, y ); }
+} // distribution
 
 //---------------------- Logarithm ----------------------
 
-static inline float log( float x ) { return logf( x ); }
-// extern "C" { double log( double ); }
-static inline long double log( long double x ) { return logl( x ); }
-static inline float _Complex log( float _Complex x ) { return clogf( x ); }
-static inline double _Complex log( double _Complex x ) { return clog( x ); }
-static inline long double _Complex log( long double _Complex x ) { return clogl( x ); }
-
-static inline float log2( float x ) { return log2f( x ); }
-// extern "C" { double log2( double ); }
-static inline long double log2( long double x ) { return log2l( x ); }
-// static inline float _Complex log2( float _Complex x ) { return clog2f( x ); }
-// static inline double _Complex log2( double _Complex x ) { return clog2( x ); }
-// static inline long double _Complex log2( long double _Complex x ) { return clog2l( x ); }
-
-static inline float log10( float x ) { return log10f( x ); }
-// extern "C" { double log10( double ); }
-static inline long double log10( long double x ) { return log10l( x ); }
-// static inline float _Complex log10( float _Complex x ) { return clog10f( x ); }
-// static inline double _Complex log10( double _Complex x ) { return clog10( x ); }
-// static inline long double _Complex log10( long double _Complex x ) { return clog10l( x ); }
-
-static inline float log1p( float x ) { return log1pf( x ); }
-// extern "C" { double log1p( double ); }
-static inline long double log1p( long double x ) { return log1pl( x ); }
-
-static inline int ilogb( float x ) { return ilogbf( x ); }
-// extern "C" { int ilogb( double ); }
-static inline int ilogb( long double x ) { return ilogbl( x ); }
-
-static inline float logb( float x ) { return logbf( x ); }
-// extern "C" { double logb( double ); }
-static inline long double logb( long double x ) { return logbl( x ); }
-
-static inline float sqrt( float x ) { return sqrtf( x ); }
-// extern "C" { double sqrt( double ); }
-static inline long double sqrt( long double x ) { return sqrtl( x ); }
-static inline float _Complex sqrt( float _Complex x ) { return csqrtf( x ); }
-static inline double _Complex sqrt( double _Complex x ) { return csqrt( x ); }
-static inline long double _Complex sqrt( long double _Complex x ) { return csqrtl( x ); }
-
-static inline float cbrt( float x ) { return cbrtf( x ); }
-// extern "C" { double cbrt( double ); }
-static inline long double cbrt( long double x ) { return cbrtl( x ); }
-
-static inline float hypot( float x, float y ) { return hypotf( x, y ); }
-// extern "C" { double hypot( double, double ); }
-static inline long double hypot( long double x, long double y ) { return hypotl( x, y ); }
+static inline {
+	float log( float x ) { return logf( x ); }
+	// extern "C" { double log( double ); }
+	long double log( long double x ) { return logl( x ); }
+	float _Complex log( float _Complex x ) { return clogf( x ); }
+	double _Complex log( double _Complex x ) { return clog( x ); }
+	long double _Complex log( long double _Complex x ) { return clogl( x ); }
+
+	float log2( float x ) { return log2f( x ); }
+	// extern "C" { double log2( double ); }
+	long double log2( long double x ) { return log2l( x ); }
+	// float _Complex log2( float _Complex x ) { return clog2f( x ); }
+	// double _Complex log2( double _Complex x ) { return clog2( x ); }
+	// long double _Complex log2( long double _Complex x ) { return clog2l( x ); }
+
+	float log10( float x ) { return log10f( x ); }
+	// extern "C" { double log10( double ); }
+	long double log10( long double x ) { return log10l( x ); }
+	// float _Complex log10( float _Complex x ) { return clog10f( x ); }
+	// double _Complex log10( double _Complex x ) { return clog10( x ); }
+	// long double _Complex log10( long double _Complex x ) { return clog10l( x ); }
+
+	float log1p( float x ) { return log1pf( x ); }
+	// extern "C" { double log1p( double ); }
+	long double log1p( long double x ) { return log1pl( x ); }
+
+	int ilogb( float x ) { return ilogbf( x ); }
+	// extern "C" { int ilogb( double ); }
+	int ilogb( long double x ) { return ilogbl( x ); }
+
+	float logb( float x ) { return logbf( x ); }
+	// extern "C" { double logb( double ); }
+	long double logb( long double x ) { return logbl( x ); }
+
+	float sqrt( float x ) { return sqrtf( x ); }
+	// extern "C" { double sqrt( double ); }
+	long double sqrt( long double x ) { return sqrtl( x ); }
+	float _Complex sqrt( float _Complex x ) { return csqrtf( x ); }
+	double _Complex sqrt( double _Complex x ) { return csqrt( x ); }
+	long double _Complex sqrt( long double _Complex x ) { return csqrtl( x ); }
+
+	float cbrt( float x ) { return cbrtf( x ); }
+	// extern "C" { double cbrt( double ); }
+	long double cbrt( long double x ) { return cbrtl( x ); }
+
+	float hypot( float x, float y ) { return hypotf( x, y ); }
+	// extern "C" { double hypot( double, double ); }
+	long double hypot( long double x, long double y ) { return hypotl( x, y ); }
+} // distribution
 
 //---------------------- Trigonometric ----------------------
 
-static inline float sin( float x ) { return sinf( x ); }
-// extern "C" { double sin( double ); }
-static inline long double sin( long double x ) { return sinl( x ); }
-static inline float _Complex sin( float _Complex x ) { return csinf( x ); }
-static inline double _Complex sin( double _Complex x ) { return csin( x ); }
-static inline long double _Complex sin( long double _Complex x ) { return csinl( x ); }
-
-static inline float cos( float x ) { return cosf( x ); }
-// extern "C" { double cos( double ); }
-static inline long double cos( long double x ) { return cosl( x ); }
-static inline float _Complex cos( float _Complex x ) { return ccosf( x ); }
-static inline double _Complex cos( double _Complex x ) { return ccos( x ); }
-static inline long double _Complex cos( long double _Complex x ) { return ccosl( x ); }
-
-static inline float tan( float x ) { return tanf( x ); }
-// extern "C" { double tan( double ); }
-static inline long double tan( long double x ) { return tanl( x ); }
-static inline float _Complex tan( float _Complex x ) { return ctanf( x ); }
-static inline double _Complex tan( double _Complex x ) { return ctan( x ); }
-static inline long double _Complex tan( long double _Complex x ) { return ctanl( x ); }
-
-static inline float asin( float x ) { return asinf( x ); }
-// extern "C" { double asin( double ); }
-static inline long double asin( long double x ) { return asinl( x ); }
-static inline float _Complex asin( float _Complex x ) { return casinf( x ); }
-static inline double _Complex asin( double _Complex x ) { return casin( x ); }
-static inline long double _Complex asin( long double _Complex x ) { return casinl( x ); }
-
-static inline float acos( float x ) { return acosf( x ); }
-// extern "C" { double acos( double ); }
-static inline long double acos( long double x ) { return acosl( x ); }
-static inline float _Complex acos( float _Complex x ) { return cacosf( x ); }
-static inline double _Complex acos( double _Complex x ) { return cacos( x ); }
-static inline long double _Complex acos( long double _Complex x ) { return cacosl( x ); }
-
-static inline float atan( float x ) { return atanf( x ); }
-// extern "C" { double atan( double ); }
-static inline long double atan( long double x ) { return atanl( x ); }
-static inline float _Complex atan( float _Complex x ) { return catanf( x ); }
-static inline double _Complex atan( double _Complex x ) { return catan( x ); }
-static inline long double _Complex atan( long double _Complex x ) { return catanl( x ); }
-
-static inline float atan2( float x, float y ) { return atan2f( x, y ); }
-// extern "C" { double atan2( double, double ); }
-static inline long double atan2( long double x, long double y ) { return atan2l( x, y ); }
-
-// alternative name for atan2
-static inline float atan( float x, float y ) { return atan2f( x, y ); }
-static inline double atan( double x, double y ) { return atan2( x, y ); }
-static inline long double atan( long double x, long double y ) { return atan2l( x, y ); }
+static inline {
+	float sin( float x ) { return sinf( x ); }
+	// extern "C" { double sin( double ); }
+	long double sin( long double x ) { return sinl( x ); }
+	float _Complex sin( float _Complex x ) { return csinf( x ); }
+	double _Complex sin( double _Complex x ) { return csin( x ); }
+	long double _Complex sin( long double _Complex x ) { return csinl( x ); }
+
+	float cos( float x ) { return cosf( x ); }
+	// extern "C" { double cos( double ); }
+	long double cos( long double x ) { return cosl( x ); }
+	float _Complex cos( float _Complex x ) { return ccosf( x ); }
+	double _Complex cos( double _Complex x ) { return ccos( x ); }
+	long double _Complex cos( long double _Complex x ) { return ccosl( x ); }
+
+	float tan( float x ) { return tanf( x ); }
+	// extern "C" { double tan( double ); }
+	long double tan( long double x ) { return tanl( x ); }
+	float _Complex tan( float _Complex x ) { return ctanf( x ); }
+	double _Complex tan( double _Complex x ) { return ctan( x ); }
+	long double _Complex tan( long double _Complex x ) { return ctanl( x ); }
+
+	float asin( float x ) { return asinf( x ); }
+	// extern "C" { double asin( double ); }
+	long double asin( long double x ) { return asinl( x ); }
+	float _Complex asin( float _Complex x ) { return casinf( x ); }
+	double _Complex asin( double _Complex x ) { return casin( x ); }
+	long double _Complex asin( long double _Complex x ) { return casinl( x ); }
+
+	float acos( float x ) { return acosf( x ); }
+	// extern "C" { double acos( double ); }
+	long double acos( long double x ) { return acosl( x ); }
+	float _Complex acos( float _Complex x ) { return cacosf( x ); }
+	double _Complex acos( double _Complex x ) { return cacos( x ); }
+	long double _Complex acos( long double _Complex x ) { return cacosl( x ); }
+
+	float atan( float x ) { return atanf( x ); }
+	// extern "C" { double atan( double ); }
+	long double atan( long double x ) { return atanl( x ); }
+	float _Complex atan( float _Complex x ) { return catanf( x ); }
+	double _Complex atan( double _Complex x ) { return catan( x ); }
+	long double _Complex atan( long double _Complex x ) { return catanl( x ); }
+
+	float atan2( float x, float y ) { return atan2f( x, y ); }
+	// extern "C" { double atan2( double, double ); }
+	long double atan2( long double x, long double y ) { return atan2l( x, y ); }
+
+	// alternative name for atan2
+	float atan( float x, float y ) { return atan2f( x, y ); }
+	double atan( double x, double y ) { return atan2( x, y ); }
+	long double atan( long double x, long double y ) { return atan2l( x, y ); }
+} // distribution
 
 //---------------------- Hyperbolic ----------------------
 
-static inline float sinh( float x ) { return sinhf( x ); }
-// extern "C" { double sinh( double ); }
-static inline long double sinh( long double x ) { return sinhl( x ); }
-static inline float _Complex sinh( float _Complex x ) { return csinhf( x ); }
-static inline double _Complex sinh( double _Complex x ) { return csinh( x ); }
-static inline long double _Complex sinh( long double _Complex x ) { return csinhl( x ); }
-
-static inline float cosh( float x ) { return coshf( x ); }
-// extern "C" { double cosh( double ); }
-static inline long double cosh( long double x ) { return coshl( x ); }
-static inline float _Complex cosh( float _Complex x ) { return ccoshf( x ); }
-static inline double _Complex cosh( double _Complex x ) { return ccosh( x ); }
-static inline long double _Complex cosh( long double _Complex x ) { return ccoshl( x ); }
-
-static inline float tanh( float x ) { return tanhf( x ); }
-// extern "C" { double tanh( double ); }
-static inline long double tanh( long double x ) { return tanhl( x ); }
-static inline float _Complex tanh( float _Complex x ) { return ctanhf( x ); }
-static inline double _Complex tanh( double _Complex x ) { return ctanh( x ); }
-static inline long double _Complex tanh( long double _Complex x ) { return ctanhl( x ); }
-
-static inline float asinh( float x ) { return asinhf( x ); }
-// extern "C" { double asinh( double ); }
-static inline long double asinh( long double x ) { return asinhl( x ); }
-static inline float _Complex asinh( float _Complex x ) { return casinhf( x ); }
-static inline double _Complex asinh( double _Complex x ) { return casinh( x ); }
-static inline long double _Complex asinh( long double _Complex x ) { return casinhl( x ); }
-
-static inline float acosh( float x ) { return acoshf( x ); }
-// extern "C" { double acosh( double ); }
-static inline long double acosh( long double x ) { return acoshl( x ); }
-static inline float _Complex acosh( float _Complex x ) { return cacoshf( x ); }
-static inline double _Complex acosh( double _Complex x ) { return cacosh( x ); }
-static inline long double _Complex acosh( long double _Complex x ) { return cacoshl( x ); }
-
-static inline float atanh( float x ) { return atanhf( x ); }
-// extern "C" { double atanh( double ); }
-static inline long double atanh( long double x ) { return atanhl( x ); }
-static inline float _Complex atanh( float _Complex x ) { return catanhf( x ); }
-static inline double _Complex atanh( double _Complex x ) { return catanh( x ); }
-static inline long double _Complex atanh( long double _Complex x ) { return catanhl( x ); }
+static inline {
+	float sinh( float x ) { return sinhf( x ); }
+	// extern "C" { double sinh( double ); }
+	long double sinh( long double x ) { return sinhl( x ); }
+	float _Complex sinh( float _Complex x ) { return csinhf( x ); }
+	double _Complex sinh( double _Complex x ) { return csinh( x ); }
+	long double _Complex sinh( long double _Complex x ) { return csinhl( x ); }
+
+	float cosh( float x ) { return coshf( x ); }
+	// extern "C" { double cosh( double ); }
+	long double cosh( long double x ) { return coshl( x ); }
+	float _Complex cosh( float _Complex x ) { return ccoshf( x ); }
+	double _Complex cosh( double _Complex x ) { return ccosh( x ); }
+	long double _Complex cosh( long double _Complex x ) { return ccoshl( x ); }
+
+	float tanh( float x ) { return tanhf( x ); }
+	// extern "C" { double tanh( double ); }
+	long double tanh( long double x ) { return tanhl( x ); }
+	float _Complex tanh( float _Complex x ) { return ctanhf( x ); }
+	double _Complex tanh( double _Complex x ) { return ctanh( x ); }
+	long double _Complex tanh( long double _Complex x ) { return ctanhl( x ); }
+
+	float asinh( float x ) { return asinhf( x ); }
+	// extern "C" { double asinh( double ); }
+	long double asinh( long double x ) { return asinhl( x ); }
+	float _Complex asinh( float _Complex x ) { return casinhf( x ); }
+	double _Complex asinh( double _Complex x ) { return casinh( x ); }
+	long double _Complex asinh( long double _Complex x ) { return casinhl( x ); }
+
+	float acosh( float x ) { return acoshf( x ); }
+	// extern "C" { double acosh( double ); }
+	long double acosh( long double x ) { return acoshl( x ); }
+	float _Complex acosh( float _Complex x ) { return cacoshf( x ); }
+	double _Complex acosh( double _Complex x ) { return cacosh( x ); }
+	long double _Complex acosh( long double _Complex x ) { return cacoshl( x ); }
+
+	float atanh( float x ) { return atanhf( x ); }
+	// extern "C" { double atanh( double ); }
+	long double atanh( long double x ) { return atanhl( x ); }
+	float _Complex atanh( float _Complex x ) { return catanhf( x ); }
+	double _Complex atanh( double _Complex x ) { return catanh( x ); }
+	long double _Complex atanh( long double _Complex x ) { return catanhl( x ); }
+} // distribution
 
 //---------------------- Error / Gamma ----------------------
 
-static inline float erf( float x ) { return erff( x ); }
-// extern "C" { double erf( double ); }
-static inline long double erf( long double x ) { return erfl( x ); }
-// float _Complex erf( float _Complex );
-// double _Complex erf( double _Complex );
-// long double _Complex erf( long double _Complex );
-
-static inline float erfc( float x ) { return erfcf( x ); }
-// extern "C" { double erfc( double ); }
-static inline long double erfc( long double x ) { return erfcl( x ); }
-// float _Complex erfc( float _Complex );
-// double _Complex erfc( double _Complex );
-// long double _Complex erfc( long double _Complex );
-
-static inline float lgamma( float x ) { return lgammaf( x ); }
-// extern "C" { double lgamma( double ); }
-static inline long double lgamma( long double x ) { return lgammal( x ); }
-static inline float lgamma( float x, int * sign ) { return lgammaf_r( x, sign ); }
-static inline double lgamma( double x, int * sign ) { return lgamma_r( x, sign ); }
-static inline long double lgamma( long double x, int * sign ) { return lgammal_r( x, sign ); }
-
-static inline float tgamma( float x ) { return tgammaf( x ); }
-// extern "C" { double tgamma( double ); }
-static inline long double tgamma( long double x ) { return tgammal( x ); }
+static inline {
+	float erf( float x ) { return erff( x ); }
+	// extern "C" { double erf( double ); }
+	long double erf( long double x ) { return erfl( x ); }
+	// float _Complex erf( float _Complex );
+	// double _Complex erf( double _Complex );
+	// long double _Complex erf( long double _Complex );
+
+	float erfc( float x ) { return erfcf( x ); }
+	// extern "C" { double erfc( double ); }
+	long double erfc( long double x ) { return erfcl( x ); }
+	// float _Complex erfc( float _Complex );
+	// double _Complex erfc( double _Complex );
+	// long double _Complex erfc( long double _Complex );
+
+	float lgamma( float x ) { return lgammaf( x ); }
+	// extern "C" { double lgamma( double ); }
+	long double lgamma( long double x ) { return lgammal( x ); }
+	float lgamma( float x, int * sign ) { return lgammaf_r( x, sign ); }
+	double lgamma( double x, int * sign ) { return lgamma_r( x, sign ); }
+	long double lgamma( long double x, int * sign ) { return lgammal_r( x, sign ); }
+
+	float tgamma( float x ) { return tgammaf( x ); }
+	// extern "C" { double tgamma( double ); }
+	long double tgamma( long double x ) { return tgammal( x ); }
+} // distribution
 
 //---------------------- Nearest Integer ----------------------
 
-static inline float floor( float x ) { return floorf( x ); }
-// extern "C" { double floor( double ); }
-static inline long double floor( long double x ) { return floorl( x ); }
-
-static inline float ceil( float x ) { return ceilf( x ); }
-// extern "C" { double ceil( double ); }
-static inline long double ceil( long double x ) { return ceill( x ); }
-
-static inline float trunc( float x ) { return truncf( x ); }
-// extern "C" { double trunc( double ); }
-static inline long double trunc( long double x ) { return truncl( x ); }
-
-static inline float rint( float x ) { return rintf( x ); }
-// extern "C" { double rint( double x ); }
-static inline long double rint( long double x ) { return rintl( x ); }
-static inline long int rint( float x ) { return lrintf( x ); }
-static inline long int rint( double x ) { return lrint( x ); }
-static inline long int rint( long double x ) { return lrintl( x ); }
-static inline long long int rint( float x ) { return llrintf( x ); }
-static inline long long int rint( double x ) { return llrint( x ); }
-static inline long long int rint( long double x ) { return llrintl( x ); }
-
-static inline long int lrint( float x ) { return lrintf( x ); }
-// extern "C" { long int lrint( double ); }
-static inline long int lrint( long double x ) { return lrintl( x ); }
-static inline long long int llrint( float x ) { return llrintf( x ); }
-// extern "C" { long long int llrint( double ); }
-static inline long long int llrint( long double x ) { return llrintl( x ); }
-
-static inline float nearbyint( float x ) { return nearbyintf( x ); }
-// extern "C" { double nearbyint( double ); }
-static inline long double nearbyint( long double x ) { return nearbyintl( x ); }
-
-static inline float round( float x ) { return roundf( x ); }
-// extern "C" { double round( double x ); }
-static inline long double round( long double x ) { return roundl( x ); }
-static inline long int round( float x ) { return lroundf( x ); }
-static inline long int round( double x ) { return lround( x ); }
-static inline long int round( long double x ) { return lroundl( x ); }
-static inline long long int round( float x ) { return llroundf( x ); }
-static inline long long int round( double x ) { return llround( x ); }
-static inline long long int round( long double x ) { return llroundl( x ); }
-
-static inline long int lround( float x ) { return lroundf( x ); }
-// extern "C" { long int lround( double ); }
-static inline long int lround( long double x ) { return lroundl( x ); }
-static inline long long int llround( float x ) { return llroundf( x ); }
-// extern "C" { long long int llround( double ); }
-static inline long long int llround( long double x ) { return llroundl( x ); }
+static inline {
+	signed char floor( signed char n, signed char align ) { return n / align * align; }
+	unsigned char floor( unsigned char n, unsigned char align ) { return n / align * align; }
+	short int floor( short int n, short int align ) { return n / align * align; }
+	unsigned short int floor( unsigned short int n, unsigned short int align ) { return n / align * align; }
+	int floor( int n, int align ) { return n / align * align; }
+	unsigned int floor( unsigned int n, unsigned int align ) { return n / align * align; }
+	long int floor( long int n, long int align ) { return n / align * align; }
+	unsigned long int floor( unsigned long int n, unsigned long int align ) { return n / align * align; }
+	long long int floor( long long int n, long long int align ) { return n / align * align; }
+	unsigned long long int floor( unsigned long long int n, unsigned long long int align ) { return n / align * align; }
+
+	// forall( otype T | { T ?/?( T, T ); T ?*?( T, T ); } )
+	// T floor( T n, T align ) { return n / align * align; }
+
+	signed char ceiling_div( signed char n, char align ) { return (n + (align - 1)) / align; }
+	unsigned char ceiling_div( unsigned char n, unsigned char align ) { return (n + (align - 1)) / align; }
+	short int ceiling_div( short int n, short int align ) { return (n + (align - 1)) / align; }
+	unsigned short int ceiling_div( unsigned short int n, unsigned short int align ) { return (n + (align - 1)) / align; }
+	int ceiling_div( int n, int align ) { return (n + (align - 1)) / align; }
+	unsigned int ceiling_div( unsigned int n, unsigned int align ) { return (n + (align - 1)) / align; }
+	long int ceiling_div( long int n, long int align ) { return (n + (align - 1)) / align; }
+	unsigned long int ceiling_div( unsigned long int n, unsigned long int align ) { return (n + (align - 1)) / align; }
+	long long int ceiling_div( long long int n, long long int align ) { return (n + (align - 1)) / align; }
+	unsigned long long int ceiling_div( unsigned long long int n, unsigned long long int align ) { return (n + (align - 1)) / align; }
+
+	// forall( otype T | { T ?+?( T, T ); T ?-?( T, T ); T ?%?( T, T ); } )
+	// T ceiling_div( T n, T align ) { verify( is_pow2( align ) );return (n + (align - 1)) / align; }
+	
+	// gcc notices the div/mod pair and saves both so only one div.
+	signed char ceiling( signed char n, signed char align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
+	unsigned char ceiling( unsigned char n, unsigned char align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
+	short int ceiling( short int n, short int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
+	unsigned short int ceiling( unsigned short int n, unsigned short int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
+	int ceiling( int n, int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
+	unsigned int ceiling( unsigned int n, unsigned int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
+	long int ceiling( long int n, long int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
+	unsigned long int ceiling( unsigned long int n, unsigned long int align ) { return floor( n + (n % align != 0 ? align - 1 : 0) , align); }
+	long long int ceiling( long long int n, long long int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
+	unsigned long long int ceiling( unsigned long long int n, unsigned long long int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); }
+
+	// forall( otype T | { void ?{}( T &, one_t ); T ?+?( T, T ); T ?-?( T, T ); T ?/?( T, T ); } )
+	// T ceiling( T n, T align ) { return return floor( n + (n % align != 0 ? align - 1 : 0), align ); *}
+
+	float floor( float x ) { return floorf( x ); }
+	// extern "C" { double floor( double ); }
+	long double floor( long double x ) { return floorl( x ); }
+
+	float ceil( float x ) { return ceilf( x ); }
+	// extern "C" { double ceil( double ); }
+	long double ceil( long double x ) { return ceill( x ); }
+
+	float trunc( float x ) { return truncf( x ); }
+	// extern "C" { double trunc( double ); }
+	long double trunc( long double x ) { return truncl( x ); }
+
+	float rint( float x ) { return rintf( x ); }
+	// extern "C" { double rint( double x ); }
+	long double rint( long double x ) { return rintl( x ); }
+	long int rint( float x ) { return lrintf( x ); }
+	long int rint( double x ) { return lrint( x ); }
+	long int rint( long double x ) { return lrintl( x ); }
+	long long int rint( float x ) { return llrintf( x ); }
+	long long int rint( double x ) { return llrint( x ); }
+	long long int rint( long double x ) { return llrintl( x ); }
+
+	long int lrint( float x ) { return lrintf( x ); }
+	// extern "C" { long int lrint( double ); }
+	long int lrint( long double x ) { return lrintl( x ); }
+	long long int llrint( float x ) { return llrintf( x ); }
+	// extern "C" { long long int llrint( double ); }
+	long long int llrint( long double x ) { return llrintl( x ); }
+
+	float nearbyint( float x ) { return nearbyintf( x ); }
+	// extern "C" { double nearbyint( double ); }
+	long double nearbyint( long double x ) { return nearbyintl( x ); }
+
+	float round( float x ) { return roundf( x ); }
+	// extern "C" { double round( double x ); }
+	long double round( long double x ) { return roundl( x ); }
+	long int round( float x ) { return lroundf( x ); }
+	long int round( double x ) { return lround( x ); }
+	long int round( long double x ) { return lroundl( x ); }
+	long long int round( float x ) { return llroundf( x ); }
+	long long int round( double x ) { return llround( x ); }
+	long long int round( long double x ) { return llroundl( x ); }
+
+	long int lround( float x ) { return lroundf( x ); }
+	// extern "C" { long int lround( double ); }
+	long int lround( long double x ) { return lroundl( x ); }
+	long long int llround( float x ) { return llroundf( x ); }
+	// extern "C" { long long int llround( double ); }
+	long long int llround( long double x ) { return llroundl( x ); }
+} // distribution
 
 //---------------------- Manipulation ----------------------
 
-static inline float copysign( float x, float y ) { return copysignf( x, y ); }
-// extern "C" { double copysign( double, double ); }
-static inline long double copysign( long double x, long double y ) { return copysignl( x, y ); }
-
-static inline float frexp( float x, int * ip ) { return frexpf( x, ip ); }
-// extern "C" { double frexp( double, int * ); }
-static inline long double frexp( long double x, int * ip ) { return frexpl( x, ip ); }
-
-static inline float ldexp( float x, int exp2 ) { return ldexpf( x, exp2 ); }
-// extern "C" { double ldexp( double, int ); }
-static inline long double ldexp( long double x, int exp2 ) { return ldexpl( x, exp2 ); }
-
-static inline [ float, float ] modf( float x ) { float i; x = modff( x, &i ); return [ i, x ]; }
-static inline float modf( float x, float * i ) { return modff( x, i ); }
-static inline [ double, double ] modf( double x ) { double i; x = modf( x, &i ); return [ i, x ]; }
-// extern "C" { double modf( double, double * ); }
-static inline [ long double, long double ] modf( long double x ) { long double i; x = modfl( x, &i ); return [ i, x ]; }
-static inline long double modf( long double x, long double * i ) { return modfl( x, i ); }
-
-static inline float nextafter( float x, float y ) { return nextafterf( x, y ); }
-// extern "C" { double nextafter( double, double ); }
-static inline long double nextafter( long double x, long double y ) { return nextafterl( x, y ); }
-
-static inline float nexttoward( float x, long double y ) { return nexttowardf( x, y ); }
-// extern "C" { double nexttoward( double, long double ); }
-static inline long double nexttoward( long double x, long double y ) { return nexttowardl( x, y ); }
-
-static inline float scalbn( float x, int exp ) { return scalbnf( x, exp ); }
-// extern "C" { double scalbn( double, int ); }
-static inline long double scalbn( long double x, int exp ) { return scalbnl( x, exp ); }
-static inline float scalbn( float x, long int exp ) { return scalblnf( x, exp ); }
-static inline double scalbn( double x, long int exp ) { return scalbln( x, exp ); }
-static inline long double scalbn( long double x, long int exp ) { return scalblnl( x, exp ); }
-
-static inline float scalbln( float x, long int exp ) { return scalblnf( x, exp ); }
-// extern "C" { double scalbln( double, long int ); }
-static inline long double scalbln( long double x, long int exp ) { return scalblnl( x, exp ); }
+static inline {
+	float copysign( float x, float y ) { return copysignf( x, y ); }
+	// extern "C" { double copysign( double, double ); }
+	long double copysign( long double x, long double y ) { return copysignl( x, y ); }
+
+	float frexp( float x, int * ip ) { return frexpf( x, ip ); }
+	// extern "C" { double frexp( double, int * ); }
+	long double frexp( long double x, int * ip ) { return frexpl( x, ip ); }
+
+	float ldexp( float x, int exp2 ) { return ldexpf( x, exp2 ); }
+	// extern "C" { double ldexp( double, int ); }
+	long double ldexp( long double x, int exp2 ) { return ldexpl( x, exp2 ); }
+
+	[ float, float ] modf( float x ) { float i; x = modff( x, &i ); return [ i, x ]; }
+	float modf( float x, float * i ) { return modff( x, i ); }
+	[ double, double ] modf( double x ) { double i; x = modf( x, &i ); return [ i, x ]; }
+	// extern "C" { double modf( double, double * ); }
+	[ long double, long double ] modf( long double x ) { long double i; x = modfl( x, &i ); return [ i, x ]; }
+	long double modf( long double x, long double * i ) { return modfl( x, i ); }
+
+	float nextafter( float x, float y ) { return nextafterf( x, y ); }
+	// extern "C" { double nextafter( double, double ); }
+	long double nextafter( long double x, long double y ) { return nextafterl( x, y ); }
+
+	float nexttoward( float x, long double y ) { return nexttowardf( x, y ); }
+	// extern "C" { double nexttoward( double, long double ); }
+	long double nexttoward( long double x, long double y ) { return nexttowardl( x, y ); }
+
+	float scalbn( float x, int exp ) { return scalbnf( x, exp ); }
+	// extern "C" { double scalbn( double, int ); }
+	long double scalbn( long double x, int exp ) { return scalbnl( x, exp ); }
+	float scalbn( float x, long int exp ) { return scalblnf( x, exp ); }
+	double scalbn( double x, long int exp ) { return scalbln( x, exp ); }
+	long double scalbn( long double x, long int exp ) { return scalblnl( x, exp ); }
+
+	float scalbln( float x, long int exp ) { return scalblnf( x, exp ); }
+	// extern "C" { double scalbln( double, long int ); }
+	long double scalbln( long double x, long int exp ) { return scalblnl( x, exp ); }
+} // distribution
 
 //---------------------------------------
 
-#include "common.hfa"
-
-//---------------------------------------
-
-forall( otype T | { void ?{}( T &, one_t ); T ?+?( T, T ); T ?-?( T, T );T ?*?( T, T ); } )
-T lerp( T x, T y, T a ) { return x * ((T){1} - a) + y * a; }
-
-forall( otype T | { void ?{}( T &, zero_t ); void ?{}( T &, one_t ); int ?<?( T, T ); } )
-T step( T edge, T x ) { return x < edge ? (T){0} : (T){1}; }
-
-forall( otype T | { void ?{}( T &, int ); T clamp( T, T, T ); T ?-?( T, T ); T ?*?( T, T ); T ?/?( T, T ); } )
-T smoothstep( T edge0, T edge1, T x ) { T t = clamp( (x - edge0) / (edge1 - edge0), (T){0}, (T){1} ); return t * t * ((T){3} - (T){2} * t); }
+static inline {
+	forall( otype T | { void ?{}( T &, one_t ); T ?+?( T, T ); T ?-?( T, T );T ?*?( T, T ); } )
+	T lerp( T x, T y, T a ) { return x * ((T){1} - a) + y * a; }
+
+	forall( otype T | { void ?{}( T &, zero_t ); void ?{}( T &, one_t ); int ?<?( T, T ); } )
+	T step( T edge, T x ) { return x < edge ? (T){0} : (T){1}; }
+
+	forall( otype T | { void ?{}( T &, int ); T clamp( T, T, T ); T ?-?( T, T ); T ?*?( T, T ); T ?/?( T, T ); } )
+	T smoothstep( T edge0, T edge1, T x ) { T t = clamp( (x - edge0) / (edge1 - edge0), (T){0}, (T){1} ); return t * t * ((T){3} - (T){2} * t); }
+} // distribution
 
 // Local Variables: //
Index: libcfa/src/stdlib.hfa
===================================================================
--- libcfa/src/stdlib.hfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ libcfa/src/stdlib.hfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -114,141 +114,134 @@
 } // distribution
 
+/*
+	FIX ME : fix alloc interface after Ticker Number 214 is resolved, define and add union to S_fill. Then, modify postfix-fill functions to support T * with nmemb, char, and T object of any size. Finally, change alloc_internal.
+	Or, just follow the instructions below for that.
+
+	1. Replace the current forall-block that contains defintions of S_fill and S_realloc with following:
+		forall( dtype T | sized(T) ) {
+			union  U_fill 		{ char c; T * a; T t; };
+			struct S_fill 		{ char tag; char c; size_t size; T * at; char t[50]; };
+			struct S_realloc	{ inline T *; };
+		}
+
+	2. Replace all current postfix-fill functions with following for updated S_fill:
+		S_fill(T) ?`fill( char a )					{ S_fill(T) ret = {'c'}; ret.fill.c = a; return ret; }
+		S_fill(T) ?`fill( T    a ) 					{ S_fill(T) ret = {'t'}; memcpy(&ret.fill.t, &a, sizeof(T)); return ret; }
+		S_fill(T) ?`fill( T    a[], size_t nmemb ) 	{ S_fill(T) ret = {'a', nmemb}; ret.fill.a = a; return ret; }
+
+	3. Replace the $alloc_internal function which is outside ttype forall-block with following function:
+		T * $alloc_internal( void * Resize, T * Realloc, size_t Align, size_t Dim, S_fill(T) Fill) {
+			T * ptr = NULL;
+			size_t size = sizeof(T);
+			size_t copy_end = 0;
+
+			if(Resize) {
+				ptr = (T*) (void *) resize( (int *)Resize, Align, Dim * size );
+			} else if (Realloc) {
+				if (Fill.tag != '0') copy_end = min(malloc_size( Realloc ), Dim * size);
+				ptr = (T*) (void *) realloc( (int *)Realloc, Align, Dim * size );
+			} else {
+				ptr = (T*) (void *) memalign( Align, Dim * size );
+			}
+
+			if(Fill.tag == 'c') {
+				memset( (char *)ptr + copy_end, (int)Fill.fill.c, Dim * size - copy_end );
+			} else if(Fill.tag == 't') {
+				for ( int i = copy_end; i <= Dim * size - size ; i += size ) {
+					memcpy( (char *)ptr + i, &Fill.fill.t, size );
+				}
+			} else if(Fill.tag == 'a') {
+				memcpy( (char *)ptr + copy_end, Fill.fill.a, min(Dim * size - copy_end, size * Fill.nmemb) );
+			}
+
+			return ptr;
+		} // $alloc_internal
+*/
+
+typedef struct S_align 			{ inline size_t;  } T_align;
+typedef struct S_resize			{ inline void *;  }	T_resize;
+
+forall( dtype T ) {
+	struct S_fill 		{ char tag; char c; size_t size; T * at; char t[50]; };
+	struct S_realloc	{ inline T *; };
+}
+
+static inline T_align 	?`align   ( size_t a ) 	{ return (T_align){a}; }
+static inline T_resize 	?`resize  ( void * a )	{ return (T_resize){a}; }
 static inline forall( dtype T | sized(T) ) {
-	// Cforall safe general allocation, fill, resize, array
-
-	T * alloc( void ) {
-		return malloc();
-	} // alloc
-
-	T * alloc( size_t dim ) {
-		return aalloc( dim );
-	} // alloc
-
-	forall( dtype S | sized(S) )
-	T * alloc( S ptr[], size_t dim = 1 ) {				// singleton/array resize
-		return resize( (T *)ptr, dim * sizeof(T) );		// CFA resize
-	} // alloc
-
-	T * alloc( T ptr[], size_t dim = 1, bool copy = true ) {
-		if ( copy ) {
-			return realloc( ptr, dim * sizeof(T) );		// CFA realloc
+
+	S_fill(T) ?`fill ( T t ) {
+		S_fill(T) ret = { 't' };
+		size_t size = sizeof(T);
+		if(size > sizeof(ret.t)) { printf("ERROR: const object of size greater than 50 bytes given for dynamic memory fill\n"); exit(1); }
+		memcpy( &ret.t, &t, size );
+		return ret;
+	}
+	S_fill(T) 		?`fill ( char c ) 				{ return (S_fill(T)){ 'c', c };	}
+	S_fill(T) 		?`fill ( T * a ) 				{ return (S_fill(T)){ 'T', '0', 0, a }; }
+	S_fill(T) 		?`fill ( T a[], size_t nmemb ) 	{ return (S_fill(T)){ 'a', '0', nmemb * sizeof(T), a }; }
+
+	S_realloc(T) 	?`realloc ( T * a )				{ return (S_realloc(T)){a}; }
+
+	T * $alloc_internal( void * Resize, T * Realloc, size_t Align, size_t Dim, S_fill(T) Fill) {
+		T * ptr = NULL;
+		size_t size = sizeof(T);
+		size_t copy_end = 0;
+
+		if(Resize) {
+			ptr = (T*) (void *) resize( (int *)Resize, Align, Dim * size );
+		} else if (Realloc) {
+			if (Fill.tag != '0') copy_end = min(malloc_size( Realloc ), Dim * size);
+			ptr = (T*) (void *) realloc( (int *)Realloc, Align, Dim * size );
 		} else {
-			return resize( ptr, dim * sizeof(T) );		// CFA resize
-		} // if
-	} // alloc
-
-	T * alloc_set( char fill ) {
-		return (T *)memset( (T *)alloc(), (int)fill, sizeof(T) ); // initialize with fill value
-	} // alloc_set
-
-	T * alloc_set( const T & fill ) {
-		return (T *)memcpy( (T *)alloc(), &fill, sizeof(T) ); // initialize with fill value
-	} // alloc_set
-
-	T * alloc_set( size_t dim, char fill ) {
-		return (T *)memset( (T *)alloc( dim ), (int)fill, dim * sizeof(T) ); // initialize with fill value
-	} // alloc_set
-
-	T * alloc_set( size_t dim, const T & fill ) {
-		T * r = (T *)alloc( dim );
-		for ( i; dim ) { memcpy( &r[i], &fill, sizeof(T) ); } // initialize with fill value
-		return r;
-	} // alloc_set
-
-	T * alloc_set( size_t dimNew, const T fill[], size_t dimOld ) {
-		return (T *)memcpy( (T *)alloc( dimNew ), fill, min( dimNew, dimOld ) * sizeof(T) ); // initialize with fill value
-	} // alloc_set
-
-	T * alloc_set( T ptr[], size_t dim, char fill ) {	// realloc array with fill
-		size_t osize = malloc_size( ptr );				// current allocation
-		size_t nsize = dim * sizeof(T);					// new allocation
-		T * nptr = realloc( ptr, nsize );				// CFA realloc
-		if ( nsize > osize ) {							// larger ?
-			memset( (char *)nptr + osize, (int)fill, nsize - osize ); // initialize added storage
-		} // if
-		return nptr;
-	} // alloc_set
-
-	T * alloc_set( T ptr[], size_t dim, const T & fill ) {	// realloc array with fill
-		size_t odim = malloc_size( ptr ) / sizeof(T);	// current dimension
-		size_t nsize = dim * sizeof(T);					// new allocation
-		size_t ndim = nsize / sizeof(T);				// new dimension
-		T * nptr = realloc( ptr, nsize );				// CFA realloc
-		if ( ndim > odim ) {							// larger ?
-			for ( i; odim ~ ndim ) {
-				memcpy( &nptr[i], &fill, sizeof(T) );	// initialize with fill value
-			} // for
-		} // if
-		return nptr;
-	} // alloc_set
-} // distribution
-
-static inline forall( dtype T | sized(T) ) {
-	T * alloc_align( size_t align ) {
-		return (T *)memalign( align, sizeof(T) );
-	} // alloc_align
-
-	T * alloc_align( size_t align, size_t dim ) {
-		return (T *)memalign( align, dim * sizeof(T) );
-	} // alloc_align
-
-	T * alloc_align( T * ptr, size_t align ) {			// aligned realloc array
-		return (T *)(void *)realloc( (void *)ptr, align, sizeof(T) ); // CFA C realloc
-	} // alloc_align
-
-	forall( dtype S | sized(S) )
-	T * alloc_align( S ptr[], size_t align ) {			// aligned reuse array
-		return (T *)(void *)resize( (void *)ptr, align, sizeof(T) ); // CFA realloc
-	} // alloc_align
-
-	T * alloc_align( T ptr[], size_t align, size_t dim ) { // aligned realloc array
-		return (T *)(void *)realloc( (void *)ptr, align, dim * sizeof(T) ); // CFA realloc
-	} // alloc_align
-
-	T * alloc_align_set( size_t align, char fill ) {
-		return (T *)memset( (T *)alloc_align( align ), (int)fill, sizeof(T) ); // initialize with fill value
-	} // alloc_align_set
-
-	T * alloc_align_set( size_t align, const T & fill ) {
-		return (T *)memcpy( (T *)alloc_align( align ), &fill, sizeof(T) ); // initialize with fill value
-	} // alloc_align_set
-
-	T * alloc_align_set( size_t align, size_t dim, char fill ) {
-		return (T *)memset( (T *)alloc_align( align, dim ), (int)fill, dim * sizeof(T) ); // initialize with fill value
-	} // alloc_align_set
-
-	T * alloc_align_set( size_t align, size_t dim, const T & fill ) {
-		T * r = (T *)alloc_align( align, dim );
-		for ( i; dim ) { memcpy( &r[i], &fill, sizeof(T) ); } // initialize with fill value
-		return r;
-	} // alloc_align_set
-
-	T * alloc_align_set( size_t align, size_t dimNew, const T fill[], size_t dimOld ) {
-		return (T *)memcpy( (T *)alloc_align( align, dimNew ), fill, min( dimNew, dimOld ) * sizeof(T) );
-	} // alloc_align_set
-
-	T * alloc_align_set( T ptr[], size_t align, size_t dim, char fill ) {
-		size_t osize = malloc_size( ptr );				// current allocation
-		size_t nsize = dim * sizeof(T);					// new allocation
-		T * nptr = alloc_align( ptr, align, nsize );
-		if ( nsize > osize ) {							// larger ?
-			memset( (char *)nptr + osize, (int)fill, nsize - osize ); // initialize added storage
-		} // if
-		return nptr;
-	} // alloc_align_set
-
-	T * alloc_align_set( T ptr[], size_t align, size_t dim, const T & fill ) {
-		size_t odim = malloc_size( ptr ) / sizeof(T);	// current dimension
-		size_t nsize = dim * sizeof(T);					// new allocation
-		size_t ndim = nsize / sizeof(T);				// new dimension
-		T * nptr = alloc_align( ptr, align, nsize );
-		if ( ndim > odim ) {							// larger ?
-			for ( i; odim ~ ndim ) {
-				memcpy( &nptr[i], &fill, sizeof(T) );	// initialize with fill value
-			} // for
-		} // if
-		return nptr;
-	} // alloc_align_set
-} // distribution
+			ptr = (T*) (void *) memalign( Align, Dim * size );
+		}
+
+		if(Fill.tag == 'c') {
+			memset( (char *)ptr + copy_end, (int)Fill.c, Dim * size - copy_end );
+		} else if(Fill.tag == 't') {
+			for ( int i = copy_end; i < Dim * size; i += size ) {
+				memcpy( (char *)ptr + i, &Fill.t, size );
+			}
+		} else if(Fill.tag == 'a') {
+			memcpy( (char *)ptr + copy_end, Fill.at, min(Dim * size - copy_end, Fill.size) );
+		} else if(Fill.tag == 'T') {
+			for ( int i = copy_end; i < Dim * size; i += size ) {
+				memcpy( (char *)ptr + i, Fill.at, size );
+			}
+		}
+
+		return ptr;
+	} // $alloc_internal
+
+	forall( ttype TT | { T * $alloc_internal( void *, T *, size_t, size_t, S_fill(T), TT ); } ) {
+
+		T * $alloc_internal( void *       , T * Realloc, size_t Align, size_t Dim, S_fill(T) Fill, T_resize Resize, TT rest) {
+	        return $alloc_internal( Resize, (T*)0p, Align, Dim, Fill, rest);
+		}
+
+		T * $alloc_internal( void * Resize, T *        , size_t Align, size_t Dim, S_fill(T) Fill, S_realloc(T) Realloc, TT rest) {
+	        return $alloc_internal( (void*)0p, Realloc, Align, Dim, Fill, rest);
+		}
+
+		T * $alloc_internal( void * Resize, T * Realloc, size_t      , size_t Dim, S_fill(T) Fill, T_align Align, TT rest) {
+	        return $alloc_internal( Resize, Realloc, Align, Dim, Fill, rest);
+		}
+
+		T * $alloc_internal( void * Resize, T * Realloc, size_t Align, size_t Dim, S_fill(T)     , S_fill(T) Fill, TT rest) {
+	        return $alloc_internal( Resize, Realloc, Align, Dim, Fill, rest);
+		}
+
+	    T * alloc( TT all ) {
+	    	return $alloc_internal( (void*)0p, (T*)0p, (_Alignof(T) > libAlign() ? _Alignof(T) : libAlign()), (size_t)1, (S_fill(T)){'0'}, all);
+	    }
+
+	    T * alloc( size_t dim, TT all ) {
+	    	return $alloc_internal( (void*)0p, (T*)0p, (_Alignof(T) > libAlign() ? _Alignof(T) : libAlign()), dim, (S_fill(T)){'0'}, all);
+	    }
+
+	} // distribution TT
+
+} // distribution T
 
 static inline forall( dtype T | sized(T) ) {
Index: src/AST/Convert.cpp
===================================================================
--- src/AST/Convert.cpp	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/AST/Convert.cpp	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -705,5 +705,6 @@
 			new KeywordCastExpr(
 				get<Expression>().accept1(node->arg),
-				castTarget
+				castTarget,
+				{node->concrete_target.field, node->concrete_target.getter}
 			)
 		);
@@ -2087,5 +2088,6 @@
 				old->location,
 				GET_ACCEPT_1(arg, Expr),
-				castTarget
+				castTarget,
+				{old->concrete_target.field, old->concrete_target.getter}
 			)
 		);
Index: src/AST/Copy.hpp
===================================================================
--- src/AST/Copy.hpp	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/AST/Copy.hpp	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -21,4 +21,6 @@
 #include "Stmt.hpp"
 #include "Type.hpp"
+#include <unordered_set>
+#include <unordered_map>
 
 namespace ast {
Index: src/AST/Expr.hpp
===================================================================
--- src/AST/Expr.hpp	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/AST/Expr.hpp	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -312,8 +312,20 @@
 public:
 	ptr<Expr> arg;
+	struct Concrete {
+		std::string field;
+		std::string getter;
+
+		Concrete() = default;
+		Concrete(const Concrete &) = default;
+	};
 	ast::AggregateDecl::Aggregate target;
+	Concrete concrete_target;
+
 
 	KeywordCastExpr( const CodeLocation & loc, const Expr * a, ast::AggregateDecl::Aggregate t )
 	: Expr( loc ), arg( a ), target( t ) {}
+
+	KeywordCastExpr( const CodeLocation & loc, const Expr * a, ast::AggregateDecl::Aggregate t, const Concrete & ct )
+	: Expr( loc ), arg( a ), target( t ), concrete_target( ct ) {}
 
 	/// Get a name for the target type
Index: src/AST/Pass.hpp
===================================================================
--- src/AST/Pass.hpp	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/AST/Pass.hpp	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -266,4 +266,8 @@
 
 /// Keep track of the polymorphic const TypeSubstitution * env for the current expression
+
+/// marker to force shallow copies in pass visit
+struct PureVisitor {};
+
 struct WithConstTypeSubstitution {
 	const TypeSubstitution * env = nullptr;
Index: src/AST/Pass.impl.hpp
===================================================================
--- src/AST/Pass.impl.hpp	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/AST/Pass.impl.hpp	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -21,4 +21,5 @@
 
 #include "AST/TypeSubstitution.hpp"
+// #include "AST/Copy.hpp"
 
 #define VISIT_START( node ) \
@@ -57,4 +58,7 @@
 
 namespace ast {
+	template<typename node_t>
+	node_t * shallowCopy( const node_t * node );
+
 	namespace __pass {
 		// Check if this is either a null pointer or a pointer to an empty container
@@ -62,4 +66,9 @@
 		static inline bool empty( T * ptr ) {
 			return !ptr || ptr->empty();
+		}
+
+		template< typename core_t, typename node_t >
+		static inline node_t* mutate(const node_t *node) {
+			return std::is_base_of<PureVisitor, core_t>::value ? ::ast::shallowCopy(node) : ::ast::mutate(node);
 		}
 
@@ -320,5 +329,6 @@
 
 		if( __pass::differs(old_val, new_val) ) {
-			auto new_parent = mutate(parent);
+			// auto new_parent = mutate(parent);
+			auto new_parent = __pass::mutate<core_t>(parent);
 			new_parent->*child = new_val;
 			parent = new_parent;
@@ -334,5 +344,5 @@
 			if ( node->forall.empty() ) return;
 
-			node_t * mut = mutate( node );
+			node_t * mut = __pass::mutate<core_t>( node );
 			mut->forall = subs->clone( node->forall, *this );
 			node = mut;
@@ -894,5 +904,5 @@
 
 		if(mutated) {
-			auto n = mutate(node);
+			auto n = __pass::mutate<core_t>(node);
 			n->clauses = std::move( new_clauses );
 			node = n;
@@ -904,5 +914,5 @@
 			auto nval = call_accept( node->field ); \
 			if(nval != node->field ) { \
-				auto nparent = mutate(node); \
+				auto nparent = __pass::mutate<core_t>(node); \
 				nparent->field = nval; \
 				node = nparent; \
@@ -1610,5 +1620,5 @@
 
 		if(mutated) {
-			auto n = mutate(node);
+			auto n = __pass::mutate<core_t>(node);
 			n->associations = std::move( new_kids );
 			node = n;
@@ -1940,5 +1950,5 @@
 			}
 			if (mutated) {
-				auto new_node = mutate( node );
+				auto new_node = __pass::mutate<core_t>( node );
 				new_node->typeEnv.swap( new_map );
 				node = new_node;
@@ -1956,5 +1966,5 @@
 			}
 			if (mutated) {
-				auto new_node = mutate( node );
+				auto new_node = __pass::mutate<core_t>( node );
 				new_node->varEnv.swap( new_map );
 				node = new_node;
Index: src/AST/Pass.proto.hpp
===================================================================
--- src/AST/Pass.proto.hpp	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/AST/Pass.proto.hpp	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -22,4 +22,6 @@
 template<typename core_t>
 class Pass;
+
+struct PureVisitor;
 
 namespace __pass {
Index: src/AST/Print.cpp
===================================================================
--- src/AST/Print.cpp	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/AST/Print.cpp	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -21,4 +21,5 @@
 #include "Type.hpp"
 #include "TypeSubstitution.hpp"
+#include "CompilationState.h"
 
 #include "Common/utility.h" // for group_iterate
@@ -239,9 +240,11 @@
 
 		if ( node->result ) {
-			os << endl << indent << "... with resolved type:" << endl;
-			++indent;
-			os << indent;
-			node->result->accept( *this );
-			--indent;
+			if (!deterministic_output) {
+				os << endl << indent << "... with resolved type:" << endl;
+				++indent;
+				os << indent;
+				node->result->accept( *this );
+				--indent;
+			}
 		}
 
Index: src/AST/TypeSubstitution.hpp
===================================================================
--- src/AST/TypeSubstitution.hpp	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/AST/TypeSubstitution.hpp	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -159,5 +159,5 @@
 
 // definitition must happen after PassVisitor is included so that WithGuards can be used
-struct TypeSubstitution::Substituter : public WithGuards, public WithVisitorRef<Substituter> {
+struct TypeSubstitution::Substituter : public WithGuards, public WithVisitorRef<Substituter>, public PureVisitor {
 		static size_t traceId;
 
@@ -187,5 +187,6 @@
 	assert( input );
 	Pass<Substituter> sub( *this, false );
-	input = strict_dynamic_cast< const SynTreeClass * >( deepCopy(input)->accept( sub ) );
+//	input = strict_dynamic_cast< const SynTreeClass * >( deepCopy(input)->accept( sub ) );
+	input = strict_dynamic_cast< const SynTreeClass * >( input->accept( sub ) );
 	return { input, sub.core.subCount };
 }
@@ -195,5 +196,6 @@
 	assert( input );
 	Pass<Substituter> sub( *this, true );
-	input = strict_dynamic_cast< const SynTreeClass * >( deepCopy(input)->accept( sub ) );
+//	input = strict_dynamic_cast< const SynTreeClass * >( deepCopy(input)->accept( sub ) );
+	input = strict_dynamic_cast< const SynTreeClass * >( input->accept( sub ) );
 	return { input, sub.core.subCount };
 }
Index: src/AST/module.mk
===================================================================
--- src/AST/module.mk	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/AST/module.mk	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -17,21 +17,53 @@
 SRC_AST = \
 	AST/AssertAcyclic.cpp \
+	AST/AssertAcyclic.hpp \
 	AST/Attribute.cpp \
+	AST/Attribute.hpp \
+	AST/Bitfield.hpp \
+	AST/Chain.hpp \
 	AST/Convert.cpp \
+	AST/Convert.hpp \
+	AST/Copy.hpp \
+	AST/CVQualifiers.hpp \
 	AST/Decl.cpp \
+	AST/Decl.hpp \
 	AST/DeclReplacer.cpp \
+	AST/DeclReplacer.hpp \
+	AST/Eval.hpp \
 	AST/Expr.cpp \
+	AST/Expr.hpp \
 	AST/ForallSubstitutionTable.cpp \
+	AST/ForallSubstitutionTable.hpp \
+	AST/ForallSubstitutor.hpp \
+	AST/FunctionSpec.hpp \
+	AST/Fwd.hpp \
 	AST/GenericSubstitution.cpp \
+	AST/GenericSubstitution.hpp \
 	AST/Init.cpp \
+	AST/Init.hpp \
+	AST/Label.hpp \
 	AST/LinkageSpec.cpp \
+	AST/LinkageSpec.hpp \
 	AST/Node.cpp \
+	AST/Node.hpp \
+	AST/ParseNode.hpp \
 	AST/Pass.cpp \
+	AST/Pass.hpp \
+	AST/Pass.impl.hpp \
+	AST/Pass.proto.hpp \
 	AST/Print.cpp \
+	AST/Print.hpp \
 	AST/Stmt.cpp \
+	AST/Stmt.hpp \
+	AST/StorageClasses.hpp \
 	AST/SymbolTable.cpp \
+	AST/SymbolTable.hpp \
 	AST/Type.cpp \
+	AST/Type.hpp \
 	AST/TypeEnvironment.cpp \
-	AST/TypeSubstitution.cpp
+	AST/TypeEnvironment.hpp \
+	AST/TypeSubstitution.cpp \
+	AST/TypeSubstitution.hpp \
+	AST/Visitor.hpp
 
 SRC += $(SRC_AST)
Index: src/CodeGen/module.mk
===================================================================
--- src/CodeGen/module.mk	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/CodeGen/module.mk	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -20,8 +20,13 @@
 SRC_CODEGEN = \
 	CodeGen/CodeGenerator.cc \
+	CodeGen/CodeGenerator.h \
 	CodeGen/FixMain.cc \
+	CodeGen/FixMain.h \
 	CodeGen/GenType.cc \
-	CodeGen/OperatorTable.cc
+	CodeGen/GenType.h \
+	CodeGen/OperatorTable.cc \
+	CodeGen/OperatorTable.h \
+	CodeGen/Options.h
 
-SRC += $(SRC_CODEGEN) CodeGen/Generate.cc CodeGen/FixNames.cc
+SRC += $(SRC_CODEGEN) CodeGen/Generate.cc CodeGen/Generate.h CodeGen/FixNames.cc CodeGen/FixNames.h
 SRCDEMANGLE += $(SRC_CODEGEN)
Index: src/CodeTools/module.mk
===================================================================
--- src/CodeTools/module.mk	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/CodeTools/module.mk	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -15,5 +15,9 @@
 ###############################################################################
 
-SRC += CodeTools/DeclStats.cc \
+SRC += \
+	CodeTools/DeclStats.cc \
+	CodeTools/DeclStats.h \
 	CodeTools/ResolvProtoDump.cc \
-	CodeTools/TrackLoc.cc
+	CodeTools/ResolvProtoDump.h \
+	CodeTools/TrackLoc.cc \
+	CodeTools/TrackLoc.h
Index: src/Common/module.mk
===================================================================
--- src/Common/module.mk	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/Common/module.mk	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -17,12 +17,33 @@
 SRC_COMMON = \
       Common/Assert.cc \
+      Common/CodeLocation.h \
+      Common/CompilerError.h \
+      Common/Debug.h \
+      Common/ErrorObjects.h \
       Common/Eval.cc \
+      Common/FilterCombos.h \
+      Common/Indenter.h \
       Common/PassVisitor.cc \
+      Common/PassVisitor.h \
+      Common/PassVisitor.impl.h \
+      Common/PassVisitor.proto.h \
+      Common/PersistentMap.h \
+      Common/ScopedMap.h \
       Common/SemanticError.cc \
+      Common/SemanticError.h \
+      Common/Stats.h \
+      Common/Stats/Base.h \
       Common/Stats/Counter.cc \
+      Common/Stats/Counter.h \
       Common/Stats/Heap.cc \
+      Common/Stats/Heap.h \
       Common/Stats/Stats.cc \
       Common/Stats/Time.cc \
-      Common/UniqueName.cc
+      Common/Stats/Time.h \
+      Common/UnimplementedError.h \
+      Common/UniqueName.cc \
+      Common/UniqueName.h \
+      Common/utility.h \
+      Common/VectorMap.h
 
 SRC += $(SRC_COMMON) Common/DebugMalloc.cc
Index: src/Concurrency/module.mk
===================================================================
--- src/Concurrency/module.mk	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/Concurrency/module.mk	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -15,5 +15,5 @@
 ###############################################################################
 
-SRC += Concurrency/Keywords.cc Concurrency/Waitfor.cc
+SRC += Concurrency/Keywords.cc Concurrency/Keywords.h Concurrency/Waitfor.cc Concurrency/Waitfor.h
 SRCDEMANGLE += Concurrency/Keywords.cc
 
Index: src/ControlStruct/module.mk
===================================================================
--- src/ControlStruct/module.mk	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/ControlStruct/module.mk	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -17,10 +17,15 @@
 SRC_CONTROLSTRUCT = \
 	ControlStruct/ForExprMutator.cc \
+	ControlStruct/ForExprMutator.h \
 	ControlStruct/LabelFixer.cc \
+	ControlStruct/LabelFixer.h \
 	ControlStruct/LabelGenerator.cc \
+	ControlStruct/LabelGenerator.h \
 	ControlStruct/MLEMutator.cc \
-	ControlStruct/Mutate.cc
+	ControlStruct/MLEMutator.h \
+	ControlStruct/Mutate.cc \
+	ControlStruct/Mutate.h
 
-SRC += $(SRC_CONTROLSTRUCT) ControlStruct/ExceptTranslate.cc
+SRC += $(SRC_CONTROLSTRUCT) ControlStruct/ExceptTranslate.cc ControlStruct/ExceptTranslate.h
 SRCDEMANGLE += $(SRC_CONTROLSTRUCT)
 
Index: src/GenPoly/module.mk
===================================================================
--- src/GenPoly/module.mk	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/GenPoly/module.mk	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -16,11 +16,20 @@
 
 SRC += GenPoly/Box.cc \
+       GenPoly/Box.h \
+       GenPoly/ErasableScopedMap.h \
+       GenPoly/FindFunction.cc \
+       GenPoly/FindFunction.h \
        GenPoly/GenPoly.cc \
+       GenPoly/GenPoly.h \
+       GenPoly/InstantiateGeneric.cc \
+       GenPoly/InstantiateGeneric.h \
+       GenPoly/Lvalue.cc \
+       GenPoly/Lvalue.h \
+       GenPoly/ScopedSet.h \
        GenPoly/ScrubTyVars.cc \
-       GenPoly/Lvalue.cc \
+       GenPoly/ScrubTyVars.h \
        GenPoly/Specialize.cc \
-       GenPoly/FindFunction.cc \
-       GenPoly/InstantiateGeneric.cc
+       GenPoly/Specialize.h
 
-SRCDEMANGLE += GenPoly/GenPoly.cc GenPoly/Lvalue.cc
+SRCDEMANGLE += GenPoly/GenPoly.cc GenPoly/GenPoly.h GenPoly/Lvalue.cc GenPoly/Lvalue.h
 
Index: src/InitTweak/module.mk
===================================================================
--- src/InitTweak/module.mk	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/InitTweak/module.mk	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -15,10 +15,18 @@
 ###############################################################################
 
-SRC += InitTweak/GenInit.cc \
+SRC += \
+	InitTweak/FixGlobalInit.cc \
+	InitTweak/FixGlobalInit.h \
 	InitTweak/FixInit.cc \
-	InitTweak/FixGlobalInit.cc \
-	InitTweak/InitTweak.cc
+	InitTweak/FixInit.h \
+	InitTweak/GenInit.cc \
+	InitTweak/GenInit.h \
+	InitTweak/InitTweak.cc \
+	InitTweak/InitTweak.h
 
-SRCDEMANGLE += InitTweak/GenInit.cc \
-	InitTweak/InitTweak.cc
+SRCDEMANGLE += \
+	InitTweak/GenInit.cc \
+	InitTweak/GenInit.h \
+	InitTweak/InitTweak.cc \
+	InitTweak/InitTweak.h
 
Index: src/Makefile.am
===================================================================
--- src/Makefile.am	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/Makefile.am	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -20,6 +20,8 @@
 
 SRC = main.cc \
+      CompilationState.cc \
+      CompilationState.h \
       MakeLibCfa.cc \
-      CompilationState.cc
+	MakeLibCfa.h
 
 SRCDEMANGLE = CompilationState.cc
@@ -66,4 +68,5 @@
 ___driver_cfa_cpp_SOURCES = $(SRC)
 ___driver_cfa_cpp_LDADD = -ldl $(LIBPROFILER) $(LIBTCMALLOC)
+EXTRA_DIST = include/cassert include/optional BasicTypes-gen.cc
 
 AM_CXXFLAGS = @HOST_FLAGS@ -Wno-deprecated -Wall -Wextra -DDEBUG_ALL -I./Parser -I$(srcdir)/Parser -I$(srcdir)/include -DYY_NO_INPUT -O3 -g -std=c++14 $(TCMALLOCFLAG)
Index: src/Parser/module.mk
===================================================================
--- src/Parser/module.mk	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/Parser/module.mk	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -23,11 +23,16 @@
        Parser/ExpressionNode.cc \
        Parser/InitializerNode.cc \
+       Parser/lex.ll \
        Parser/ParseNode.cc \
+       Parser/ParseNode.h \
+       Parser/parser.yy \
+       Parser/ParserTypes.h \
+       Parser/parserutility.cc \
+       Parser/parserutility.h \
        Parser/StatementNode.cc \
        Parser/TypeData.cc \
+       Parser/TypeData.h \
        Parser/TypedefTable.cc \
-       Parser/lex.ll \
-       Parser/parser.yy \
-       Parser/parserutility.cc
+       Parser/TypedefTable.h
 
 MOSTLYCLEANFILES += Parser/lex.cc Parser/parser.cc Parser/parser.hh Parser/parser.output
Index: src/ResolvExpr/CandidateFinder.cpp
===================================================================
--- src/ResolvExpr/CandidateFinder.cpp	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/ResolvExpr/CandidateFinder.cpp	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -1089,4 +1089,59 @@
 		}
 
+		void postvisit( const ast::KeywordCastExpr * castExpr ) {
+			const auto & loc = castExpr->location;
+			assertf( castExpr->result, "Cast target should have been set in Validate." );
+			auto ref = castExpr->result.strict_as<ast::ReferenceType>();
+			auto inst = ref->base.strict_as<ast::StructInstType>();
+			auto target = inst->base.get();
+
+			CandidateFinder finder{ symtab, tenv };
+
+			auto pick_alternatives = [target, this](CandidateList & found, bool expect_ref) {
+				for(auto & cand : found) {
+					const ast::Type * expr = cand->expr->result.get();
+					if(expect_ref) {
+						auto res = dynamic_cast<const ast::ReferenceType*>(expr);
+						if(!res) { continue; }
+						expr = res->base.get();
+					}
+
+					if(auto insttype = dynamic_cast<const ast::TypeInstType*>(expr)) {
+						auto td = cand->env.lookup(insttype->name);
+						if(!td) { continue; }
+						expr = td->bound.get();
+					}
+
+					if(auto base = dynamic_cast<const ast::StructInstType*>(expr)) {
+						if(base->base == target) {
+							candidates.push_back( std::move(cand) );
+							reason.code = NoReason;
+						}
+					}
+				}
+			};
+
+			try {
+				// Attempt 1 : turn (thread&)X into ($thread&)X.__thrd
+				// Clone is purely for memory management
+				std::unique_ptr<const ast::Expr> tech1 { new ast::UntypedMemberExpr(loc, new ast::NameExpr(loc, castExpr->concrete_target.field), castExpr->arg) };
+
+				// don't prune here, since it's guaranteed all alternatives will have the same type
+				finder.find( tech1.get(), ResolvMode::withoutPrune() );
+				pick_alternatives(finder.candidates, false);
+
+				return;
+			} catch(SemanticErrorException & ) {}
+
+			// Fallback : turn (thread&)X into ($thread&)get_thread(X)
+			std::unique_ptr<const ast::Expr> fallback { ast::UntypedExpr::createDeref(loc,  new ast::UntypedExpr(loc, new ast::NameExpr(loc, castExpr->concrete_target.getter), { castExpr->arg })) };
+			// don't prune here, since it's guaranteed all alternatives will have the same type
+			finder.find( fallback.get(), ResolvMode::withoutPrune() );
+
+			pick_alternatives(finder.candidates, true);
+
+			// Whatever happens here, we have no more fallbacks
+		}
+
 		void postvisit( const ast::UntypedMemberExpr * memberExpr ) {
 			CandidateFinder aggFinder{ symtab, tenv };
Index: src/ResolvExpr/Unify.cc
===================================================================
--- src/ResolvExpr/Unify.cc	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/ResolvExpr/Unify.cc	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -767,5 +767,5 @@
 		/// If this isn't done when satifying ttype assertions, then argument lists can have
 		/// different size and structure when they should be compatible.
-		struct TtypeExpander_new : public ast::WithShortCircuiting {
+		struct TtypeExpander_new : public ast::WithShortCircuiting, public ast::PureVisitor {
 			ast::TypeEnvironment & tenv;
 
@@ -793,6 +793,5 @@
 				// TtypeExpander pass is impure (may mutate nodes in place)
 				// need to make nodes shared to prevent accidental mutation
-				ast::ptr<ast::DeclWithType> dc = d;
-				dc = dc->accept( expander );
+				ast::ptr<ast::DeclWithType> dc = d->accept(expander);
 				auto types = flatten( dc->get_type() );
 				for ( ast::ptr< ast::Type > & t : types ) {
@@ -1114,8 +1113,8 @@
 			ast::Pass<TtypeExpander_new> expander{ tenv };
 
-			ast::ptr<ast::TupleType> tuplec = tuple;
-			ast::ptr<ast::TupleType> tuple2c = tuple2;
-			const ast::Type * flat = tuplec->accept( expander );
-			const ast::Type * flat2 = tuple2c->accept( expander );
+			// ast::ptr<ast::TupleType> tuplec = tuple;
+			// ast::ptr<ast::TupleType> tuple2c = tuple2;
+			const ast::Type * flat = tuple->accept( expander );
+			const ast::Type * flat2 = tuple2->accept( expander );
 
 			auto types = flatten( flat );
Index: src/ResolvExpr/module.mk
===================================================================
--- src/ResolvExpr/module.mk	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/ResolvExpr/module.mk	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -19,13 +19,23 @@
       ResolvExpr/Alternative.cc \
       ResolvExpr/AlternativeFinder.cc \
+      ResolvExpr/AlternativeFinder.h \
+      ResolvExpr/Alternative.h \
       ResolvExpr/Candidate.cpp \
       ResolvExpr/CandidateFinder.cpp \
+      ResolvExpr/CandidateFinder.hpp \
+      ResolvExpr/Candidate.hpp \
       ResolvExpr/CastCost.cc \
       ResolvExpr/CommonType.cc \
       ResolvExpr/ConversionCost.cc \
+      ResolvExpr/ConversionCost.h \
+      ResolvExpr/Cost.h \
       ResolvExpr/CurrentObject.cc \
+      ResolvExpr/CurrentObject.h \
       ResolvExpr/ExplodedActual.cc \
+      ResolvExpr/ExplodedActual.h \
       ResolvExpr/ExplodedArg.cpp \
+      ResolvExpr/ExplodedArg.hpp \
       ResolvExpr/FindOpenVars.cc \
+      ResolvExpr/FindOpenVars.h \
       ResolvExpr/Occurs.cc \
       ResolvExpr/PolyCost.cc \
@@ -33,12 +43,23 @@
       ResolvExpr/PtrsCastable.cc \
       ResolvExpr/RenameVars.cc \
+      ResolvExpr/RenameVars.h \
       ResolvExpr/ResolveAssertions.cc \
+      ResolvExpr/ResolveAssertions.h \
       ResolvExpr/Resolver.cc \
+      ResolvExpr/Resolver.h \
       ResolvExpr/ResolveTypeof.cc \
+      ResolvExpr/ResolveTypeof.h \
+      ResolvExpr/ResolvMode.h \
       ResolvExpr/SatisfyAssertions.cpp \
+      ResolvExpr/SatisfyAssertions.hpp \
       ResolvExpr/SpecCost.cc \
       ResolvExpr/TypeEnvironment.cc \
-      ResolvExpr/Unify.cc
+      ResolvExpr/TypeEnvironment.h \
+      ResolvExpr/typeops.h \
+      ResolvExpr/Unify.cc \
+      ResolvExpr/Unify.h \
+      ResolvExpr/WidenMode.h
 
-SRC += $(SRC_RESOLVEXPR) ResolvExpr/AlternativePrinter.cc
+
+SRC += $(SRC_RESOLVEXPR) ResolvExpr/AlternativePrinter.cc ResolvExpr/AlternativePrinter.h
 SRCDEMANGLE += $(SRC_RESOLVEXPR)
Index: src/SymTab/module.mk
===================================================================
--- src/SymTab/module.mk	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/SymTab/module.mk	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -17,9 +17,14 @@
 SRC_SYMTAB = \
       SymTab/Autogen.cc \
+      SymTab/Autogen.h \
       SymTab/FixFunction.cc \
+      SymTab/FixFunction.h \
       SymTab/Indexer.cc \
+      SymTab/Indexer.h \
       SymTab/Mangler.cc \
       SymTab/ManglerCommon.cc \
-      SymTab/Validate.cc
+      SymTab/Mangler.h \
+      SymTab/Validate.cc \
+      SymTab/Validate.h
 
 SRC += $(SRC_SYMTAB)
Index: src/SynTree/Expression.cc
===================================================================
--- src/SynTree/Expression.cc	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/SynTree/Expression.cc	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -30,4 +30,5 @@
 #include "Type.h"                    // for Type, BasicType, Type::Qualifiers
 #include "TypeSubstitution.h"        // for TypeSubstitution
+#include "CompilationState.h"        // for deterministic_output
 
 #include "GenPoly/Lvalue.h"
@@ -71,7 +72,9 @@
 
 	if ( result ) {
-		os << std::endl << indent << "with resolved type:" << std::endl;
-		os << (indent+1);
-		result->print( os, indent+1 );
+		if (!deterministic_output) {
+			os << std::endl << indent << "with resolved type:" << std::endl;
+			os << (indent+1);
+			result->print( os, indent+1 );
+		}
 	}
 
@@ -299,9 +302,8 @@
 }
 
-KeywordCastExpr::KeywordCastExpr( Expression * arg, AggregateDecl::Aggregate target ) : Expression(), arg(arg), target( target ) {
-}
-
-KeywordCastExpr::KeywordCastExpr( const KeywordCastExpr & other ) : Expression( other ), arg( maybeClone( other.arg ) ), target( other.target ) {
-}
+KeywordCastExpr::KeywordCastExpr( Expression * arg, AggregateDecl::Aggregate target ) : Expression(), arg(arg), target( target ) {}
+KeywordCastExpr::KeywordCastExpr( Expression * arg, AggregateDecl::Aggregate target, const KeywordCastExpr::Concrete & concrete_target ) : Expression(), arg(arg), target( target ), concrete_target(concrete_target) {}
+
+KeywordCastExpr::KeywordCastExpr( const KeywordCastExpr & other ) : Expression( other ), arg( maybeClone( other.arg ) ), target( other.target ) {}
 
 KeywordCastExpr::~KeywordCastExpr() {
Index: src/SynTree/Expression.h
===================================================================
--- src/SynTree/Expression.h	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/SynTree/Expression.h	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -248,4 +248,5 @@
 
 	KeywordCastExpr( Expression * arg, AggregateDecl::Aggregate target );
+	KeywordCastExpr( Expression * arg, AggregateDecl::Aggregate target, const Concrete & concrete_target );
 	KeywordCastExpr( const KeywordCastExpr & other );
 	virtual ~KeywordCastExpr();
Index: src/SynTree/module.mk
===================================================================
--- src/SynTree/module.mk	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/SynTree/module.mk	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -20,19 +20,29 @@
       SynTree/ApplicationExpr.cc \
       SynTree/ArrayType.cc \
+      SynTree/Attribute.cc \
+      SynTree/Attribute.h \
       SynTree/AttrType.cc \
-      SynTree/Attribute.cc \
+      SynTree/BaseSyntaxNode.h \
       SynTree/BasicType.cc \
       SynTree/CommaExpr.cc \
       SynTree/CompoundStmt.cc \
       SynTree/Constant.cc \
+      SynTree/Constant.h \
+      SynTree/Declaration.cc \
+      SynTree/Declaration.h \
+      SynTree/DeclarationWithType.cc \
       SynTree/DeclReplacer.cc \
+      SynTree/DeclReplacer.h \
       SynTree/DeclStmt.cc \
-      SynTree/Declaration.cc \
-      SynTree/DeclarationWithType.cc \
       SynTree/Expression.cc \
+      SynTree/Expression.h \
       SynTree/FunctionDecl.cc \
       SynTree/FunctionType.cc \
       SynTree/Initializer.cc \
+      SynTree/Initializer.h \
+      SynTree/Label.h \
       SynTree/LinkageSpec.cc \
+      SynTree/LinkageSpec.h \
+      SynTree/Mutator.h \
       SynTree/NamedTypeDecl.cc \
       SynTree/ObjectDecl.cc \
@@ -41,4 +51,6 @@
       SynTree/ReferenceType.cc \
       SynTree/Statement.cc \
+      SynTree/Statement.h \
+      SynTree/SynTree.h \
       SynTree/TupleExpr.cc \
       SynTree/TupleType.cc \
@@ -46,7 +58,10 @@
       SynTree/TypeDecl.cc \
       SynTree/TypeExpr.cc \
+      SynTree/Type.h \
+      SynTree/TypeofType.cc \
       SynTree/TypeSubstitution.cc \
-      SynTree/TypeofType.cc \
+      SynTree/TypeSubstitution.h \
       SynTree/VarArgsType.cc \
+      SynTree/Visitor.h \
       SynTree/VoidType.cc \
       SynTree/ZeroOneType.cc
Index: src/Tuples/module.mk
===================================================================
--- src/Tuples/module.mk	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/Tuples/module.mk	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -15,6 +15,13 @@
 ###############################################################################
 
-SRC += Tuples/TupleAssignment.cc Tuples/TupleExpansion.cc Tuples/Explode.cc \
-	Tuples/Tuples.cc
-SRCDEMANGLE += Tuples/TupleAssignment.cc Tuples/TupleExpansion.cc Tuples/Explode.cc \
-	Tuples/Tuples.cc
+SRC_TUPLES = \
+	Tuples/Explode.cc \
+	Tuples/Explode.h \
+	Tuples/TupleAssignment.cc \
+	Tuples/TupleExpansion.cc \
+	Tuples/Tuples.cc \
+	Tuples/Tuples.h
+
+
+SRC += $(SRC_TUPLES)
+SRCDEMANGLE += $(SRC_TUPLES)
Index: src/Validate/module.mk
===================================================================
--- src/Validate/module.mk	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/Validate/module.mk	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -15,4 +15,4 @@
 ###############################################################################
 
-SRC += Validate/HandleAttributes.cc Validate/FindSpecialDecls.cc
-SRCDEMANGLE += Validate/HandleAttributes.cc Validate/FindSpecialDecls.cc
+SRC += Validate/HandleAttributes.cc Validate/HandleAttributes.h Validate/FindSpecialDecls.cc Validate/FindSpecialDecls.h
+SRCDEMANGLE += Validate/HandleAttributes.cc Validate/HandleAttributes.h Validate/FindSpecialDecls.cc Validate/FindSpecialDecls.h
Index: src/Virtual/module.mk
===================================================================
--- src/Virtual/module.mk	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ src/Virtual/module.mk	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -15,3 +15,3 @@
 ###############################################################################
 
-SRC += Virtual/ExpandCasts.cc
+SRC += Virtual/ExpandCasts.cc Virtual/ExpandCasts.h
Index: tests/.expect/abs.arm64.txt
===================================================================
--- tests/.expect/abs.arm64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/abs.arm64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,10 @@
+char			-65	abs 65
+signed int		-65	abs 65
+signed long int		-65	abs 65
+signed long long int	-65	abs 65
+float			-65.	abs 65.
+double			-65.	abs 65.
+long double		-65.	abs 65.
+float _Complex		-65.-2.i	abs 65.0308
+double _Complex		-65.-2.i	abs 65.0307619515564
+long double _Complex	-65.-2.i	abs 65.0307619515564341507579207499533
Index: sts/.expect/abs.txt
===================================================================
--- tests/.expect/abs.txt	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ 	(revision )
@@ -1,10 +1,0 @@
-char			-65	abs 65
-signed int		-65	abs 65
-signed long int		-65	abs 65
-signed long long int	-65	abs 65
-float			-65.	abs 65.
-double			-65.	abs 65.
-long double		-65.	abs 65.
-float _Complex		-65.-2.i	abs 65.0308
-double _Complex		-65.-2.i	abs 65.0307619515564
-long double _Complex	-65.-2.i	abs 65.0307619515564342
Index: tests/.expect/abs.x64.txt
===================================================================
--- tests/.expect/abs.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/abs.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,10 @@
+char			-65	abs 65
+signed int		-65	abs 65
+signed long int		-65	abs 65
+signed long long int	-65	abs 65
+float			-65.	abs 65.
+double			-65.	abs 65.
+long double		-65.	abs 65.
+float _Complex		-65.-2.i	abs 65.0308
+double _Complex		-65.-2.i	abs 65.0307619515564
+long double _Complex	-65.-2.i	abs 65.0307619515564342
Index: tests/.expect/abs.x86.txt
===================================================================
--- tests/.expect/abs.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/abs.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,10 @@
+char			-65	abs 65
+signed int		-65	abs 65
+signed long int		-65	abs 65
+signed long long int	-65	abs 65
+float			-65.	abs 65.
+double			-65.	abs 65.
+long double		-65.	abs 65.
+float _Complex		-65.-2.i	abs 65.0308
+double _Complex		-65.-2.i	abs 65.0307619515564
+long double _Complex	-65.-2.i	abs 65.0307619515564342
Index: tests/.expect/ato.arm64.txt
===================================================================
--- tests/.expect/ato.arm64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/ato.arm64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,27 @@
+-123 -123
+123 123
+-123 -123
+123 123
+-123 -123
+123 123
+-123.456 -123.456
+-123.456789012346 -123.4567890123456
+-123.45678901234567890123456789 -123.45678901234567890123456789
+-123.456-123.456i -123.456-123.456i
+-123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
+123.45678901234567890123456789-123.45678901234567890123456789i 123.45678901234567890123456789-123.45678901234567890123456789i
+123.45678901234-123.456789i 123.45678901234-123.4567890i
+-123 -123
+123 123
+-123 -123
+123 123
+-123 -123
+123 123
+-123.456 -123.456
+-123.456789012346 -123.4567890123456
+-123.45678901234567890123456789 -123.45678901234567890123456789
+-123.456-123.456i -123.456-123.456i
+0.+0.i 2  3
+-123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
+123.45678901234567890123456789-123.45678901234567890123456789i 123.45678901234567890123456789-123.45678901234567890123456789i
+123.45678901234-123.456789i 123.45678901234-123.4567890i
Index: sts/.expect/ato.txt
===================================================================
--- tests/.expect/ato.txt	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ 	(revision )
@@ -1,27 +1,0 @@
--123 -123
-123 123
--123 -123
-123 123
--123 -123
-123 123
--123.456 -123.456
--123.456789012346 -123.4567890123456
--123.456789012345679 -123.45678901234567890123456789
--123.456-123.456i -123.456-123.456i
--123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
-123.456789012345679-123.456789012345679i 123.45678901234567890123456789-123.45678901234567890123456789i
-123.45678901234-123.456789i 123.45678901234-123.4567890i
--123 -123
-123 123
--123 -123
-123 123
--123 -123
-123 123
--123.456 -123.456
--123.456789012346 -123.4567890123456
--123.456789012345679 -123.45678901234567890123456789
--123.456-123.456i -123.456-123.456i
-0.+0.i 2  3
--123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
-123.456789012345679-123.456789012345679i 123.45678901234567890123456789-123.45678901234567890123456789i
-123.45678901234-123.456789i 123.45678901234-123.4567890i
Index: tests/.expect/ato.x64.txt
===================================================================
--- tests/.expect/ato.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/ato.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,27 @@
+-123 -123
+123 123
+-123 -123
+123 123
+-123 -123
+123 123
+-123.456 -123.456
+-123.456789012346 -123.4567890123456
+-123.456789012345679 -123.45678901234567890123456789
+-123.456-123.456i -123.456-123.456i
+-123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
+123.456789012345679-123.456789012345679i 123.45678901234567890123456789-123.45678901234567890123456789i
+123.45678901234-123.456789i 123.45678901234-123.4567890i
+-123 -123
+123 123
+-123 -123
+123 123
+-123 -123
+123 123
+-123.456 -123.456
+-123.456789012346 -123.4567890123456
+-123.456789012345679 -123.45678901234567890123456789
+-123.456-123.456i -123.456-123.456i
+0.+0.i 2  3
+-123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
+123.456789012345679-123.456789012345679i 123.45678901234567890123456789-123.45678901234567890123456789i
+123.45678901234-123.456789i 123.45678901234-123.4567890i
Index: tests/.expect/ato.x86.txt
===================================================================
--- tests/.expect/ato.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/ato.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,27 @@
+-123 -123
+123 123
+-123 -123
+123 123
+-123 -123
+123 123
+-123.456 -123.456
+-123.456789012346 -123.4567890123456
+-123.456789012345679 -123.45678901234567890123456789
+-123.456-123.456i -123.456-123.456i
+-123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
+123.456789012345679-123.456789012345679i 123.45678901234567890123456789-123.45678901234567890123456789i
+123.45678901234-123.456789i 123.45678901234-123.4567890i
+-123 -123
+123 123
+-123 -123
+123 123
+-123 -123
+123 123
+-123.456 -123.456
+-123.456789012346 -123.4567890123456
+-123.456789012345679 -123.45678901234567890123456789
+-123.456-123.456i -123.456-123.456i
+0.+0.i 2  3
+-123.456789012346+123.456789012346i -123.4567890123456+123.4567890123456i
+123.456789012345679-123.456789012345679i 123.45678901234567890123456789-123.45678901234567890123456789i
+123.45678901234-123.456789i 123.45678901234-123.4567890i
Index: tests/.expect/bitmanip3.x64.txt
===================================================================
--- tests/.expect/bitmanip3.x64.txt	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/.expect/bitmanip3.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -792,395 +792,4 @@
 
 
-floor
-
-signed char
-floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
-floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
-floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
-floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
-floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
-floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
-floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
-floor(-128, -128) = -128, floor(-126, -128) = 0, floor(126, -128) = 0
-
-unsigned char
-floor(1, 1) = 1, floor(3, 1) = 3, floor(253, 1) = 253
-floor(2, 2) = 2, floor(4, 2) = 4, floor(252, 2) = 252
-floor(4, 4) = 4, floor(6, 4) = 4, floor(250, 4) = 248
-floor(8, 8) = 8, floor(10, 8) = 8, floor(246, 8) = 240
-floor(16, 16) = 16, floor(18, 16) = 16, floor(238, 16) = 224
-floor(32, 32) = 32, floor(34, 32) = 32, floor(222, 32) = 192
-floor(64, 64) = 64, floor(66, 64) = 64, floor(190, 64) = 128
-floor(128, 128) = 128, floor(130, 128) = 128, floor(126, 128) = 0
-
-short int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
-floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
-floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
-floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
-floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
-floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
-floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
-floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
-floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
-floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
-floor(-32768, -32768) = -32768, floor(-32766, -32768) = 0, floor(32766, -32768) = 0
-
-unsigned short int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(65533, 1) = 65533
-floor(2, 2) = 2, floor(4, 2) = 4, floor(65532, 2) = 65532
-floor(4, 4) = 4, floor(6, 4) = 4, floor(65530, 4) = 65528
-floor(8, 8) = 8, floor(10, 8) = 8, floor(65526, 8) = 65520
-floor(16, 16) = 16, floor(18, 16) = 16, floor(65518, 16) = 65504
-floor(32, 32) = 32, floor(34, 32) = 32, floor(65502, 32) = 65472
-floor(64, 64) = 64, floor(66, 64) = 64, floor(65470, 64) = 65408
-floor(128, 128) = 128, floor(130, 128) = 128, floor(65406, 128) = 65280
-floor(256, 256) = 256, floor(258, 256) = 256, floor(65278, 256) = 65024
-floor(512, 512) = 512, floor(514, 512) = 512, floor(65022, 512) = 64512
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(64510, 1024) = 63488
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(63486, 2048) = 61440
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(61438, 4096) = 57344
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(57342, 8192) = 49152
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(49150, 16384) = 32768
-floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(32766, 32768) = 0
-
-int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
-floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
-floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
-floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
-floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
-floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
-floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
-floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
-floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
-floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
-floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(-32770, 32768) = -32768
-floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(-65538, 65536) = -65536
-floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(-131074, 131072) = -131072
-floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(-262146, 262144) = -262144
-floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(-524290, 524288) = -524288
-floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(-1048578, 1048576) = -1048576
-floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(-2097154, 2097152) = -2097152
-floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(-4194306, 4194304) = -4194304
-floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(-8388610, 8388608) = -8388608
-floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(-16777218, 16777216) = -16777216
-floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(-33554434, 33554432) = -33554432
-floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(-67108866, 67108864) = -67108864
-floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(-134217730, 134217728) = -134217728
-floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(-268435458, 268435456) = -268435456
-floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(-536870914, 536870912) = -536870912
-floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(-1073741826, 1073741824) = -1073741824
-floor(-2147483648, -2147483648) = -2147483648, floor(-2147483646, -2147483648) = 0, floor(2147483646, -2147483648) = 0
-
-unsigned int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(4294967293, 1) = 4294967293
-floor(2, 2) = 2, floor(4, 2) = 4, floor(4294967292, 2) = 4294967292
-floor(4, 4) = 4, floor(6, 4) = 4, floor(4294967290, 4) = 4294967288
-floor(8, 8) = 8, floor(10, 8) = 8, floor(4294967286, 8) = 4294967280
-floor(16, 16) = 16, floor(18, 16) = 16, floor(4294967278, 16) = 4294967264
-floor(32, 32) = 32, floor(34, 32) = 32, floor(4294967262, 32) = 4294967232
-floor(64, 64) = 64, floor(66, 64) = 64, floor(4294967230, 64) = 4294967168
-floor(128, 128) = 128, floor(130, 128) = 128, floor(4294967166, 128) = 4294967040
-floor(256, 256) = 256, floor(258, 256) = 256, floor(4294967038, 256) = 4294966784
-floor(512, 512) = 512, floor(514, 512) = 512, floor(4294966782, 512) = 4294966272
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(4294966270, 1024) = 4294965248
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(4294965246, 2048) = 4294963200
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(4294963198, 4096) = 4294959104
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(4294959102, 8192) = 4294950912
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(4294950910, 16384) = 4294934528
-floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(4294934526, 32768) = 4294901760
-floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(4294901758, 65536) = 4294836224
-floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(4294836222, 131072) = 4294705152
-floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(4294705150, 262144) = 4294443008
-floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(4294443006, 524288) = 4293918720
-floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(4293918718, 1048576) = 4292870144
-floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(4292870142, 2097152) = 4290772992
-floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(4290772990, 4194304) = 4286578688
-floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(4286578686, 8388608) = 4278190080
-floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(4278190078, 16777216) = 4261412864
-floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(4261412862, 33554432) = 4227858432
-floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(4227858430, 67108864) = 4160749568
-floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(4160749566, 134217728) = 4026531840
-floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(4026531838, 268435456) = 3758096384
-floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(3758096382, 536870912) = 3221225472
-floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(3221225470, 1073741824) = 2147483648
-floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(2147483646, 2147483648) = 0
-
-long int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
-floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
-floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
-floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
-floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
-floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
-floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
-floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
-floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
-floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
-floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(-32770, 32768) = -32768
-floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(-65538, 65536) = -65536
-floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(-131074, 131072) = -131072
-floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(-262146, 262144) = -262144
-floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(-524290, 524288) = -524288
-floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(-1048578, 1048576) = -1048576
-floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(-2097154, 2097152) = -2097152
-floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(-4194306, 4194304) = -4194304
-floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(-8388610, 8388608) = -8388608
-floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(-16777218, 16777216) = -16777216
-floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(-33554434, 33554432) = -33554432
-floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(-67108866, 67108864) = -67108864
-floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(-134217730, 134217728) = -134217728
-floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(-268435458, 268435456) = -268435456
-floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(-536870914, 536870912) = -536870912
-floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(-1073741826, 1073741824) = -1073741824
-floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(-2147483650, 2147483648) = -2147483648
-floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(-4294967298, 4294967296) = -4294967296
-floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(-8589934594, 8589934592) = -8589934592
-floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(-17179869186, 17179869184) = -17179869184
-floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(-34359738370, 34359738368) = -34359738368
-floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(-68719476738, 68719476736) = -68719476736
-floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(-137438953474, 137438953472) = -137438953472
-floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(-274877906946, 274877906944) = -274877906944
-floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(-549755813890, 549755813888) = -549755813888
-floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(-1099511627778, 1099511627776) = -1099511627776
-floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(-2199023255554, 2199023255552) = -2199023255552
-floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(-4398046511106, 4398046511104) = -4398046511104
-floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(-8796093022210, 8796093022208) = -8796093022208
-floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(-17592186044418, 17592186044416) = -17592186044416
-floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(-35184372088834, 35184372088832) = -35184372088832
-floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(-70368744177666, 70368744177664) = -70368744177664
-floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(-140737488355330, 140737488355328) = -140737488355328
-floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(-281474976710658, 281474976710656) = -281474976710656
-floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(-562949953421314, 562949953421312) = -562949953421312
-floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(-1125899906842626, 1125899906842624) = -1125899906842624
-floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(-2251799813685250, 2251799813685248) = -2251799813685248
-floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(-4503599627370498, 4503599627370496) = -4503599627370496
-floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(-9007199254740994, 9007199254740992) = -9007199254740992
-floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(-18014398509481986, 18014398509481984) = -18014398509481984
-floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(-36028797018963970, 36028797018963968) = -36028797018963968
-floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(-72057594037927938, 72057594037927936) = -72057594037927936
-floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(-144115188075855874, 144115188075855872) = -144115188075855872
-floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(-288230376151711746, 288230376151711744) = -288230376151711744
-floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(-576460752303423490, 576460752303423488) = -576460752303423488
-floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(-1152921504606846978, 1152921504606846976) = -1152921504606846976
-floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(-2305843009213693954, 2305843009213693952) = -2305843009213693952
-floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(-4611686018427387906, 4611686018427387904) = -4611686018427387904
-floor(-9223372036854775808, -9223372036854775808) = -9223372036854775808, floor(-9223372036854775806, -9223372036854775808) = 0, floor(9223372036854775806, -9223372036854775808) = 0
-
-unsigned long int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(18446744073709551613, 1) = 18446744073709551613
-floor(2, 2) = 2, floor(4, 2) = 4, floor(18446744073709551612, 2) = 18446744073709551612
-floor(4, 4) = 4, floor(6, 4) = 4, floor(18446744073709551610, 4) = 18446744073709551608
-floor(8, 8) = 8, floor(10, 8) = 8, floor(18446744073709551606, 8) = 18446744073709551600
-floor(16, 16) = 16, floor(18, 16) = 16, floor(18446744073709551598, 16) = 18446744073709551584
-floor(32, 32) = 32, floor(34, 32) = 32, floor(18446744073709551582, 32) = 18446744073709551552
-floor(64, 64) = 64, floor(66, 64) = 64, floor(18446744073709551550, 64) = 18446744073709551488
-floor(128, 128) = 128, floor(130, 128) = 128, floor(18446744073709551486, 128) = 18446744073709551360
-floor(256, 256) = 256, floor(258, 256) = 256, floor(18446744073709551358, 256) = 18446744073709551104
-floor(512, 512) = 512, floor(514, 512) = 512, floor(18446744073709551102, 512) = 18446744073709550592
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(18446744073709550590, 1024) = 18446744073709549568
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(18446744073709549566, 2048) = 18446744073709547520
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(18446744073709547518, 4096) = 18446744073709543424
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(18446744073709543422, 8192) = 18446744073709535232
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(18446744073709535230, 16384) = 18446744073709518848
-floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(18446744073709518846, 32768) = 18446744073709486080
-floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(18446744073709486078, 65536) = 18446744073709420544
-floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(18446744073709420542, 131072) = 18446744073709289472
-floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(18446744073709289470, 262144) = 18446744073709027328
-floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(18446744073709027326, 524288) = 18446744073708503040
-floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(18446744073708503038, 1048576) = 18446744073707454464
-floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(18446744073707454462, 2097152) = 18446744073705357312
-floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(18446744073705357310, 4194304) = 18446744073701163008
-floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(18446744073701163006, 8388608) = 18446744073692774400
-floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(18446744073692774398, 16777216) = 18446744073675997184
-floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(18446744073675997182, 33554432) = 18446744073642442752
-floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(18446744073642442750, 67108864) = 18446744073575333888
-floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(18446744073575333886, 134217728) = 18446744073441116160
-floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(18446744073441116158, 268435456) = 18446744073172680704
-floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(18446744073172680702, 536870912) = 18446744072635809792
-floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(18446744072635809790, 1073741824) = 18446744071562067968
-floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(18446744071562067966, 2147483648) = 18446744069414584320
-floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(18446744069414584318, 4294967296) = 18446744065119617024
-floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(18446744065119617022, 8589934592) = 18446744056529682432
-floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(18446744056529682430, 17179869184) = 18446744039349813248
-floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(18446744039349813246, 34359738368) = 18446744004990074880
-floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(18446744004990074878, 68719476736) = 18446743936270598144
-floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(18446743936270598142, 137438953472) = 18446743798831644672
-floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(18446743798831644670, 274877906944) = 18446743523953737728
-floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(18446743523953737726, 549755813888) = 18446742974197923840
-floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(18446742974197923838, 1099511627776) = 18446741874686296064
-floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(18446741874686296062, 2199023255552) = 18446739675663040512
-floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(18446739675663040510, 4398046511104) = 18446735277616529408
-floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(18446735277616529406, 8796093022208) = 18446726481523507200
-floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(18446726481523507198, 17592186044416) = 18446708889337462784
-floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(18446708889337462782, 35184372088832) = 18446673704965373952
-floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(18446673704965373950, 70368744177664) = 18446603336221196288
-floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(18446603336221196286, 140737488355328) = 18446462598732840960
-floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(18446462598732840958, 281474976710656) = 18446181123756130304
-floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(18446181123756130302, 562949953421312) = 18445618173802708992
-floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(18445618173802708990, 1125899906842624) = 18444492273895866368
-floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(18444492273895866366, 2251799813685248) = 18442240474082181120
-floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(18442240474082181118, 4503599627370496) = 18437736874454810624
-floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(18437736874454810622, 9007199254740992) = 18428729675200069632
-floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(18428729675200069630, 18014398509481984) = 18410715276690587648
-floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(18410715276690587646, 36028797018963968) = 18374686479671623680
-floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(18374686479671623678, 72057594037927936) = 18302628885633695744
-floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(18302628885633695742, 144115188075855872) = 18158513697557839872
-floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(18158513697557839870, 288230376151711744) = 17870283321406128128
-floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(17870283321406128126, 576460752303423488) = 17293822569102704640
-floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(17293822569102704638, 1152921504606846976) = 16140901064495857664
-floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(16140901064495857662, 2305843009213693952) = 13835058055282163712
-floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(13835058055282163710, 4611686018427387904) = 9223372036854775808
-floor(9223372036854775808, 9223372036854775808) = 9223372036854775808, floor(9223372036854775810, 9223372036854775808) = 9223372036854775808, floor(9223372036854775806, 9223372036854775808) = 0
-
-long long int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
-floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
-floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
-floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
-floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
-floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
-floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
-floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
-floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
-floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
-floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(-32770, 32768) = -32768
-floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(-65538, 65536) = -65536
-floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(-131074, 131072) = -131072
-floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(-262146, 262144) = -262144
-floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(-524290, 524288) = -524288
-floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(-1048578, 1048576) = -1048576
-floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(-2097154, 2097152) = -2097152
-floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(-4194306, 4194304) = -4194304
-floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(-8388610, 8388608) = -8388608
-floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(-16777218, 16777216) = -16777216
-floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(-33554434, 33554432) = -33554432
-floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(-67108866, 67108864) = -67108864
-floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(-134217730, 134217728) = -134217728
-floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(-268435458, 268435456) = -268435456
-floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(-536870914, 536870912) = -536870912
-floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(-1073741826, 1073741824) = -1073741824
-floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(-2147483650, 2147483648) = -2147483648
-floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(-4294967298, 4294967296) = -4294967296
-floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(-8589934594, 8589934592) = -8589934592
-floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(-17179869186, 17179869184) = -17179869184
-floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(-34359738370, 34359738368) = -34359738368
-floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(-68719476738, 68719476736) = -68719476736
-floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(-137438953474, 137438953472) = -137438953472
-floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(-274877906946, 274877906944) = -274877906944
-floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(-549755813890, 549755813888) = -549755813888
-floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(-1099511627778, 1099511627776) = -1099511627776
-floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(-2199023255554, 2199023255552) = -2199023255552
-floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(-4398046511106, 4398046511104) = -4398046511104
-floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(-8796093022210, 8796093022208) = -8796093022208
-floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(-17592186044418, 17592186044416) = -17592186044416
-floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(-35184372088834, 35184372088832) = -35184372088832
-floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(-70368744177666, 70368744177664) = -70368744177664
-floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(-140737488355330, 140737488355328) = -140737488355328
-floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(-281474976710658, 281474976710656) = -281474976710656
-floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(-562949953421314, 562949953421312) = -562949953421312
-floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(-1125899906842626, 1125899906842624) = -1125899906842624
-floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(-2251799813685250, 2251799813685248) = -2251799813685248
-floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(-4503599627370498, 4503599627370496) = -4503599627370496
-floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(-9007199254740994, 9007199254740992) = -9007199254740992
-floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(-18014398509481986, 18014398509481984) = -18014398509481984
-floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(-36028797018963970, 36028797018963968) = -36028797018963968
-floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(-72057594037927938, 72057594037927936) = -72057594037927936
-floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(-144115188075855874, 144115188075855872) = -144115188075855872
-floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(-288230376151711746, 288230376151711744) = -288230376151711744
-floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(-576460752303423490, 576460752303423488) = -576460752303423488
-floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(-1152921504606846978, 1152921504606846976) = -1152921504606846976
-floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(-2305843009213693954, 2305843009213693952) = -2305843009213693952
-floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(-4611686018427387906, 4611686018427387904) = -4611686018427387904
-floor(-9223372036854775808, -9223372036854775808) = -9223372036854775808, floor(-9223372036854775806, -9223372036854775808) = 0, floor(9223372036854775806, -9223372036854775808) = 0
-
-unsigned long long int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(18446744073709551613, 1) = 18446744073709551613
-floor(2, 2) = 2, floor(4, 2) = 4, floor(18446744073709551612, 2) = 18446744073709551612
-floor(4, 4) = 4, floor(6, 4) = 4, floor(18446744073709551610, 4) = 18446744073709551608
-floor(8, 8) = 8, floor(10, 8) = 8, floor(18446744073709551606, 8) = 18446744073709551600
-floor(16, 16) = 16, floor(18, 16) = 16, floor(18446744073709551598, 16) = 18446744073709551584
-floor(32, 32) = 32, floor(34, 32) = 32, floor(18446744073709551582, 32) = 18446744073709551552
-floor(64, 64) = 64, floor(66, 64) = 64, floor(18446744073709551550, 64) = 18446744073709551488
-floor(128, 128) = 128, floor(130, 128) = 128, floor(18446744073709551486, 128) = 18446744073709551360
-floor(256, 256) = 256, floor(258, 256) = 256, floor(18446744073709551358, 256) = 18446744073709551104
-floor(512, 512) = 512, floor(514, 512) = 512, floor(18446744073709551102, 512) = 18446744073709550592
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(18446744073709550590, 1024) = 18446744073709549568
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(18446744073709549566, 2048) = 18446744073709547520
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(18446744073709547518, 4096) = 18446744073709543424
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(18446744073709543422, 8192) = 18446744073709535232
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(18446744073709535230, 16384) = 18446744073709518848
-floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(18446744073709518846, 32768) = 18446744073709486080
-floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(18446744073709486078, 65536) = 18446744073709420544
-floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(18446744073709420542, 131072) = 18446744073709289472
-floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(18446744073709289470, 262144) = 18446744073709027328
-floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(18446744073709027326, 524288) = 18446744073708503040
-floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(18446744073708503038, 1048576) = 18446744073707454464
-floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(18446744073707454462, 2097152) = 18446744073705357312
-floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(18446744073705357310, 4194304) = 18446744073701163008
-floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(18446744073701163006, 8388608) = 18446744073692774400
-floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(18446744073692774398, 16777216) = 18446744073675997184
-floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(18446744073675997182, 33554432) = 18446744073642442752
-floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(18446744073642442750, 67108864) = 18446744073575333888
-floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(18446744073575333886, 134217728) = 18446744073441116160
-floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(18446744073441116158, 268435456) = 18446744073172680704
-floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(18446744073172680702, 536870912) = 18446744072635809792
-floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(18446744072635809790, 1073741824) = 18446744071562067968
-floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(18446744071562067966, 2147483648) = 18446744069414584320
-floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(18446744069414584318, 4294967296) = 18446744065119617024
-floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(18446744065119617022, 8589934592) = 18446744056529682432
-floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(18446744056529682430, 17179869184) = 18446744039349813248
-floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(18446744039349813246, 34359738368) = 18446744004990074880
-floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(18446744004990074878, 68719476736) = 18446743936270598144
-floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(18446743936270598142, 137438953472) = 18446743798831644672
-floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(18446743798831644670, 274877906944) = 18446743523953737728
-floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(18446743523953737726, 549755813888) = 18446742974197923840
-floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(18446742974197923838, 1099511627776) = 18446741874686296064
-floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(18446741874686296062, 2199023255552) = 18446739675663040512
-floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(18446739675663040510, 4398046511104) = 18446735277616529408
-floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(18446735277616529406, 8796093022208) = 18446726481523507200
-floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(18446726481523507198, 17592186044416) = 18446708889337462784
-floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(18446708889337462782, 35184372088832) = 18446673704965373952
-floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(18446673704965373950, 70368744177664) = 18446603336221196288
-floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(18446603336221196286, 140737488355328) = 18446462598732840960
-floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(18446462598732840958, 281474976710656) = 18446181123756130304
-floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(18446181123756130302, 562949953421312) = 18445618173802708992
-floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(18445618173802708990, 1125899906842624) = 18444492273895866368
-floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(18444492273895866366, 2251799813685248) = 18442240474082181120
-floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(18442240474082181118, 4503599627370496) = 18437736874454810624
-floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(18437736874454810622, 9007199254740992) = 18428729675200069632
-floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(18428729675200069630, 18014398509481984) = 18410715276690587648
-floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(18410715276690587646, 36028797018963968) = 18374686479671623680
-floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(18374686479671623678, 72057594037927936) = 18302628885633695744
-floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(18302628885633695742, 144115188075855872) = 18158513697557839872
-floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(18158513697557839870, 288230376151711744) = 17870283321406128128
-floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(17870283321406128126, 576460752303423488) = 17293822569102704640
-floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(17293822569102704638, 1152921504606846976) = 16140901064495857664
-floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(16140901064495857662, 2305843009213693952) = 13835058055282163712
-floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(13835058055282163710, 4611686018427387904) = 9223372036854775808
-floor(9223372036854775808, 9223372036854775808) = 9223372036854775808, floor(9223372036854775810, 9223372036854775808) = 9223372036854775808, floor(9223372036854775806, 9223372036854775808) = 0
-
-
 ceiling2
 
@@ -1573,784 +1182,2 @@
 ceiling2(9223372036854775808, 9223372036854775808) = 9223372036854775808, ceiling2(9223372036854775810, 9223372036854775808) = 0, ceiling2(9223372036854775806, 9223372036854775808) = 9223372036854775808
 
-
-ceiling_div
-
-signed char
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
-ceiling_div(-128, -128) = 2, ceiling_div(-126, -128) = 1, ceiling_div(126, -128) = 0
-
-unsigned char
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(253, 1) = 253
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(252, 2) = 126
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(250, 4) = 63
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(246, 8) = 31
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(238, 16) = 15
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(222, 32) = 7
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(190, 64) = 3
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(126, 128) = 1
-
-short int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
-ceiling_div(-32768, -32768) = 2, ceiling_div(-32766, -32768) = 1, ceiling_div(32766, -32768) = 0
-
-unsigned short int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(65533, 1) = 65533
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(65532, 2) = 32766
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(65530, 4) = 16383
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(65526, 8) = 8191
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(65518, 16) = 4095
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(65502, 32) = 2047
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(65470, 64) = 1023
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(65406, 128) = 511
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(65278, 256) = 255
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(65022, 512) = 127
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(64510, 1024) = 63
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(63486, 2048) = 31
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(61438, 4096) = 15
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(57342, 8192) = 7
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(49150, 16384) = 3
-ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(32766, 32768) = 1
-
-int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
-ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 0
-ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 0
-ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 0
-ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 0
-ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 0
-ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 0
-ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 0
-ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 0
-ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 0
-ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 0
-ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 0
-ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 0
-ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 0
-ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 0
-ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 0
-ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = -1, ceiling_div(-1073741826, 1073741824) = 0
-ceiling_div(-2147483648, -2147483648) = 0, ceiling_div(-2147483646, -2147483648) = 0, ceiling_div(2147483646, -2147483648) = 0
-
-unsigned int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(4294967293, 1) = 4294967293
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(4294967292, 2) = 2147483646
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(4294967290, 4) = 1073741823
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(4294967286, 8) = 536870911
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(4294967278, 16) = 268435455
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(4294967262, 32) = 134217727
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(4294967230, 64) = 67108863
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(4294967166, 128) = 33554431
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(4294967038, 256) = 16777215
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(4294966782, 512) = 8388607
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(4294966270, 1024) = 4194303
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(4294965246, 2048) = 2097151
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(4294963198, 4096) = 1048575
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(4294959102, 8192) = 524287
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(4294950910, 16384) = 262143
-ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(4294934526, 32768) = 131071
-ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(4294901758, 65536) = 65535
-ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(4294836222, 131072) = 32767
-ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(4294705150, 262144) = 16383
-ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(4294443006, 524288) = 8191
-ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(4293918718, 1048576) = 4095
-ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(4292870142, 2097152) = 2047
-ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(4290772990, 4194304) = 1023
-ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(4286578686, 8388608) = 511
-ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(4278190078, 16777216) = 255
-ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(4261412862, 33554432) = 127
-ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(4227858430, 67108864) = 63
-ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(4160749566, 134217728) = 31
-ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(4026531838, 268435456) = 15
-ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(3758096382, 536870912) = 7
-ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(3221225470, 1073741824) = 3
-ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 0, ceiling_div(2147483646, 2147483648) = 1
-
-long int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
-ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 0
-ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 0
-ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 0
-ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 0
-ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 0
-ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 0
-ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 0
-ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 0
-ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 0
-ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 0
-ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 0
-ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 0
-ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 0
-ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 0
-ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 0
-ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(-1073741826, 1073741824) = 0
-ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(-2147483650, 2147483648) = 0
-ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(-4294967298, 4294967296) = 0
-ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(-8589934594, 8589934592) = 0
-ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(-17179869186, 17179869184) = 0
-ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(-34359738370, 34359738368) = 0
-ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(-68719476738, 68719476736) = 0
-ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(-137438953474, 137438953472) = 0
-ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(-274877906946, 274877906944) = 0
-ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(-549755813890, 549755813888) = 0
-ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(-1099511627778, 1099511627776) = 0
-ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(-2199023255554, 2199023255552) = 0
-ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(-4398046511106, 4398046511104) = 0
-ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(-8796093022210, 8796093022208) = 0
-ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(-17592186044418, 17592186044416) = 0
-ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(-35184372088834, 35184372088832) = 0
-ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(-70368744177666, 70368744177664) = 0
-ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(-140737488355330, 140737488355328) = 0
-ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(-281474976710658, 281474976710656) = 0
-ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(-562949953421314, 562949953421312) = 0
-ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(-1125899906842626, 1125899906842624) = 0
-ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(-2251799813685250, 2251799813685248) = 0
-ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(-4503599627370498, 4503599627370496) = 0
-ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(-9007199254740994, 9007199254740992) = 0
-ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(-18014398509481986, 18014398509481984) = 0
-ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(-36028797018963970, 36028797018963968) = 0
-ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(-72057594037927938, 72057594037927936) = 0
-ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(-144115188075855874, 144115188075855872) = 0
-ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(-288230376151711746, 288230376151711744) = 0
-ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(-576460752303423490, 576460752303423488) = 0
-ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(-1152921504606846978, 1152921504606846976) = 0
-ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(-2305843009213693954, 2305843009213693952) = 0
-ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = -1, ceiling_div(-4611686018427387906, 4611686018427387904) = 0
-ceiling_div(-9223372036854775808, -9223372036854775808) = 0, ceiling_div(-9223372036854775806, -9223372036854775808) = 0, ceiling_div(9223372036854775806, -9223372036854775808) = 0
-
-unsigned long int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(18446744073709551613, 1) = 18446744073709551613
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(18446744073709551612, 2) = 9223372036854775806
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(18446744073709551610, 4) = 4611686018427387903
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(18446744073709551606, 8) = 2305843009213693951
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(18446744073709551598, 16) = 1152921504606846975
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(18446744073709551582, 32) = 576460752303423487
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(18446744073709551550, 64) = 288230376151711743
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(18446744073709551486, 128) = 144115188075855871
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(18446744073709551358, 256) = 72057594037927935
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(18446744073709551102, 512) = 36028797018963967
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(18446744073709550590, 1024) = 18014398509481983
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(18446744073709549566, 2048) = 9007199254740991
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(18446744073709547518, 4096) = 4503599627370495
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(18446744073709543422, 8192) = 2251799813685247
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(18446744073709535230, 16384) = 1125899906842623
-ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(18446744073709518846, 32768) = 562949953421311
-ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(18446744073709486078, 65536) = 281474976710655
-ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(18446744073709420542, 131072) = 140737488355327
-ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(18446744073709289470, 262144) = 70368744177663
-ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(18446744073709027326, 524288) = 35184372088831
-ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(18446744073708503038, 1048576) = 17592186044415
-ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(18446744073707454462, 2097152) = 8796093022207
-ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(18446744073705357310, 4194304) = 4398046511103
-ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(18446744073701163006, 8388608) = 2199023255551
-ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(18446744073692774398, 16777216) = 1099511627775
-ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(18446744073675997182, 33554432) = 549755813887
-ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(18446744073642442750, 67108864) = 274877906943
-ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(18446744073575333886, 134217728) = 137438953471
-ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(18446744073441116158, 268435456) = 68719476735
-ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(18446744073172680702, 536870912) = 34359738367
-ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(18446744072635809790, 1073741824) = 17179869183
-ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(18446744071562067966, 2147483648) = 8589934591
-ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(18446744069414584318, 4294967296) = 4294967295
-ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(18446744065119617022, 8589934592) = 2147483647
-ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(18446744056529682430, 17179869184) = 1073741823
-ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(18446744039349813246, 34359738368) = 536870911
-ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(18446744004990074878, 68719476736) = 268435455
-ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(18446743936270598142, 137438953472) = 134217727
-ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(18446743798831644670, 274877906944) = 67108863
-ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(18446743523953737726, 549755813888) = 33554431
-ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(18446742974197923838, 1099511627776) = 16777215
-ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(18446741874686296062, 2199023255552) = 8388607
-ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(18446739675663040510, 4398046511104) = 4194303
-ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(18446735277616529406, 8796093022208) = 2097151
-ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(18446726481523507198, 17592186044416) = 1048575
-ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(18446708889337462782, 35184372088832) = 524287
-ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(18446673704965373950, 70368744177664) = 262143
-ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(18446603336221196286, 140737488355328) = 131071
-ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(18446462598732840958, 281474976710656) = 65535
-ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(18446181123756130302, 562949953421312) = 32767
-ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(18445618173802708990, 1125899906842624) = 16383
-ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(18444492273895866366, 2251799813685248) = 8191
-ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(18442240474082181118, 4503599627370496) = 4095
-ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(18437736874454810622, 9007199254740992) = 2047
-ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(18428729675200069630, 18014398509481984) = 1023
-ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(18410715276690587646, 36028797018963968) = 511
-ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(18374686479671623678, 72057594037927936) = 255
-ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(18302628885633695742, 144115188075855872) = 127
-ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(18158513697557839870, 288230376151711744) = 63
-ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(17870283321406128126, 576460752303423488) = 31
-ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(17293822569102704638, 1152921504606846976) = 15
-ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(16140901064495857662, 2305843009213693952) = 7
-ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = 2, ceiling_div(13835058055282163710, 4611686018427387904) = 3
-ceiling_div(9223372036854775808, 9223372036854775808) = 1, ceiling_div(9223372036854775810, 9223372036854775808) = 0, ceiling_div(9223372036854775806, 9223372036854775808) = 1
-
-long long int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
-ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 0
-ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 0
-ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 0
-ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 0
-ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 0
-ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 0
-ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 0
-ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 0
-ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 0
-ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 0
-ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 0
-ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 0
-ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 0
-ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 0
-ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 0
-ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(-1073741826, 1073741824) = 0
-ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(-2147483650, 2147483648) = 0
-ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(-4294967298, 4294967296) = 0
-ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(-8589934594, 8589934592) = 0
-ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(-17179869186, 17179869184) = 0
-ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(-34359738370, 34359738368) = 0
-ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(-68719476738, 68719476736) = 0
-ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(-137438953474, 137438953472) = 0
-ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(-274877906946, 274877906944) = 0
-ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(-549755813890, 549755813888) = 0
-ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(-1099511627778, 1099511627776) = 0
-ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(-2199023255554, 2199023255552) = 0
-ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(-4398046511106, 4398046511104) = 0
-ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(-8796093022210, 8796093022208) = 0
-ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(-17592186044418, 17592186044416) = 0
-ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(-35184372088834, 35184372088832) = 0
-ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(-70368744177666, 70368744177664) = 0
-ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(-140737488355330, 140737488355328) = 0
-ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(-281474976710658, 281474976710656) = 0
-ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(-562949953421314, 562949953421312) = 0
-ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(-1125899906842626, 1125899906842624) = 0
-ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(-2251799813685250, 2251799813685248) = 0
-ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(-4503599627370498, 4503599627370496) = 0
-ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(-9007199254740994, 9007199254740992) = 0
-ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(-18014398509481986, 18014398509481984) = 0
-ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(-36028797018963970, 36028797018963968) = 0
-ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(-72057594037927938, 72057594037927936) = 0
-ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(-144115188075855874, 144115188075855872) = 0
-ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(-288230376151711746, 288230376151711744) = 0
-ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(-576460752303423490, 576460752303423488) = 0
-ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(-1152921504606846978, 1152921504606846976) = 0
-ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(-2305843009213693954, 2305843009213693952) = 0
-ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = -1, ceiling_div(-4611686018427387906, 4611686018427387904) = 0
-ceiling_div(-9223372036854775808, -9223372036854775808) = 0, ceiling_div(-9223372036854775806, -9223372036854775808) = 0, ceiling_div(9223372036854775806, -9223372036854775808) = 0
-
-unsigned long long int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(18446744073709551613, 1) = 18446744073709551613
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(18446744073709551612, 2) = 9223372036854775806
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(18446744073709551610, 4) = 4611686018427387903
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(18446744073709551606, 8) = 2305843009213693951
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(18446744073709551598, 16) = 1152921504606846975
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(18446744073709551582, 32) = 576460752303423487
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(18446744073709551550, 64) = 288230376151711743
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(18446744073709551486, 128) = 144115188075855871
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(18446744073709551358, 256) = 72057594037927935
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(18446744073709551102, 512) = 36028797018963967
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(18446744073709550590, 1024) = 18014398509481983
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(18446744073709549566, 2048) = 9007199254740991
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(18446744073709547518, 4096) = 4503599627370495
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(18446744073709543422, 8192) = 2251799813685247
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(18446744073709535230, 16384) = 1125899906842623
-ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(18446744073709518846, 32768) = 562949953421311
-ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(18446744073709486078, 65536) = 281474976710655
-ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(18446744073709420542, 131072) = 140737488355327
-ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(18446744073709289470, 262144) = 70368744177663
-ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(18446744073709027326, 524288) = 35184372088831
-ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(18446744073708503038, 1048576) = 17592186044415
-ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(18446744073707454462, 2097152) = 8796093022207
-ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(18446744073705357310, 4194304) = 4398046511103
-ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(18446744073701163006, 8388608) = 2199023255551
-ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(18446744073692774398, 16777216) = 1099511627775
-ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(18446744073675997182, 33554432) = 549755813887
-ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(18446744073642442750, 67108864) = 274877906943
-ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(18446744073575333886, 134217728) = 137438953471
-ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(18446744073441116158, 268435456) = 68719476735
-ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(18446744073172680702, 536870912) = 34359738367
-ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(18446744072635809790, 1073741824) = 17179869183
-ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(18446744071562067966, 2147483648) = 8589934591
-ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(18446744069414584318, 4294967296) = 4294967295
-ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(18446744065119617022, 8589934592) = 2147483647
-ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(18446744056529682430, 17179869184) = 1073741823
-ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(18446744039349813246, 34359738368) = 536870911
-ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(18446744004990074878, 68719476736) = 268435455
-ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(18446743936270598142, 137438953472) = 134217727
-ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(18446743798831644670, 274877906944) = 67108863
-ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(18446743523953737726, 549755813888) = 33554431
-ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(18446742974197923838, 1099511627776) = 16777215
-ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(18446741874686296062, 2199023255552) = 8388607
-ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(18446739675663040510, 4398046511104) = 4194303
-ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(18446735277616529406, 8796093022208) = 2097151
-ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(18446726481523507198, 17592186044416) = 1048575
-ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(18446708889337462782, 35184372088832) = 524287
-ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(18446673704965373950, 70368744177664) = 262143
-ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(18446603336221196286, 140737488355328) = 131071
-ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(18446462598732840958, 281474976710656) = 65535
-ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(18446181123756130302, 562949953421312) = 32767
-ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(18445618173802708990, 1125899906842624) = 16383
-ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(18444492273895866366, 2251799813685248) = 8191
-ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(18442240474082181118, 4503599627370496) = 4095
-ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(18437736874454810622, 9007199254740992) = 2047
-ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(18428729675200069630, 18014398509481984) = 1023
-ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(18410715276690587646, 36028797018963968) = 511
-ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(18374686479671623678, 72057594037927936) = 255
-ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(18302628885633695742, 144115188075855872) = 127
-ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(18158513697557839870, 288230376151711744) = 63
-ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(17870283321406128126, 576460752303423488) = 31
-ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(17293822569102704638, 1152921504606846976) = 15
-ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(16140901064495857662, 2305843009213693952) = 7
-ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = 2, ceiling_div(13835058055282163710, 4611686018427387904) = 3
-ceiling_div(9223372036854775808, 9223372036854775808) = 1, ceiling_div(9223372036854775810, 9223372036854775808) = 0, ceiling_div(9223372036854775806, 9223372036854775808) = 1
-
-
-ceiling
-
-signed char
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
-ceiling(64, 64) = 64, ceiling(66, 64) = -128, ceiling(-66, 64) = 0
-ceiling(-128, -128) = -128, ceiling(-126, -128) = -128, ceiling(126, -128) = 0
-
-unsigned char
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(253, 1) = 253
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(252, 2) = 252
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(250, 4) = 252
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(246, 8) = 248
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(238, 16) = 240
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(222, 32) = 224
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(190, 64) = 192
-ceiling(128, 128) = 128, ceiling(130, 128) = 0, ceiling(126, 128) = 128
-
-short int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = -32768, ceiling(-16386, 16384) = 0
-ceiling(-32768, -32768) = -32768, ceiling(-32766, -32768) = -32768, ceiling(32766, -32768) = 0
-
-unsigned short int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(65533, 1) = 65533
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(65532, 2) = 65532
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(65530, 4) = 65532
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(65526, 8) = 65528
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(65518, 16) = 65520
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(65502, 32) = 65504
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(65470, 64) = 65472
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(65406, 128) = 65408
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(65278, 256) = 65280
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(65022, 512) = 65024
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(64510, 1024) = 64512
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(63486, 2048) = 63488
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(61438, 4096) = 61440
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(57342, 8192) = 57344
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(49150, 16384) = 49152
-ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 0, ceiling(32766, 32768) = 32768
-
-int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 0
-ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 0
-ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 0
-ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 0
-ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 0
-ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 0
-ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 0
-ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 0
-ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 0
-ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 0
-ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 0
-ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 0
-ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 0
-ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 0
-ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 0
-ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 0
-ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = -1073741824, ceiling(-1073741826, 1073741824) = 0
-ceiling(-2147483648, -2147483648) = -2147483648, ceiling(-2147483646, -2147483648) = 0, ceiling(2147483646, -2147483648) = 0
-
-unsigned int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(4294967293, 1) = 4294967293
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(4294967292, 2) = 4294967292
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(4294967290, 4) = 4294967292
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(4294967286, 8) = 4294967288
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(4294967278, 16) = 4294967280
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(4294967262, 32) = 4294967264
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(4294967230, 64) = 4294967232
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(4294967166, 128) = 4294967168
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(4294967038, 256) = 4294967040
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(4294966782, 512) = 4294966784
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(4294966270, 1024) = 4294966272
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(4294965246, 2048) = 4294965248
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(4294963198, 4096) = 4294963200
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(4294959102, 8192) = 4294959104
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(4294950910, 16384) = 4294950912
-ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(4294934526, 32768) = 4294934528
-ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(4294901758, 65536) = 4294901760
-ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(4294836222, 131072) = 4294836224
-ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(4294705150, 262144) = 4294705152
-ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(4294443006, 524288) = 4294443008
-ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(4293918718, 1048576) = 4293918720
-ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(4292870142, 2097152) = 4292870144
-ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(4290772990, 4194304) = 4290772992
-ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(4286578686, 8388608) = 4286578688
-ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(4278190078, 16777216) = 4278190080
-ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(4261412862, 33554432) = 4261412864
-ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(4227858430, 67108864) = 4227858432
-ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(4160749566, 134217728) = 4160749568
-ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(4026531838, 268435456) = 4026531840
-ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(3758096382, 536870912) = 3758096384
-ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(3221225470, 1073741824) = 3221225472
-ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 0, ceiling(2147483646, 2147483648) = 2147483648
-
-long int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 0
-ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 0
-ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 0
-ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 0
-ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 0
-ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 0
-ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 0
-ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 0
-ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 0
-ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 0
-ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 0
-ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 0
-ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 0
-ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 0
-ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 0
-ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 0
-ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(-1073741826, 1073741824) = 0
-ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(-2147483650, 2147483648) = 0
-ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(-4294967298, 4294967296) = 0
-ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(-8589934594, 8589934592) = 0
-ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(-17179869186, 17179869184) = 0
-ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(-34359738370, 34359738368) = 0
-ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(-68719476738, 68719476736) = 0
-ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(-137438953474, 137438953472) = 0
-ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(-274877906946, 274877906944) = 0
-ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(-549755813890, 549755813888) = 0
-ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(-1099511627778, 1099511627776) = 0
-ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(-2199023255554, 2199023255552) = 0
-ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(-4398046511106, 4398046511104) = 0
-ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(-8796093022210, 8796093022208) = 0
-ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(-17592186044418, 17592186044416) = 0
-ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(-35184372088834, 35184372088832) = 0
-ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(-70368744177666, 70368744177664) = 0
-ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(-140737488355330, 140737488355328) = 0
-ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(-281474976710658, 281474976710656) = 0
-ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(-562949953421314, 562949953421312) = 0
-ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(-1125899906842626, 1125899906842624) = 0
-ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(-2251799813685250, 2251799813685248) = 0
-ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(-4503599627370498, 4503599627370496) = 0
-ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(-9007199254740994, 9007199254740992) = 0
-ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(-18014398509481986, 18014398509481984) = 0
-ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(-36028797018963970, 36028797018963968) = 0
-ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(-72057594037927938, 72057594037927936) = 0
-ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(-144115188075855874, 144115188075855872) = 0
-ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(-288230376151711746, 288230376151711744) = 0
-ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(-576460752303423490, 576460752303423488) = 0
-ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(-1152921504606846978, 1152921504606846976) = 0
-ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(-2305843009213693954, 2305843009213693952) = 0
-ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = -4611686018427387904, ceiling(-4611686018427387906, 4611686018427387904) = 0
-ceiling(-9223372036854775808, -9223372036854775808) = -9223372036854775808, ceiling(-9223372036854775806, -9223372036854775808) = 0, ceiling(9223372036854775806, -9223372036854775808) = 0
-
-unsigned long int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(18446744073709551613, 1) = 18446744073709551613
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(18446744073709551612, 2) = 18446744073709551612
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(18446744073709551610, 4) = 18446744073709551612
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(18446744073709551606, 8) = 18446744073709551608
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(18446744073709551598, 16) = 18446744073709551600
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(18446744073709551582, 32) = 18446744073709551584
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(18446744073709551550, 64) = 18446744073709551552
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(18446744073709551486, 128) = 18446744073709551488
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(18446744073709551358, 256) = 18446744073709551360
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(18446744073709551102, 512) = 18446744073709551104
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(18446744073709550590, 1024) = 18446744073709550592
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(18446744073709549566, 2048) = 18446744073709549568
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(18446744073709547518, 4096) = 18446744073709547520
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(18446744073709543422, 8192) = 18446744073709543424
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(18446744073709535230, 16384) = 18446744073709535232
-ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(18446744073709518846, 32768) = 18446744073709518848
-ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(18446744073709486078, 65536) = 18446744073709486080
-ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(18446744073709420542, 131072) = 18446744073709420544
-ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(18446744073709289470, 262144) = 18446744073709289472
-ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(18446744073709027326, 524288) = 18446744073709027328
-ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(18446744073708503038, 1048576) = 18446744073708503040
-ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(18446744073707454462, 2097152) = 18446744073707454464
-ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(18446744073705357310, 4194304) = 18446744073705357312
-ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(18446744073701163006, 8388608) = 18446744073701163008
-ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(18446744073692774398, 16777216) = 18446744073692774400
-ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(18446744073675997182, 33554432) = 18446744073675997184
-ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(18446744073642442750, 67108864) = 18446744073642442752
-ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(18446744073575333886, 134217728) = 18446744073575333888
-ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(18446744073441116158, 268435456) = 18446744073441116160
-ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(18446744073172680702, 536870912) = 18446744073172680704
-ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(18446744072635809790, 1073741824) = 18446744072635809792
-ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(18446744071562067966, 2147483648) = 18446744071562067968
-ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(18446744069414584318, 4294967296) = 18446744069414584320
-ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(18446744065119617022, 8589934592) = 18446744065119617024
-ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(18446744056529682430, 17179869184) = 18446744056529682432
-ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(18446744039349813246, 34359738368) = 18446744039349813248
-ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(18446744004990074878, 68719476736) = 18446744004990074880
-ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(18446743936270598142, 137438953472) = 18446743936270598144
-ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(18446743798831644670, 274877906944) = 18446743798831644672
-ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(18446743523953737726, 549755813888) = 18446743523953737728
-ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(18446742974197923838, 1099511627776) = 18446742974197923840
-ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(18446741874686296062, 2199023255552) = 18446741874686296064
-ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(18446739675663040510, 4398046511104) = 18446739675663040512
-ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(18446735277616529406, 8796093022208) = 18446735277616529408
-ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(18446726481523507198, 17592186044416) = 18446726481523507200
-ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(18446708889337462782, 35184372088832) = 18446708889337462784
-ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(18446673704965373950, 70368744177664) = 18446673704965373952
-ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(18446603336221196286, 140737488355328) = 18446603336221196288
-ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(18446462598732840958, 281474976710656) = 18446462598732840960
-ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(18446181123756130302, 562949953421312) = 18446181123756130304
-ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(18445618173802708990, 1125899906842624) = 18445618173802708992
-ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(18444492273895866366, 2251799813685248) = 18444492273895866368
-ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(18442240474082181118, 4503599627370496) = 18442240474082181120
-ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(18437736874454810622, 9007199254740992) = 18437736874454810624
-ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(18428729675200069630, 18014398509481984) = 18428729675200069632
-ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(18410715276690587646, 36028797018963968) = 18410715276690587648
-ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(18374686479671623678, 72057594037927936) = 18374686479671623680
-ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(18302628885633695742, 144115188075855872) = 18302628885633695744
-ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(18158513697557839870, 288230376151711744) = 18158513697557839872
-ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(17870283321406128126, 576460752303423488) = 17870283321406128128
-ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(17293822569102704638, 1152921504606846976) = 17293822569102704640
-ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(16140901064495857662, 2305843009213693952) = 16140901064495857664
-ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = 9223372036854775808, ceiling(13835058055282163710, 4611686018427387904) = 13835058055282163712
-ceiling(9223372036854775808, 9223372036854775808) = 9223372036854775808, ceiling(9223372036854775810, 9223372036854775808) = 0, ceiling(9223372036854775806, 9223372036854775808) = 9223372036854775808
-
-long long int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 0
-ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 0
-ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 0
-ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 0
-ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 0
-ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 0
-ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 0
-ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 0
-ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 0
-ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 0
-ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 0
-ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 0
-ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 0
-ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 0
-ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 0
-ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 0
-ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(-1073741826, 1073741824) = 0
-ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(-2147483650, 2147483648) = 0
-ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(-4294967298, 4294967296) = 0
-ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(-8589934594, 8589934592) = 0
-ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(-17179869186, 17179869184) = 0
-ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(-34359738370, 34359738368) = 0
-ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(-68719476738, 68719476736) = 0
-ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(-137438953474, 137438953472) = 0
-ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(-274877906946, 274877906944) = 0
-ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(-549755813890, 549755813888) = 0
-ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(-1099511627778, 1099511627776) = 0
-ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(-2199023255554, 2199023255552) = 0
-ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(-4398046511106, 4398046511104) = 0
-ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(-8796093022210, 8796093022208) = 0
-ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(-17592186044418, 17592186044416) = 0
-ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(-35184372088834, 35184372088832) = 0
-ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(-70368744177666, 70368744177664) = 0
-ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(-140737488355330, 140737488355328) = 0
-ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(-281474976710658, 281474976710656) = 0
-ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(-562949953421314, 562949953421312) = 0
-ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(-1125899906842626, 1125899906842624) = 0
-ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(-2251799813685250, 2251799813685248) = 0
-ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(-4503599627370498, 4503599627370496) = 0
-ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(-9007199254740994, 9007199254740992) = 0
-ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(-18014398509481986, 18014398509481984) = 0
-ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(-36028797018963970, 36028797018963968) = 0
-ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(-72057594037927938, 72057594037927936) = 0
-ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(-144115188075855874, 144115188075855872) = 0
-ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(-288230376151711746, 288230376151711744) = 0
-ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(-576460752303423490, 576460752303423488) = 0
-ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(-1152921504606846978, 1152921504606846976) = 0
-ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(-2305843009213693954, 2305843009213693952) = 0
-ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = -4611686018427387904, ceiling(-4611686018427387906, 4611686018427387904) = 0
-ceiling(-9223372036854775808, -9223372036854775808) = -9223372036854775808, ceiling(-9223372036854775806, -9223372036854775808) = 0, ceiling(9223372036854775806, -9223372036854775808) = 0
-
-unsigned long long int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(18446744073709551613, 1) = 18446744073709551613
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(18446744073709551612, 2) = 18446744073709551612
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(18446744073709551610, 4) = 18446744073709551612
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(18446744073709551606, 8) = 18446744073709551608
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(18446744073709551598, 16) = 18446744073709551600
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(18446744073709551582, 32) = 18446744073709551584
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(18446744073709551550, 64) = 18446744073709551552
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(18446744073709551486, 128) = 18446744073709551488
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(18446744073709551358, 256) = 18446744073709551360
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(18446744073709551102, 512) = 18446744073709551104
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(18446744073709550590, 1024) = 18446744073709550592
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(18446744073709549566, 2048) = 18446744073709549568
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(18446744073709547518, 4096) = 18446744073709547520
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(18446744073709543422, 8192) = 18446744073709543424
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(18446744073709535230, 16384) = 18446744073709535232
-ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(18446744073709518846, 32768) = 18446744073709518848
-ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(18446744073709486078, 65536) = 18446744073709486080
-ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(18446744073709420542, 131072) = 18446744073709420544
-ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(18446744073709289470, 262144) = 18446744073709289472
-ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(18446744073709027326, 524288) = 18446744073709027328
-ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(18446744073708503038, 1048576) = 18446744073708503040
-ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(18446744073707454462, 2097152) = 18446744073707454464
-ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(18446744073705357310, 4194304) = 18446744073705357312
-ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(18446744073701163006, 8388608) = 18446744073701163008
-ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(18446744073692774398, 16777216) = 18446744073692774400
-ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(18446744073675997182, 33554432) = 18446744073675997184
-ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(18446744073642442750, 67108864) = 18446744073642442752
-ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(18446744073575333886, 134217728) = 18446744073575333888
-ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(18446744073441116158, 268435456) = 18446744073441116160
-ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(18446744073172680702, 536870912) = 18446744073172680704
-ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(18446744072635809790, 1073741824) = 18446744072635809792
-ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(18446744071562067966, 2147483648) = 18446744071562067968
-ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(18446744069414584318, 4294967296) = 18446744069414584320
-ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(18446744065119617022, 8589934592) = 18446744065119617024
-ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(18446744056529682430, 17179869184) = 18446744056529682432
-ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(18446744039349813246, 34359738368) = 18446744039349813248
-ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(18446744004990074878, 68719476736) = 18446744004990074880
-ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(18446743936270598142, 137438953472) = 18446743936270598144
-ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(18446743798831644670, 274877906944) = 18446743798831644672
-ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(18446743523953737726, 549755813888) = 18446743523953737728
-ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(18446742974197923838, 1099511627776) = 18446742974197923840
-ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(18446741874686296062, 2199023255552) = 18446741874686296064
-ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(18446739675663040510, 4398046511104) = 18446739675663040512
-ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(18446735277616529406, 8796093022208) = 18446735277616529408
-ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(18446726481523507198, 17592186044416) = 18446726481523507200
-ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(18446708889337462782, 35184372088832) = 18446708889337462784
-ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(18446673704965373950, 70368744177664) = 18446673704965373952
-ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(18446603336221196286, 140737488355328) = 18446603336221196288
-ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(18446462598732840958, 281474976710656) = 18446462598732840960
-ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(18446181123756130302, 562949953421312) = 18446181123756130304
-ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(18445618173802708990, 1125899906842624) = 18445618173802708992
-ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(18444492273895866366, 2251799813685248) = 18444492273895866368
-ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(18442240474082181118, 4503599627370496) = 18442240474082181120
-ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(18437736874454810622, 9007199254740992) = 18437736874454810624
-ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(18428729675200069630, 18014398509481984) = 18428729675200069632
-ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(18410715276690587646, 36028797018963968) = 18410715276690587648
-ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(18374686479671623678, 72057594037927936) = 18374686479671623680
-ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(18302628885633695742, 144115188075855872) = 18302628885633695744
-ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(18158513697557839870, 288230376151711744) = 18158513697557839872
-ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(17870283321406128126, 576460752303423488) = 17870283321406128128
-ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(17293822569102704638, 1152921504606846976) = 17293822569102704640
-ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(16140901064495857662, 2305843009213693952) = 16140901064495857664
-ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = 9223372036854775808, ceiling(13835058055282163710, 4611686018427387904) = 13835058055282163712
-ceiling(9223372036854775808, 9223372036854775808) = 9223372036854775808, ceiling(9223372036854775810, 9223372036854775808) = 0, ceiling(9223372036854775806, 9223372036854775808) = 9223372036854775808
-
Index: tests/.expect/bitmanip3.x86.txt
===================================================================
--- tests/.expect/bitmanip3.x86.txt	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/.expect/bitmanip3.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -664,331 +664,4 @@
 
 
-floor
-
-signed char
-floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
-floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
-floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
-floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
-floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
-floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
-floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
-floor(-128, -128) = -128, floor(-126, -128) = 0, floor(126, -128) = 0
-
-unsigned char
-floor(1, 1) = 1, floor(3, 1) = 3, floor(253, 1) = 253
-floor(2, 2) = 2, floor(4, 2) = 4, floor(252, 2) = 252
-floor(4, 4) = 4, floor(6, 4) = 4, floor(250, 4) = 248
-floor(8, 8) = 8, floor(10, 8) = 8, floor(246, 8) = 240
-floor(16, 16) = 16, floor(18, 16) = 16, floor(238, 16) = 224
-floor(32, 32) = 32, floor(34, 32) = 32, floor(222, 32) = 192
-floor(64, 64) = 64, floor(66, 64) = 64, floor(190, 64) = 128
-floor(128, 128) = 128, floor(130, 128) = 128, floor(126, 128) = 0
-
-short int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
-floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
-floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
-floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
-floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
-floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
-floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
-floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
-floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
-floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
-floor(-32768, -32768) = -32768, floor(-32766, -32768) = 0, floor(32766, -32768) = 0
-
-unsigned short int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(65533, 1) = 65533
-floor(2, 2) = 2, floor(4, 2) = 4, floor(65532, 2) = 65532
-floor(4, 4) = 4, floor(6, 4) = 4, floor(65530, 4) = 65528
-floor(8, 8) = 8, floor(10, 8) = 8, floor(65526, 8) = 65520
-floor(16, 16) = 16, floor(18, 16) = 16, floor(65518, 16) = 65504
-floor(32, 32) = 32, floor(34, 32) = 32, floor(65502, 32) = 65472
-floor(64, 64) = 64, floor(66, 64) = 64, floor(65470, 64) = 65408
-floor(128, 128) = 128, floor(130, 128) = 128, floor(65406, 128) = 65280
-floor(256, 256) = 256, floor(258, 256) = 256, floor(65278, 256) = 65024
-floor(512, 512) = 512, floor(514, 512) = 512, floor(65022, 512) = 64512
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(64510, 1024) = 63488
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(63486, 2048) = 61440
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(61438, 4096) = 57344
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(57342, 8192) = 49152
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(49150, 16384) = 32768
-floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(32766, 32768) = 0
-
-int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
-floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
-floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
-floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
-floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
-floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
-floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
-floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
-floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
-floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
-floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(-32770, 32768) = -32768
-floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(-65538, 65536) = -65536
-floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(-131074, 131072) = -131072
-floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(-262146, 262144) = -262144
-floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(-524290, 524288) = -524288
-floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(-1048578, 1048576) = -1048576
-floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(-2097154, 2097152) = -2097152
-floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(-4194306, 4194304) = -4194304
-floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(-8388610, 8388608) = -8388608
-floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(-16777218, 16777216) = -16777216
-floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(-33554434, 33554432) = -33554432
-floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(-67108866, 67108864) = -67108864
-floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(-134217730, 134217728) = -134217728
-floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(-268435458, 268435456) = -268435456
-floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(-536870914, 536870912) = -536870912
-floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(-1073741826, 1073741824) = -1073741824
-floor(-2147483648, -2147483648) = -2147483648, floor(-2147483646, -2147483648) = 0, floor(2147483646, -2147483648) = 0
-
-unsigned int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(4294967293, 1) = 4294967293
-floor(2, 2) = 2, floor(4, 2) = 4, floor(4294967292, 2) = 4294967292
-floor(4, 4) = 4, floor(6, 4) = 4, floor(4294967290, 4) = 4294967288
-floor(8, 8) = 8, floor(10, 8) = 8, floor(4294967286, 8) = 4294967280
-floor(16, 16) = 16, floor(18, 16) = 16, floor(4294967278, 16) = 4294967264
-floor(32, 32) = 32, floor(34, 32) = 32, floor(4294967262, 32) = 4294967232
-floor(64, 64) = 64, floor(66, 64) = 64, floor(4294967230, 64) = 4294967168
-floor(128, 128) = 128, floor(130, 128) = 128, floor(4294967166, 128) = 4294967040
-floor(256, 256) = 256, floor(258, 256) = 256, floor(4294967038, 256) = 4294966784
-floor(512, 512) = 512, floor(514, 512) = 512, floor(4294966782, 512) = 4294966272
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(4294966270, 1024) = 4294965248
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(4294965246, 2048) = 4294963200
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(4294963198, 4096) = 4294959104
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(4294959102, 8192) = 4294950912
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(4294950910, 16384) = 4294934528
-floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(4294934526, 32768) = 4294901760
-floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(4294901758, 65536) = 4294836224
-floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(4294836222, 131072) = 4294705152
-floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(4294705150, 262144) = 4294443008
-floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(4294443006, 524288) = 4293918720
-floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(4293918718, 1048576) = 4292870144
-floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(4292870142, 2097152) = 4290772992
-floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(4290772990, 4194304) = 4286578688
-floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(4286578686, 8388608) = 4278190080
-floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(4278190078, 16777216) = 4261412864
-floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(4261412862, 33554432) = 4227858432
-floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(4227858430, 67108864) = 4160749568
-floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(4160749566, 134217728) = 4026531840
-floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(4026531838, 268435456) = 3758096384
-floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(3758096382, 536870912) = 3221225472
-floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(3221225470, 1073741824) = 2147483648
-floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(2147483646, 2147483648) = 0
-
-long int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
-floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
-floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
-floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
-floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
-floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
-floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
-floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
-floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
-floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
-floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(-32770, 32768) = -32768
-floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(-65538, 65536) = -65536
-floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(-131074, 131072) = -131072
-floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(-262146, 262144) = -262144
-floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(-524290, 524288) = -524288
-floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(-1048578, 1048576) = -1048576
-floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(-2097154, 2097152) = -2097152
-floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(-4194306, 4194304) = -4194304
-floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(-8388610, 8388608) = -8388608
-floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(-16777218, 16777216) = -16777216
-floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(-33554434, 33554432) = -33554432
-floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(-67108866, 67108864) = -67108864
-floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(-134217730, 134217728) = -134217728
-floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(-268435458, 268435456) = -268435456
-floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(-536870914, 536870912) = -536870912
-floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(-1073741826, 1073741824) = -1073741824
-floor(-2147483648, -2147483648) = -2147483648, floor(-2147483646, -2147483648) = 0, floor(2147483646, -2147483648) = 0
-
-unsigned long int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(4294967293, 1) = 4294967293
-floor(2, 2) = 2, floor(4, 2) = 4, floor(4294967292, 2) = 4294967292
-floor(4, 4) = 4, floor(6, 4) = 4, floor(4294967290, 4) = 4294967288
-floor(8, 8) = 8, floor(10, 8) = 8, floor(4294967286, 8) = 4294967280
-floor(16, 16) = 16, floor(18, 16) = 16, floor(4294967278, 16) = 4294967264
-floor(32, 32) = 32, floor(34, 32) = 32, floor(4294967262, 32) = 4294967232
-floor(64, 64) = 64, floor(66, 64) = 64, floor(4294967230, 64) = 4294967168
-floor(128, 128) = 128, floor(130, 128) = 128, floor(4294967166, 128) = 4294967040
-floor(256, 256) = 256, floor(258, 256) = 256, floor(4294967038, 256) = 4294966784
-floor(512, 512) = 512, floor(514, 512) = 512, floor(4294966782, 512) = 4294966272
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(4294966270, 1024) = 4294965248
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(4294965246, 2048) = 4294963200
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(4294963198, 4096) = 4294959104
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(4294959102, 8192) = 4294950912
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(4294950910, 16384) = 4294934528
-floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(4294934526, 32768) = 4294901760
-floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(4294901758, 65536) = 4294836224
-floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(4294836222, 131072) = 4294705152
-floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(4294705150, 262144) = 4294443008
-floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(4294443006, 524288) = 4293918720
-floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(4293918718, 1048576) = 4292870144
-floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(4292870142, 2097152) = 4290772992
-floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(4290772990, 4194304) = 4286578688
-floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(4286578686, 8388608) = 4278190080
-floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(4278190078, 16777216) = 4261412864
-floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(4261412862, 33554432) = 4227858432
-floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(4227858430, 67108864) = 4160749568
-floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(4160749566, 134217728) = 4026531840
-floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(4026531838, 268435456) = 3758096384
-floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(3758096382, 536870912) = 3221225472
-floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(3221225470, 1073741824) = 2147483648
-floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(2147483646, 2147483648) = 0
-
-long long int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
-floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
-floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
-floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
-floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
-floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
-floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
-floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
-floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
-floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
-floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(-32770, 32768) = -32768
-floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(-65538, 65536) = -65536
-floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(-131074, 131072) = -131072
-floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(-262146, 262144) = -262144
-floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(-524290, 524288) = -524288
-floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(-1048578, 1048576) = -1048576
-floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(-2097154, 2097152) = -2097152
-floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(-4194306, 4194304) = -4194304
-floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(-8388610, 8388608) = -8388608
-floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(-16777218, 16777216) = -16777216
-floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(-33554434, 33554432) = -33554432
-floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(-67108866, 67108864) = -67108864
-floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(-134217730, 134217728) = -134217728
-floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(-268435458, 268435456) = -268435456
-floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(-536870914, 536870912) = -536870912
-floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(-1073741826, 1073741824) = -1073741824
-floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(-2147483650, 2147483648) = -2147483648
-floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(-4294967298, 4294967296) = -4294967296
-floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(-8589934594, 8589934592) = -8589934592
-floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(-17179869186, 17179869184) = -17179869184
-floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(-34359738370, 34359738368) = -34359738368
-floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(-68719476738, 68719476736) = -68719476736
-floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(-137438953474, 137438953472) = -137438953472
-floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(-274877906946, 274877906944) = -274877906944
-floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(-549755813890, 549755813888) = -549755813888
-floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(-1099511627778, 1099511627776) = -1099511627776
-floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(-2199023255554, 2199023255552) = -2199023255552
-floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(-4398046511106, 4398046511104) = -4398046511104
-floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(-8796093022210, 8796093022208) = -8796093022208
-floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(-17592186044418, 17592186044416) = -17592186044416
-floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(-35184372088834, 35184372088832) = -35184372088832
-floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(-70368744177666, 70368744177664) = -70368744177664
-floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(-140737488355330, 140737488355328) = -140737488355328
-floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(-281474976710658, 281474976710656) = -281474976710656
-floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(-562949953421314, 562949953421312) = -562949953421312
-floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(-1125899906842626, 1125899906842624) = -1125899906842624
-floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(-2251799813685250, 2251799813685248) = -2251799813685248
-floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(-4503599627370498, 4503599627370496) = -4503599627370496
-floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(-9007199254740994, 9007199254740992) = -9007199254740992
-floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(-18014398509481986, 18014398509481984) = -18014398509481984
-floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(-36028797018963970, 36028797018963968) = -36028797018963968
-floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(-72057594037927938, 72057594037927936) = -72057594037927936
-floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(-144115188075855874, 144115188075855872) = -144115188075855872
-floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(-288230376151711746, 288230376151711744) = -288230376151711744
-floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(-576460752303423490, 576460752303423488) = -576460752303423488
-floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(-1152921504606846978, 1152921504606846976) = -1152921504606846976
-floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(-2305843009213693954, 2305843009213693952) = -2305843009213693952
-floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(-4611686018427387906, 4611686018427387904) = -4611686018427387904
-floor(-9223372036854775808, -9223372036854775808) = -9223372036854775808, floor(-9223372036854775806, -9223372036854775808) = 0, floor(9223372036854775806, -9223372036854775808) = 0
-
-unsigned long long int
-floor(1, 1) = 1, floor(3, 1) = 3, floor(18446744073709551613, 1) = 18446744073709551613
-floor(2, 2) = 2, floor(4, 2) = 4, floor(18446744073709551612, 2) = 18446744073709551612
-floor(4, 4) = 4, floor(6, 4) = 4, floor(18446744073709551610, 4) = 18446744073709551608
-floor(8, 8) = 8, floor(10, 8) = 8, floor(18446744073709551606, 8) = 18446744073709551600
-floor(16, 16) = 16, floor(18, 16) = 16, floor(18446744073709551598, 16) = 18446744073709551584
-floor(32, 32) = 32, floor(34, 32) = 32, floor(18446744073709551582, 32) = 18446744073709551552
-floor(64, 64) = 64, floor(66, 64) = 64, floor(18446744073709551550, 64) = 18446744073709551488
-floor(128, 128) = 128, floor(130, 128) = 128, floor(18446744073709551486, 128) = 18446744073709551360
-floor(256, 256) = 256, floor(258, 256) = 256, floor(18446744073709551358, 256) = 18446744073709551104
-floor(512, 512) = 512, floor(514, 512) = 512, floor(18446744073709551102, 512) = 18446744073709550592
-floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(18446744073709550590, 1024) = 18446744073709549568
-floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(18446744073709549566, 2048) = 18446744073709547520
-floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(18446744073709547518, 4096) = 18446744073709543424
-floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(18446744073709543422, 8192) = 18446744073709535232
-floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(18446744073709535230, 16384) = 18446744073709518848
-floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(18446744073709518846, 32768) = 18446744073709486080
-floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(18446744073709486078, 65536) = 18446744073709420544
-floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(18446744073709420542, 131072) = 18446744073709289472
-floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(18446744073709289470, 262144) = 18446744073709027328
-floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(18446744073709027326, 524288) = 18446744073708503040
-floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(18446744073708503038, 1048576) = 18446744073707454464
-floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(18446744073707454462, 2097152) = 18446744073705357312
-floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(18446744073705357310, 4194304) = 18446744073701163008
-floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(18446744073701163006, 8388608) = 18446744073692774400
-floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(18446744073692774398, 16777216) = 18446744073675997184
-floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(18446744073675997182, 33554432) = 18446744073642442752
-floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(18446744073642442750, 67108864) = 18446744073575333888
-floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(18446744073575333886, 134217728) = 18446744073441116160
-floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(18446744073441116158, 268435456) = 18446744073172680704
-floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(18446744073172680702, 536870912) = 18446744072635809792
-floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(18446744072635809790, 1073741824) = 18446744071562067968
-floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(18446744071562067966, 2147483648) = 18446744069414584320
-floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(18446744069414584318, 4294967296) = 18446744065119617024
-floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(18446744065119617022, 8589934592) = 18446744056529682432
-floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(18446744056529682430, 17179869184) = 18446744039349813248
-floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(18446744039349813246, 34359738368) = 18446744004990074880
-floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(18446744004990074878, 68719476736) = 18446743936270598144
-floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(18446743936270598142, 137438953472) = 18446743798831644672
-floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(18446743798831644670, 274877906944) = 18446743523953737728
-floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(18446743523953737726, 549755813888) = 18446742974197923840
-floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(18446742974197923838, 1099511627776) = 18446741874686296064
-floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(18446741874686296062, 2199023255552) = 18446739675663040512
-floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(18446739675663040510, 4398046511104) = 18446735277616529408
-floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(18446735277616529406, 8796093022208) = 18446726481523507200
-floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(18446726481523507198, 17592186044416) = 18446708889337462784
-floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(18446708889337462782, 35184372088832) = 18446673704965373952
-floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(18446673704965373950, 70368744177664) = 18446603336221196288
-floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(18446603336221196286, 140737488355328) = 18446462598732840960
-floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(18446462598732840958, 281474976710656) = 18446181123756130304
-floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(18446181123756130302, 562949953421312) = 18445618173802708992
-floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(18445618173802708990, 1125899906842624) = 18444492273895866368
-floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(18444492273895866366, 2251799813685248) = 18442240474082181120
-floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(18442240474082181118, 4503599627370496) = 18437736874454810624
-floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(18437736874454810622, 9007199254740992) = 18428729675200069632
-floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(18428729675200069630, 18014398509481984) = 18410715276690587648
-floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(18410715276690587646, 36028797018963968) = 18374686479671623680
-floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(18374686479671623678, 72057594037927936) = 18302628885633695744
-floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(18302628885633695742, 144115188075855872) = 18158513697557839872
-floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(18158513697557839870, 288230376151711744) = 17870283321406128128
-floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(17870283321406128126, 576460752303423488) = 17293822569102704640
-floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(17293822569102704638, 1152921504606846976) = 16140901064495857664
-floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(16140901064495857662, 2305843009213693952) = 13835058055282163712
-floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(13835058055282163710, 4611686018427387904) = 9223372036854775808
-floor(9223372036854775808, 9223372036854775808) = 9223372036854775808, floor(9223372036854775810, 9223372036854775808) = 9223372036854775808, floor(9223372036854775806, 9223372036854775808) = 0
-
-
 ceiling2
 
@@ -1317,656 +990,2 @@
 ceiling2(9223372036854775808, 9223372036854775808) = 9223372036854775808, ceiling2(9223372036854775810, 9223372036854775808) = 0, ceiling2(9223372036854775806, 9223372036854775808) = 9223372036854775808
 
-
-ceiling_div
-
-signed char
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
-ceiling_div(-128, -128) = 2, ceiling_div(-126, -128) = 1, ceiling_div(126, -128) = 0
-
-unsigned char
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(253, 1) = 253
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(252, 2) = 126
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(250, 4) = 63
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(246, 8) = 31
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(238, 16) = 15
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(222, 32) = 7
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(190, 64) = 3
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(126, 128) = 1
-
-short int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
-ceiling_div(-32768, -32768) = 2, ceiling_div(-32766, -32768) = 1, ceiling_div(32766, -32768) = 0
-
-unsigned short int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(65533, 1) = 65533
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(65532, 2) = 32766
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(65530, 4) = 16383
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(65526, 8) = 8191
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(65518, 16) = 4095
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(65502, 32) = 2047
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(65470, 64) = 1023
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(65406, 128) = 511
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(65278, 256) = 255
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(65022, 512) = 127
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(64510, 1024) = 63
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(63486, 2048) = 31
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(61438, 4096) = 15
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(57342, 8192) = 7
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(49150, 16384) = 3
-ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(32766, 32768) = 1
-
-int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
-ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 0
-ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 0
-ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 0
-ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 0
-ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 0
-ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 0
-ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 0
-ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 0
-ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 0
-ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 0
-ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 0
-ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 0
-ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 0
-ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 0
-ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 0
-ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = -1, ceiling_div(-1073741826, 1073741824) = 0
-ceiling_div(-2147483648, -2147483648) = 0, ceiling_div(-2147483646, -2147483648) = 0, ceiling_div(2147483646, -2147483648) = 0
-
-unsigned int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(4294967293, 1) = 4294967293
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(4294967292, 2) = 2147483646
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(4294967290, 4) = 1073741823
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(4294967286, 8) = 536870911
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(4294967278, 16) = 268435455
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(4294967262, 32) = 134217727
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(4294967230, 64) = 67108863
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(4294967166, 128) = 33554431
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(4294967038, 256) = 16777215
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(4294966782, 512) = 8388607
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(4294966270, 1024) = 4194303
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(4294965246, 2048) = 2097151
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(4294963198, 4096) = 1048575
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(4294959102, 8192) = 524287
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(4294950910, 16384) = 262143
-ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(4294934526, 32768) = 131071
-ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(4294901758, 65536) = 65535
-ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(4294836222, 131072) = 32767
-ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(4294705150, 262144) = 16383
-ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(4294443006, 524288) = 8191
-ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(4293918718, 1048576) = 4095
-ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(4292870142, 2097152) = 2047
-ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(4290772990, 4194304) = 1023
-ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(4286578686, 8388608) = 511
-ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(4278190078, 16777216) = 255
-ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(4261412862, 33554432) = 127
-ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(4227858430, 67108864) = 63
-ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(4160749566, 134217728) = 31
-ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(4026531838, 268435456) = 15
-ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(3758096382, 536870912) = 7
-ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(3221225470, 1073741824) = 3
-ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 0, ceiling_div(2147483646, 2147483648) = 1
-
-long int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
-ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 0
-ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 0
-ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 0
-ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 0
-ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 0
-ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 0
-ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 0
-ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 0
-ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 0
-ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 0
-ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 0
-ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 0
-ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 0
-ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 0
-ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 0
-ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = -1, ceiling_div(-1073741826, 1073741824) = 0
-ceiling_div(-2147483648, -2147483648) = 0, ceiling_div(-2147483646, -2147483648) = 0, ceiling_div(2147483646, -2147483648) = 0
-
-unsigned long int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(4294967293, 1) = 4294967293
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(4294967292, 2) = 2147483646
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(4294967290, 4) = 1073741823
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(4294967286, 8) = 536870911
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(4294967278, 16) = 268435455
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(4294967262, 32) = 134217727
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(4294967230, 64) = 67108863
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(4294967166, 128) = 33554431
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(4294967038, 256) = 16777215
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(4294966782, 512) = 8388607
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(4294966270, 1024) = 4194303
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(4294965246, 2048) = 2097151
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(4294963198, 4096) = 1048575
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(4294959102, 8192) = 524287
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(4294950910, 16384) = 262143
-ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(4294934526, 32768) = 131071
-ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(4294901758, 65536) = 65535
-ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(4294836222, 131072) = 32767
-ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(4294705150, 262144) = 16383
-ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(4294443006, 524288) = 8191
-ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(4293918718, 1048576) = 4095
-ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(4292870142, 2097152) = 2047
-ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(4290772990, 4194304) = 1023
-ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(4286578686, 8388608) = 511
-ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(4278190078, 16777216) = 255
-ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(4261412862, 33554432) = 127
-ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(4227858430, 67108864) = 63
-ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(4160749566, 134217728) = 31
-ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(4026531838, 268435456) = 15
-ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(3758096382, 536870912) = 7
-ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(3221225470, 1073741824) = 3
-ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 0, ceiling_div(2147483646, 2147483648) = 1
-
-long long int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
-ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 0
-ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 0
-ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 0
-ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 0
-ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 0
-ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 0
-ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 0
-ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 0
-ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 0
-ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 0
-ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 0
-ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 0
-ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 0
-ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 0
-ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 0
-ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(-1073741826, 1073741824) = 0
-ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(-2147483650, 2147483648) = 0
-ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(-4294967298, 4294967296) = 0
-ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(-8589934594, 8589934592) = 0
-ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(-17179869186, 17179869184) = 0
-ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(-34359738370, 34359738368) = 0
-ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(-68719476738, 68719476736) = 0
-ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(-137438953474, 137438953472) = 0
-ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(-274877906946, 274877906944) = 0
-ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(-549755813890, 549755813888) = 0
-ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(-1099511627778, 1099511627776) = 0
-ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(-2199023255554, 2199023255552) = 0
-ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(-4398046511106, 4398046511104) = 0
-ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(-8796093022210, 8796093022208) = 0
-ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(-17592186044418, 17592186044416) = 0
-ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(-35184372088834, 35184372088832) = 0
-ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(-70368744177666, 70368744177664) = 0
-ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(-140737488355330, 140737488355328) = 0
-ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(-281474976710658, 281474976710656) = 0
-ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(-562949953421314, 562949953421312) = 0
-ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(-1125899906842626, 1125899906842624) = 0
-ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(-2251799813685250, 2251799813685248) = 0
-ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(-4503599627370498, 4503599627370496) = 0
-ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(-9007199254740994, 9007199254740992) = 0
-ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(-18014398509481986, 18014398509481984) = 0
-ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(-36028797018963970, 36028797018963968) = 0
-ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(-72057594037927938, 72057594037927936) = 0
-ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(-144115188075855874, 144115188075855872) = 0
-ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(-288230376151711746, 288230376151711744) = 0
-ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(-576460752303423490, 576460752303423488) = 0
-ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(-1152921504606846978, 1152921504606846976) = 0
-ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(-2305843009213693954, 2305843009213693952) = 0
-ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = -1, ceiling_div(-4611686018427387906, 4611686018427387904) = 0
-ceiling_div(-9223372036854775808, -9223372036854775808) = 0, ceiling_div(-9223372036854775806, -9223372036854775808) = 0, ceiling_div(9223372036854775806, -9223372036854775808) = 0
-
-unsigned long long int
-ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(18446744073709551613, 1) = 18446744073709551613
-ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(18446744073709551612, 2) = 9223372036854775806
-ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(18446744073709551610, 4) = 4611686018427387903
-ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(18446744073709551606, 8) = 2305843009213693951
-ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(18446744073709551598, 16) = 1152921504606846975
-ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(18446744073709551582, 32) = 576460752303423487
-ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(18446744073709551550, 64) = 288230376151711743
-ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(18446744073709551486, 128) = 144115188075855871
-ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(18446744073709551358, 256) = 72057594037927935
-ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(18446744073709551102, 512) = 36028797018963967
-ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(18446744073709550590, 1024) = 18014398509481983
-ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(18446744073709549566, 2048) = 9007199254740991
-ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(18446744073709547518, 4096) = 4503599627370495
-ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(18446744073709543422, 8192) = 2251799813685247
-ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(18446744073709535230, 16384) = 1125899906842623
-ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(18446744073709518846, 32768) = 562949953421311
-ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(18446744073709486078, 65536) = 281474976710655
-ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(18446744073709420542, 131072) = 140737488355327
-ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(18446744073709289470, 262144) = 70368744177663
-ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(18446744073709027326, 524288) = 35184372088831
-ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(18446744073708503038, 1048576) = 17592186044415
-ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(18446744073707454462, 2097152) = 8796093022207
-ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(18446744073705357310, 4194304) = 4398046511103
-ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(18446744073701163006, 8388608) = 2199023255551
-ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(18446744073692774398, 16777216) = 1099511627775
-ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(18446744073675997182, 33554432) = 549755813887
-ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(18446744073642442750, 67108864) = 274877906943
-ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(18446744073575333886, 134217728) = 137438953471
-ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(18446744073441116158, 268435456) = 68719476735
-ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(18446744073172680702, 536870912) = 34359738367
-ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(18446744072635809790, 1073741824) = 17179869183
-ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(18446744071562067966, 2147483648) = 8589934591
-ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(18446744069414584318, 4294967296) = 4294967295
-ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(18446744065119617022, 8589934592) = 2147483647
-ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(18446744056529682430, 17179869184) = 1073741823
-ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(18446744039349813246, 34359738368) = 536870911
-ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(18446744004990074878, 68719476736) = 268435455
-ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(18446743936270598142, 137438953472) = 134217727
-ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(18446743798831644670, 274877906944) = 67108863
-ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(18446743523953737726, 549755813888) = 33554431
-ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(18446742974197923838, 1099511627776) = 16777215
-ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(18446741874686296062, 2199023255552) = 8388607
-ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(18446739675663040510, 4398046511104) = 4194303
-ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(18446735277616529406, 8796093022208) = 2097151
-ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(18446726481523507198, 17592186044416) = 1048575
-ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(18446708889337462782, 35184372088832) = 524287
-ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(18446673704965373950, 70368744177664) = 262143
-ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(18446603336221196286, 140737488355328) = 131071
-ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(18446462598732840958, 281474976710656) = 65535
-ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(18446181123756130302, 562949953421312) = 32767
-ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(18445618173802708990, 1125899906842624) = 16383
-ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(18444492273895866366, 2251799813685248) = 8191
-ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(18442240474082181118, 4503599627370496) = 4095
-ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(18437736874454810622, 9007199254740992) = 2047
-ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(18428729675200069630, 18014398509481984) = 1023
-ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(18410715276690587646, 36028797018963968) = 511
-ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(18374686479671623678, 72057594037927936) = 255
-ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(18302628885633695742, 144115188075855872) = 127
-ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(18158513697557839870, 288230376151711744) = 63
-ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(17870283321406128126, 576460752303423488) = 31
-ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(17293822569102704638, 1152921504606846976) = 15
-ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(16140901064495857662, 2305843009213693952) = 7
-ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = 2, ceiling_div(13835058055282163710, 4611686018427387904) = 3
-ceiling_div(9223372036854775808, 9223372036854775808) = 1, ceiling_div(9223372036854775810, 9223372036854775808) = 0, ceiling_div(9223372036854775806, 9223372036854775808) = 1
-
-
-ceiling
-
-signed char
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
-ceiling(64, 64) = 64, ceiling(66, 64) = -128, ceiling(-66, 64) = 0
-ceiling(-128, -128) = -128, ceiling(-126, -128) = -128, ceiling(126, -128) = 0
-
-unsigned char
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(253, 1) = 253
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(252, 2) = 252
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(250, 4) = 252
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(246, 8) = 248
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(238, 16) = 240
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(222, 32) = 224
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(190, 64) = 192
-ceiling(128, 128) = 128, ceiling(130, 128) = 0, ceiling(126, 128) = 128
-
-short int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = -32768, ceiling(-16386, 16384) = 0
-ceiling(-32768, -32768) = -32768, ceiling(-32766, -32768) = -32768, ceiling(32766, -32768) = 0
-
-unsigned short int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(65533, 1) = 65533
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(65532, 2) = 65532
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(65530, 4) = 65532
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(65526, 8) = 65528
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(65518, 16) = 65520
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(65502, 32) = 65504
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(65470, 64) = 65472
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(65406, 128) = 65408
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(65278, 256) = 65280
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(65022, 512) = 65024
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(64510, 1024) = 64512
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(63486, 2048) = 63488
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(61438, 4096) = 61440
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(57342, 8192) = 57344
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(49150, 16384) = 49152
-ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 0, ceiling(32766, 32768) = 32768
-
-int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 0
-ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 0
-ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 0
-ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 0
-ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 0
-ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 0
-ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 0
-ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 0
-ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 0
-ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 0
-ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 0
-ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 0
-ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 0
-ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 0
-ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 0
-ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 0
-ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = -1073741824, ceiling(-1073741826, 1073741824) = 0
-ceiling(-2147483648, -2147483648) = -2147483648, ceiling(-2147483646, -2147483648) = 0, ceiling(2147483646, -2147483648) = 0
-
-unsigned int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(4294967293, 1) = 4294967293
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(4294967292, 2) = 4294967292
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(4294967290, 4) = 4294967292
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(4294967286, 8) = 4294967288
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(4294967278, 16) = 4294967280
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(4294967262, 32) = 4294967264
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(4294967230, 64) = 4294967232
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(4294967166, 128) = 4294967168
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(4294967038, 256) = 4294967040
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(4294966782, 512) = 4294966784
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(4294966270, 1024) = 4294966272
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(4294965246, 2048) = 4294965248
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(4294963198, 4096) = 4294963200
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(4294959102, 8192) = 4294959104
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(4294950910, 16384) = 4294950912
-ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(4294934526, 32768) = 4294934528
-ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(4294901758, 65536) = 4294901760
-ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(4294836222, 131072) = 4294836224
-ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(4294705150, 262144) = 4294705152
-ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(4294443006, 524288) = 4294443008
-ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(4293918718, 1048576) = 4293918720
-ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(4292870142, 2097152) = 4292870144
-ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(4290772990, 4194304) = 4290772992
-ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(4286578686, 8388608) = 4286578688
-ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(4278190078, 16777216) = 4278190080
-ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(4261412862, 33554432) = 4261412864
-ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(4227858430, 67108864) = 4227858432
-ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(4160749566, 134217728) = 4160749568
-ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(4026531838, 268435456) = 4026531840
-ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(3758096382, 536870912) = 3758096384
-ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(3221225470, 1073741824) = 3221225472
-ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 0, ceiling(2147483646, 2147483648) = 2147483648
-
-long int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 0
-ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 0
-ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 0
-ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 0
-ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 0
-ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 0
-ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 0
-ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 0
-ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 0
-ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 0
-ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 0
-ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 0
-ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 0
-ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 0
-ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 0
-ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 0
-ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = -1073741824, ceiling(-1073741826, 1073741824) = 0
-ceiling(-2147483648, -2147483648) = -2147483648, ceiling(-2147483646, -2147483648) = 0, ceiling(2147483646, -2147483648) = 0
-
-unsigned long int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(4294967293, 1) = 4294967293
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(4294967292, 2) = 4294967292
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(4294967290, 4) = 4294967292
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(4294967286, 8) = 4294967288
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(4294967278, 16) = 4294967280
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(4294967262, 32) = 4294967264
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(4294967230, 64) = 4294967232
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(4294967166, 128) = 4294967168
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(4294967038, 256) = 4294967040
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(4294966782, 512) = 4294966784
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(4294966270, 1024) = 4294966272
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(4294965246, 2048) = 4294965248
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(4294963198, 4096) = 4294963200
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(4294959102, 8192) = 4294959104
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(4294950910, 16384) = 4294950912
-ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(4294934526, 32768) = 4294934528
-ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(4294901758, 65536) = 4294901760
-ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(4294836222, 131072) = 4294836224
-ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(4294705150, 262144) = 4294705152
-ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(4294443006, 524288) = 4294443008
-ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(4293918718, 1048576) = 4293918720
-ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(4292870142, 2097152) = 4292870144
-ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(4290772990, 4194304) = 4290772992
-ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(4286578686, 8388608) = 4286578688
-ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(4278190078, 16777216) = 4278190080
-ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(4261412862, 33554432) = 4261412864
-ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(4227858430, 67108864) = 4227858432
-ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(4160749566, 134217728) = 4160749568
-ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(4026531838, 268435456) = 4026531840
-ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(3758096382, 536870912) = 3758096384
-ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(3221225470, 1073741824) = 3221225472
-ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 0, ceiling(2147483646, 2147483648) = 2147483648
-
-long long int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 0
-ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 0
-ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 0
-ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 0
-ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 0
-ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 0
-ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 0
-ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 0
-ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 0
-ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 0
-ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 0
-ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 0
-ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 0
-ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 0
-ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 0
-ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 0
-ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(-1073741826, 1073741824) = 0
-ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(-2147483650, 2147483648) = 0
-ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(-4294967298, 4294967296) = 0
-ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(-8589934594, 8589934592) = 0
-ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(-17179869186, 17179869184) = 0
-ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(-34359738370, 34359738368) = 0
-ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(-68719476738, 68719476736) = 0
-ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(-137438953474, 137438953472) = 0
-ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(-274877906946, 274877906944) = 0
-ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(-549755813890, 549755813888) = 0
-ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(-1099511627778, 1099511627776) = 0
-ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(-2199023255554, 2199023255552) = 0
-ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(-4398046511106, 4398046511104) = 0
-ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(-8796093022210, 8796093022208) = 0
-ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(-17592186044418, 17592186044416) = 0
-ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(-35184372088834, 35184372088832) = 0
-ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(-70368744177666, 70368744177664) = 0
-ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(-140737488355330, 140737488355328) = 0
-ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(-281474976710658, 281474976710656) = 0
-ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(-562949953421314, 562949953421312) = 0
-ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(-1125899906842626, 1125899906842624) = 0
-ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(-2251799813685250, 2251799813685248) = 0
-ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(-4503599627370498, 4503599627370496) = 0
-ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(-9007199254740994, 9007199254740992) = 0
-ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(-18014398509481986, 18014398509481984) = 0
-ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(-36028797018963970, 36028797018963968) = 0
-ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(-72057594037927938, 72057594037927936) = 0
-ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(-144115188075855874, 144115188075855872) = 0
-ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(-288230376151711746, 288230376151711744) = 0
-ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(-576460752303423490, 576460752303423488) = 0
-ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(-1152921504606846978, 1152921504606846976) = 0
-ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(-2305843009213693954, 2305843009213693952) = 0
-ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = -4611686018427387904, ceiling(-4611686018427387906, 4611686018427387904) = 0
-ceiling(-9223372036854775808, -9223372036854775808) = -9223372036854775808, ceiling(-9223372036854775806, -9223372036854775808) = 0, ceiling(9223372036854775806, -9223372036854775808) = 0
-
-unsigned long long int
-ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(18446744073709551613, 1) = 18446744073709551613
-ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(18446744073709551612, 2) = 18446744073709551612
-ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(18446744073709551610, 4) = 18446744073709551612
-ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(18446744073709551606, 8) = 18446744073709551608
-ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(18446744073709551598, 16) = 18446744073709551600
-ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(18446744073709551582, 32) = 18446744073709551584
-ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(18446744073709551550, 64) = 18446744073709551552
-ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(18446744073709551486, 128) = 18446744073709551488
-ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(18446744073709551358, 256) = 18446744073709551360
-ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(18446744073709551102, 512) = 18446744073709551104
-ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(18446744073709550590, 1024) = 18446744073709550592
-ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(18446744073709549566, 2048) = 18446744073709549568
-ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(18446744073709547518, 4096) = 18446744073709547520
-ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(18446744073709543422, 8192) = 18446744073709543424
-ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(18446744073709535230, 16384) = 18446744073709535232
-ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(18446744073709518846, 32768) = 18446744073709518848
-ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(18446744073709486078, 65536) = 18446744073709486080
-ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(18446744073709420542, 131072) = 18446744073709420544
-ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(18446744073709289470, 262144) = 18446744073709289472
-ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(18446744073709027326, 524288) = 18446744073709027328
-ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(18446744073708503038, 1048576) = 18446744073708503040
-ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(18446744073707454462, 2097152) = 18446744073707454464
-ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(18446744073705357310, 4194304) = 18446744073705357312
-ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(18446744073701163006, 8388608) = 18446744073701163008
-ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(18446744073692774398, 16777216) = 18446744073692774400
-ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(18446744073675997182, 33554432) = 18446744073675997184
-ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(18446744073642442750, 67108864) = 18446744073642442752
-ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(18446744073575333886, 134217728) = 18446744073575333888
-ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(18446744073441116158, 268435456) = 18446744073441116160
-ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(18446744073172680702, 536870912) = 18446744073172680704
-ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(18446744072635809790, 1073741824) = 18446744072635809792
-ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(18446744071562067966, 2147483648) = 18446744071562067968
-ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(18446744069414584318, 4294967296) = 18446744069414584320
-ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(18446744065119617022, 8589934592) = 18446744065119617024
-ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(18446744056529682430, 17179869184) = 18446744056529682432
-ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(18446744039349813246, 34359738368) = 18446744039349813248
-ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(18446744004990074878, 68719476736) = 18446744004990074880
-ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(18446743936270598142, 137438953472) = 18446743936270598144
-ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(18446743798831644670, 274877906944) = 18446743798831644672
-ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(18446743523953737726, 549755813888) = 18446743523953737728
-ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(18446742974197923838, 1099511627776) = 18446742974197923840
-ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(18446741874686296062, 2199023255552) = 18446741874686296064
-ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(18446739675663040510, 4398046511104) = 18446739675663040512
-ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(18446735277616529406, 8796093022208) = 18446735277616529408
-ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(18446726481523507198, 17592186044416) = 18446726481523507200
-ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(18446708889337462782, 35184372088832) = 18446708889337462784
-ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(18446673704965373950, 70368744177664) = 18446673704965373952
-ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(18446603336221196286, 140737488355328) = 18446603336221196288
-ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(18446462598732840958, 281474976710656) = 18446462598732840960
-ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(18446181123756130302, 562949953421312) = 18446181123756130304
-ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(18445618173802708990, 1125899906842624) = 18445618173802708992
-ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(18444492273895866366, 2251799813685248) = 18444492273895866368
-ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(18442240474082181118, 4503599627370496) = 18442240474082181120
-ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(18437736874454810622, 9007199254740992) = 18437736874454810624
-ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(18428729675200069630, 18014398509481984) = 18428729675200069632
-ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(18410715276690587646, 36028797018963968) = 18410715276690587648
-ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(18374686479671623678, 72057594037927936) = 18374686479671623680
-ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(18302628885633695742, 144115188075855872) = 18302628885633695744
-ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(18158513697557839870, 288230376151711744) = 18158513697557839872
-ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(17870283321406128126, 576460752303423488) = 17870283321406128128
-ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(17293822569102704638, 1152921504606846976) = 17293822569102704640
-ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(16140901064495857662, 2305843009213693952) = 16140901064495857664
-ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = 9223372036854775808, ceiling(13835058055282163710, 4611686018427387904) = 13835058055282163712
-ceiling(9223372036854775808, 9223372036854775808) = 9223372036854775808, ceiling(9223372036854775810, 9223372036854775808) = 0, ceiling(9223372036854775806, 9223372036854775808) = 9223372036854775808
-
Index: tests/.expect/castError.txt
===================================================================
--- tests/.expect/castError.txt	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/.expect/castError.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -3,6 +3,4 @@
   Name: f
 ... to:
-  char
-with resolved type:
   char Alternatives are:
 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
@@ -11,12 +9,5 @@
       ... returning nothing
 
-      with resolved type:
-        pointer to function
-          accepting unspecified arguments
-        ... returning nothing
-
     ... to:
-      char
-    with resolved type:
       char
   (types:
@@ -27,9 +18,5 @@
 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
       Variable Expression: f: double
-      with resolved type:
-        double
     ... to:
-      char
-    with resolved type:
       char
   (types:
@@ -40,9 +27,5 @@
 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
       Variable Expression: f: signed int
-      with resolved type:
-        signed int
     ... to:
-      char
-    with resolved type:
       char
   (types:
@@ -56,23 +39,11 @@
   Comma Expression:
     constant expression (3 3: signed int)
-    with resolved type:
-      signed int
     Name: v
-... to: nothing
-with resolved type:
-  void  Alternatives are:
+... to: nothing Alternatives are:
 Cost ( 0, 0, 2, 0, 0, 0, 0 ): Generated Cast of:
       Comma Expression:
         constant expression (3 3: signed int)
-        with resolved type:
-          signed int
         Variable Expression: v: unsigned char
-        with resolved type:
-          unsigned char
-      with resolved type:
-        unsigned char
     ... to: nothing
-    with resolved type:
-      void 
   (types:
     void 
@@ -83,14 +54,6 @@
       Comma Expression:
         constant expression (3 3: signed int)
-        with resolved type:
-          signed int
         Variable Expression: v: signed short int
-        with resolved type:
-          signed short int
-      with resolved type:
-        signed short int
     ... to: nothing
-    with resolved type:
-      void 
   (types:
     void 
@@ -106,7 +69,2 @@
     char
 
-with resolved type:
-  instance of struct S with body 1
-  ... with parameters
-    char
-
Index: tests/.expect/init1.txt
===================================================================
--- tests/.expect/init1.txt	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/.expect/init1.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -11,6 +11,4 @@
 ... to:
   reference to signed int
-with resolved type:
-  reference to signed int
 init1.cfa:97:1 error: No reasonable alternatives for expression Applying untyped:
   Name: ?{}
@@ -18,9 +16,5 @@
   Generated Cast of:
     Variable Expression: _retval_f_py: pointer to signed int
-    with resolved type:
-      pointer to signed int
   ... to:
-    reference to pointer to signed int
-  with resolved type:
     reference to pointer to signed int
   Name: px
@@ -30,6 +24,4 @@
 ... to:
   reference to float
-with resolved type:
-  reference to float
 init1.cfa:107:1 error: No reasonable alternatives for expression Applying untyped:
   Name: ?{}
@@ -37,9 +29,5 @@
   Generated Cast of:
     Variable Expression: _retval_f_py2: pointer to float
-    with resolved type:
-      pointer to float
   ... to:
-    reference to pointer to float
-  with resolved type:
     reference to pointer to float
   Name: cpx
@@ -49,6 +37,4 @@
 ... to:
   reference to instance of type T (not function type)
-with resolved type:
-  reference to instance of type T (not function type)
 init1.cfa:118:1 error: No reasonable alternatives for expression Applying untyped:
   Name: ?{}
@@ -56,9 +42,5 @@
   Generated Cast of:
     Variable Expression: _retval_anycvt: pointer to instance of type T (not function type)
-    with resolved type:
-      pointer to instance of type T (not function type)
   ... to:
-    reference to pointer to instance of type T (not function type)
-  with resolved type:
     reference to pointer to instance of type T (not function type)
   Name: s
Index: tests/.expect/manipulatorsOutput1.arm64.txt
===================================================================
--- tests/.expect/manipulatorsOutput1.arm64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/manipulatorsOutput1.arm64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,50 @@
+signed char
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+unsigned char
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed short int
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+unsigned short int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed int
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+unsigned int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed long long int
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+unsigned long long int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+
+binary integral
+0b0 0b1101 0B1101 1101 0b1101     0b1101 0b1101   0b001101 0b0000001101 0b001101
+
+float
+0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+long double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.53699999999999992184029906638898 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+
+char
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+
+string
+abcd     abcd   abcd abcd    
+abcd     abcd   abcd abcd    
+
+binary string
+0b110000 0b1100001 0b1100010 0b1100011 0b1100100 0141 0142 0143 0144 0x61 0x62 0x63 0x64
+110000 1100001 1100010 1100011 1100100 141 142 143 144 61 62 63 64
+  110000  1100001  1100010  1100011  1100100  141  142  143  144  61  62  63  64
Index: sts/.expect/manipulatorsOutput1.txt
===================================================================
--- tests/.expect/manipulatorsOutput1.txt	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ 	(revision )
@@ -1,50 +1,0 @@
-signed char
--12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
--12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
-unsigned char
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-signed short int
--12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
--12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
-unsigned short int
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-signed int
--12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
--12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
-unsigned int
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-signed long long int
--12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
--12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
-unsigned long long int
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
-
-binary integral
-0b0 0b1101 0B1101 1101 0b1101     0b1101 0b1101   0b001101 0b0000001101 0b001101
-
-float
-0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-double
-0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-long double
-0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
-0. 3.000000 3.53699999999999992 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
-
-char
-a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
-a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
-
-string
-abcd     abcd   abcd abcd    
-abcd     abcd   abcd abcd    
-
-binary string
-0b110000 0b1100001 0b1100010 0b1100011 0b1100100 0141 0142 0143 0144 0x61 0x62 0x63 0x64
-110000 1100001 1100010 1100011 1100100 141 142 143 144 61 62 63 64
-  110000  1100001  1100010  1100011  1100100  141  142  143  144  61  62  63  64
Index: tests/.expect/manipulatorsOutput1.x64.txt
===================================================================
--- tests/.expect/manipulatorsOutput1.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/manipulatorsOutput1.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,50 @@
+signed char
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+unsigned char
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed short int
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+unsigned short int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed int
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+unsigned int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed long long int
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+unsigned long long int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+
+binary integral
+0b0 0b1101 0B1101 1101 0b1101     0b1101 0b1101   0b001101 0b0000001101 0b001101
+
+float
+0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+long double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
+0. 3.000000 3.53699999999999992 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
+
+char
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+
+string
+abcd     abcd   abcd abcd    
+abcd     abcd   abcd abcd    
+
+binary string
+0b110000 0b1100001 0b1100010 0b1100011 0b1100100 0141 0142 0143 0144 0x61 0x62 0x63 0x64
+110000 1100001 1100010 1100011 1100100 141 142 143 144 61 62 63 64
+  110000  1100001  1100010  1100011  1100100  141  142  143  144  61  62  63  64
Index: tests/.expect/manipulatorsOutput1.x86.txt
===================================================================
--- tests/.expect/manipulatorsOutput1.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/manipulatorsOutput1.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,50 @@
+signed char
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+-12 -12   -12 -12   364 0364 f4 0xf4     0xf4 0x00000000f4    0X0F4 -012     -0000012
+unsigned char
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed short int
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+-12 -12   -12 -12   177764 0177764 fff4 0xfff4   0xfff4 0x000000fff4   0XFFF4 -012     -0000012
+unsigned short int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed int
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   37777777764 037777777764 fffffff4 0xfffffff4 0xfffffff4 0x00fffffff4 0XFFFFFFF4 -012     -0000012
+unsigned int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+signed long long int
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+-12 -12   -12 -12   1777777777777777777764 01777777777777777777764 fffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0xfffffffffffffff4 0XFFFFFFFFFFFFFFF4 -012     -0000012
+unsigned long long int
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+12 12    12 12    14 014 c 0xc      0xc 0x000000000c    0X00C 012      00000012
+
+binary integral
+0b0 0b1101 0B1101 1101 0b1101     0b1101 0b1101   0b001101 0b0000001101 0b001101
+
+float
+0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+long double
+0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
+0. 3.000000 3.53699999999999992 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0xe.26p-2 0XE.26P-2 3.54e+00
+
+char
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+a  a     a a     141 0141 61 0x61     0x61     0X61 a               a
+
+string
+abcd     abcd   abcd abcd    
+abcd     abcd   abcd abcd    
+
+binary string
+0b110000 0b1100001 0b1100010 0b1100011 0b1100100 0141 0142 0143 0144 0x61 0x62 0x63 0x64
+110000 1100001 1100010 1100011 1100100 141 142 143 144 61 62 63 64
+  110000  1100001  1100010  1100011  1100100  141  142  143  144  61  62  63  64
Index: tests/.expect/math1.arm64.txt
===================================================================
--- tests/.expect/math1.arm64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/math1.arm64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,17 @@
+fmod:1. 1. 1. 1. 1. 1.
+remainder:-1. -1. -1.
+remquo:7 0.0999999 7 0.1 7 0.1
+div:7., 0.2 7., 0.2 7., 0.2
+fma:-2. -2. -2.
+fdim:2. 2. 2.
+nan:nan nan nan
+exp:2.71828 2.71828182845905 2.71828182845904523536028747135266 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.4686939399158851571389675973266+2.2873552871788423912081719067005i
+exp2:2. 2. 2.
+expm1:1.71828 1.71828182845905 1.71828182845904523536028747135266
+pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098870780956742879583+0.705394566961838155200168314152112i
+16 \ 2 = 256
+912673 256 64 -64 0 0
+0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
+0 0 18.3791736799526 0.264715-1.1922i
+16
+4 16
Index: sts/.expect/math1.txt
===================================================================
--- tests/.expect/math1.txt	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ 	(revision )
@@ -1,17 +1,0 @@
-fmod:1. 1. 1. 1. 1. 1.
-remainder:-1. -1. -1.
-remquo:7 0.0999999 7 0.1 7 0.0999999999999999999
-div:7., 0.2 7., 0.2 7., 0.2
-fma:-2. -2. -2.
-fdim:2. 2. 2.
-nan:nan nan nan
-exp:2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i
-exp2:2. 2. 2.
-expm1:1.71828 1.71828182845905 1.71828182845904524
-pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098871+0.705394566961838155i
-16 \ 2 = 256
-912673 256 64 -64 0 0
-0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
-0 0 18.3791736799526 0.264715-1.1922i
-16
-4 16
Index: tests/.expect/math1.x64.txt
===================================================================
--- tests/.expect/math1.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/math1.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,17 @@
+fmod:1. 1. 1. 1. 1. 1.
+remainder:-1. -1. -1.
+remquo:7 0.0999999 7 0.1 7 0.0999999999999999999
+div:7., 0.2 7., 0.2 7., 0.2
+fma:-2. -2. -2.
+fdim:2. 2. 2.
+nan:nan nan nan
+exp:2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i
+exp2:2. 2. 2.
+expm1:1.71828 1.71828182845905 1.71828182845904524
+pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098871+0.705394566961838155i
+16 \ 2 = 256
+912673 256 64 -64 0 0
+0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
+0 0 18.3791736799526 0.264715-1.1922i
+16
+4 16
Index: tests/.expect/math1.x86.txt
===================================================================
--- tests/.expect/math1.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/math1.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,17 @@
+fmod:1. 1. 1. 1. 1. 1.
+remainder:-1. -1. -1.
+remquo:7 0.0999999 7 0.1 7 0.0999999999999999999
+div:7., 0.2 7., 0.2 7., 0.2
+fma:-2. -2. -2.
+fdim:2. 2. 2.
+nan:nan nan nan
+exp:2.71828 2.71828182845905 2.71828182845904524 1.46869+2.28736i 1.46869393991589+2.28735528717884i 1.46869393991588516+2.28735528717884239i
+exp2:2. 2. 2.
+expm1:1.71828 1.71828182845905 1.71828182845904524
+pow:1. 1. 1. 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098871+0.705394566961838155i
+16 \ 2 = 256
+912673 256 64 -64 0 0
+0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
+0 0 18.3791736799526 0.264715-1.1922i
+16
+4 16
Index: tests/.expect/math2.arm64.txt
===================================================================
--- tests/.expect/math2.arm64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/math2.arm64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,16 @@
+log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972654708616060729088+0.785398163397448309615660845819876i
+log2:3. 3. 3.
+log10:2. 2. 2.
+log1p:0.693147 0.693147180559945 0.693147180559945309417232121458177
+ilogb:0 0 0
+logb:3. 3. 3.
+sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780996603980119524068+0.455089860562227341304357757822469i
+cbrt:3. 3. 3.
+hypot:1.41421 1.4142135623731 1.4142135623730950488016887242097
+sin:0.841471 0.841470984807897 0.841470984807896506652502321630299 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729482604236580782+0.63496391478473610825508220299151i
+cos:0.540302 0.54030230586814 0.540302305868139717400936607442977 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149048883885394335094-0.988897705762865096382129540892686i
+tan:1.55741 1.5574077246549 1.55740772465490223050697480745836 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511716528843722498589+1.08392332733869454347575206121197i
+asin:1.5708 1.5707963267949 1.57079632679489661923132169163975 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255104004895977793+1.06127506190503565203301891621357i
+acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364127316795661959-1.06127506190503565203301891621357i
+atan:0.785398 0.785398163397448 0.785398163397448309615660845819876 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785136772278896155048+0.402359478108525093650189833306547i
+atan2:0.785398 0.785398163397448 0.785398163397448309615660845819876 atan:0.785398 0.785398163397448 0.785398163397448309615660845819876
Index: sts/.expect/math2.txt
===================================================================
--- tests/.expect/math2.txt	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ 	(revision )
@@ -1,16 +1,0 @@
-log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i
-log2:3. 3. 3.
-log10:2. 2. 2.
-log1p:0.693147 0.693147180559945 0.693147180559945309
-ilogb:0 0 0
-logb:3. 3. 3.
-sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i
-cbrt:3. 3. 3.
-hypot:1.41421 1.4142135623731 1.41421356237309505
-sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i
-cos:0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i
-tan:1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i
-asin:1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i
-acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i
-atan:0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i
-atan2:0.785398 0.785398163397448 0.78539816339744831 atan:0.785398 0.785398163397448 0.78539816339744831
Index: tests/.expect/math2.x64.txt
===================================================================
--- tests/.expect/math2.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/math2.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,16 @@
+log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i
+log2:3. 3. 3.
+log10:2. 2. 2.
+log1p:0.693147 0.693147180559945 0.693147180559945309
+ilogb:0 0 0
+logb:3. 3. 3.
+sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i
+cbrt:3. 3. 3.
+hypot:1.41421 1.4142135623731 1.41421356237309505
+sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i
+cos:0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i
+tan:1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i
+asin:1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i
+acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i
+atan:0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i
+atan2:0.785398 0.785398163397448 0.78539816339744831 atan:0.785398 0.785398163397448 0.78539816339744831
Index: tests/.expect/math2.x86.txt
===================================================================
--- tests/.expect/math2.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/math2.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,16 @@
+log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i
+log2:3. 3. 3.
+log10:2. 2. 2.
+log1p:0.693147 0.693147180559945 0.693147180559945309
+ilogb:0 0 0
+logb:3. 3. 3.
+sqrt:1. 1. 1. 1.09868+0.45509i 1.09868411346781+0.455089860562227i 1.09868411346780997+0.455089860562227341i
+cbrt:3. 3. 3.
+hypot:1.41421 1.4142135623731 1.41421356237309505
+sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i
+cos:0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i
+tan:1.55741 1.5574077246549 1.55740772465490223 0.271753+1.08392i 0.271752585319512+1.08392332733869i 0.271752585319511717+1.08392332733869454i
+asin:1.5708 1.5707963267949 1.57079632679489662 0.666239+1.06128i 0.666239432492515+1.06127506190504i 0.666239432492515255+1.06127506190503565i
+acos:0. 0. 0. 0.904557-1.06128i 0.904556894302381-1.06127506190504i 0.904556894302381364-1.06127506190503565i
+atan:0.785398 0.785398163397448 0.78539816339744831 1.01722+0.402359i 1.01722196789785+0.402359478108525i 1.01722196789785137+0.402359478108525094i
+atan2:0.785398 0.785398163397448 0.78539816339744831 atan:0.785398 0.785398163397448 0.78539816339744831
Index: tests/.expect/math3.arm64.txt
===================================================================
--- tests/.expect/math3.arm64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/math3.arm64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,11 @@
+sinh:1.1752 1.1752011936438 1.1752011936438014568823818505956 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.63496391478473610825508220299151+1.29845758141597729482604236580782i
+cosh:1.54308 1.54308063481524 1.54308063481524377847790562075706 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149048883885394335094+0.988897705762865096382129540892686i
+tanh:0.761594 0.761594155955765 0.761594155955764888119458282604794 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454347575206121197+0.271752585319511716528843722498589i
+acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565203301891621357+0.904556894302381364127316795661959i
+asinh:0.881374 0.881373587019543 0.881373587019543025232609324979792 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565203301891621357+0.666239432492515255104004895977793i
+atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525093650189833306547+1.01722196789785136772278896155048i
+erf:0.842701 0.842700792949715 0.842700792949714869341220635082609
+erfc:0.157299 0.157299207050285 0.157299207050285130658779364917391
+lgamma:1.79176 1.79175946922805 1.7917594692280550008124773583807
+lgamma:1.79176 1 1.79175946922805 1 1.7917594692280550008124773583807 1
+tgamma:6. 6. 6.
Index: sts/.expect/math3.txt
===================================================================
--- tests/.expect/math3.txt	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ 	(revision )
@@ -1,11 +1,0 @@
-sinh:1.1752 1.1752011936438 1.17520119364380146 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.634963914784736108+1.29845758141597729i
-cosh:1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i
-tanh:0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i
-acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i
-asinh:0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i
-atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i
-erf:0.842701 0.842700792949715 0.842700792949714869
-erfc:0.157299 0.157299207050285 0.157299207050285131
-lgamma:1.79176 1.79175946922805 1.791759469228055
-lgamma:1.79176 1 1.79175946922805 1 1.791759469228055 1
-tgamma:6. 6. 6.
Index: tests/.expect/math3.x64.txt
===================================================================
--- tests/.expect/math3.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/math3.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,11 @@
+sinh:1.1752 1.1752011936438 1.17520119364380146 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.634963914784736108+1.29845758141597729i
+cosh:1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i
+tanh:0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i
+acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i
+asinh:0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i
+atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i
+erf:0.842701 0.842700792949715 0.842700792949714869
+erfc:0.157299 0.157299207050285 0.157299207050285131
+lgamma:1.79176 1.79175946922805 1.791759469228055
+lgamma:1.79176 1 1.79175946922805 1 1.791759469228055 1
+tgamma:6. 6. 6.
Index: tests/.expect/math3.x86.txt
===================================================================
--- tests/.expect/math3.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/math3.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,11 @@
+sinh:1.1752 1.1752011936438 1.17520119364380146 0.634964+1.29846i 0.634963914784736+1.29845758141598i 0.634963914784736108+1.29845758141597729i
+cosh:1.54308 1.54308063481524 1.54308063481524378 0.83373+0.988898i 0.833730025131149+0.988897705762865i 0.833730025131149049+0.988897705762865096i
+tanh:0.761594 0.761594155955765 0.761594155955764888 1.08392+0.271753i 1.08392332733869+0.271752585319512i 1.08392332733869454+0.271752585319511717i
+acosh:0. 0. 0. 1.06128+0.904557i 1.06127506190504+0.904556894302381i 1.06127506190503565+0.904556894302381364i
+asinh:0.881374 0.881373587019543 0.881373587019543025 1.06128+0.666239i 1.06127506190504+0.666239432492515i 1.06127506190503565+0.666239432492515255i
+atanh:inf inf inf 0.402359+1.01722i 0.402359478108525+1.01722196789785i 0.402359478108525094+1.01722196789785137i
+erf:0.842701 0.842700792949715 0.842700792949714869
+erfc:0.157299 0.157299207050285 0.157299207050285131
+lgamma:1.79176 1.79175946922805 1.791759469228055
+lgamma:1.79176 1 1.79175946922805 1 1.791759469228055 1
+tgamma:6. 6. 6.
Index: sts/.expect/math4.txt
===================================================================
--- tests/.expect/math4.txt	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ 	(revision )
@@ -1,23 +1,0 @@
-floor:1. 1. 1.
-ceil:2. 2. 2.
-trunc:3. 3. 3.
-rint:2. 2. 2.
-rint:2 2 2
-rint:2 2 2
-lrint:2 2 2
-llrint:2 2 2
-nearbyint:4. 4. 4.
-round:2. 2. 2.
-round:2 2 2
-round:2 2 2
-lround:2 2 2
-llround:2 2 2
-copysign:-1. -1. -1.
-frexp:0.5 3 0.5 3 0.5 3
-ldexp:8. 8. 8.
-modf:2. 0.3 2. 0.3 2. 0.3
-modf:2., 0.3 2., 0.3 2., 0.3
-nextafter:2. 2. 2.
-nexttoward:2. 2. 2.
-scalbn:16. 16. 16.
-scalbln:16. 16. 16.
Index: tests/.expect/math4.x64.txt
===================================================================
--- tests/.expect/math4.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/math4.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,1196 @@
+
+floor
+
+signed char
+floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
+floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
+floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
+floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
+floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
+floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
+floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
+floor(-128, -128) = -128, floor(-126, -128) = 0, floor(126, -128) = 0
+
+unsigned char
+floor(1, 1) = 1, floor(3, 1) = 3, floor(253, 1) = 253
+floor(2, 2) = 2, floor(4, 2) = 4, floor(252, 2) = 252
+floor(4, 4) = 4, floor(6, 4) = 4, floor(250, 4) = 248
+floor(8, 8) = 8, floor(10, 8) = 8, floor(246, 8) = 240
+floor(16, 16) = 16, floor(18, 16) = 16, floor(238, 16) = 224
+floor(32, 32) = 32, floor(34, 32) = 32, floor(222, 32) = 192
+floor(64, 64) = 64, floor(66, 64) = 64, floor(190, 64) = 128
+floor(128, 128) = 128, floor(130, 128) = 128, floor(126, 128) = 0
+
+short int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
+floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
+floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
+floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
+floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
+floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
+floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
+floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
+floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
+floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
+floor(-32768, -32768) = -32768, floor(-32766, -32768) = 0, floor(32766, -32768) = 0
+
+unsigned short int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(65533, 1) = 65533
+floor(2, 2) = 2, floor(4, 2) = 4, floor(65532, 2) = 65532
+floor(4, 4) = 4, floor(6, 4) = 4, floor(65530, 4) = 65528
+floor(8, 8) = 8, floor(10, 8) = 8, floor(65526, 8) = 65520
+floor(16, 16) = 16, floor(18, 16) = 16, floor(65518, 16) = 65504
+floor(32, 32) = 32, floor(34, 32) = 32, floor(65502, 32) = 65472
+floor(64, 64) = 64, floor(66, 64) = 64, floor(65470, 64) = 65408
+floor(128, 128) = 128, floor(130, 128) = 128, floor(65406, 128) = 65280
+floor(256, 256) = 256, floor(258, 256) = 256, floor(65278, 256) = 65024
+floor(512, 512) = 512, floor(514, 512) = 512, floor(65022, 512) = 64512
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(64510, 1024) = 63488
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(63486, 2048) = 61440
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(61438, 4096) = 57344
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(57342, 8192) = 49152
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(49150, 16384) = 32768
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(32766, 32768) = 0
+
+int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
+floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
+floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
+floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
+floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
+floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
+floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
+floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
+floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
+floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(-32770, 32768) = -32768
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(-65538, 65536) = -65536
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(-131074, 131072) = -131072
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(-262146, 262144) = -262144
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(-524290, 524288) = -524288
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(-1048578, 1048576) = -1048576
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(-2097154, 2097152) = -2097152
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(-4194306, 4194304) = -4194304
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(-8388610, 8388608) = -8388608
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(-16777218, 16777216) = -16777216
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(-33554434, 33554432) = -33554432
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(-67108866, 67108864) = -67108864
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(-134217730, 134217728) = -134217728
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(-268435458, 268435456) = -268435456
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(-536870914, 536870912) = -536870912
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(-1073741826, 1073741824) = -1073741824
+floor(-2147483648, -2147483648) = -2147483648, floor(-2147483646, -2147483648) = 0, floor(2147483646, -2147483648) = 0
+
+unsigned int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(4294967293, 1) = 4294967293
+floor(2, 2) = 2, floor(4, 2) = 4, floor(4294967292, 2) = 4294967292
+floor(4, 4) = 4, floor(6, 4) = 4, floor(4294967290, 4) = 4294967288
+floor(8, 8) = 8, floor(10, 8) = 8, floor(4294967286, 8) = 4294967280
+floor(16, 16) = 16, floor(18, 16) = 16, floor(4294967278, 16) = 4294967264
+floor(32, 32) = 32, floor(34, 32) = 32, floor(4294967262, 32) = 4294967232
+floor(64, 64) = 64, floor(66, 64) = 64, floor(4294967230, 64) = 4294967168
+floor(128, 128) = 128, floor(130, 128) = 128, floor(4294967166, 128) = 4294967040
+floor(256, 256) = 256, floor(258, 256) = 256, floor(4294967038, 256) = 4294966784
+floor(512, 512) = 512, floor(514, 512) = 512, floor(4294966782, 512) = 4294966272
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(4294966270, 1024) = 4294965248
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(4294965246, 2048) = 4294963200
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(4294963198, 4096) = 4294959104
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(4294959102, 8192) = 4294950912
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(4294950910, 16384) = 4294934528
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(4294934526, 32768) = 4294901760
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(4294901758, 65536) = 4294836224
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(4294836222, 131072) = 4294705152
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(4294705150, 262144) = 4294443008
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(4294443006, 524288) = 4293918720
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(4293918718, 1048576) = 4292870144
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(4292870142, 2097152) = 4290772992
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(4290772990, 4194304) = 4286578688
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(4286578686, 8388608) = 4278190080
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(4278190078, 16777216) = 4261412864
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(4261412862, 33554432) = 4227858432
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(4227858430, 67108864) = 4160749568
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(4160749566, 134217728) = 4026531840
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(4026531838, 268435456) = 3758096384
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(3758096382, 536870912) = 3221225472
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(3221225470, 1073741824) = 2147483648
+floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(2147483646, 2147483648) = 0
+
+long int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
+floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
+floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
+floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
+floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
+floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
+floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
+floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
+floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
+floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(-32770, 32768) = -32768
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(-65538, 65536) = -65536
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(-131074, 131072) = -131072
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(-262146, 262144) = -262144
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(-524290, 524288) = -524288
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(-1048578, 1048576) = -1048576
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(-2097154, 2097152) = -2097152
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(-4194306, 4194304) = -4194304
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(-8388610, 8388608) = -8388608
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(-16777218, 16777216) = -16777216
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(-33554434, 33554432) = -33554432
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(-67108866, 67108864) = -67108864
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(-134217730, 134217728) = -134217728
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(-268435458, 268435456) = -268435456
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(-536870914, 536870912) = -536870912
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(-1073741826, 1073741824) = -1073741824
+floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(-2147483650, 2147483648) = -2147483648
+floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(-4294967298, 4294967296) = -4294967296
+floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(-8589934594, 8589934592) = -8589934592
+floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(-17179869186, 17179869184) = -17179869184
+floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(-34359738370, 34359738368) = -34359738368
+floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(-68719476738, 68719476736) = -68719476736
+floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(-137438953474, 137438953472) = -137438953472
+floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(-274877906946, 274877906944) = -274877906944
+floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(-549755813890, 549755813888) = -549755813888
+floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(-1099511627778, 1099511627776) = -1099511627776
+floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(-2199023255554, 2199023255552) = -2199023255552
+floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(-4398046511106, 4398046511104) = -4398046511104
+floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(-8796093022210, 8796093022208) = -8796093022208
+floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(-17592186044418, 17592186044416) = -17592186044416
+floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(-35184372088834, 35184372088832) = -35184372088832
+floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(-70368744177666, 70368744177664) = -70368744177664
+floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(-140737488355330, 140737488355328) = -140737488355328
+floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(-281474976710658, 281474976710656) = -281474976710656
+floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(-562949953421314, 562949953421312) = -562949953421312
+floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(-1125899906842626, 1125899906842624) = -1125899906842624
+floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(-2251799813685250, 2251799813685248) = -2251799813685248
+floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(-4503599627370498, 4503599627370496) = -4503599627370496
+floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(-9007199254740994, 9007199254740992) = -9007199254740992
+floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(-18014398509481986, 18014398509481984) = -18014398509481984
+floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(-36028797018963970, 36028797018963968) = -36028797018963968
+floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(-72057594037927938, 72057594037927936) = -72057594037927936
+floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(-144115188075855874, 144115188075855872) = -144115188075855872
+floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(-288230376151711746, 288230376151711744) = -288230376151711744
+floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(-576460752303423490, 576460752303423488) = -576460752303423488
+floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(-1152921504606846978, 1152921504606846976) = -1152921504606846976
+floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(-2305843009213693954, 2305843009213693952) = -2305843009213693952
+floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(-4611686018427387906, 4611686018427387904) = -4611686018427387904
+floor(-9223372036854775808, -9223372036854775808) = -9223372036854775808, floor(-9223372036854775806, -9223372036854775808) = 0, floor(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(18446744073709551613, 1) = 18446744073709551613
+floor(2, 2) = 2, floor(4, 2) = 4, floor(18446744073709551612, 2) = 18446744073709551612
+floor(4, 4) = 4, floor(6, 4) = 4, floor(18446744073709551610, 4) = 18446744073709551608
+floor(8, 8) = 8, floor(10, 8) = 8, floor(18446744073709551606, 8) = 18446744073709551600
+floor(16, 16) = 16, floor(18, 16) = 16, floor(18446744073709551598, 16) = 18446744073709551584
+floor(32, 32) = 32, floor(34, 32) = 32, floor(18446744073709551582, 32) = 18446744073709551552
+floor(64, 64) = 64, floor(66, 64) = 64, floor(18446744073709551550, 64) = 18446744073709551488
+floor(128, 128) = 128, floor(130, 128) = 128, floor(18446744073709551486, 128) = 18446744073709551360
+floor(256, 256) = 256, floor(258, 256) = 256, floor(18446744073709551358, 256) = 18446744073709551104
+floor(512, 512) = 512, floor(514, 512) = 512, floor(18446744073709551102, 512) = 18446744073709550592
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(18446744073709550590, 1024) = 18446744073709549568
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(18446744073709549566, 2048) = 18446744073709547520
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(18446744073709547518, 4096) = 18446744073709543424
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(18446744073709543422, 8192) = 18446744073709535232
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(18446744073709535230, 16384) = 18446744073709518848
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(18446744073709518846, 32768) = 18446744073709486080
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(18446744073709486078, 65536) = 18446744073709420544
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(18446744073709420542, 131072) = 18446744073709289472
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(18446744073709289470, 262144) = 18446744073709027328
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(18446744073709027326, 524288) = 18446744073708503040
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(18446744073708503038, 1048576) = 18446744073707454464
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(18446744073707454462, 2097152) = 18446744073705357312
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(18446744073705357310, 4194304) = 18446744073701163008
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(18446744073701163006, 8388608) = 18446744073692774400
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(18446744073692774398, 16777216) = 18446744073675997184
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(18446744073675997182, 33554432) = 18446744073642442752
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(18446744073642442750, 67108864) = 18446744073575333888
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(18446744073575333886, 134217728) = 18446744073441116160
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(18446744073441116158, 268435456) = 18446744073172680704
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(18446744073172680702, 536870912) = 18446744072635809792
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(18446744072635809790, 1073741824) = 18446744071562067968
+floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(18446744071562067966, 2147483648) = 18446744069414584320
+floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(18446744069414584318, 4294967296) = 18446744065119617024
+floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(18446744065119617022, 8589934592) = 18446744056529682432
+floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(18446744056529682430, 17179869184) = 18446744039349813248
+floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(18446744039349813246, 34359738368) = 18446744004990074880
+floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(18446744004990074878, 68719476736) = 18446743936270598144
+floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(18446743936270598142, 137438953472) = 18446743798831644672
+floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(18446743798831644670, 274877906944) = 18446743523953737728
+floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(18446743523953737726, 549755813888) = 18446742974197923840
+floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(18446742974197923838, 1099511627776) = 18446741874686296064
+floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(18446741874686296062, 2199023255552) = 18446739675663040512
+floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(18446739675663040510, 4398046511104) = 18446735277616529408
+floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(18446735277616529406, 8796093022208) = 18446726481523507200
+floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(18446726481523507198, 17592186044416) = 18446708889337462784
+floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(18446708889337462782, 35184372088832) = 18446673704965373952
+floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(18446673704965373950, 70368744177664) = 18446603336221196288
+floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(18446603336221196286, 140737488355328) = 18446462598732840960
+floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(18446462598732840958, 281474976710656) = 18446181123756130304
+floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(18446181123756130302, 562949953421312) = 18445618173802708992
+floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(18445618173802708990, 1125899906842624) = 18444492273895866368
+floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(18444492273895866366, 2251799813685248) = 18442240474082181120
+floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(18442240474082181118, 4503599627370496) = 18437736874454810624
+floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(18437736874454810622, 9007199254740992) = 18428729675200069632
+floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(18428729675200069630, 18014398509481984) = 18410715276690587648
+floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(18410715276690587646, 36028797018963968) = 18374686479671623680
+floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(18374686479671623678, 72057594037927936) = 18302628885633695744
+floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(18302628885633695742, 144115188075855872) = 18158513697557839872
+floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(18158513697557839870, 288230376151711744) = 17870283321406128128
+floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(17870283321406128126, 576460752303423488) = 17293822569102704640
+floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(17293822569102704638, 1152921504606846976) = 16140901064495857664
+floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(16140901064495857662, 2305843009213693952) = 13835058055282163712
+floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(13835058055282163710, 4611686018427387904) = 9223372036854775808
+floor(9223372036854775808, 9223372036854775808) = 9223372036854775808, floor(9223372036854775810, 9223372036854775808) = 9223372036854775808, floor(9223372036854775806, 9223372036854775808) = 0
+
+long long int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
+floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
+floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
+floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
+floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
+floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
+floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
+floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
+floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
+floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(-32770, 32768) = -32768
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(-65538, 65536) = -65536
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(-131074, 131072) = -131072
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(-262146, 262144) = -262144
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(-524290, 524288) = -524288
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(-1048578, 1048576) = -1048576
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(-2097154, 2097152) = -2097152
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(-4194306, 4194304) = -4194304
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(-8388610, 8388608) = -8388608
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(-16777218, 16777216) = -16777216
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(-33554434, 33554432) = -33554432
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(-67108866, 67108864) = -67108864
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(-134217730, 134217728) = -134217728
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(-268435458, 268435456) = -268435456
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(-536870914, 536870912) = -536870912
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(-1073741826, 1073741824) = -1073741824
+floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(-2147483650, 2147483648) = -2147483648
+floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(-4294967298, 4294967296) = -4294967296
+floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(-8589934594, 8589934592) = -8589934592
+floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(-17179869186, 17179869184) = -17179869184
+floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(-34359738370, 34359738368) = -34359738368
+floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(-68719476738, 68719476736) = -68719476736
+floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(-137438953474, 137438953472) = -137438953472
+floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(-274877906946, 274877906944) = -274877906944
+floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(-549755813890, 549755813888) = -549755813888
+floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(-1099511627778, 1099511627776) = -1099511627776
+floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(-2199023255554, 2199023255552) = -2199023255552
+floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(-4398046511106, 4398046511104) = -4398046511104
+floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(-8796093022210, 8796093022208) = -8796093022208
+floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(-17592186044418, 17592186044416) = -17592186044416
+floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(-35184372088834, 35184372088832) = -35184372088832
+floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(-70368744177666, 70368744177664) = -70368744177664
+floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(-140737488355330, 140737488355328) = -140737488355328
+floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(-281474976710658, 281474976710656) = -281474976710656
+floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(-562949953421314, 562949953421312) = -562949953421312
+floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(-1125899906842626, 1125899906842624) = -1125899906842624
+floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(-2251799813685250, 2251799813685248) = -2251799813685248
+floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(-4503599627370498, 4503599627370496) = -4503599627370496
+floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(-9007199254740994, 9007199254740992) = -9007199254740992
+floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(-18014398509481986, 18014398509481984) = -18014398509481984
+floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(-36028797018963970, 36028797018963968) = -36028797018963968
+floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(-72057594037927938, 72057594037927936) = -72057594037927936
+floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(-144115188075855874, 144115188075855872) = -144115188075855872
+floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(-288230376151711746, 288230376151711744) = -288230376151711744
+floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(-576460752303423490, 576460752303423488) = -576460752303423488
+floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(-1152921504606846978, 1152921504606846976) = -1152921504606846976
+floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(-2305843009213693954, 2305843009213693952) = -2305843009213693952
+floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(-4611686018427387906, 4611686018427387904) = -4611686018427387904
+floor(-9223372036854775808, -9223372036854775808) = -9223372036854775808, floor(-9223372036854775806, -9223372036854775808) = 0, floor(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long long int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(18446744073709551613, 1) = 18446744073709551613
+floor(2, 2) = 2, floor(4, 2) = 4, floor(18446744073709551612, 2) = 18446744073709551612
+floor(4, 4) = 4, floor(6, 4) = 4, floor(18446744073709551610, 4) = 18446744073709551608
+floor(8, 8) = 8, floor(10, 8) = 8, floor(18446744073709551606, 8) = 18446744073709551600
+floor(16, 16) = 16, floor(18, 16) = 16, floor(18446744073709551598, 16) = 18446744073709551584
+floor(32, 32) = 32, floor(34, 32) = 32, floor(18446744073709551582, 32) = 18446744073709551552
+floor(64, 64) = 64, floor(66, 64) = 64, floor(18446744073709551550, 64) = 18446744073709551488
+floor(128, 128) = 128, floor(130, 128) = 128, floor(18446744073709551486, 128) = 18446744073709551360
+floor(256, 256) = 256, floor(258, 256) = 256, floor(18446744073709551358, 256) = 18446744073709551104
+floor(512, 512) = 512, floor(514, 512) = 512, floor(18446744073709551102, 512) = 18446744073709550592
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(18446744073709550590, 1024) = 18446744073709549568
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(18446744073709549566, 2048) = 18446744073709547520
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(18446744073709547518, 4096) = 18446744073709543424
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(18446744073709543422, 8192) = 18446744073709535232
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(18446744073709535230, 16384) = 18446744073709518848
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(18446744073709518846, 32768) = 18446744073709486080
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(18446744073709486078, 65536) = 18446744073709420544
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(18446744073709420542, 131072) = 18446744073709289472
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(18446744073709289470, 262144) = 18446744073709027328
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(18446744073709027326, 524288) = 18446744073708503040
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(18446744073708503038, 1048576) = 18446744073707454464
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(18446744073707454462, 2097152) = 18446744073705357312
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(18446744073705357310, 4194304) = 18446744073701163008
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(18446744073701163006, 8388608) = 18446744073692774400
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(18446744073692774398, 16777216) = 18446744073675997184
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(18446744073675997182, 33554432) = 18446744073642442752
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(18446744073642442750, 67108864) = 18446744073575333888
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(18446744073575333886, 134217728) = 18446744073441116160
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(18446744073441116158, 268435456) = 18446744073172680704
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(18446744073172680702, 536870912) = 18446744072635809792
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(18446744072635809790, 1073741824) = 18446744071562067968
+floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(18446744071562067966, 2147483648) = 18446744069414584320
+floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(18446744069414584318, 4294967296) = 18446744065119617024
+floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(18446744065119617022, 8589934592) = 18446744056529682432
+floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(18446744056529682430, 17179869184) = 18446744039349813248
+floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(18446744039349813246, 34359738368) = 18446744004990074880
+floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(18446744004990074878, 68719476736) = 18446743936270598144
+floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(18446743936270598142, 137438953472) = 18446743798831644672
+floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(18446743798831644670, 274877906944) = 18446743523953737728
+floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(18446743523953737726, 549755813888) = 18446742974197923840
+floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(18446742974197923838, 1099511627776) = 18446741874686296064
+floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(18446741874686296062, 2199023255552) = 18446739675663040512
+floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(18446739675663040510, 4398046511104) = 18446735277616529408
+floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(18446735277616529406, 8796093022208) = 18446726481523507200
+floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(18446726481523507198, 17592186044416) = 18446708889337462784
+floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(18446708889337462782, 35184372088832) = 18446673704965373952
+floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(18446673704965373950, 70368744177664) = 18446603336221196288
+floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(18446603336221196286, 140737488355328) = 18446462598732840960
+floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(18446462598732840958, 281474976710656) = 18446181123756130304
+floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(18446181123756130302, 562949953421312) = 18445618173802708992
+floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(18445618173802708990, 1125899906842624) = 18444492273895866368
+floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(18444492273895866366, 2251799813685248) = 18442240474082181120
+floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(18442240474082181118, 4503599627370496) = 18437736874454810624
+floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(18437736874454810622, 9007199254740992) = 18428729675200069632
+floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(18428729675200069630, 18014398509481984) = 18410715276690587648
+floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(18410715276690587646, 36028797018963968) = 18374686479671623680
+floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(18374686479671623678, 72057594037927936) = 18302628885633695744
+floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(18302628885633695742, 144115188075855872) = 18158513697557839872
+floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(18158513697557839870, 288230376151711744) = 17870283321406128128
+floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(17870283321406128126, 576460752303423488) = 17293822569102704640
+floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(17293822569102704638, 1152921504606846976) = 16140901064495857664
+floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(16140901064495857662, 2305843009213693952) = 13835058055282163712
+floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(13835058055282163710, 4611686018427387904) = 9223372036854775808
+floor(9223372036854775808, 9223372036854775808) = 9223372036854775808, floor(9223372036854775810, 9223372036854775808) = 9223372036854775808, floor(9223372036854775806, 9223372036854775808) = 0
+
+
+ceiling_div
+
+signed char
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
+ceiling_div(-128, -128) = 2, ceiling_div(-126, -128) = 1, ceiling_div(126, -128) = 0
+
+unsigned char
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(253, 1) = 253
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(252, 2) = 126
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(250, 4) = 63
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(246, 8) = 31
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(238, 16) = 15
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(222, 32) = 7
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(190, 64) = 3
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(126, 128) = 1
+
+short int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
+ceiling_div(-32768, -32768) = 2, ceiling_div(-32766, -32768) = 1, ceiling_div(32766, -32768) = 0
+
+unsigned short int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(65533, 1) = 65533
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(65532, 2) = 32766
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(65530, 4) = 16383
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(65526, 8) = 8191
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(65518, 16) = 4095
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(65502, 32) = 2047
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(65470, 64) = 1023
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(65406, 128) = 511
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(65278, 256) = 255
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(65022, 512) = 127
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(64510, 1024) = 63
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(63486, 2048) = 31
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(61438, 4096) = 15
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(57342, 8192) = 7
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(49150, 16384) = 3
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(32766, 32768) = 1
+
+int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 0
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 0
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 0
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 0
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 0
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 0
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 0
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 0
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 0
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 0
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 0
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 0
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 0
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 0
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 0
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = -1, ceiling_div(-1073741826, 1073741824) = 0
+ceiling_div(-2147483648, -2147483648) = 0, ceiling_div(-2147483646, -2147483648) = 0, ceiling_div(2147483646, -2147483648) = 0
+
+unsigned int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(4294967293, 1) = 4294967293
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(4294967292, 2) = 2147483646
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(4294967290, 4) = 1073741823
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(4294967286, 8) = 536870911
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(4294967278, 16) = 268435455
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(4294967262, 32) = 134217727
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(4294967230, 64) = 67108863
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(4294967166, 128) = 33554431
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(4294967038, 256) = 16777215
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(4294966782, 512) = 8388607
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(4294966270, 1024) = 4194303
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(4294965246, 2048) = 2097151
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(4294963198, 4096) = 1048575
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(4294959102, 8192) = 524287
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(4294950910, 16384) = 262143
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(4294934526, 32768) = 131071
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(4294901758, 65536) = 65535
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(4294836222, 131072) = 32767
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(4294705150, 262144) = 16383
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(4294443006, 524288) = 8191
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(4293918718, 1048576) = 4095
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(4292870142, 2097152) = 2047
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(4290772990, 4194304) = 1023
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(4286578686, 8388608) = 511
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(4278190078, 16777216) = 255
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(4261412862, 33554432) = 127
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(4227858430, 67108864) = 63
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(4160749566, 134217728) = 31
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(4026531838, 268435456) = 15
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(3758096382, 536870912) = 7
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(3221225470, 1073741824) = 3
+ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 0, ceiling_div(2147483646, 2147483648) = 1
+
+long int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 0
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 0
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 0
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 0
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 0
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 0
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 0
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 0
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 0
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 0
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 0
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 0
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 0
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 0
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 0
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(-1073741826, 1073741824) = 0
+ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(-2147483650, 2147483648) = 0
+ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(-4294967298, 4294967296) = 0
+ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(-8589934594, 8589934592) = 0
+ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(-17179869186, 17179869184) = 0
+ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(-34359738370, 34359738368) = 0
+ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(-68719476738, 68719476736) = 0
+ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(-137438953474, 137438953472) = 0
+ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(-274877906946, 274877906944) = 0
+ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(-549755813890, 549755813888) = 0
+ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(-1099511627778, 1099511627776) = 0
+ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(-2199023255554, 2199023255552) = 0
+ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(-4398046511106, 4398046511104) = 0
+ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(-8796093022210, 8796093022208) = 0
+ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(-17592186044418, 17592186044416) = 0
+ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(-35184372088834, 35184372088832) = 0
+ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(-70368744177666, 70368744177664) = 0
+ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(-140737488355330, 140737488355328) = 0
+ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(-281474976710658, 281474976710656) = 0
+ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(-562949953421314, 562949953421312) = 0
+ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(-1125899906842626, 1125899906842624) = 0
+ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(-2251799813685250, 2251799813685248) = 0
+ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(-4503599627370498, 4503599627370496) = 0
+ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(-9007199254740994, 9007199254740992) = 0
+ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(-18014398509481986, 18014398509481984) = 0
+ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(-36028797018963970, 36028797018963968) = 0
+ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(-72057594037927938, 72057594037927936) = 0
+ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(-144115188075855874, 144115188075855872) = 0
+ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(-288230376151711746, 288230376151711744) = 0
+ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(-576460752303423490, 576460752303423488) = 0
+ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(-1152921504606846978, 1152921504606846976) = 0
+ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(-2305843009213693954, 2305843009213693952) = 0
+ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = -1, ceiling_div(-4611686018427387906, 4611686018427387904) = 0
+ceiling_div(-9223372036854775808, -9223372036854775808) = 0, ceiling_div(-9223372036854775806, -9223372036854775808) = 0, ceiling_div(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(18446744073709551613, 1) = 18446744073709551613
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(18446744073709551612, 2) = 9223372036854775806
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(18446744073709551610, 4) = 4611686018427387903
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(18446744073709551606, 8) = 2305843009213693951
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(18446744073709551598, 16) = 1152921504606846975
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(18446744073709551582, 32) = 576460752303423487
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(18446744073709551550, 64) = 288230376151711743
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(18446744073709551486, 128) = 144115188075855871
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(18446744073709551358, 256) = 72057594037927935
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(18446744073709551102, 512) = 36028797018963967
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(18446744073709550590, 1024) = 18014398509481983
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(18446744073709549566, 2048) = 9007199254740991
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(18446744073709547518, 4096) = 4503599627370495
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(18446744073709543422, 8192) = 2251799813685247
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(18446744073709535230, 16384) = 1125899906842623
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(18446744073709518846, 32768) = 562949953421311
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(18446744073709486078, 65536) = 281474976710655
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(18446744073709420542, 131072) = 140737488355327
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(18446744073709289470, 262144) = 70368744177663
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(18446744073709027326, 524288) = 35184372088831
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(18446744073708503038, 1048576) = 17592186044415
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(18446744073707454462, 2097152) = 8796093022207
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(18446744073705357310, 4194304) = 4398046511103
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(18446744073701163006, 8388608) = 2199023255551
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(18446744073692774398, 16777216) = 1099511627775
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(18446744073675997182, 33554432) = 549755813887
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(18446744073642442750, 67108864) = 274877906943
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(18446744073575333886, 134217728) = 137438953471
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(18446744073441116158, 268435456) = 68719476735
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(18446744073172680702, 536870912) = 34359738367
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(18446744072635809790, 1073741824) = 17179869183
+ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(18446744071562067966, 2147483648) = 8589934591
+ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(18446744069414584318, 4294967296) = 4294967295
+ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(18446744065119617022, 8589934592) = 2147483647
+ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(18446744056529682430, 17179869184) = 1073741823
+ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(18446744039349813246, 34359738368) = 536870911
+ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(18446744004990074878, 68719476736) = 268435455
+ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(18446743936270598142, 137438953472) = 134217727
+ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(18446743798831644670, 274877906944) = 67108863
+ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(18446743523953737726, 549755813888) = 33554431
+ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(18446742974197923838, 1099511627776) = 16777215
+ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(18446741874686296062, 2199023255552) = 8388607
+ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(18446739675663040510, 4398046511104) = 4194303
+ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(18446735277616529406, 8796093022208) = 2097151
+ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(18446726481523507198, 17592186044416) = 1048575
+ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(18446708889337462782, 35184372088832) = 524287
+ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(18446673704965373950, 70368744177664) = 262143
+ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(18446603336221196286, 140737488355328) = 131071
+ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(18446462598732840958, 281474976710656) = 65535
+ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(18446181123756130302, 562949953421312) = 32767
+ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(18445618173802708990, 1125899906842624) = 16383
+ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(18444492273895866366, 2251799813685248) = 8191
+ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(18442240474082181118, 4503599627370496) = 4095
+ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(18437736874454810622, 9007199254740992) = 2047
+ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(18428729675200069630, 18014398509481984) = 1023
+ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(18410715276690587646, 36028797018963968) = 511
+ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(18374686479671623678, 72057594037927936) = 255
+ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(18302628885633695742, 144115188075855872) = 127
+ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(18158513697557839870, 288230376151711744) = 63
+ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(17870283321406128126, 576460752303423488) = 31
+ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(17293822569102704638, 1152921504606846976) = 15
+ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(16140901064495857662, 2305843009213693952) = 7
+ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = 2, ceiling_div(13835058055282163710, 4611686018427387904) = 3
+ceiling_div(9223372036854775808, 9223372036854775808) = 1, ceiling_div(9223372036854775810, 9223372036854775808) = 0, ceiling_div(9223372036854775806, 9223372036854775808) = 1
+
+long long int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 0
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 0
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 0
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 0
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 0
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 0
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 0
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 0
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 0
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 0
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 0
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 0
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 0
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 0
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 0
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(-1073741826, 1073741824) = 0
+ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(-2147483650, 2147483648) = 0
+ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(-4294967298, 4294967296) = 0
+ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(-8589934594, 8589934592) = 0
+ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(-17179869186, 17179869184) = 0
+ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(-34359738370, 34359738368) = 0
+ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(-68719476738, 68719476736) = 0
+ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(-137438953474, 137438953472) = 0
+ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(-274877906946, 274877906944) = 0
+ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(-549755813890, 549755813888) = 0
+ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(-1099511627778, 1099511627776) = 0
+ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(-2199023255554, 2199023255552) = 0
+ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(-4398046511106, 4398046511104) = 0
+ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(-8796093022210, 8796093022208) = 0
+ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(-17592186044418, 17592186044416) = 0
+ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(-35184372088834, 35184372088832) = 0
+ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(-70368744177666, 70368744177664) = 0
+ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(-140737488355330, 140737488355328) = 0
+ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(-281474976710658, 281474976710656) = 0
+ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(-562949953421314, 562949953421312) = 0
+ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(-1125899906842626, 1125899906842624) = 0
+ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(-2251799813685250, 2251799813685248) = 0
+ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(-4503599627370498, 4503599627370496) = 0
+ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(-9007199254740994, 9007199254740992) = 0
+ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(-18014398509481986, 18014398509481984) = 0
+ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(-36028797018963970, 36028797018963968) = 0
+ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(-72057594037927938, 72057594037927936) = 0
+ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(-144115188075855874, 144115188075855872) = 0
+ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(-288230376151711746, 288230376151711744) = 0
+ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(-576460752303423490, 576460752303423488) = 0
+ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(-1152921504606846978, 1152921504606846976) = 0
+ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(-2305843009213693954, 2305843009213693952) = 0
+ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = -1, ceiling_div(-4611686018427387906, 4611686018427387904) = 0
+ceiling_div(-9223372036854775808, -9223372036854775808) = 0, ceiling_div(-9223372036854775806, -9223372036854775808) = 0, ceiling_div(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long long int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(18446744073709551613, 1) = 18446744073709551613
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(18446744073709551612, 2) = 9223372036854775806
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(18446744073709551610, 4) = 4611686018427387903
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(18446744073709551606, 8) = 2305843009213693951
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(18446744073709551598, 16) = 1152921504606846975
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(18446744073709551582, 32) = 576460752303423487
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(18446744073709551550, 64) = 288230376151711743
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(18446744073709551486, 128) = 144115188075855871
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(18446744073709551358, 256) = 72057594037927935
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(18446744073709551102, 512) = 36028797018963967
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(18446744073709550590, 1024) = 18014398509481983
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(18446744073709549566, 2048) = 9007199254740991
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(18446744073709547518, 4096) = 4503599627370495
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(18446744073709543422, 8192) = 2251799813685247
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(18446744073709535230, 16384) = 1125899906842623
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(18446744073709518846, 32768) = 562949953421311
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(18446744073709486078, 65536) = 281474976710655
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(18446744073709420542, 131072) = 140737488355327
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(18446744073709289470, 262144) = 70368744177663
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(18446744073709027326, 524288) = 35184372088831
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(18446744073708503038, 1048576) = 17592186044415
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(18446744073707454462, 2097152) = 8796093022207
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(18446744073705357310, 4194304) = 4398046511103
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(18446744073701163006, 8388608) = 2199023255551
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(18446744073692774398, 16777216) = 1099511627775
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(18446744073675997182, 33554432) = 549755813887
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(18446744073642442750, 67108864) = 274877906943
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(18446744073575333886, 134217728) = 137438953471
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(18446744073441116158, 268435456) = 68719476735
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(18446744073172680702, 536870912) = 34359738367
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(18446744072635809790, 1073741824) = 17179869183
+ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(18446744071562067966, 2147483648) = 8589934591
+ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(18446744069414584318, 4294967296) = 4294967295
+ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(18446744065119617022, 8589934592) = 2147483647
+ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(18446744056529682430, 17179869184) = 1073741823
+ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(18446744039349813246, 34359738368) = 536870911
+ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(18446744004990074878, 68719476736) = 268435455
+ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(18446743936270598142, 137438953472) = 134217727
+ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(18446743798831644670, 274877906944) = 67108863
+ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(18446743523953737726, 549755813888) = 33554431
+ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(18446742974197923838, 1099511627776) = 16777215
+ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(18446741874686296062, 2199023255552) = 8388607
+ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(18446739675663040510, 4398046511104) = 4194303
+ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(18446735277616529406, 8796093022208) = 2097151
+ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(18446726481523507198, 17592186044416) = 1048575
+ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(18446708889337462782, 35184372088832) = 524287
+ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(18446673704965373950, 70368744177664) = 262143
+ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(18446603336221196286, 140737488355328) = 131071
+ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(18446462598732840958, 281474976710656) = 65535
+ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(18446181123756130302, 562949953421312) = 32767
+ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(18445618173802708990, 1125899906842624) = 16383
+ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(18444492273895866366, 2251799813685248) = 8191
+ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(18442240474082181118, 4503599627370496) = 4095
+ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(18437736874454810622, 9007199254740992) = 2047
+ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(18428729675200069630, 18014398509481984) = 1023
+ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(18410715276690587646, 36028797018963968) = 511
+ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(18374686479671623678, 72057594037927936) = 255
+ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(18302628885633695742, 144115188075855872) = 127
+ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(18158513697557839870, 288230376151711744) = 63
+ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(17870283321406128126, 576460752303423488) = 31
+ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(17293822569102704638, 1152921504606846976) = 15
+ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(16140901064495857662, 2305843009213693952) = 7
+ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = 2, ceiling_div(13835058055282163710, 4611686018427387904) = 3
+ceiling_div(9223372036854775808, 9223372036854775808) = 1, ceiling_div(9223372036854775810, 9223372036854775808) = 0, ceiling_div(9223372036854775806, 9223372036854775808) = 1
+
+
+ceiling
+
+signed char
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
+ceiling(64, 64) = 64, ceiling(66, 64) = -128, ceiling(-66, 64) = 0
+ceiling(-128, -128) = -128, ceiling(-126, -128) = -128, ceiling(126, -128) = 0
+
+unsigned char
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(253, 1) = 253
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(252, 2) = 252
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(250, 4) = 252
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(246, 8) = 248
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(238, 16) = 240
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(222, 32) = 224
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(190, 64) = 192
+ceiling(128, 128) = 128, ceiling(130, 128) = 0, ceiling(126, 128) = 128
+
+short int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = -32768, ceiling(-16386, 16384) = 0
+ceiling(-32768, -32768) = -32768, ceiling(-32766, -32768) = -32768, ceiling(32766, -32768) = 0
+
+unsigned short int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(65533, 1) = 65533
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(65532, 2) = 65532
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(65530, 4) = 65532
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(65526, 8) = 65528
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(65518, 16) = 65520
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(65502, 32) = 65504
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(65470, 64) = 65472
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(65406, 128) = 65408
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(65278, 256) = 65280
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(65022, 512) = 65024
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(64510, 1024) = 64512
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(63486, 2048) = 63488
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(61438, 4096) = 61440
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(57342, 8192) = 57344
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(49150, 16384) = 49152
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 0, ceiling(32766, 32768) = 32768
+
+int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 0
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 0
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 0
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 0
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 0
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 0
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 0
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 0
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 0
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 0
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 0
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 0
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 0
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 0
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 0
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 0
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = -1073741824, ceiling(-1073741826, 1073741824) = 0
+ceiling(-2147483648, -2147483648) = -2147483648, ceiling(-2147483646, -2147483648) = 0, ceiling(2147483646, -2147483648) = 0
+
+unsigned int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(4294967293, 1) = 4294967293
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(4294967292, 2) = 4294967292
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(4294967290, 4) = 4294967292
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(4294967286, 8) = 4294967288
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(4294967278, 16) = 4294967280
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(4294967262, 32) = 4294967264
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(4294967230, 64) = 4294967232
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(4294967166, 128) = 4294967168
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(4294967038, 256) = 4294967040
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(4294966782, 512) = 4294966784
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(4294966270, 1024) = 4294966272
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(4294965246, 2048) = 4294965248
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(4294963198, 4096) = 4294963200
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(4294959102, 8192) = 4294959104
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(4294950910, 16384) = 4294950912
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(4294934526, 32768) = 4294934528
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(4294901758, 65536) = 4294901760
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(4294836222, 131072) = 4294836224
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(4294705150, 262144) = 4294705152
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(4294443006, 524288) = 4294443008
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(4293918718, 1048576) = 4293918720
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(4292870142, 2097152) = 4292870144
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(4290772990, 4194304) = 4290772992
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(4286578686, 8388608) = 4286578688
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(4278190078, 16777216) = 4278190080
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(4261412862, 33554432) = 4261412864
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(4227858430, 67108864) = 4227858432
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(4160749566, 134217728) = 4160749568
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(4026531838, 268435456) = 4026531840
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(3758096382, 536870912) = 3758096384
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(3221225470, 1073741824) = 3221225472
+ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 0, ceiling(2147483646, 2147483648) = 2147483648
+
+long int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 0
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 0
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 0
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 0
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 0
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 0
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 0
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 0
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 0
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 0
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 0
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 0
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 0
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 0
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 0
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 0
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(-1073741826, 1073741824) = 0
+ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(-2147483650, 2147483648) = 0
+ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(-4294967298, 4294967296) = 0
+ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(-8589934594, 8589934592) = 0
+ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(-17179869186, 17179869184) = 0
+ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(-34359738370, 34359738368) = 0
+ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(-68719476738, 68719476736) = 0
+ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(-137438953474, 137438953472) = 0
+ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(-274877906946, 274877906944) = 0
+ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(-549755813890, 549755813888) = 0
+ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(-1099511627778, 1099511627776) = 0
+ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(-2199023255554, 2199023255552) = 0
+ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(-4398046511106, 4398046511104) = 0
+ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(-8796093022210, 8796093022208) = 0
+ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(-17592186044418, 17592186044416) = 0
+ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(-35184372088834, 35184372088832) = 0
+ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(-70368744177666, 70368744177664) = 0
+ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(-140737488355330, 140737488355328) = 0
+ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(-281474976710658, 281474976710656) = 0
+ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(-562949953421314, 562949953421312) = 0
+ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(-1125899906842626, 1125899906842624) = 0
+ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(-2251799813685250, 2251799813685248) = 0
+ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(-4503599627370498, 4503599627370496) = 0
+ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(-9007199254740994, 9007199254740992) = 0
+ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(-18014398509481986, 18014398509481984) = 0
+ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(-36028797018963970, 36028797018963968) = 0
+ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(-72057594037927938, 72057594037927936) = 0
+ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(-144115188075855874, 144115188075855872) = 0
+ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(-288230376151711746, 288230376151711744) = 0
+ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(-576460752303423490, 576460752303423488) = 0
+ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(-1152921504606846978, 1152921504606846976) = 0
+ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(-2305843009213693954, 2305843009213693952) = 0
+ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = -4611686018427387904, ceiling(-4611686018427387906, 4611686018427387904) = 0
+ceiling(-9223372036854775808, -9223372036854775808) = -9223372036854775808, ceiling(-9223372036854775806, -9223372036854775808) = 0, ceiling(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(18446744073709551613, 1) = 18446744073709551613
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(18446744073709551612, 2) = 18446744073709551612
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(18446744073709551610, 4) = 18446744073709551612
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(18446744073709551606, 8) = 18446744073709551608
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(18446744073709551598, 16) = 18446744073709551600
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(18446744073709551582, 32) = 18446744073709551584
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(18446744073709551550, 64) = 18446744073709551552
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(18446744073709551486, 128) = 18446744073709551488
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(18446744073709551358, 256) = 18446744073709551360
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(18446744073709551102, 512) = 18446744073709551104
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(18446744073709550590, 1024) = 18446744073709550592
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(18446744073709549566, 2048) = 18446744073709549568
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(18446744073709547518, 4096) = 18446744073709547520
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(18446744073709543422, 8192) = 18446744073709543424
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(18446744073709535230, 16384) = 18446744073709535232
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(18446744073709518846, 32768) = 18446744073709518848
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(18446744073709486078, 65536) = 18446744073709486080
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(18446744073709420542, 131072) = 18446744073709420544
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(18446744073709289470, 262144) = 18446744073709289472
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(18446744073709027326, 524288) = 18446744073709027328
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(18446744073708503038, 1048576) = 18446744073708503040
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(18446744073707454462, 2097152) = 18446744073707454464
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(18446744073705357310, 4194304) = 18446744073705357312
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(18446744073701163006, 8388608) = 18446744073701163008
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(18446744073692774398, 16777216) = 18446744073692774400
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(18446744073675997182, 33554432) = 18446744073675997184
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(18446744073642442750, 67108864) = 18446744073642442752
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(18446744073575333886, 134217728) = 18446744073575333888
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(18446744073441116158, 268435456) = 18446744073441116160
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(18446744073172680702, 536870912) = 18446744073172680704
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(18446744072635809790, 1073741824) = 18446744072635809792
+ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(18446744071562067966, 2147483648) = 18446744071562067968
+ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(18446744069414584318, 4294967296) = 18446744069414584320
+ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(18446744065119617022, 8589934592) = 18446744065119617024
+ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(18446744056529682430, 17179869184) = 18446744056529682432
+ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(18446744039349813246, 34359738368) = 18446744039349813248
+ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(18446744004990074878, 68719476736) = 18446744004990074880
+ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(18446743936270598142, 137438953472) = 18446743936270598144
+ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(18446743798831644670, 274877906944) = 18446743798831644672
+ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(18446743523953737726, 549755813888) = 18446743523953737728
+ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(18446742974197923838, 1099511627776) = 18446742974197923840
+ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(18446741874686296062, 2199023255552) = 18446741874686296064
+ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(18446739675663040510, 4398046511104) = 18446739675663040512
+ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(18446735277616529406, 8796093022208) = 18446735277616529408
+ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(18446726481523507198, 17592186044416) = 18446726481523507200
+ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(18446708889337462782, 35184372088832) = 18446708889337462784
+ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(18446673704965373950, 70368744177664) = 18446673704965373952
+ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(18446603336221196286, 140737488355328) = 18446603336221196288
+ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(18446462598732840958, 281474976710656) = 18446462598732840960
+ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(18446181123756130302, 562949953421312) = 18446181123756130304
+ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(18445618173802708990, 1125899906842624) = 18445618173802708992
+ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(18444492273895866366, 2251799813685248) = 18444492273895866368
+ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(18442240474082181118, 4503599627370496) = 18442240474082181120
+ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(18437736874454810622, 9007199254740992) = 18437736874454810624
+ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(18428729675200069630, 18014398509481984) = 18428729675200069632
+ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(18410715276690587646, 36028797018963968) = 18410715276690587648
+ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(18374686479671623678, 72057594037927936) = 18374686479671623680
+ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(18302628885633695742, 144115188075855872) = 18302628885633695744
+ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(18158513697557839870, 288230376151711744) = 18158513697557839872
+ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(17870283321406128126, 576460752303423488) = 17870283321406128128
+ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(17293822569102704638, 1152921504606846976) = 17293822569102704640
+ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(16140901064495857662, 2305843009213693952) = 16140901064495857664
+ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = 9223372036854775808, ceiling(13835058055282163710, 4611686018427387904) = 13835058055282163712
+ceiling(9223372036854775808, 9223372036854775808) = 9223372036854775808, ceiling(9223372036854775810, 9223372036854775808) = 0, ceiling(9223372036854775806, 9223372036854775808) = 9223372036854775808
+
+long long int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 0
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 0
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 0
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 0
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 0
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 0
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 0
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 0
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 0
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 0
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 0
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 0
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 0
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 0
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 0
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 0
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(-1073741826, 1073741824) = 0
+ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(-2147483650, 2147483648) = 0
+ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(-4294967298, 4294967296) = 0
+ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(-8589934594, 8589934592) = 0
+ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(-17179869186, 17179869184) = 0
+ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(-34359738370, 34359738368) = 0
+ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(-68719476738, 68719476736) = 0
+ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(-137438953474, 137438953472) = 0
+ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(-274877906946, 274877906944) = 0
+ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(-549755813890, 549755813888) = 0
+ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(-1099511627778, 1099511627776) = 0
+ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(-2199023255554, 2199023255552) = 0
+ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(-4398046511106, 4398046511104) = 0
+ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(-8796093022210, 8796093022208) = 0
+ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(-17592186044418, 17592186044416) = 0
+ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(-35184372088834, 35184372088832) = 0
+ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(-70368744177666, 70368744177664) = 0
+ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(-140737488355330, 140737488355328) = 0
+ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(-281474976710658, 281474976710656) = 0
+ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(-562949953421314, 562949953421312) = 0
+ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(-1125899906842626, 1125899906842624) = 0
+ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(-2251799813685250, 2251799813685248) = 0
+ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(-4503599627370498, 4503599627370496) = 0
+ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(-9007199254740994, 9007199254740992) = 0
+ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(-18014398509481986, 18014398509481984) = 0
+ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(-36028797018963970, 36028797018963968) = 0
+ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(-72057594037927938, 72057594037927936) = 0
+ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(-144115188075855874, 144115188075855872) = 0
+ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(-288230376151711746, 288230376151711744) = 0
+ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(-576460752303423490, 576460752303423488) = 0
+ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(-1152921504606846978, 1152921504606846976) = 0
+ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(-2305843009213693954, 2305843009213693952) = 0
+ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = -4611686018427387904, ceiling(-4611686018427387906, 4611686018427387904) = 0
+ceiling(-9223372036854775808, -9223372036854775808) = -9223372036854775808, ceiling(-9223372036854775806, -9223372036854775808) = 0, ceiling(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long long int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(18446744073709551613, 1) = 18446744073709551613
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(18446744073709551612, 2) = 18446744073709551612
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(18446744073709551610, 4) = 18446744073709551612
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(18446744073709551606, 8) = 18446744073709551608
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(18446744073709551598, 16) = 18446744073709551600
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(18446744073709551582, 32) = 18446744073709551584
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(18446744073709551550, 64) = 18446744073709551552
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(18446744073709551486, 128) = 18446744073709551488
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(18446744073709551358, 256) = 18446744073709551360
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(18446744073709551102, 512) = 18446744073709551104
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(18446744073709550590, 1024) = 18446744073709550592
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(18446744073709549566, 2048) = 18446744073709549568
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(18446744073709547518, 4096) = 18446744073709547520
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(18446744073709543422, 8192) = 18446744073709543424
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(18446744073709535230, 16384) = 18446744073709535232
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(18446744073709518846, 32768) = 18446744073709518848
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(18446744073709486078, 65536) = 18446744073709486080
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(18446744073709420542, 131072) = 18446744073709420544
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(18446744073709289470, 262144) = 18446744073709289472
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(18446744073709027326, 524288) = 18446744073709027328
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(18446744073708503038, 1048576) = 18446744073708503040
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(18446744073707454462, 2097152) = 18446744073707454464
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(18446744073705357310, 4194304) = 18446744073705357312
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(18446744073701163006, 8388608) = 18446744073701163008
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(18446744073692774398, 16777216) = 18446744073692774400
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(18446744073675997182, 33554432) = 18446744073675997184
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(18446744073642442750, 67108864) = 18446744073642442752
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(18446744073575333886, 134217728) = 18446744073575333888
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(18446744073441116158, 268435456) = 18446744073441116160
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(18446744073172680702, 536870912) = 18446744073172680704
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(18446744072635809790, 1073741824) = 18446744072635809792
+ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(18446744071562067966, 2147483648) = 18446744071562067968
+ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(18446744069414584318, 4294967296) = 18446744069414584320
+ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(18446744065119617022, 8589934592) = 18446744065119617024
+ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(18446744056529682430, 17179869184) = 18446744056529682432
+ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(18446744039349813246, 34359738368) = 18446744039349813248
+ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(18446744004990074878, 68719476736) = 18446744004990074880
+ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(18446743936270598142, 137438953472) = 18446743936270598144
+ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(18446743798831644670, 274877906944) = 18446743798831644672
+ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(18446743523953737726, 549755813888) = 18446743523953737728
+ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(18446742974197923838, 1099511627776) = 18446742974197923840
+ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(18446741874686296062, 2199023255552) = 18446741874686296064
+ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(18446739675663040510, 4398046511104) = 18446739675663040512
+ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(18446735277616529406, 8796093022208) = 18446735277616529408
+ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(18446726481523507198, 17592186044416) = 18446726481523507200
+ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(18446708889337462782, 35184372088832) = 18446708889337462784
+ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(18446673704965373950, 70368744177664) = 18446673704965373952
+ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(18446603336221196286, 140737488355328) = 18446603336221196288
+ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(18446462598732840958, 281474976710656) = 18446462598732840960
+ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(18446181123756130302, 562949953421312) = 18446181123756130304
+ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(18445618173802708990, 1125899906842624) = 18445618173802708992
+ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(18444492273895866366, 2251799813685248) = 18444492273895866368
+ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(18442240474082181118, 4503599627370496) = 18442240474082181120
+ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(18437736874454810622, 9007199254740992) = 18437736874454810624
+ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(18428729675200069630, 18014398509481984) = 18428729675200069632
+ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(18410715276690587646, 36028797018963968) = 18410715276690587648
+ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(18374686479671623678, 72057594037927936) = 18374686479671623680
+ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(18302628885633695742, 144115188075855872) = 18302628885633695744
+ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(18158513697557839870, 288230376151711744) = 18158513697557839872
+ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(17870283321406128126, 576460752303423488) = 17870283321406128128
+ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(17293822569102704638, 1152921504606846976) = 17293822569102704640
+ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(16140901064495857662, 2305843009213693952) = 16140901064495857664
+ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = 9223372036854775808, ceiling(13835058055282163710, 4611686018427387904) = 13835058055282163712
+ceiling(9223372036854775808, 9223372036854775808) = 9223372036854775808, ceiling(9223372036854775810, 9223372036854775808) = 0, ceiling(9223372036854775806, 9223372036854775808) = 9223372036854775808
+
+floor:1. 1. 1.
+ceil:2. 2. 2.
+trunc:3. 3. 3.
+rint:2. 2. 2.
+rint:2 2 2
+rint:2 2 2
+lrint:2 2 2
+llrint:2 2 2
+nearbyint:4. 4. 4.
+round:2. 2. 2.
+round:2 2 2
+round:2 2 2
+lround:2 2 2
+llround:2 2 2
+copysign:-1. -1. -1.
+frexp:0.5 3 0.5 3 0.5 3
+ldexp:8. 8. 8.
+modf:2. 0.3 2. 0.3 2. 0.3
+modf:2., 0.3 2., 0.3 2., 0.3
+nextafter:2. 2. 2.
+nexttoward:2. 2. 2.
+scalbn:16. 16. 16.
+scalbln:16. 16. 16.
Index: tests/.expect/math4.x86.txt
===================================================================
--- tests/.expect/math4.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/math4.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,1004 @@
+
+floor
+
+signed char
+floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
+floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
+floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
+floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
+floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
+floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
+floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
+floor(-128, -128) = -128, floor(-126, -128) = 0, floor(126, -128) = 0
+
+unsigned char
+floor(1, 1) = 1, floor(3, 1) = 3, floor(253, 1) = 253
+floor(2, 2) = 2, floor(4, 2) = 4, floor(252, 2) = 252
+floor(4, 4) = 4, floor(6, 4) = 4, floor(250, 4) = 248
+floor(8, 8) = 8, floor(10, 8) = 8, floor(246, 8) = 240
+floor(16, 16) = 16, floor(18, 16) = 16, floor(238, 16) = 224
+floor(32, 32) = 32, floor(34, 32) = 32, floor(222, 32) = 192
+floor(64, 64) = 64, floor(66, 64) = 64, floor(190, 64) = 128
+floor(128, 128) = 128, floor(130, 128) = 128, floor(126, 128) = 0
+
+short int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
+floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
+floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
+floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
+floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
+floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
+floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
+floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
+floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
+floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
+floor(-32768, -32768) = -32768, floor(-32766, -32768) = 0, floor(32766, -32768) = 0
+
+unsigned short int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(65533, 1) = 65533
+floor(2, 2) = 2, floor(4, 2) = 4, floor(65532, 2) = 65532
+floor(4, 4) = 4, floor(6, 4) = 4, floor(65530, 4) = 65528
+floor(8, 8) = 8, floor(10, 8) = 8, floor(65526, 8) = 65520
+floor(16, 16) = 16, floor(18, 16) = 16, floor(65518, 16) = 65504
+floor(32, 32) = 32, floor(34, 32) = 32, floor(65502, 32) = 65472
+floor(64, 64) = 64, floor(66, 64) = 64, floor(65470, 64) = 65408
+floor(128, 128) = 128, floor(130, 128) = 128, floor(65406, 128) = 65280
+floor(256, 256) = 256, floor(258, 256) = 256, floor(65278, 256) = 65024
+floor(512, 512) = 512, floor(514, 512) = 512, floor(65022, 512) = 64512
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(64510, 1024) = 63488
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(63486, 2048) = 61440
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(61438, 4096) = 57344
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(57342, 8192) = 49152
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(49150, 16384) = 32768
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(32766, 32768) = 0
+
+int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
+floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
+floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
+floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
+floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
+floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
+floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
+floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
+floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
+floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(-32770, 32768) = -32768
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(-65538, 65536) = -65536
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(-131074, 131072) = -131072
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(-262146, 262144) = -262144
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(-524290, 524288) = -524288
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(-1048578, 1048576) = -1048576
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(-2097154, 2097152) = -2097152
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(-4194306, 4194304) = -4194304
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(-8388610, 8388608) = -8388608
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(-16777218, 16777216) = -16777216
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(-33554434, 33554432) = -33554432
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(-67108866, 67108864) = -67108864
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(-134217730, 134217728) = -134217728
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(-268435458, 268435456) = -268435456
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(-536870914, 536870912) = -536870912
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(-1073741826, 1073741824) = -1073741824
+floor(-2147483648, -2147483648) = -2147483648, floor(-2147483646, -2147483648) = 0, floor(2147483646, -2147483648) = 0
+
+unsigned int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(4294967293, 1) = 4294967293
+floor(2, 2) = 2, floor(4, 2) = 4, floor(4294967292, 2) = 4294967292
+floor(4, 4) = 4, floor(6, 4) = 4, floor(4294967290, 4) = 4294967288
+floor(8, 8) = 8, floor(10, 8) = 8, floor(4294967286, 8) = 4294967280
+floor(16, 16) = 16, floor(18, 16) = 16, floor(4294967278, 16) = 4294967264
+floor(32, 32) = 32, floor(34, 32) = 32, floor(4294967262, 32) = 4294967232
+floor(64, 64) = 64, floor(66, 64) = 64, floor(4294967230, 64) = 4294967168
+floor(128, 128) = 128, floor(130, 128) = 128, floor(4294967166, 128) = 4294967040
+floor(256, 256) = 256, floor(258, 256) = 256, floor(4294967038, 256) = 4294966784
+floor(512, 512) = 512, floor(514, 512) = 512, floor(4294966782, 512) = 4294966272
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(4294966270, 1024) = 4294965248
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(4294965246, 2048) = 4294963200
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(4294963198, 4096) = 4294959104
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(4294959102, 8192) = 4294950912
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(4294950910, 16384) = 4294934528
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(4294934526, 32768) = 4294901760
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(4294901758, 65536) = 4294836224
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(4294836222, 131072) = 4294705152
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(4294705150, 262144) = 4294443008
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(4294443006, 524288) = 4293918720
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(4293918718, 1048576) = 4292870144
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(4292870142, 2097152) = 4290772992
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(4290772990, 4194304) = 4286578688
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(4286578686, 8388608) = 4278190080
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(4278190078, 16777216) = 4261412864
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(4261412862, 33554432) = 4227858432
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(4227858430, 67108864) = 4160749568
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(4160749566, 134217728) = 4026531840
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(4026531838, 268435456) = 3758096384
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(3758096382, 536870912) = 3221225472
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(3221225470, 1073741824) = 2147483648
+floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(2147483646, 2147483648) = 0
+
+long int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
+floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
+floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
+floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
+floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
+floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
+floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
+floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
+floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
+floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(-32770, 32768) = -32768
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(-65538, 65536) = -65536
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(-131074, 131072) = -131072
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(-262146, 262144) = -262144
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(-524290, 524288) = -524288
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(-1048578, 1048576) = -1048576
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(-2097154, 2097152) = -2097152
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(-4194306, 4194304) = -4194304
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(-8388610, 8388608) = -8388608
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(-16777218, 16777216) = -16777216
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(-33554434, 33554432) = -33554432
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(-67108866, 67108864) = -67108864
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(-134217730, 134217728) = -134217728
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(-268435458, 268435456) = -268435456
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(-536870914, 536870912) = -536870912
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(-1073741826, 1073741824) = -1073741824
+floor(-2147483648, -2147483648) = -2147483648, floor(-2147483646, -2147483648) = 0, floor(2147483646, -2147483648) = 0
+
+unsigned long int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(4294967293, 1) = 4294967293
+floor(2, 2) = 2, floor(4, 2) = 4, floor(4294967292, 2) = 4294967292
+floor(4, 4) = 4, floor(6, 4) = 4, floor(4294967290, 4) = 4294967288
+floor(8, 8) = 8, floor(10, 8) = 8, floor(4294967286, 8) = 4294967280
+floor(16, 16) = 16, floor(18, 16) = 16, floor(4294967278, 16) = 4294967264
+floor(32, 32) = 32, floor(34, 32) = 32, floor(4294967262, 32) = 4294967232
+floor(64, 64) = 64, floor(66, 64) = 64, floor(4294967230, 64) = 4294967168
+floor(128, 128) = 128, floor(130, 128) = 128, floor(4294967166, 128) = 4294967040
+floor(256, 256) = 256, floor(258, 256) = 256, floor(4294967038, 256) = 4294966784
+floor(512, 512) = 512, floor(514, 512) = 512, floor(4294966782, 512) = 4294966272
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(4294966270, 1024) = 4294965248
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(4294965246, 2048) = 4294963200
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(4294963198, 4096) = 4294959104
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(4294959102, 8192) = 4294950912
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(4294950910, 16384) = 4294934528
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(4294934526, 32768) = 4294901760
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(4294901758, 65536) = 4294836224
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(4294836222, 131072) = 4294705152
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(4294705150, 262144) = 4294443008
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(4294443006, 524288) = 4293918720
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(4293918718, 1048576) = 4292870144
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(4292870142, 2097152) = 4290772992
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(4290772990, 4194304) = 4286578688
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(4286578686, 8388608) = 4278190080
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(4278190078, 16777216) = 4261412864
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(4261412862, 33554432) = 4227858432
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(4227858430, 67108864) = 4160749568
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(4160749566, 134217728) = 4026531840
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(4026531838, 268435456) = 3758096384
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(3758096382, 536870912) = 3221225472
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(3221225470, 1073741824) = 2147483648
+floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(2147483646, 2147483648) = 0
+
+long long int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(-3, 1) = -3
+floor(2, 2) = 2, floor(4, 2) = 4, floor(-4, 2) = -4
+floor(4, 4) = 4, floor(6, 4) = 4, floor(-6, 4) = -4
+floor(8, 8) = 8, floor(10, 8) = 8, floor(-10, 8) = -8
+floor(16, 16) = 16, floor(18, 16) = 16, floor(-18, 16) = -16
+floor(32, 32) = 32, floor(34, 32) = 32, floor(-34, 32) = -32
+floor(64, 64) = 64, floor(66, 64) = 64, floor(-66, 64) = -64
+floor(128, 128) = 128, floor(130, 128) = 128, floor(-130, 128) = -128
+floor(256, 256) = 256, floor(258, 256) = 256, floor(-258, 256) = -256
+floor(512, 512) = 512, floor(514, 512) = 512, floor(-514, 512) = -512
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(-1026, 1024) = -1024
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(-2050, 2048) = -2048
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(-4098, 4096) = -4096
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(-8194, 8192) = -8192
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(-16386, 16384) = -16384
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(-32770, 32768) = -32768
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(-65538, 65536) = -65536
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(-131074, 131072) = -131072
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(-262146, 262144) = -262144
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(-524290, 524288) = -524288
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(-1048578, 1048576) = -1048576
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(-2097154, 2097152) = -2097152
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(-4194306, 4194304) = -4194304
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(-8388610, 8388608) = -8388608
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(-16777218, 16777216) = -16777216
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(-33554434, 33554432) = -33554432
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(-67108866, 67108864) = -67108864
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(-134217730, 134217728) = -134217728
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(-268435458, 268435456) = -268435456
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(-536870914, 536870912) = -536870912
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(-1073741826, 1073741824) = -1073741824
+floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(-2147483650, 2147483648) = -2147483648
+floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(-4294967298, 4294967296) = -4294967296
+floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(-8589934594, 8589934592) = -8589934592
+floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(-17179869186, 17179869184) = -17179869184
+floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(-34359738370, 34359738368) = -34359738368
+floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(-68719476738, 68719476736) = -68719476736
+floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(-137438953474, 137438953472) = -137438953472
+floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(-274877906946, 274877906944) = -274877906944
+floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(-549755813890, 549755813888) = -549755813888
+floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(-1099511627778, 1099511627776) = -1099511627776
+floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(-2199023255554, 2199023255552) = -2199023255552
+floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(-4398046511106, 4398046511104) = -4398046511104
+floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(-8796093022210, 8796093022208) = -8796093022208
+floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(-17592186044418, 17592186044416) = -17592186044416
+floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(-35184372088834, 35184372088832) = -35184372088832
+floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(-70368744177666, 70368744177664) = -70368744177664
+floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(-140737488355330, 140737488355328) = -140737488355328
+floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(-281474976710658, 281474976710656) = -281474976710656
+floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(-562949953421314, 562949953421312) = -562949953421312
+floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(-1125899906842626, 1125899906842624) = -1125899906842624
+floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(-2251799813685250, 2251799813685248) = -2251799813685248
+floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(-4503599627370498, 4503599627370496) = -4503599627370496
+floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(-9007199254740994, 9007199254740992) = -9007199254740992
+floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(-18014398509481986, 18014398509481984) = -18014398509481984
+floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(-36028797018963970, 36028797018963968) = -36028797018963968
+floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(-72057594037927938, 72057594037927936) = -72057594037927936
+floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(-144115188075855874, 144115188075855872) = -144115188075855872
+floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(-288230376151711746, 288230376151711744) = -288230376151711744
+floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(-576460752303423490, 576460752303423488) = -576460752303423488
+floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(-1152921504606846978, 1152921504606846976) = -1152921504606846976
+floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(-2305843009213693954, 2305843009213693952) = -2305843009213693952
+floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(-4611686018427387906, 4611686018427387904) = -4611686018427387904
+floor(-9223372036854775808, -9223372036854775808) = -9223372036854775808, floor(-9223372036854775806, -9223372036854775808) = 0, floor(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long long int
+floor(1, 1) = 1, floor(3, 1) = 3, floor(18446744073709551613, 1) = 18446744073709551613
+floor(2, 2) = 2, floor(4, 2) = 4, floor(18446744073709551612, 2) = 18446744073709551612
+floor(4, 4) = 4, floor(6, 4) = 4, floor(18446744073709551610, 4) = 18446744073709551608
+floor(8, 8) = 8, floor(10, 8) = 8, floor(18446744073709551606, 8) = 18446744073709551600
+floor(16, 16) = 16, floor(18, 16) = 16, floor(18446744073709551598, 16) = 18446744073709551584
+floor(32, 32) = 32, floor(34, 32) = 32, floor(18446744073709551582, 32) = 18446744073709551552
+floor(64, 64) = 64, floor(66, 64) = 64, floor(18446744073709551550, 64) = 18446744073709551488
+floor(128, 128) = 128, floor(130, 128) = 128, floor(18446744073709551486, 128) = 18446744073709551360
+floor(256, 256) = 256, floor(258, 256) = 256, floor(18446744073709551358, 256) = 18446744073709551104
+floor(512, 512) = 512, floor(514, 512) = 512, floor(18446744073709551102, 512) = 18446744073709550592
+floor(1024, 1024) = 1024, floor(1026, 1024) = 1024, floor(18446744073709550590, 1024) = 18446744073709549568
+floor(2048, 2048) = 2048, floor(2050, 2048) = 2048, floor(18446744073709549566, 2048) = 18446744073709547520
+floor(4096, 4096) = 4096, floor(4098, 4096) = 4096, floor(18446744073709547518, 4096) = 18446744073709543424
+floor(8192, 8192) = 8192, floor(8194, 8192) = 8192, floor(18446744073709543422, 8192) = 18446744073709535232
+floor(16384, 16384) = 16384, floor(16386, 16384) = 16384, floor(18446744073709535230, 16384) = 18446744073709518848
+floor(32768, 32768) = 32768, floor(32770, 32768) = 32768, floor(18446744073709518846, 32768) = 18446744073709486080
+floor(65536, 65536) = 65536, floor(65538, 65536) = 65536, floor(18446744073709486078, 65536) = 18446744073709420544
+floor(131072, 131072) = 131072, floor(131074, 131072) = 131072, floor(18446744073709420542, 131072) = 18446744073709289472
+floor(262144, 262144) = 262144, floor(262146, 262144) = 262144, floor(18446744073709289470, 262144) = 18446744073709027328
+floor(524288, 524288) = 524288, floor(524290, 524288) = 524288, floor(18446744073709027326, 524288) = 18446744073708503040
+floor(1048576, 1048576) = 1048576, floor(1048578, 1048576) = 1048576, floor(18446744073708503038, 1048576) = 18446744073707454464
+floor(2097152, 2097152) = 2097152, floor(2097154, 2097152) = 2097152, floor(18446744073707454462, 2097152) = 18446744073705357312
+floor(4194304, 4194304) = 4194304, floor(4194306, 4194304) = 4194304, floor(18446744073705357310, 4194304) = 18446744073701163008
+floor(8388608, 8388608) = 8388608, floor(8388610, 8388608) = 8388608, floor(18446744073701163006, 8388608) = 18446744073692774400
+floor(16777216, 16777216) = 16777216, floor(16777218, 16777216) = 16777216, floor(18446744073692774398, 16777216) = 18446744073675997184
+floor(33554432, 33554432) = 33554432, floor(33554434, 33554432) = 33554432, floor(18446744073675997182, 33554432) = 18446744073642442752
+floor(67108864, 67108864) = 67108864, floor(67108866, 67108864) = 67108864, floor(18446744073642442750, 67108864) = 18446744073575333888
+floor(134217728, 134217728) = 134217728, floor(134217730, 134217728) = 134217728, floor(18446744073575333886, 134217728) = 18446744073441116160
+floor(268435456, 268435456) = 268435456, floor(268435458, 268435456) = 268435456, floor(18446744073441116158, 268435456) = 18446744073172680704
+floor(536870912, 536870912) = 536870912, floor(536870914, 536870912) = 536870912, floor(18446744073172680702, 536870912) = 18446744072635809792
+floor(1073741824, 1073741824) = 1073741824, floor(1073741826, 1073741824) = 1073741824, floor(18446744072635809790, 1073741824) = 18446744071562067968
+floor(2147483648, 2147483648) = 2147483648, floor(2147483650, 2147483648) = 2147483648, floor(18446744071562067966, 2147483648) = 18446744069414584320
+floor(4294967296, 4294967296) = 4294967296, floor(4294967298, 4294967296) = 4294967296, floor(18446744069414584318, 4294967296) = 18446744065119617024
+floor(8589934592, 8589934592) = 8589934592, floor(8589934594, 8589934592) = 8589934592, floor(18446744065119617022, 8589934592) = 18446744056529682432
+floor(17179869184, 17179869184) = 17179869184, floor(17179869186, 17179869184) = 17179869184, floor(18446744056529682430, 17179869184) = 18446744039349813248
+floor(34359738368, 34359738368) = 34359738368, floor(34359738370, 34359738368) = 34359738368, floor(18446744039349813246, 34359738368) = 18446744004990074880
+floor(68719476736, 68719476736) = 68719476736, floor(68719476738, 68719476736) = 68719476736, floor(18446744004990074878, 68719476736) = 18446743936270598144
+floor(137438953472, 137438953472) = 137438953472, floor(137438953474, 137438953472) = 137438953472, floor(18446743936270598142, 137438953472) = 18446743798831644672
+floor(274877906944, 274877906944) = 274877906944, floor(274877906946, 274877906944) = 274877906944, floor(18446743798831644670, 274877906944) = 18446743523953737728
+floor(549755813888, 549755813888) = 549755813888, floor(549755813890, 549755813888) = 549755813888, floor(18446743523953737726, 549755813888) = 18446742974197923840
+floor(1099511627776, 1099511627776) = 1099511627776, floor(1099511627778, 1099511627776) = 1099511627776, floor(18446742974197923838, 1099511627776) = 18446741874686296064
+floor(2199023255552, 2199023255552) = 2199023255552, floor(2199023255554, 2199023255552) = 2199023255552, floor(18446741874686296062, 2199023255552) = 18446739675663040512
+floor(4398046511104, 4398046511104) = 4398046511104, floor(4398046511106, 4398046511104) = 4398046511104, floor(18446739675663040510, 4398046511104) = 18446735277616529408
+floor(8796093022208, 8796093022208) = 8796093022208, floor(8796093022210, 8796093022208) = 8796093022208, floor(18446735277616529406, 8796093022208) = 18446726481523507200
+floor(17592186044416, 17592186044416) = 17592186044416, floor(17592186044418, 17592186044416) = 17592186044416, floor(18446726481523507198, 17592186044416) = 18446708889337462784
+floor(35184372088832, 35184372088832) = 35184372088832, floor(35184372088834, 35184372088832) = 35184372088832, floor(18446708889337462782, 35184372088832) = 18446673704965373952
+floor(70368744177664, 70368744177664) = 70368744177664, floor(70368744177666, 70368744177664) = 70368744177664, floor(18446673704965373950, 70368744177664) = 18446603336221196288
+floor(140737488355328, 140737488355328) = 140737488355328, floor(140737488355330, 140737488355328) = 140737488355328, floor(18446603336221196286, 140737488355328) = 18446462598732840960
+floor(281474976710656, 281474976710656) = 281474976710656, floor(281474976710658, 281474976710656) = 281474976710656, floor(18446462598732840958, 281474976710656) = 18446181123756130304
+floor(562949953421312, 562949953421312) = 562949953421312, floor(562949953421314, 562949953421312) = 562949953421312, floor(18446181123756130302, 562949953421312) = 18445618173802708992
+floor(1125899906842624, 1125899906842624) = 1125899906842624, floor(1125899906842626, 1125899906842624) = 1125899906842624, floor(18445618173802708990, 1125899906842624) = 18444492273895866368
+floor(2251799813685248, 2251799813685248) = 2251799813685248, floor(2251799813685250, 2251799813685248) = 2251799813685248, floor(18444492273895866366, 2251799813685248) = 18442240474082181120
+floor(4503599627370496, 4503599627370496) = 4503599627370496, floor(4503599627370498, 4503599627370496) = 4503599627370496, floor(18442240474082181118, 4503599627370496) = 18437736874454810624
+floor(9007199254740992, 9007199254740992) = 9007199254740992, floor(9007199254740994, 9007199254740992) = 9007199254740992, floor(18437736874454810622, 9007199254740992) = 18428729675200069632
+floor(18014398509481984, 18014398509481984) = 18014398509481984, floor(18014398509481986, 18014398509481984) = 18014398509481984, floor(18428729675200069630, 18014398509481984) = 18410715276690587648
+floor(36028797018963968, 36028797018963968) = 36028797018963968, floor(36028797018963970, 36028797018963968) = 36028797018963968, floor(18410715276690587646, 36028797018963968) = 18374686479671623680
+floor(72057594037927936, 72057594037927936) = 72057594037927936, floor(72057594037927938, 72057594037927936) = 72057594037927936, floor(18374686479671623678, 72057594037927936) = 18302628885633695744
+floor(144115188075855872, 144115188075855872) = 144115188075855872, floor(144115188075855874, 144115188075855872) = 144115188075855872, floor(18302628885633695742, 144115188075855872) = 18158513697557839872
+floor(288230376151711744, 288230376151711744) = 288230376151711744, floor(288230376151711746, 288230376151711744) = 288230376151711744, floor(18158513697557839870, 288230376151711744) = 17870283321406128128
+floor(576460752303423488, 576460752303423488) = 576460752303423488, floor(576460752303423490, 576460752303423488) = 576460752303423488, floor(17870283321406128126, 576460752303423488) = 17293822569102704640
+floor(1152921504606846976, 1152921504606846976) = 1152921504606846976, floor(1152921504606846978, 1152921504606846976) = 1152921504606846976, floor(17293822569102704638, 1152921504606846976) = 16140901064495857664
+floor(2305843009213693952, 2305843009213693952) = 2305843009213693952, floor(2305843009213693954, 2305843009213693952) = 2305843009213693952, floor(16140901064495857662, 2305843009213693952) = 13835058055282163712
+floor(4611686018427387904, 4611686018427387904) = 4611686018427387904, floor(4611686018427387906, 4611686018427387904) = 4611686018427387904, floor(13835058055282163710, 4611686018427387904) = 9223372036854775808
+floor(9223372036854775808, 9223372036854775808) = 9223372036854775808, floor(9223372036854775810, 9223372036854775808) = 9223372036854775808, floor(9223372036854775806, 9223372036854775808) = 0
+
+
+ceiling_div
+
+signed char
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
+ceiling_div(-128, -128) = 2, ceiling_div(-126, -128) = 1, ceiling_div(126, -128) = 0
+
+unsigned char
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(253, 1) = 253
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(252, 2) = 126
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(250, 4) = 63
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(246, 8) = 31
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(238, 16) = 15
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(222, 32) = 7
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(190, 64) = 3
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(126, 128) = 1
+
+short int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
+ceiling_div(-32768, -32768) = 2, ceiling_div(-32766, -32768) = 1, ceiling_div(32766, -32768) = 0
+
+unsigned short int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(65533, 1) = 65533
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(65532, 2) = 32766
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(65530, 4) = 16383
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(65526, 8) = 8191
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(65518, 16) = 4095
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(65502, 32) = 2047
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(65470, 64) = 1023
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(65406, 128) = 511
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(65278, 256) = 255
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(65022, 512) = 127
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(64510, 1024) = 63
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(63486, 2048) = 31
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(61438, 4096) = 15
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(57342, 8192) = 7
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(49150, 16384) = 3
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(32766, 32768) = 1
+
+int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 0
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 0
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 0
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 0
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 0
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 0
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 0
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 0
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 0
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 0
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 0
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 0
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 0
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 0
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 0
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = -1, ceiling_div(-1073741826, 1073741824) = 0
+ceiling_div(-2147483648, -2147483648) = 0, ceiling_div(-2147483646, -2147483648) = 0, ceiling_div(2147483646, -2147483648) = 0
+
+unsigned int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(4294967293, 1) = 4294967293
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(4294967292, 2) = 2147483646
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(4294967290, 4) = 1073741823
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(4294967286, 8) = 536870911
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(4294967278, 16) = 268435455
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(4294967262, 32) = 134217727
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(4294967230, 64) = 67108863
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(4294967166, 128) = 33554431
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(4294967038, 256) = 16777215
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(4294966782, 512) = 8388607
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(4294966270, 1024) = 4194303
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(4294965246, 2048) = 2097151
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(4294963198, 4096) = 1048575
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(4294959102, 8192) = 524287
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(4294950910, 16384) = 262143
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(4294934526, 32768) = 131071
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(4294901758, 65536) = 65535
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(4294836222, 131072) = 32767
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(4294705150, 262144) = 16383
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(4294443006, 524288) = 8191
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(4293918718, 1048576) = 4095
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(4292870142, 2097152) = 2047
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(4290772990, 4194304) = 1023
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(4286578686, 8388608) = 511
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(4278190078, 16777216) = 255
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(4261412862, 33554432) = 127
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(4227858430, 67108864) = 63
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(4160749566, 134217728) = 31
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(4026531838, 268435456) = 15
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(3758096382, 536870912) = 7
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(3221225470, 1073741824) = 3
+ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 0, ceiling_div(2147483646, 2147483648) = 1
+
+long int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 0
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 0
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 0
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 0
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 0
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 0
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 0
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 0
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 0
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 0
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 0
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 0
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 0
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 0
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 0
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = -1, ceiling_div(-1073741826, 1073741824) = 0
+ceiling_div(-2147483648, -2147483648) = 0, ceiling_div(-2147483646, -2147483648) = 0, ceiling_div(2147483646, -2147483648) = 0
+
+unsigned long int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(4294967293, 1) = 4294967293
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(4294967292, 2) = 2147483646
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(4294967290, 4) = 1073741823
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(4294967286, 8) = 536870911
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(4294967278, 16) = 268435455
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(4294967262, 32) = 134217727
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(4294967230, 64) = 67108863
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(4294967166, 128) = 33554431
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(4294967038, 256) = 16777215
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(4294966782, 512) = 8388607
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(4294966270, 1024) = 4194303
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(4294965246, 2048) = 2097151
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(4294963198, 4096) = 1048575
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(4294959102, 8192) = 524287
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(4294950910, 16384) = 262143
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(4294934526, 32768) = 131071
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(4294901758, 65536) = 65535
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(4294836222, 131072) = 32767
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(4294705150, 262144) = 16383
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(4294443006, 524288) = 8191
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(4293918718, 1048576) = 4095
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(4292870142, 2097152) = 2047
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(4290772990, 4194304) = 1023
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(4286578686, 8388608) = 511
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(4278190078, 16777216) = 255
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(4261412862, 33554432) = 127
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(4227858430, 67108864) = 63
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(4160749566, 134217728) = 31
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(4026531838, 268435456) = 15
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(3758096382, 536870912) = 7
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(3221225470, 1073741824) = 3
+ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 0, ceiling_div(2147483646, 2147483648) = 1
+
+long long int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -3
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -1
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 0
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 0
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 0
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 0
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 0
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 0
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 0
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 0
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 0
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 0
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 0
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 0
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 0
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 0
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 0
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 0
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 0
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 0
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 0
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 0
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 0
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 0
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 0
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 0
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 0
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 0
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 0
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 0
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(-1073741826, 1073741824) = 0
+ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(-2147483650, 2147483648) = 0
+ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(-4294967298, 4294967296) = 0
+ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(-8589934594, 8589934592) = 0
+ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(-17179869186, 17179869184) = 0
+ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(-34359738370, 34359738368) = 0
+ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(-68719476738, 68719476736) = 0
+ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(-137438953474, 137438953472) = 0
+ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(-274877906946, 274877906944) = 0
+ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(-549755813890, 549755813888) = 0
+ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(-1099511627778, 1099511627776) = 0
+ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(-2199023255554, 2199023255552) = 0
+ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(-4398046511106, 4398046511104) = 0
+ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(-8796093022210, 8796093022208) = 0
+ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(-17592186044418, 17592186044416) = 0
+ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(-35184372088834, 35184372088832) = 0
+ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(-70368744177666, 70368744177664) = 0
+ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(-140737488355330, 140737488355328) = 0
+ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(-281474976710658, 281474976710656) = 0
+ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(-562949953421314, 562949953421312) = 0
+ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(-1125899906842626, 1125899906842624) = 0
+ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(-2251799813685250, 2251799813685248) = 0
+ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(-4503599627370498, 4503599627370496) = 0
+ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(-9007199254740994, 9007199254740992) = 0
+ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(-18014398509481986, 18014398509481984) = 0
+ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(-36028797018963970, 36028797018963968) = 0
+ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(-72057594037927938, 72057594037927936) = 0
+ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(-144115188075855874, 144115188075855872) = 0
+ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(-288230376151711746, 288230376151711744) = 0
+ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(-576460752303423490, 576460752303423488) = 0
+ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(-1152921504606846978, 1152921504606846976) = 0
+ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(-2305843009213693954, 2305843009213693952) = 0
+ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = -1, ceiling_div(-4611686018427387906, 4611686018427387904) = 0
+ceiling_div(-9223372036854775808, -9223372036854775808) = 0, ceiling_div(-9223372036854775806, -9223372036854775808) = 0, ceiling_div(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long long int
+ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(18446744073709551613, 1) = 18446744073709551613
+ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(18446744073709551612, 2) = 9223372036854775806
+ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(18446744073709551610, 4) = 4611686018427387903
+ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(18446744073709551606, 8) = 2305843009213693951
+ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(18446744073709551598, 16) = 1152921504606846975
+ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(18446744073709551582, 32) = 576460752303423487
+ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(18446744073709551550, 64) = 288230376151711743
+ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(18446744073709551486, 128) = 144115188075855871
+ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(18446744073709551358, 256) = 72057594037927935
+ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(18446744073709551102, 512) = 36028797018963967
+ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(18446744073709550590, 1024) = 18014398509481983
+ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(18446744073709549566, 2048) = 9007199254740991
+ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(18446744073709547518, 4096) = 4503599627370495
+ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(18446744073709543422, 8192) = 2251799813685247
+ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(18446744073709535230, 16384) = 1125899906842623
+ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(18446744073709518846, 32768) = 562949953421311
+ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(18446744073709486078, 65536) = 281474976710655
+ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(18446744073709420542, 131072) = 140737488355327
+ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(18446744073709289470, 262144) = 70368744177663
+ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(18446744073709027326, 524288) = 35184372088831
+ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(18446744073708503038, 1048576) = 17592186044415
+ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(18446744073707454462, 2097152) = 8796093022207
+ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(18446744073705357310, 4194304) = 4398046511103
+ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(18446744073701163006, 8388608) = 2199023255551
+ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(18446744073692774398, 16777216) = 1099511627775
+ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(18446744073675997182, 33554432) = 549755813887
+ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(18446744073642442750, 67108864) = 274877906943
+ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(18446744073575333886, 134217728) = 137438953471
+ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(18446744073441116158, 268435456) = 68719476735
+ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(18446744073172680702, 536870912) = 34359738367
+ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(18446744072635809790, 1073741824) = 17179869183
+ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(18446744071562067966, 2147483648) = 8589934591
+ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(18446744069414584318, 4294967296) = 4294967295
+ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(18446744065119617022, 8589934592) = 2147483647
+ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(18446744056529682430, 17179869184) = 1073741823
+ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(18446744039349813246, 34359738368) = 536870911
+ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(18446744004990074878, 68719476736) = 268435455
+ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(18446743936270598142, 137438953472) = 134217727
+ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(18446743798831644670, 274877906944) = 67108863
+ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(18446743523953737726, 549755813888) = 33554431
+ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(18446742974197923838, 1099511627776) = 16777215
+ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(18446741874686296062, 2199023255552) = 8388607
+ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(18446739675663040510, 4398046511104) = 4194303
+ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(18446735277616529406, 8796093022208) = 2097151
+ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(18446726481523507198, 17592186044416) = 1048575
+ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(18446708889337462782, 35184372088832) = 524287
+ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(18446673704965373950, 70368744177664) = 262143
+ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(18446603336221196286, 140737488355328) = 131071
+ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(18446462598732840958, 281474976710656) = 65535
+ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(18446181123756130302, 562949953421312) = 32767
+ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(18445618173802708990, 1125899906842624) = 16383
+ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(18444492273895866366, 2251799813685248) = 8191
+ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(18442240474082181118, 4503599627370496) = 4095
+ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(18437736874454810622, 9007199254740992) = 2047
+ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(18428729675200069630, 18014398509481984) = 1023
+ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(18410715276690587646, 36028797018963968) = 511
+ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(18374686479671623678, 72057594037927936) = 255
+ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(18302628885633695742, 144115188075855872) = 127
+ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(18158513697557839870, 288230376151711744) = 63
+ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(17870283321406128126, 576460752303423488) = 31
+ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(17293822569102704638, 1152921504606846976) = 15
+ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(16140901064495857662, 2305843009213693952) = 7
+ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = 2, ceiling_div(13835058055282163710, 4611686018427387904) = 3
+ceiling_div(9223372036854775808, 9223372036854775808) = 1, ceiling_div(9223372036854775810, 9223372036854775808) = 0, ceiling_div(9223372036854775806, 9223372036854775808) = 1
+
+
+ceiling
+
+signed char
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
+ceiling(64, 64) = 64, ceiling(66, 64) = -128, ceiling(-66, 64) = 0
+ceiling(-128, -128) = -128, ceiling(-126, -128) = -128, ceiling(126, -128) = 0
+
+unsigned char
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(253, 1) = 253
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(252, 2) = 252
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(250, 4) = 252
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(246, 8) = 248
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(238, 16) = 240
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(222, 32) = 224
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(190, 64) = 192
+ceiling(128, 128) = 128, ceiling(130, 128) = 0, ceiling(126, 128) = 128
+
+short int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = -32768, ceiling(-16386, 16384) = 0
+ceiling(-32768, -32768) = -32768, ceiling(-32766, -32768) = -32768, ceiling(32766, -32768) = 0
+
+unsigned short int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(65533, 1) = 65533
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(65532, 2) = 65532
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(65530, 4) = 65532
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(65526, 8) = 65528
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(65518, 16) = 65520
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(65502, 32) = 65504
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(65470, 64) = 65472
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(65406, 128) = 65408
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(65278, 256) = 65280
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(65022, 512) = 65024
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(64510, 1024) = 64512
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(63486, 2048) = 63488
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(61438, 4096) = 61440
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(57342, 8192) = 57344
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(49150, 16384) = 49152
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 0, ceiling(32766, 32768) = 32768
+
+int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 0
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 0
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 0
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 0
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 0
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 0
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 0
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 0
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 0
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 0
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 0
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 0
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 0
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 0
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 0
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 0
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = -1073741824, ceiling(-1073741826, 1073741824) = 0
+ceiling(-2147483648, -2147483648) = -2147483648, ceiling(-2147483646, -2147483648) = 0, ceiling(2147483646, -2147483648) = 0
+
+unsigned int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(4294967293, 1) = 4294967293
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(4294967292, 2) = 4294967292
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(4294967290, 4) = 4294967292
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(4294967286, 8) = 4294967288
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(4294967278, 16) = 4294967280
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(4294967262, 32) = 4294967264
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(4294967230, 64) = 4294967232
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(4294967166, 128) = 4294967168
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(4294967038, 256) = 4294967040
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(4294966782, 512) = 4294966784
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(4294966270, 1024) = 4294966272
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(4294965246, 2048) = 4294965248
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(4294963198, 4096) = 4294963200
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(4294959102, 8192) = 4294959104
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(4294950910, 16384) = 4294950912
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(4294934526, 32768) = 4294934528
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(4294901758, 65536) = 4294901760
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(4294836222, 131072) = 4294836224
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(4294705150, 262144) = 4294705152
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(4294443006, 524288) = 4294443008
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(4293918718, 1048576) = 4293918720
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(4292870142, 2097152) = 4292870144
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(4290772990, 4194304) = 4290772992
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(4286578686, 8388608) = 4286578688
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(4278190078, 16777216) = 4278190080
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(4261412862, 33554432) = 4261412864
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(4227858430, 67108864) = 4227858432
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(4160749566, 134217728) = 4160749568
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(4026531838, 268435456) = 4026531840
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(3758096382, 536870912) = 3758096384
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(3221225470, 1073741824) = 3221225472
+ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 0, ceiling(2147483646, 2147483648) = 2147483648
+
+long int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 0
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 0
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 0
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 0
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 0
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 0
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 0
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 0
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 0
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 0
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 0
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 0
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 0
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 0
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 0
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 0
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = -1073741824, ceiling(-1073741826, 1073741824) = 0
+ceiling(-2147483648, -2147483648) = -2147483648, ceiling(-2147483646, -2147483648) = 0, ceiling(2147483646, -2147483648) = 0
+
+unsigned long int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(4294967293, 1) = 4294967293
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(4294967292, 2) = 4294967292
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(4294967290, 4) = 4294967292
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(4294967286, 8) = 4294967288
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(4294967278, 16) = 4294967280
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(4294967262, 32) = 4294967264
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(4294967230, 64) = 4294967232
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(4294967166, 128) = 4294967168
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(4294967038, 256) = 4294967040
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(4294966782, 512) = 4294966784
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(4294966270, 1024) = 4294966272
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(4294965246, 2048) = 4294965248
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(4294963198, 4096) = 4294963200
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(4294959102, 8192) = 4294959104
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(4294950910, 16384) = 4294950912
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(4294934526, 32768) = 4294934528
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(4294901758, 65536) = 4294901760
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(4294836222, 131072) = 4294836224
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(4294705150, 262144) = 4294705152
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(4294443006, 524288) = 4294443008
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(4293918718, 1048576) = 4293918720
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(4292870142, 2097152) = 4292870144
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(4290772990, 4194304) = 4290772992
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(4286578686, 8388608) = 4286578688
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(4278190078, 16777216) = 4278190080
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(4261412862, 33554432) = 4261412864
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(4227858430, 67108864) = 4227858432
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(4160749566, 134217728) = 4160749568
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(4026531838, 268435456) = 4026531840
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(3758096382, 536870912) = 3758096384
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(3221225470, 1073741824) = 3221225472
+ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 0, ceiling(2147483646, 2147483648) = 2147483648
+
+long long int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -4
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 0
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 0
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(-18, 16) = 0
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 0
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 0
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(-130, 128) = 0
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 0
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 0
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 0
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 0
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 0
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 0
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 0
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 0
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 0
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 0
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 0
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 0
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 0
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 0
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 0
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 0
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 0
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 0
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 0
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 0
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 0
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 0
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(-1073741826, 1073741824) = 0
+ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(-2147483650, 2147483648) = 0
+ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(-4294967298, 4294967296) = 0
+ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(-8589934594, 8589934592) = 0
+ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(-17179869186, 17179869184) = 0
+ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(-34359738370, 34359738368) = 0
+ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(-68719476738, 68719476736) = 0
+ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(-137438953474, 137438953472) = 0
+ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(-274877906946, 274877906944) = 0
+ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(-549755813890, 549755813888) = 0
+ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(-1099511627778, 1099511627776) = 0
+ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(-2199023255554, 2199023255552) = 0
+ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(-4398046511106, 4398046511104) = 0
+ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(-8796093022210, 8796093022208) = 0
+ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(-17592186044418, 17592186044416) = 0
+ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(-35184372088834, 35184372088832) = 0
+ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(-70368744177666, 70368744177664) = 0
+ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(-140737488355330, 140737488355328) = 0
+ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(-281474976710658, 281474976710656) = 0
+ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(-562949953421314, 562949953421312) = 0
+ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(-1125899906842626, 1125899906842624) = 0
+ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(-2251799813685250, 2251799813685248) = 0
+ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(-4503599627370498, 4503599627370496) = 0
+ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(-9007199254740994, 9007199254740992) = 0
+ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(-18014398509481986, 18014398509481984) = 0
+ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(-36028797018963970, 36028797018963968) = 0
+ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(-72057594037927938, 72057594037927936) = 0
+ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(-144115188075855874, 144115188075855872) = 0
+ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(-288230376151711746, 288230376151711744) = 0
+ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(-576460752303423490, 576460752303423488) = 0
+ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(-1152921504606846978, 1152921504606846976) = 0
+ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(-2305843009213693954, 2305843009213693952) = 0
+ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = -4611686018427387904, ceiling(-4611686018427387906, 4611686018427387904) = 0
+ceiling(-9223372036854775808, -9223372036854775808) = -9223372036854775808, ceiling(-9223372036854775806, -9223372036854775808) = 0, ceiling(9223372036854775806, -9223372036854775808) = 0
+
+unsigned long long int
+ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(18446744073709551613, 1) = 18446744073709551613
+ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(18446744073709551612, 2) = 18446744073709551612
+ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(18446744073709551610, 4) = 18446744073709551612
+ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(18446744073709551606, 8) = 18446744073709551608
+ceiling(16, 16) = 16, ceiling(18, 16) = 32, ceiling(18446744073709551598, 16) = 18446744073709551600
+ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(18446744073709551582, 32) = 18446744073709551584
+ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(18446744073709551550, 64) = 18446744073709551552
+ceiling(128, 128) = 128, ceiling(130, 128) = 256, ceiling(18446744073709551486, 128) = 18446744073709551488
+ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(18446744073709551358, 256) = 18446744073709551360
+ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(18446744073709551102, 512) = 18446744073709551104
+ceiling(1024, 1024) = 1024, ceiling(1026, 1024) = 2048, ceiling(18446744073709550590, 1024) = 18446744073709550592
+ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(18446744073709549566, 2048) = 18446744073709549568
+ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(18446744073709547518, 4096) = 18446744073709547520
+ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(18446744073709543422, 8192) = 18446744073709543424
+ceiling(16384, 16384) = 16384, ceiling(16386, 16384) = 32768, ceiling(18446744073709535230, 16384) = 18446744073709535232
+ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(18446744073709518846, 32768) = 18446744073709518848
+ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(18446744073709486078, 65536) = 18446744073709486080
+ceiling(131072, 131072) = 131072, ceiling(131074, 131072) = 262144, ceiling(18446744073709420542, 131072) = 18446744073709420544
+ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(18446744073709289470, 262144) = 18446744073709289472
+ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(18446744073709027326, 524288) = 18446744073709027328
+ceiling(1048576, 1048576) = 1048576, ceiling(1048578, 1048576) = 2097152, ceiling(18446744073708503038, 1048576) = 18446744073708503040
+ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(18446744073707454462, 2097152) = 18446744073707454464
+ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(18446744073705357310, 4194304) = 18446744073705357312
+ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(18446744073701163006, 8388608) = 18446744073701163008
+ceiling(16777216, 16777216) = 16777216, ceiling(16777218, 16777216) = 33554432, ceiling(18446744073692774398, 16777216) = 18446744073692774400
+ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(18446744073675997182, 33554432) = 18446744073675997184
+ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(18446744073642442750, 67108864) = 18446744073642442752
+ceiling(134217728, 134217728) = 134217728, ceiling(134217730, 134217728) = 268435456, ceiling(18446744073575333886, 134217728) = 18446744073575333888
+ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(18446744073441116158, 268435456) = 18446744073441116160
+ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(18446744073172680702, 536870912) = 18446744073172680704
+ceiling(1073741824, 1073741824) = 1073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(18446744072635809790, 1073741824) = 18446744072635809792
+ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(18446744071562067966, 2147483648) = 18446744071562067968
+ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(18446744069414584318, 4294967296) = 18446744069414584320
+ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(18446744065119617022, 8589934592) = 18446744065119617024
+ceiling(17179869184, 17179869184) = 17179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(18446744056529682430, 17179869184) = 18446744056529682432
+ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(18446744039349813246, 34359738368) = 18446744039349813248
+ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(18446744004990074878, 68719476736) = 18446744004990074880
+ceiling(137438953472, 137438953472) = 137438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(18446743936270598142, 137438953472) = 18446743936270598144
+ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(18446743798831644670, 274877906944) = 18446743798831644672
+ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(18446743523953737726, 549755813888) = 18446743523953737728
+ceiling(1099511627776, 1099511627776) = 1099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(18446742974197923838, 1099511627776) = 18446742974197923840
+ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(18446741874686296062, 2199023255552) = 18446741874686296064
+ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(18446739675663040510, 4398046511104) = 18446739675663040512
+ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(18446735277616529406, 8796093022208) = 18446735277616529408
+ceiling(17592186044416, 17592186044416) = 17592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(18446726481523507198, 17592186044416) = 18446726481523507200
+ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(18446708889337462782, 35184372088832) = 18446708889337462784
+ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(18446673704965373950, 70368744177664) = 18446673704965373952
+ceiling(140737488355328, 140737488355328) = 140737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(18446603336221196286, 140737488355328) = 18446603336221196288
+ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(18446462598732840958, 281474976710656) = 18446462598732840960
+ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(18446181123756130302, 562949953421312) = 18446181123756130304
+ceiling(1125899906842624, 1125899906842624) = 1125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(18445618173802708990, 1125899906842624) = 18445618173802708992
+ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(18444492273895866366, 2251799813685248) = 18444492273895866368
+ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(18442240474082181118, 4503599627370496) = 18442240474082181120
+ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(18437736874454810622, 9007199254740992) = 18437736874454810624
+ceiling(18014398509481984, 18014398509481984) = 18014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(18428729675200069630, 18014398509481984) = 18428729675200069632
+ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(18410715276690587646, 36028797018963968) = 18410715276690587648
+ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(18374686479671623678, 72057594037927936) = 18374686479671623680
+ceiling(144115188075855872, 144115188075855872) = 144115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(18302628885633695742, 144115188075855872) = 18302628885633695744
+ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(18158513697557839870, 288230376151711744) = 18158513697557839872
+ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(17870283321406128126, 576460752303423488) = 17870283321406128128
+ceiling(1152921504606846976, 1152921504606846976) = 1152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(17293822569102704638, 1152921504606846976) = 17293822569102704640
+ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(16140901064495857662, 2305843009213693952) = 16140901064495857664
+ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = 9223372036854775808, ceiling(13835058055282163710, 4611686018427387904) = 13835058055282163712
+ceiling(9223372036854775808, 9223372036854775808) = 9223372036854775808, ceiling(9223372036854775810, 9223372036854775808) = 0, ceiling(9223372036854775806, 9223372036854775808) = 9223372036854775808
+
+floor:1. 1. 1.
+ceil:2. 2. 2.
+trunc:3. 3. 3.
+rint:2. 2. 2.
+rint:2 2 2
+rint:2 2 2
+lrint:2 2 2
+llrint:2 2 2
+nearbyint:4. 4. 4.
+round:2. 2. 2.
+round:2 2 2
+round:2 2 2
+lround:2 2 2
+llround:2 2 2
+copysign:-1. -1. -1.
+frexp:0.5 3 0.5 3 0.5 3
+ldexp:8. 8. 8.
+modf:2. 0.3 2. 0.3 2. 0.3
+modf:2., 0.3 2., 0.3 2., 0.3
+nextafter:2. 2. 2.
+nexttoward:2. 2. 2.
+scalbn:16. 16. 16.
+scalbln:16. 16. 16.
Index: tests/.expect/random.arm64.txt
===================================================================
--- tests/.expect/random.arm64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/random.arm64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,20 @@
+õ
+=
+V
+-911259971
+6
+-4
+1232105397
+0
+18
+-914096085
+1
+15
+2077092859
+1
+11
+0.677254
+0.678106775246139
+0.298107+0.951551i
+0.724141628787955+0.18815430330314i
+0.358747528448063235373410861939192+0.279138604680749580211340798996389i
Index: sts/.expect/random.txt
===================================================================
--- tests/.expect/random.txt	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ 	(revision )
@@ -1,20 +1,0 @@
-õ
-=
-V
--911259971
-6
--4
-1232105397
-0
-18
--914096085
-1
-15
-2077092859
-1
-11
-0.677254
-0.678106775246139
-0.298107+0.951551i
-0.724141628787955+0.18815430330314i
-0.358747528448063235+0.27913860468074958i
Index: tests/.expect/random.x64.txt
===================================================================
--- tests/.expect/random.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/random.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,20 @@
+õ
+=
+V
+-911259971
+6
+-4
+1232105397
+0
+18
+-914096085
+1
+15
+2077092859
+1
+11
+0.677254
+0.678106775246139
+0.298107+0.951551i
+0.724141628787955+0.18815430330314i
+0.358747528448063235+0.27913860468074958i
Index: tests/.expect/random.x86.txt
===================================================================
--- tests/.expect/random.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/.expect/random.x86.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,20 @@
+õ
+=
+V
+-911259971
+6
+-4
+1232105397
+0
+18
+-914096085
+1
+15
+2077092859
+1
+11
+0.677254
+0.678106775246139
+0.298107+0.951551i
+0.724141628787955+0.18815430330314i
+0.358747528448063235+0.27913860468074958i
Index: tests/Makefile.am
===================================================================
--- tests/Makefile.am	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/Makefile.am	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -67,5 +67,5 @@
 avl_test_SOURCES = avltree/avl_test.cfa avltree/avl0.cfa avltree/avl1.cfa avltree/avl2.cfa avltree/avl3.cfa avltree/avl4.cfa avltree/avl-private.cfa
 # automake doesn't know we still need C/CPP rules so pretend like we have a C program
-_dummy_hack_SOURCES = .dummy_hack.c .dummy_hackxx.cpp
+nodist__dummy_hack_SOURCES = .dummy_hack.c .dummy_hackxx.cpp
 
 #----------------------------------------------------------------------------------------------------------------
Index: tests/alloc.cfa
===================================================================
--- tests/alloc.cfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/alloc.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -47,9 +47,9 @@
 	free( ip );
 
-	ip = alloc_set( fill );								// CFA alloc, fill
+	ip = alloc( fill`fill );								// CFA alloc, fill
 	printf( "CFA alloc, fill %08x\n", *ip );
 	free( ip );
 
-	ip = alloc_set( 3 );								// CFA alloc, fill
+	ip = alloc( 3`fill );								// CFA alloc, fill
 	printf( "CFA alloc, fill %d\n", *ip );
 	free( ip );
@@ -78,5 +78,5 @@
 	free( ip );
 
-	ip = alloc_set( 2 * dim, fill );					// CFA array alloc, fill
+	ip = alloc( 2 * dim, fill`fill );					// CFA array alloc, fill
 	printf( "CFA array alloc, fill %#hhx\n", fill );
 	for ( i; 2 * dim ) { printf( "%#x ", ip[i] ); }
@@ -84,5 +84,5 @@
 	free( ip );
 
-	ip = alloc_set( 2 * dim, 0xdeadbeef );				// CFA array alloc, fill
+	ip = alloc( 2 * dim, ((int)0xdeadbeef)`fill );				// CFA array alloc, fill
 	printf( "CFA array alloc, fill %#hhx\n", 0xdeadbeef );
 	for ( i; 2 * dim ) { printf( "%#x ", ip[i] ); }
@@ -90,5 +90,5 @@
 	// do not free
 
-	ip1 = alloc_set( 2 * dim, ip, 2 * dim );				// CFA array alloc, fill
+	ip1 = alloc( 2 * dim, [ip, 2 * dim]`fill );				// CFA array alloc, fill
 	printf( "CFA array alloc, fill from array\n" );
 	for ( i; 2 * dim ) { printf( "%#x %#x, ", ip[i], ip1[i] ); }
@@ -117,5 +117,5 @@
 	printf( "\n" );
 
-	ip = alloc( ip, dim );								// CFA realloc array alloc
+	ip = alloc( dim, ip`realloc );								// CFA realloc array alloc
 	for ( i; dim ) { ip[i] = 0xdeadbeef; }
 	printf( "CFA realloc array alloc\n" );
@@ -124,5 +124,5 @@
 	// do not free
 
-	ip = alloc( ip, 2 * dim );							// CFA realloc array alloc
+	ip = alloc( 2 * dim, ip`realloc );							// CFA realloc array alloc
 	for ( i; dim ~ 2 * dim ) { ip[i] = 0x1010101; }		// fill upper part
 	printf( "CFA realloc array alloc\n" );
@@ -131,5 +131,5 @@
 	// do not free
 
-	ip = alloc( ip, dim );								// CFA realloc array alloc
+	ip = alloc( dim, ip`realloc );								// CFA realloc array alloc
 	printf( "CFA realloc array alloc\n" );
 	for ( i; dim ) { printf( "%#x ", ip[i] ); }
@@ -137,5 +137,5 @@
 	// do not free
 
-	ip = alloc_set( ip, 3 * dim, fill );				// CFA realloc array alloc, fill
+	ip = alloc( 3 * dim, ip`realloc, fill`fill );				// CFA realloc array alloc, fill
 	printf( "CFA realloc array alloc, fill\n" );
 	for ( i; 3 * dim ) { printf( "%#x ", ip[i] ); }
@@ -143,5 +143,5 @@
 	// do not free
 
-	ip = alloc_set( ip, dim, fill );					// CFA realloc array alloc, fill
+	ip = alloc( dim, ip`realloc, fill`fill );					// CFA realloc array alloc, fill
 	printf( "CFA realloc array alloc, fill\n" );
 	for ( i; dim ) { printf( "%#x ", ip[i] ); }
@@ -149,5 +149,5 @@
 	// do not free
 
-	ip = alloc_set( ip, 3 * dim, fill );				// CFA realloc array alloc, fill
+	ip = alloc( 3 * dim, ip`realloc, fill`fill );				// CFA realloc array alloc, fill
 	printf( "CFA realloc array alloc, fill\n" );
 	for ( i; 3 * dim ) { printf( "%#x ", ip[i] ); }
@@ -155,5 +155,5 @@
 	// do not free
 #if 0 // FIX ME
-	ip = alloc_set( ip, 5 * dim, 5 );					// CFA realloc array alloc, 5
+	ip = alloc( 5 * dim, ip`realloc, 5`fill );					// CFA realloc array alloc, 5
 	printf( "CFA realloc array alloc, 5\n" );
 	for ( i; 5 * dim ) { printf( "%#x ", ip[i] ); }
@@ -161,5 +161,5 @@
 	// do not free
 
-	ip = alloc_set( ip, dim, 5 );						// CFA realloc array alloc, 5
+	ip = alloc( dim, ip`realloc, 5`fill );						// CFA realloc array alloc, 5
 	printf( "CFA realloc array alloc, 5\n" );
 	for ( i; dim ) { printf( "%#x ", ip[i] ); }
@@ -167,5 +167,5 @@
 	// do not free
 
-	ip = alloc_set( ip, 5 * dim, 5 );					// CFA realloc array alloc, 5
+	ip = alloc( 5 * dim, ip`realloc, 5`fill );					// CFA realloc array alloc, 5
 	printf( "CFA realloc array alloc, 5\n" );
 	for ( i; 5 * dim ) { printf( "%#x ", ip[i] ); }
@@ -182,9 +182,9 @@
     ip = alloc();
 	*ip = 5;
-    double * dp = alloc( ip );
+    double * dp = alloc( ip`resize );
 	*dp = 5.5;
-    S * sp = alloc( dp );
+    S * sp = alloc( dp`resize );
 	*sp = (S){ {0, 1, 2, 3, 4} };
-    ip = alloc( sp );
+    ip = alloc( sp`resize );
 	*ip = 3;
     free( ip );
@@ -195,13 +195,13 @@
     ip = alloc( 5 );
 	for ( i; 5 ) { ip[i] = 5; }
-    dp = alloc( ip, 5 );
+    dp = alloc( 5, ip`resize );
 	for ( i; 5 ) { dp[i] = 5.5; }
-    sp = alloc( dp, 5 );
+    sp = alloc( 5, dp`resize );
 	for ( i; 5 ) { sp[i] = (S){ {0, 1, 2, 3, 4} }; }
-    ip = alloc( sp, 3 );
+    ip = alloc( 3, sp`resize );
 	for ( i; 3 ) { ip[i] = 3; }
-    ip = alloc( ip, 7 );
+    ip = alloc( 7, ip`realloc );
 	for ( i; 7 ) { ip[i] = 7; }
-    ip = alloc( ip, 7, false );
+    ip = alloc( 7, ip`resize );
 	for ( i; 7 ) { ip[i] = 7; }
     free( ip );
@@ -237,25 +237,25 @@
 	free( stp );
 
-	stp = &(*alloc_align( Alignment)){ 42, 42.5 };		// CFA alloc_align
+	stp = &(*alloc( Alignment`align)){ 42, 42.5 };		// CFA alloc_align
 	assert( (uintptr_t)stp % Alignment == 0 );
 	printf( "CFA alloc_align %d %g\n", stp->x, stp->y );
 	free( stp );
 
-	stp = &(*alloc_align( Alignment )){ 42, 42.5 };		// CFA alloc_align
+	stp = &(*alloc( Alignment`align )){ 42, 42.5 };		// CFA alloc_align
 	assert( (uintptr_t)stp % Alignment == 0 );
 	printf( "CFA alloc_align %d %g\n", stp->x, stp->y );
 	free( stp );
 
-	stp = alloc_align_set( Alignment, fill );			// CFA memalign, fill
+	stp = alloc( Alignment`align, fill`fill );			// CFA memalign, fill
 	assert( (uintptr_t)stp % Alignment == 0 );
 	printf( "CFA alloc_align fill %#x %a\n", stp->x, stp->y );
 	free( stp );
 
-	stp = alloc_align_set( Alignment, (Struct){ 42, 42.5 } ); // CFA memalign, fill
+	stp = alloc( Alignment`align, (Struct){ 42, 42.5 }`fill ); // CFA memalign, fill
 	assert( (uintptr_t)stp % Alignment == 0 );
 	printf( "CFA alloc_align fill %d %g\n", stp->x, stp->y );
 	// do not free
 
-	stp = &(*alloc_align( stp, 4096 )){ 42, 42.5 };		// CFA realign
+	stp = &(*alloc( stp`realloc, 4096`align )){ 42, 42.5 };		// CFA realign
 	assert( (uintptr_t)stp % 4096 == 0 );
 	printf( "CFA alloc_align %d %g\n", stp->x, stp->y );
@@ -266,5 +266,5 @@
 	printf( "\n" );
 
-	stp = alloc_align( Alignment, dim );                // CFA array memalign
+	stp = alloc( dim, Alignment`align );                // CFA array memalign
 	assert( (uintptr_t)stp % Alignment == 0 );
 	for ( i; dim ) { stp[i] = (Struct){ 42, 42.5 }; }
@@ -274,5 +274,5 @@
 	free( stp );
 
-	stp = alloc_align_set( Alignment, dim, fill );		// CFA array memalign, fill
+	stp = alloc( dim, Alignment`align, fill`fill );		// CFA array memalign, fill
 	assert( (uintptr_t)stp % Alignment == 0 );
 	printf( "CFA array alloc_align, fill\n" );
@@ -281,5 +281,5 @@
 	free( stp );
 
-	stp = alloc_align_set( Alignment, dim, (Struct){ 42, 42.5 } ); // CFA array memalign, fill
+	stp = alloc( dim, Alignment`align, ((Struct){ 42, 42.5 })`fill ); // CFA array memalign, fill
 	assert( (uintptr_t)stp % Alignment == 0 );
 	printf( "CFA array alloc_align, fill\n" );
@@ -288,5 +288,5 @@
 	// do not free
 
-	stp1 = alloc_align_set( Alignment, dim, stp, dim );	// CFA array memalign, fill
+	stp1 = alloc( dim, Alignment`align, [stp, dim]`fill );	// CFA array memalign, fill
 	assert( (uintptr_t)stp % Alignment == 0 );
 	printf( "CFA array alloc_align, fill array\n" );
@@ -295,5 +295,5 @@
 	free( stp1 );
 
-	stp = alloc_align( stp, 4096, dim );				// CFA aligned realloc array
+	stp = alloc( dim, stp`realloc, 4096`align );				// CFA aligned realloc array
 	assert( (uintptr_t)stp % 4096 == 0 );
 	for ( i; dim ) { stp[i] = (Struct){ 42, 42.5 }; }
@@ -325,5 +325,4 @@
 	for ( i; dim ) { printf( "%#x %a, ", sta1[i].x, sta1[i].y ); }
 	printf( "\n" );
-
 
 	// new, non-array types
Index: tests/alloc2.cfa
===================================================================
--- tests/alloc2.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/alloc2.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,891 @@
+/*
+	some tests are commented-out because of resize/realloc bug from 0p. They should be uncommented after that bug is resolved.
+*/
+
+#include <malloc.h>										// malloc_usable_size
+#include <stdint.h>										// uintptr_t
+#include <stdlib.hfa>									// access C malloc, realloc
+#include <string.h>										// memcmp
+
+int last_failed;
+int tests_total;
+int tests_failed;
+size_t tAlign = 32;
+struct S1 { int data; } __attribute__((aligned(32)));
+typedef struct S1 T1;
+
+void test_base( void * ip, size_t size, size_t align) {
+	tests_total += 1;
+	bool passed = (malloc_size(ip) == size) && (malloc_usable_size(ip) >= size) && (malloc_alignment(ip) == align) && ((uintptr_t)ip % align  == 0);
+	if (!passed) {
+		printf("failed test %3d: %4lu %4lu but got %4lu ( %3lu ) %4lu\n", tests_total, size, align, malloc_size(ip), malloc_usable_size(ip), malloc_alignment(ip));
+//		if (last_failed != tests_total) {
+			tests_failed += 1;
+//			last_failed = tests_total;
+//		}
+	}
+}
+
+void test_fill( void * ip_, size_t start, size_t end, char fill) {
+	tests_total += 1;
+	bool passed = true;
+	char * ip = (char *) ip_;
+	for (i; start ~ end) passed = passed && (ip[i] == fill);
+	if (!passed) {
+		printf("failed test %3d: fill C\n", tests_total);
+//		if (last_failed != tests_total) {
+			tests_failed += 1;
+//			last_failed = tests_total;
+//		}
+	}
+}
+
+void test_fill( void * ip_, size_t start, size_t end, int fill) {
+	tests_total += 1;
+	bool passed = true;
+	int * ip = (int *) ip_;
+	for (i; start ~ end) passed = passed && (ip[i] == fill);
+	if (!passed) {
+		printf("failed test %3d: fill int\n", tests_total);
+//		if (last_failed != tests_total) {
+			tests_failed += 1;
+//			last_failed = tests_total;
+//		}
+	}
+}
+
+void test_fill( void * ip_, size_t start, size_t end, int * fill) {
+	tests_total += 1;
+	bool passed = (memcmp((void*)((uintptr_t)ip_ + start), (void*)fill, end) == 0);
+	if (!passed) {
+		printf("failed test %3d: fill int A\n", tests_total);
+//		if (last_failed != tests_total) {
+			tests_failed += 1;
+//			last_failed = tests_total;
+//		}
+	}
+}
+
+void test_fill( void * ip_, size_t start, size_t end, T1 fill) {
+	tests_total += 1;
+	bool passed = true;
+	T1 * ip = (T1 *) ip_;
+	for (i; start ~ end) passed = passed && (ip[i].data == fill.data);
+	if (!passed) {
+		printf("failed test %3d: fill T1\n", tests_total);
+//		if (last_failed != tests_total) {
+			tests_failed += 1;
+//			last_failed = tests_total;
+//		}
+	}
+}
+
+void test_fill( void * ip_, size_t start, size_t end, T1 * fill) {
+	tests_total += 1;
+	bool passed = (memcmp((void*)((uintptr_t)ip_ + start), (void*)fill, end) == 0);
+	if (!passed) {
+		printf("failed test %3d: fill T1 A\n", tests_total);
+//		if (last_failed != tests_total) {
+			tests_failed += 1;
+//			last_failed = tests_total;
+//		}
+	}
+}
+
+void test_use( int * ip, size_t dim) {
+	tests_total += 1;
+	bool passed = true;
+	for (i; 0 ~ dim) ip[i] = 0xdeadbeef;
+	for (i; 0 ~ dim) passed = passed &&  (ip[i] == 0xdeadbeef);
+	if (!passed) {
+		printf("failed test %3d: use int\n", tests_total);
+//		if (last_failed != tests_total) {
+			tests_failed += 1;
+//			last_failed = tests_total;
+//		}
+	}
+}
+
+void test_use( T1 * ip, size_t dim) {
+	tests_total += 1;
+	bool passed = true;
+	for (i; 0 ~ dim) ip[i].data = 0xdeadbeef;
+	for (i; 0 ~ dim) passed = passed &&  (ip[i].data == 0xdeadbeef);
+	if (!passed) {
+		printf("failed test %3d: use T1\n", tests_total);
+//		if (last_failed != tests_total) {
+			tests_failed += 1;
+//			last_failed = tests_total;
+//		}
+	}
+}
+
+int main( void ) {
+	size_t elemSize = sizeof(int);
+	size_t dim = 8;
+	size_t size = dim * elemSize;
+	size_t align = 64;
+	const size_t libAlign = libAlign();
+
+	int 	FillT = 9;
+	char 	FillC = 'a';
+	int   * FillA = calloc(dim / 4);
+	T1 	    FillT1 = { FillT };
+	T1 	  * FillT1A = (T1 *)(void *) malloc( (dim / 4) * sizeof(T1) );
+	for (i; 0 ~ (dim / 4) ) FillT1A[i] = FillT1;
+
+	int		* ip;
+	int 	* op;
+	double 	* dp;
+	T1      * t1p;
+	T1 	    * t1op;
+
+	// testing alloc
+
+	last_failed = -1;
+	tests_total = 0;
+	tests_failed = 0;
+
+	ip = alloc();
+	test_base(ip, elemSize, libAlign);
+	test_use(ip, elemSize / elemSize);
+	free(ip);
+
+	ip = alloc( dim );
+	test_base(ip, size, libAlign);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	ip = alloc( 0 );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+	dp = alloc( dim );
+	ip = alloc( dp`resize );
+	test_base(ip, elemSize, libAlign);
+	test_use(ip, elemSize / elemSize);
+	free(ip);
+
+	ip = alloc( ((double*)0p)`resize );
+	test_base(ip, elemSize, libAlign);
+	test_use(ip, elemSize / elemSize);
+	free(ip);
+
+	dp = alloc( dim );
+	ip = alloc( dim, dp`resize );
+	test_base(ip, size, libAlign);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	dp = alloc( dim );
+	ip = alloc( 0, dp`resize );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+	ip = alloc( dim, ((double*)0p)`resize );
+	test_base(ip, size, libAlign);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	ip = alloc( 0, ((double*)0p)`resize );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( dim, op`realloc );
+	test_base(ip, size, libAlign);
+	test_fill(ip, 0, dim, (int)0xdeadbeef);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( 0, op`realloc );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+	ip = alloc( dim, ((int*)0p)`realloc );
+	test_base(ip, size, libAlign);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	ip = alloc( 0, ((int*)0p)`realloc );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( dim, op`resize );
+	test_base(ip, size, libAlign);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	ip = alloc( FillC`fill );
+	test_base(ip, elemSize, libAlign);
+	test_fill(ip, 0, elemSize, FillC);
+	test_use(ip, elemSize / elemSize);
+	free(ip);
+
+	ip = alloc( FillT`fill );
+	test_base(ip, elemSize, libAlign);
+	test_fill(ip, 0, 1, FillT);
+	test_use(ip, elemSize / elemSize);
+	free(ip);
+
+	ip = alloc( dim, FillC`fill );
+	test_base(ip, size, libAlign);
+	test_fill(ip, 0, size, FillC);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	ip = alloc( 0, FillC`fill );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+	ip = alloc( dim, FillT`fill );
+	test_base(ip, size, libAlign);
+	test_fill(ip, 0, dim, FillT);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	ip = alloc( 0, FillT`fill );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+	ip = alloc( dim, [FillA, dim/4]`fill );
+	test_base(ip, size, libAlign);
+	test_fill(ip, 0, size/4, FillA);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	ip = alloc( 0, [FillA, dim/4]`fill );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( dim, op`realloc, FillC`fill );
+	test_base(ip, size, libAlign);
+	test_fill(ip, 0, dim, (int)0xdeadbeef);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( dim / 4, op`realloc, FillC`fill );
+	test_base(ip, size / 4, libAlign);
+	test_fill(ip, 0, dim / 4, (int)0xdeadbeef);
+	test_use(ip, size / 4 / elemSize);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( dim * 4, op`realloc, FillC`fill );
+	test_base(ip, size * 4, libAlign);
+	test_fill(ip, 0, dim, (int)0xdeadbeef);
+	test_fill(ip, size, size * 4, FillC);
+	test_use(ip, size * 4 / elemSize);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( 0, op`realloc, FillC`fill );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+	ip = alloc( dim, ((int*)0p)`realloc, FillC`fill );
+	test_base(ip, size, libAlign);
+	test_fill(ip, 0, size, FillC);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	ip = alloc( 0, ((int*)0p)`realloc, FillC`fill );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( dim, op`realloc, FillT`fill );
+	test_base(ip, size, libAlign);
+	test_fill(ip, 0, dim, (int)0xdeadbeef);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( dim / 4, op`realloc, FillT`fill );
+	test_base(ip, size / 4, libAlign);
+	test_fill(ip, 0, dim / 4, (int)0xdeadbeef);
+	test_use(ip, size / 4 / elemSize);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( dim * 4, op`realloc, FillT`fill );
+	test_base(ip, size * 4, libAlign);
+	test_fill(ip, 0, dim, (int)0xdeadbeef);
+	test_fill(ip, dim, dim * 4, FillT);
+	test_use(ip, size * 4 / elemSize);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( 0, op`realloc, FillT`fill );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+	ip = alloc( dim, ((int*)0p)`realloc, FillT`fill );
+	test_base(ip, size, libAlign);
+	test_fill(ip, 0, dim, FillT);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+//	ip = alloc( 0, ((int*)0p)`realloc, FillT`fill );
+//	est_base(ip, 0, libAlign);
+//	free(ip);
+
+	ip = alloc( align`align );
+	test_base(ip, elemSize, align);
+	test_use(ip, elemSize / elemSize);
+	free(ip);
+
+	ip = alloc( dim, align`align );
+	test_base(ip, size, align);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	ip = alloc( 0, align`align );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( op`realloc, align`align );
+	test_base(ip, elemSize, align);
+	test_fill(ip, 0, 1, (int)0xdeadbeef);
+	test_use(ip, elemSize / elemSize);
+	free(ip);
+
+//	ip = alloc( ((int*)0p)`realloc, align`align );
+//	est_base(ip, elemSize, align);
+//	est_use(ip, elemSize / elemSize);
+//	free(ip);
+
+	dp = alloc( dim );
+	ip = alloc( dp`resize, align`align );
+	test_base(ip, elemSize, align);
+	test_use(ip, elemSize / elemSize);
+	free(ip);
+
+//	ip = alloc( ((double*)0p)`resize, align`align );
+//	est_base(ip, elemSize, align);
+//	est_use(ip, elemSize / elemSize);
+//	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill);
+	ip = alloc( dim, op`realloc, align`align );
+	test_base(ip, size, align);
+	test_fill(ip, 0, dim, (int)0xdeadbeef);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( 0, op`realloc, align`align );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+//	ip = alloc( dim, ((int*)0p)`realloc, align`align );
+//	est_base(ip, size, align);
+//	est_use(ip, size / elemSize);
+//	free(ip);
+
+//	ip = alloc( 0, ((int*)0p)`realloc, align`align );
+//	est_base(ip, 0, align);
+//	free(ip);
+
+	ip = alloc( align`align, FillC`fill );
+	test_base(ip, elemSize, align);
+	test_fill(ip, 0, elemSize, FillC);
+	test_use(ip, elemSize / elemSize);
+	free(ip);
+
+	ip = alloc( align`align, FillT`fill );
+	test_base(ip, elemSize, align);
+	test_fill(ip, 0, 1, FillT);
+	test_use(ip, elemSize / elemSize);
+	free(ip);
+
+	ip = alloc( dim, align`align, FillC`fill );
+	test_base(ip, size, align);
+	test_fill(ip, 0, size, FillC);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	ip = alloc( 0, align`align, FillC`fill );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+	ip = alloc( dim, align`align, FillT`fill );
+	test_base(ip, size, align);
+	test_fill(ip, 0, dim, FillT);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	ip = alloc( 0, align`align, FillT`fill );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+	ip = alloc( dim, align`align, [FillA, dim/4]`fill );
+	test_base(ip, size, align);
+	test_fill(ip, 0, size/4, FillA);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	ip = alloc( 0, align`align, [FillA, dim/4]`fill );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( dim, op`realloc, align`align, FillC`fill );
+	test_base(ip, size, align);
+	test_fill(ip, 0, dim, (int)0xdeadbeef);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( dim / 4, op`realloc, align`align, FillC`fill );
+	test_base(ip, size / 4, align);
+	test_fill(ip, 0, dim / 4, (int)0xdeadbeef);
+	test_use(ip, size / 4 / elemSize);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( dim * 4, op`realloc, align`align, FillC`fill );
+	test_base(ip, size * 4, align);
+	test_fill(ip, 0, dim, (int)0xdeadbeef);
+	test_fill(ip, size, size * 4, FillC);
+	test_use(ip, size * 4 / elemSize);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( 0, op`realloc, align`align, FillC`fill );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+//	ip = alloc( dim, ((int*)0p)`realloc, align`align, FillC`fill );
+//	est_base(ip, size, align);
+//	est_fill(ip, 0, size, FillC);
+//	est_use(ip, size / elemSize);
+//	free(ip);
+
+//	ip = alloc( 0, ((int*)0p)`realloc, align`align, FillC`fill );
+//	est_base(ip, 0, align);
+//	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( dim, op`realloc, align`align, FillT`fill );
+	test_base(ip, size, align);
+	test_fill(ip, 0, dim, (int)0xdeadbeef);
+	test_use(ip, size / elemSize);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( dim / 4, op`realloc, align`align, FillT`fill );
+	test_base(ip, size / 4, align);
+	test_fill(ip, 0, dim / 4, (int)0xdeadbeef);
+	test_use(ip, size / 4 / elemSize);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( dim * 4, op`realloc, align`align, FillT`fill );
+	test_base(ip, size * 4, align);
+	test_fill(ip, 0, dim, (int)0xdeadbeef);
+	test_fill(ip, dim, dim * 4, FillT);
+	test_use(ip, size * 4 / elemSize);
+	free(ip);
+
+	op = alloc( dim, ((int)0xdeadbeef)`fill );
+	ip = alloc( 0, op`realloc, align`align, FillT`fill );
+	test_base(ip, 0, libAlign);
+	free(ip);
+
+//	ip = alloc( dim, ((int*)0p)`realloc, align`align, FillT`fill );
+//	est_base(ip, size, align);
+//	est_fill(ip, 0, dim, FillT);
+//	est_use(ip, size / elemSize);
+//	free(ip);
+
+//	ip = alloc( 0, ((int*)0p)`realloc, align`align, FillT`fill );
+//	est_base(ip, 0, align);
+//	free(ip);
+
+	if (tests_failed == 0) printf("PASSED alloc tests\n\n");
+	else printf("failed alloc tests : %d/%d\n\n", tests_failed, tests_total);
+
+	// testing alloc (aligned struct)
+
+	elemSize = sizeof(T1);
+	size = dim * elemSize;
+	last_failed = -1;
+	tests_total = 0;
+	tests_failed = 0;
+
+	t1p = alloc();
+	test_base(t1p, elemSize, tAlign);
+	test_use(t1p, elemSize / elemSize);
+	free(t1p);
+
+	t1p = alloc( dim );
+	test_base(t1p, size, tAlign);
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1p = alloc( 0 );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+	dp = alloc( dim );
+	t1p = alloc( dp`resize );
+	test_base(t1p, elemSize, tAlign);
+	test_use(t1p, elemSize / elemSize);
+	free(t1p);
+
+	t1p = alloc( ((double*)0p)`resize );
+	test_base(t1p, elemSize, tAlign);
+	test_use(t1p, elemSize / elemSize);
+	free(t1p);
+
+	dp = alloc( dim );
+	t1p = alloc( dim, dp`resize );
+	test_base(t1p, size, tAlign);
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	dp = alloc( dim );
+	t1p = alloc( 0, dp`resize );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+	t1p = alloc( dim, ((double*)0p)`resize );
+	test_base(t1p, size, tAlign);
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1p = alloc( 0, ((double*)0p)`resize );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( dim, t1op`realloc );
+	test_base(t1p, size, tAlign);
+	test_fill(t1p, 0, dim, (T1){0xdeadbeef});
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( 0, t1op`realloc );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+	t1p = alloc( dim, ((T1*)0p)`realloc );
+	test_base(t1p, size, tAlign);
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1p = alloc( 0, ((T1*)0p)`realloc );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( dim, t1op`resize );
+	test_base(t1p, size, tAlign);
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1p = alloc( FillC`fill );
+	test_base(t1p, elemSize, tAlign);
+	test_fill(t1p, 0, elemSize, FillC);
+	test_use(t1p, elemSize / elemSize);
+	free(t1p);
+
+	t1p = alloc( FillT1`fill );
+	test_base(t1p, elemSize, tAlign);
+	test_fill(t1p, 0, 1, FillT1);
+	test_use(t1p, elemSize / elemSize);
+	free(t1p);
+
+	t1p = alloc( dim, FillC`fill );
+	test_base(t1p, size, tAlign);
+	test_fill(t1p, 0, size, FillC);
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1p = alloc( 0, FillC`fill );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+	t1p = alloc( dim, FillT1`fill );
+	test_base(t1p, size, tAlign);
+	test_fill(t1p, 0, dim, FillT1);
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1p = alloc( 0, FillT1`fill );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+	t1p = alloc( dim, [FillT1A, dim / 4]`fill );
+	test_base(t1p, size, tAlign);
+	test_fill(t1p, 0, size/4, FillT1A);
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1p = alloc( 0, [FillT1A, dim / 4]`fill );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( dim, t1op`realloc, FillC`fill );
+	test_base(t1p, size, tAlign);
+	test_fill(t1p, 0, dim, (T1){0xdeadbeef});
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( dim / 4, t1op`realloc, FillC`fill );
+	test_base(t1p, size / 4, tAlign);
+	test_fill(t1p, 0, dim / 4, (T1){0xdeadbeef});
+	test_use(t1p, size / 4 / elemSize);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( dim * 4, t1op`realloc, FillC`fill );
+	test_base(t1p, size * 4, tAlign);
+	test_fill(t1p, 0, dim, (T1){0xdeadbeef});
+	test_fill(t1p, size, size * 4, FillC);
+	test_use(t1p, size * 4 / elemSize);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( 0, t1op`realloc, FillC`fill );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+	t1p = alloc( dim, ((T1*)0p)`realloc, FillC`fill );
+	test_base(t1p, size, tAlign);
+	test_fill(t1p, 0, size, FillC);
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1p = alloc( 0, ((T1*)0p)`realloc, FillC`fill );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( dim, t1op`realloc, FillT1`fill );
+	test_base(t1p, size, tAlign);
+	test_fill(t1p, 0, dim, (T1){0xdeadbeef});
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( dim / 4, t1op`realloc, FillT1`fill );
+	test_base(t1p, size / 4, tAlign);
+	test_fill(t1p, 0, dim / 4, (T1){0xdeadbeef});
+	test_use(t1p, size / 4 / elemSize);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( dim * 4, t1op`realloc, FillT1`fill );
+	test_base(t1p, size * 4, tAlign);
+	test_fill(t1p, 0, dim, (T1){0xdeadbeef});
+	test_fill(t1p, dim, dim * 4, FillT1);
+	test_use(t1p, size * 4 / elemSize);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( 0, t1op`realloc, FillT1`fill );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+	t1p = alloc( dim, ((T1*)0p)`realloc, FillT1`fill );
+	test_base(t1p, size, tAlign);
+	test_fill(t1p, 0, dim, FillT1);
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+//	t1p = alloc( (T1*)0p, 0, FillT1 );
+//	est_base(t1p, 0, tAlign);
+//	free(t1p);
+
+	t1p = alloc( align`align );
+	test_base(t1p, elemSize, align);
+	test_use(t1p, elemSize / elemSize);
+	free(t1p);
+
+	t1p = alloc( dim, align`align );
+	test_base(t1p, size, align);
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1p = alloc( 0, align`align );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( t1op`realloc, align`align );
+	test_base(t1p, elemSize, align);
+	test_fill(t1p, 0, 1, (T1){0xdeadbeef});
+	test_use(t1p, elemSize / elemSize);
+	free(t1p);
+
+//	t1p = alloc( ((T1*)0p)`realloc, align`align );
+//	est_base(t1p, elemSize, align);
+//	est_use(t1p, elemSize / elemSize);
+//	free(t1p);
+
+	dp = alloc( dim );
+	t1p = alloc( dp`resize, align`align );
+	test_base(t1p, elemSize, align);
+	test_use(t1p, elemSize / elemSize);
+	free(t1p);
+
+//	t1p = alloc( ((double*)0p)`resize, align`align );
+//	est_base(t1p, elemSize, align);
+//	est_use(t1p, elemSize / elemSize);
+//	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( dim, t1op`realloc, align`align );
+	test_base(t1p, size, align);
+	test_fill(t1p, 0, dim, (T1){0xdeadbeef});
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( 0, t1op`realloc, align`align );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+//	t1p = alloc( dim, ((T1*)0p)`realloc, align`align );
+//	est_base(t1p, size, align);
+//	est_use(t1p, size / elemSize);
+//	free(t1p);
+
+//	t1p = alloc( 0, ((T1*)0p)`realloc, align`align );
+//	est_base(t1p, 0, align);
+//	free(t1p);
+
+	t1p = alloc( align`align, FillC`fill );
+	test_base(t1p, elemSize, align);
+	test_fill(t1p, 0, elemSize, FillC);
+	test_use(t1p, elemSize / elemSize);
+	free(t1p);
+
+	t1p = alloc( align`align, FillT1`fill );
+	test_base(t1p, elemSize, align);
+	test_fill(t1p, 0, 1, FillT1);
+	test_use(t1p, elemSize / elemSize);
+	free(t1p);
+
+	t1p = alloc( dim, align`align, FillC`fill );
+	test_base(t1p, size, align);
+	test_fill(t1p, 0, size, FillC);
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1p = alloc( 0, align`align, FillC`fill );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+	t1p = alloc( dim, align`align, FillT1`fill );
+	test_base(t1p, size, align);
+	test_fill(t1p, 0, dim, FillT1);
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1p = alloc( 0, align`align, FillT1`fill );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+	t1p = alloc( dim, align`align, [FillT1A, dim / 4]`fill );
+	test_base(t1p, size, align);
+	test_fill(t1p, 0, size/4, FillT1A);
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1p = alloc( 0, align`align, [FillT1A, dim / 4]`fill );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( dim, t1op`realloc, align`align, FillC`fill );
+	test_base(t1p, size, align);
+	test_fill(t1p, 0, dim, (T1){0xdeadbeef});
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( dim / 4, t1op`realloc, align`align, FillC`fill );
+	test_base(t1p, size / 4, align);
+	test_fill(t1p, 0, dim / 4, (T1){0xdeadbeef});
+	test_use(t1p, size / 4 / elemSize);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( dim * 4, t1op`realloc, align`align, FillC`fill );
+	test_base(t1p, size * 4, align);
+	test_fill(t1p, 0, dim, (T1){0xdeadbeef});
+	test_fill(t1p, size, size * 4, FillC);
+	test_use(t1p, size * 4 / elemSize);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( 0, t1op`realloc, align`align, FillC`fill );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+//	t1p = alloc( dim, ((T1*)0p)`realloc, align`align, FillC`fill );
+//	est_base(t1p, size, align);
+//	est_fill(t1p, 0, size, FillC);
+//	est_use(t1p, size / elemSize);
+//	free(t1p);
+
+//	t1p = alloc( 0, ((T1*)0p)`realloc, align`align, FillC`fill );
+//	est_base(t1p, 0, align);
+//	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill);
+	t1p = alloc( dim, t1op`realloc, align`align, FillT1`fill );
+	test_base(t1p, size, align);
+	test_fill(t1p, 0, dim, (T1){0xdeadbeef});
+	test_use(t1p, size / elemSize);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( dim / 4, t1op`realloc, align`align, FillT1`fill );
+	test_base(t1p, size / 4, align);
+	test_fill(t1p, 0, dim / 4, (T1){0xdeadbeef});
+	test_use(t1p, size / 4 / elemSize);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( dim * 4, t1op`realloc, align`align, FillT1`fill );
+	test_base(t1p, size * 4, align);
+	test_fill(t1p, 0, dim, (T1){0xdeadbeef});
+	test_fill(t1p, dim, dim * 4, FillT1);
+	test_use(t1p, size * 4 / elemSize);
+	free(t1p);
+
+	t1op = alloc( dim, ((T1){0xdeadbeef})`fill );
+	t1p = alloc( 0, t1op`realloc, align`align, FillT1`fill );
+	test_base(t1p, 0, libAlign);
+	free(t1p);
+
+//	t1p = alloc( dim, ((T1*)0p)`realloc, align`aling, FillT1`fill );
+//	est_base(t1p, size, align);
+//	est_fill(t1p, 0, dim, FillT1);
+//	est_use(t1p, size / elemSize);
+//	free(t1p);
+
+//	t1p = alloc( 0, ((T1*)0p)`realloc, align`align, FillT1`fill );
+//	est_base(t1p, 0, align);
+//	free(t1p);
+
+	if (tests_failed == 0) printf("PASSED alloc tests (aligned struct)\n\n");
+	else printf("failed alloc tests (aligned struct) : %d/%d\n\n", tests_failed, tests_total);
+
+	printf("(if applicable) alignment error below indicates memory trashing caused by test_use.\n\n");
+	free(FillA);
+	free(FillT1A);
+	return 0;
+} // main
Index: tests/bitmanip3.cfa
===================================================================
--- tests/bitmanip3.cfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/bitmanip3.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -10,6 +10,6 @@
 // Created On       : Tue Apr  7 21:22:59 2020
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Aug 10 09:31:35 2020
-// Update Count     : 65
+// Last Modified On : Mon Aug 24 09:53:26 2020
+// Update Count     : 66
 // 
 
@@ -134,7 +134,4 @@
 
 	printf( "signed char\n" );
-//	sc = 0;
-//	scr1 = floor2( sc, sc ), scr2 = floor2( sc + 2hh, sc ), scr3 = floor2( -sc - 2hh, sc );
-//	printf( "floor2(%hhd, %hhd) = %hhd, floor2(%hhd, %hhd) = %hhd, floor2(%hhd, %hhd) = %hhd\n", sc, sc, scr1, sc + 2hh, sc, scr2, -sc - 2hh, sc, scr3 );
 	for ( sc = 1; sc != 0; sc <<= 1 ) {
 		scr1 = floor2( sc, sc ); scr2 = floor2( sc + 2hh, sc ); scr3 = floor2( -sc - 2hh, sc );
@@ -144,7 +141,4 @@
 
 	printf( "unsigned char\n" );
-//	uc = 0;
-//	ucr1 = floor2( uc, uc ), ucr2 = floor2( uc + 2hh, uc ), ucr3 = floor2( -uc - 2hh, uc );
-//	printf( "floor2(%hhu, %hhu) = %hhu, floor2(%hhu, %hhu) = %hhu, floor2(%hhu, %hhu) = %hhu\n", uc, uc, ucr1, uc + 2uhh, uc, ucr2, -uc - 2uhh, uc, ucr3 );
 	for ( uc = 1; uc != 0; uc <<= 1 ) {
 		ucr1 = floor2( uc, uc ); ucr2 = floor2( uc + 2hh, uc ); ucr3 = floor2( -uc - 2hh, uc );
@@ -154,7 +148,4 @@
 
 	printf( "short int\n" );
-//	si = 0;
-//	sir1 = floor2( si, si ), sir2 = floor2( si + 2hh, si ), sir3 = floor2( -si - 2hh, si );
-//	printf( "floor2(%hd, %hd) = %hd, floor2(%hd, %hd) = %hd, floor2(%hd, %hd) = %hd\n", si, si, sir1, si + 2h, si, sir2, -si - 2h, si, sir3 );
 	for ( si = 1; si != 0; si <<= 1 ) {
 		sir1 = floor2( si, si ); sir2 = floor2( si + 2hh, si ); sir3 = floor2( -si - 2hh, si );
@@ -164,7 +155,4 @@
 
 	printf( "unsigned short int\n" );
-//	usi = 0;
-//	usir1 = floor2( usi, usi ), usir2 = floor2( usi + 2hh, usi ), usir3 = floor2( -usi - 2hh, usi );
-//	printf( "floor2(%hu, %hu) = %hu, floor2(%hu, %hu) = %hu, floor2(%hu, %hu) = %hu\n", usi, usi, usir1, usi + 2uh, usi, usir2, -usi - 2uh, usi, usir3 );
 	for ( usi = 1; usi != 0; usi <<= 1 ) {
 		usir1 = floor2( usi, usi ); usir2 = floor2( usi + 2hh, usi ); usir3 = floor2( -usi - 2hh, usi );
@@ -174,7 +162,4 @@
 
 	printf( "int\n" );
-//	i = 0;
-//	ir1 = floor2( i, i ), ir2 = floor2( i + 2hh, i ), ir3 = floor2( -i - 2hh, i );
-//	printf( "floor2(%d, %d) = %d, floor2(%d, %d) = %d, floor2(%d, %d) = %d\n", i, i, ir1, i + 2h, i, ir2, -i - 2h, i, ir3 );
 	for ( i = 1; i != 0; i <<= 1 ) {
 		ir1 = floor2( i, i ); ir2 = floor2( i + 2hh, i ); ir3 = floor2( -i - 2hh, i );
@@ -184,7 +169,4 @@
 
 	printf( "unsigned int\n" );
-//	ui = 0;
-//	uir1 = floor2( ui, ui ), uir2 = floor2( ui + 2hh, ui ), uir3 = floor2( -ui - 2hh, ui );
-//	printf( "floor2(%u, %u) = %u, floor2(%u, %u) = %u, floor2(%u, %u) = %u\n", ui, ui, uir1, ui + 2h, ui, uir2, -ui - 2h, ui, uir3 );
 	for ( ui = 1; ui != 0; ui <<= 1 ) {
 		uir1 = floor2( ui, ui ); uir2 = floor2( ui + 2hh, ui ); uir3 = floor2( -ui - 2hh, ui );
@@ -194,7 +176,4 @@
 
 	printf( "long int\n" );
-//	li = 0;
-//	lir1 = floor2( li, li ), lir2 = floor2( li + 2hh, li ), lir3 = floor2( -li - 2hh, li );
-//	printf( "floor2(%ld, %ld) = %ld, floor2(%ld, %ld) = %ld, floor2(%ld, %ld) = %ld\n", li, li, lir1, li + 2h, li, lir2, -li - 2h, li, lir3 );
 	for ( li = 1; li != 0; li <<= 1 ) {
 		lir1 = floor2( li, li ); lir2 = floor2( li + 2hh, li ); lir3 = floor2( -li - 2hh, li );
@@ -204,7 +183,4 @@
 
 	printf( "unsigned long int\n" );
-//	uli = 0;
-//	ulir1 = floor2( uli, uli ), ulir2 = floor2( uli + 2hh, uli ), ulir3 = floor2( -uli - 2hh, uli );
-//	printf( "floor2(%lu, %lu) = %lu, floor2(%lu, %lu) = %lu, floor2(%lu, %lu) = %lu\n", uli, uli, ulir1, uli + 2h, uli, ulir2, -uli - 2h, uli, ulir3 );
 	for ( uli = 1; uli != 0; uli <<= 1 ) {
 		ulir1 = floor2( uli, uli ); ulir2 = floor2( uli + 2hh, uli ); ulir3 = floor2( -uli - 2hh, uli );
@@ -214,7 +190,4 @@
 
 	printf( "long long int\n" );
-//	lli = 0;
-//	llir1 = floor2( lli, lli ), llir2 = floor2( lli + 2hh, lli ), llir3 = floor2( -lli - 2hh, lli );
-//	printf( "floor2(%lld, %lld) = %lld, floor2(%lld, %lld) = %lld, floor2(%lld, %lld) = %lld\n", lli, lli, llir1, lli + 2h, lli, llir2, -lli - 2h, lli, llir3 );
 	for ( lli = 1; lli != 0; lli <<= 1 ) {
 		llir1 = floor2( lli, lli ); llir2 = floor2( lli + 2hh, lli ); llir3 = floor2( -lli - 2hh, lli );
@@ -224,84 +197,7 @@
 
 	printf( "unsigned long long int\n" );
-//	ulli = 0;
-//	ullir1 = floor2( ulli, ulli ), ullir2 = floor2( ulli + 2hh, ulli ), ullir3 = floor2( -ulli - 2hh, ulli );
-//	printf( "floor2(%llu, %llu) = %llu, floor2(%llu, %llu) = %llu, floor2(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
 	for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
 		ullir1 = floor2( ulli, ulli ); ullir2 = floor2( ulli + 2hh, ulli ); ullir3 = floor2( -ulli - 2hh, ulli );
 		printf( "floor2(%llu, %llu) = %llu, floor2(%llu, %llu) = %llu, floor2(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
-	} // for
-	printf( "\n" );
-#endif // 0
-	//============================================================
-#if 1
-	sout | nl | "floor" | nl | nl;
-
-	printf( "signed char\n" );
-	for ( sc = 1; sc != 0; sc <<= 1 ) {
-		scr1 = floor( sc, sc ); scr2 = floor( sc + 2hh, sc ); scr3 = floor( -sc - 2hh, sc );
-		printf( "floor(%hhd, %hhd) = %hhd, floor(%hhd, %hhd) = %hhd, floor(%hhd, %hhd) = %hhd\n", sc, sc, scr1, sc + 2hh, sc, scr2, -sc - 2hh, sc, scr3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned char\n" );
-	for ( uc = 1; uc != 0; uc <<= 1 ) {
-		ucr1 = floor( uc, uc ); ucr2 = floor( uc + 2hh, uc ); ucr3 = floor( -uc - 2hh, uc );
-		printf( "floor(%hhu, %hhu) = %hhu, floor(%hhu, %hhu) = %hhu, floor(%hhu, %hhu) = %hhu\n", uc, uc, ucr1, uc + 2uhh, uc, ucr2, -uc - 2uhh, uc, ucr3 );
-	} // for
-	printf( "\n" );
-
-	printf( "short int\n" );
-	for ( si = 1; si != 0; si <<= 1 ) {
-		sir1 = floor( si, si ); sir2 = floor( si + 2hh, si ); sir3 = floor( -si - 2hh, si );
-		printf( "floor(%hd, %hd) = %hd, floor(%hd, %hd) = %hd, floor(%hd, %hd) = %hd\n", si, si, sir1, si + 2h, si, sir2, -si - 2h, si, sir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned short int\n" );
-	for ( usi = 1; usi != 0; usi <<= 1 ) {
-		usir1 = floor( usi, usi ); usir2 = floor( usi + 2hh, usi ); usir3 = floor( -usi - 2hh, usi );
-		printf( "floor(%hu, %hu) = %hu, floor(%hu, %hu) = %hu, floor(%hu, %hu) = %hu\n", usi, usi, usir1, usi + 2uh, usi, usir2, -usi - 2uh, usi, usir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "int\n" );
-	for ( i = 1; i != 0; i <<= 1 ) {
-		ir1 = floor( i, i ); ir2 = floor( i + 2hh, i ); ir3 = floor( -i - 2hh, i );
-		printf( "floor(%d, %d) = %d, floor(%d, %d) = %d, floor(%d, %d) = %d\n", i, i, ir1, i + 2h, i, ir2, -i - 2h, i, ir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned int\n" );
-	for ( ui = 1; ui != 0; ui <<= 1 ) {
-		uir1 = floor( ui, ui ); uir2 = floor( ui + 2hh, ui ); uir3 = floor( -ui - 2hh, ui );
-		printf( "floor(%u, %u) = %u, floor(%u, %u) = %u, floor(%u, %u) = %u\n", ui, ui, uir1, ui + 2h, ui, uir2, -ui - 2h, ui, uir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "long int\n" );
-	for ( li = 1; li != 0; li <<= 1 ) {
-		lir1 = floor( li, li ); lir2 = floor( li + 2hh, li ); lir3 = floor( -li - 2hh, li );
-		printf( "floor(%ld, %ld) = %ld, floor(%ld, %ld) = %ld, floor(%ld, %ld) = %ld\n", li, li, lir1, li + 2h, li, lir2, -li - 2h, li, lir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned long int\n" );
-	for ( uli = 1; uli != 0; uli <<= 1 ) {
-		ulir1 = floor( uli, uli ); ulir2 = floor( uli + 2hh, uli ); ulir3 = floor( -uli - 2hh, uli );
-		printf( "floor(%lu, %lu) = %lu, floor(%lu, %lu) = %lu, floor(%lu, %lu) = %lu\n", uli, uli, ulir1, uli + 2h, uli, ulir2, -uli - 2h, uli, ulir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "long long int\n" );
-	for ( lli = 1; lli != 0; lli <<= 1 ) {
-		llir1 = floor( lli, lli ); llir2 = floor( lli + 2hh, lli ); llir3 = floor( -lli - 2hh, lli );
-		printf( "floor(%lld, %lld) = %lld, floor(%lld, %lld) = %lld, floor(%lld, %lld) = %lld\n", lli, lli, llir1, lli + 2h, lli, llir2, -lli - 2h, lli, llir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned long long int\n" );
-	for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
-		ullir1 = floor( ulli, ulli ); ullir2 = floor( ulli + 2hh, ulli ); ullir3 = floor( -ulli - 2hh, ulli );
-		printf( "floor(%llu, %llu) = %llu, floor(%llu, %llu) = %llu, floor(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
 	} // for
 	printf( "\n" );
@@ -312,7 +208,4 @@
 
 	printf( "signed char\n" );
-//	sc = 0;
-//	scr1 = ceiling2( sc, sc ), scr2 = ceiling2( sc + 2hh, sc ), scr3 = ceiling2( -sc - 2hh, sc );
-//	printf( "ceiling2(%hhd, %hhd) = %hhd, ceiling2(%hhd, %hhd) = %hhd, ceiling2(%hhd, %hhd) = %hhd\n", sc, sc, scr1, sc + 2hh, sc, scr2, -sc - 2hh, sc, scr3 );
 	for ( sc = 1; sc != 0; sc <<= 1 ) {
 		scr1 = ceiling2( sc, sc ); scr2 = ceiling2( sc + 2hh, sc ); scr3 = ceiling2( -sc - 2hh, sc );
@@ -322,7 +215,4 @@
 
 	printf( "unsigned char\n" );
-//	uc = 0;
-//	ucr1 = ceiling2( uc, uc ), ucr2 = ceiling2( uc + 2hh, uc ), ucr3 = ceiling2( -uc - 2hh, uc );
-//	printf( "ceiling2(%hhu, %hhu) = %hhu, ceiling2(%hhu, %hhu) = %hhu, ceiling2(%hhu, %hhu) = %hhu\n", uc, uc, ucr1, uc + 2uhh, uc, ucr2, -uc - 2uhh, uc, ucr3 );
 	for ( uc = 1; uc != 0; uc <<= 1 ) {
 		ucr1 = ceiling2( uc, uc ); ucr2 = ceiling2( uc + 2hh, uc ); ucr3 = ceiling2( -uc - 2hh, uc );
@@ -332,7 +222,4 @@
 
 	printf( "short int\n" );
-//	si = 0;
-//	sir1 = ceiling2( si, si ), sir2 = ceiling2( si + 2hh, si ), sir3 = ceiling2( -si - 2hh, si );
-//	printf( "ceiling2(%hd, %hd) = %hd, ceiling2(%hd, %hd) = %hd, ceiling2(%hd, %hd) = %hd\n", si, si, sir1, si + 2h, si, sir2, -si - 2h, si, sir3 );
 	for ( si = 1; si != 0; si <<= 1 ) {
 		sir1 = ceiling2( si, si ); sir2 = ceiling2( si + 2hh, si ); sir3 = ceiling2( -si - 2hh, si );
@@ -342,7 +229,4 @@
 
 	printf( "unsigned short int\n" );
-//	usi = 0;
-//	usir1 = ceiling2( usi, usi ), usir2 = ceiling2( usi + 2hh, usi ), usir3 = ceiling2( -usi - 2hh, usi );
-//	printf( "ceiling2(%hu, %hu) = %hu, ceiling2(%hu, %hu) = %hu, ceiling2(%hu, %hu) = %hu\n", usi, usi, usir1, usi + 2uh, usi, usir2, -usi - 2uh, usi, usir3 );
 	for ( usi = 1; usi != 0; usi <<= 1 ) {
 		usir1 = ceiling2( usi, usi ); usir2 = ceiling2( usi + 2hh, usi ); usir3 = ceiling2( -usi - 2hh, usi );
@@ -352,7 +236,4 @@
 
 	printf( "int\n" );
-//	i = 0;
-//	ir1 = ceiling2( i, i ), ir2 = ceiling2( i + 2hh, i ), ir3 = ceiling2( -i - 2hh, i );
-//	printf( "ceiling2(%d, %d) = %d, ceiling2(%d, %d) = %d, ceiling2(%d, %d) = %d\n", i, i, ir1, i + 2h, i, ir2, -i - 2h, i, ir3 );
 	for ( i = 1; i != 0; i <<= 1 ) {
 		ir1 = ceiling2( i, i ); ir2 = ceiling2( i + 2hh, i ); ir3 = ceiling2( -i - 2hh, i );
@@ -362,7 +243,4 @@
 
 	printf( "unsigned int\n" );
-//	ui = 0;
-//	uir1 = ceiling2( ui, ui ), uir2 = ceiling2( ui + 2hh, ui ), uir3 = ceiling2( -ui - 2hh, ui );
-//	printf( "ceiling2(%u, %u) = %u, ceiling2(%u, %u) = %u, ceiling2(%u, %u) = %u\n", ui, ui, uir1, ui + 2h, ui, uir2, -ui - 2h, ui, uir3 );
 	for ( ui = 1; ui != 0; ui <<= 1 ) {
 		uir1 = ceiling2( ui, ui ); uir2 = ceiling2( ui + 2hh, ui ); uir3 = ceiling2( -ui - 2hh, ui );
@@ -372,7 +250,4 @@
 
 	printf( "long int\n" );
-//	li = 0;
-//	lir1 = ceiling2( li, li ), lir2 = ceiling2( li + 2hh, li ), lir3 = ceiling2( -li - 2hh, li );
-//	printf( "ceiling2(%ld, %ld) = %ld, ceiling2(%ld, %ld) = %ld, ceiling2(%ld, %ld) = %ld\n", li, li, lir1, li + 2h, li, lir2, -li - 2h, li, lir3 );
 	for ( li = 1; li != 0; li <<= 1 ) {
 		lir1 = ceiling2( li, li ); lir2 = ceiling2( li + 2hh, li ); lir3 = ceiling2( -li - 2hh, li );
@@ -382,7 +257,4 @@
 
 	printf( "unsigned long int\n" );
-//	uli = 0;
-//	ulir1 = ceiling2( uli, uli ), ulir2 = ceiling2( uli + 2hh, uli ), ulir3 = ceiling2( -uli - 2hh, uli );
-//	printf( "ceiling2(%lu, %lu) = %lu, ceiling2(%lu, %lu) = %lu, ceiling2(%lu, %lu) = %lu\n", uli, uli, ulir1, uli + 2h, uli, ulir2, -uli - 2h, uli, ulir3 );
 	for ( uli = 1; uli != 0; uli <<= 1 ) {
 		ulir1 = ceiling2( uli, uli ); ulir2 = ceiling2( uli + 2hh, uli ); ulir3 = ceiling2( -uli - 2hh, uli );
@@ -392,7 +264,4 @@
 
 	printf( "long long int\n" );
-//	lli = 0;
-//	llir1 = ceiling2( lli, lli ), llir2 = ceiling2( lli + 2hh, lli ), llir3 = ceiling2( -lli - 2hh, lli );
-//	printf( "ceiling2(%lld, %lld) = %lld, ceiling2(%lld, %lld) = %lld, ceiling2(%lld, %lld) = %lld\n", lli, lli, llir1, lli + 2h, lli, llir2, -lli - 2h, lli, llir3 );
 	for ( lli = 1; lli != 0; lli <<= 1 ) {
 		llir1 = ceiling2( lli, lli ); llir2 = ceiling2( lli + 2hh, lli ); llir3 = ceiling2( -lli - 2hh, lli );
@@ -402,158 +271,7 @@
 
 	printf( "unsigned long long int\n" );
-//	ulli = 0;
-//	ullir1 = ceiling2( ulli, ulli ), ullir2 = ceiling2( ulli + 2hh, ulli ), ullir3 = ceiling2( -ulli - 2hh, ulli );
-//	printf( "ceiling2(%llu, %llu) = %llu, ceiling2(%llu, %llu) = %llu, ceiling2(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
 	for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
 		ullir1 = ceiling2( ulli, ulli ); ullir2 = ceiling2( ulli + 2hh, ulli ); ullir3 = ceiling2( -ulli - 2hh, ulli );
 		printf( "ceiling2(%llu, %llu) = %llu, ceiling2(%llu, %llu) = %llu, ceiling2(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
-	} // for
-	printf( "\n" );
-#endif // 0
-	//============================================================
-#if 1
-	sout | nl | "ceiling_div" | nl | nl;
-
-	printf( "signed char\n" );
-	for ( sc = 1; sc != 0; sc <<= 1 ) {
-		scr1 = ceiling_div( sc, sc ); scr2 = ceiling_div( sc + 2hh, sc ); scr3 = ceiling_div( -sc - 2hh, sc );
-		printf( "ceiling_div(%hhd, %hhd) = %hhd, ceiling_div(%hhd, %hhd) = %hhd, ceiling_div(%hhd, %hhd) = %hhd\n", sc, sc, scr1, sc + 2hh, sc, scr2, -sc - 2hh, sc, scr3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned char\n" );
-	for ( uc = 1; uc != 0; uc <<= 1 ) {
-		ucr1 = ceiling_div( uc, uc ); ucr2 = ceiling_div( uc + 2hh, uc ); ucr3 = ceiling_div( -uc - 2hh, uc );
-		printf( "ceiling_div(%hhu, %hhu) = %hhu, ceiling_div(%hhu, %hhu) = %hhu, ceiling_div(%hhu, %hhu) = %hhu\n", uc, uc, ucr1, uc + 2uhh, uc, ucr2, -uc - 2uhh, uc, ucr3 );
-	} // for
-	printf( "\n" );
-
-	printf( "short int\n" );
-	for ( si = 1; si != 0; si <<= 1 ) {
-		sir1 = ceiling_div( si, si ); sir2 = ceiling_div( si + 2hh, si ); sir3 = ceiling_div( -si - 2hh, si );
-		printf( "ceiling_div(%hd, %hd) = %hd, ceiling_div(%hd, %hd) = %hd, ceiling_div(%hd, %hd) = %hd\n", si, si, sir1, si + 2h, si, sir2, -si - 2h, si, sir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned short int\n" );
-	for ( usi = 1; usi != 0; usi <<= 1 ) {
-		usir1 = ceiling_div( usi, usi ); usir2 = ceiling_div( usi + 2hh, usi ); usir3 = ceiling_div( -usi - 2hh, usi );
-		printf( "ceiling_div(%hu, %hu) = %hu, ceiling_div(%hu, %hu) = %hu, ceiling_div(%hu, %hu) = %hu\n", usi, usi, usir1, usi + 2uh, usi, usir2, -usi - 2uh, usi, usir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "int\n" );
-	for ( i = 1; i != 0; i <<= 1 ) {
-		ir1 = ceiling_div( i, i ); ir2 = ceiling_div( i + 2hh, i ); ir3 = ceiling_div( -i - 2hh, i );
-		printf( "ceiling_div(%d, %d) = %d, ceiling_div(%d, %d) = %d, ceiling_div(%d, %d) = %d\n", i, i, ir1, i + 2h, i, ir2, -i - 2h, i, ir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned int\n" );
-	for ( ui = 1; ui != 0; ui <<= 1 ) {
-		uir1 = ceiling_div( ui, ui ); uir2 = ceiling_div( ui + 2hh, ui ); uir3 = ceiling_div( -ui - 2hh, ui );
-		printf( "ceiling_div(%u, %u) = %u, ceiling_div(%u, %u) = %u, ceiling_div(%u, %u) = %u\n", ui, ui, uir1, ui + 2h, ui, uir2, -ui - 2h, ui, uir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "long int\n" );
-	for ( li = 1; li != 0; li <<= 1 ) {
-		lir1 = ceiling_div( li, li ); lir2 = ceiling_div( li + 2hh, li ); lir3 = ceiling_div( -li - 2hh, li );
-		printf( "ceiling_div(%ld, %ld) = %ld, ceiling_div(%ld, %ld) = %ld, ceiling_div(%ld, %ld) = %ld\n", li, li, lir1, li + 2h, li, lir2, -li - 2h, li, lir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned long int\n" );
-	for ( uli = 1; uli != 0; uli <<= 1 ) {
-		ulir1 = ceiling_div( uli, uli ); ulir2 = ceiling_div( uli + 2hh, uli ); ulir3 = ceiling_div( -uli - 2hh, uli );
-		printf( "ceiling_div(%lu, %lu) = %lu, ceiling_div(%lu, %lu) = %lu, ceiling_div(%lu, %lu) = %lu\n", uli, uli, ulir1, uli + 2h, uli, ulir2, -uli - 2h, uli, ulir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "long long int\n" );
-	for ( lli = 1; lli != 0; lli <<= 1 ) {
-		llir1 = ceiling_div( lli, lli ); llir2 = ceiling_div( lli + 2hh, lli ); llir3 = ceiling_div( -lli - 2hh, lli );
-		printf( "ceiling_div(%lld, %lld) = %lld, ceiling_div(%lld, %lld) = %lld, ceiling_div(%lld, %lld) = %lld\n", lli, lli, llir1, lli + 2h, lli, llir2, -lli - 2h, lli, llir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned long long int\n" );
-	for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
-		ullir1 = ceiling_div( ulli, ulli ); ullir2 = ceiling_div( ulli + 2hh, ulli ); ullir3 = ceiling_div( -ulli - 2hh, ulli );
-		printf( "ceiling_div(%llu, %llu) = %llu, ceiling_div(%llu, %llu) = %llu, ceiling_div(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
-	} // for
-	printf( "\n" );
-#endif // 0
-	//============================================================
-#if 1
-	sout | nl | "ceiling" | nl | nl;
-
-	printf( "signed char\n" );
-	for ( sc = 1; sc != 0; sc <<= 1 ) {
-		scr1 = ceiling( sc, sc ); scr2 = ceiling( sc + 2hh, sc ); scr3 = ceiling( -sc - 2hh, sc );
-		printf( "ceiling(%hhd, %hhd) = %hhd, ceiling(%hhd, %hhd) = %hhd, ceiling(%hhd, %hhd) = %hhd\n", sc, sc, scr1, sc + 2hh, sc, scr2, -sc - 2hh, sc, scr3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned char\n" );
-	for ( uc = 1; uc != 0; uc <<= 1 ) {
-		ucr1 = ceiling( uc, uc ); ucr2 = ceiling( uc + 2hh, uc ); ucr3 = ceiling( -uc - 2hh, uc );
-		printf( "ceiling(%hhu, %hhu) = %hhu, ceiling(%hhu, %hhu) = %hhu, ceiling(%hhu, %hhu) = %hhu\n", uc, uc, ucr1, uc + 2uhh, uc, ucr2, -uc - 2uhh, uc, ucr3 );
-	} // for
-	printf( "\n" );
-
-	printf( "short int\n" );
-	for ( si = 1; si != 0; si <<= 1 ) {
-		sir1 = ceiling( si, si ); sir2 = ceiling( si + 2hh, si ); sir3 = ceiling( -si - 2hh, si );
-		printf( "ceiling(%hd, %hd) = %hd, ceiling(%hd, %hd) = %hd, ceiling(%hd, %hd) = %hd\n", si, si, sir1, si + 2h, si, sir2, -si - 2h, si, sir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned short int\n" );
-	for ( usi = 1; usi != 0; usi <<= 1 ) {
-		usir1 = ceiling( usi, usi ); usir2 = ceiling( usi + 2hh, usi ); usir3 = ceiling( -usi - 2hh, usi );
-		printf( "ceiling(%hu, %hu) = %hu, ceiling(%hu, %hu) = %hu, ceiling(%hu, %hu) = %hu\n", usi, usi, usir1, usi + 2uh, usi, usir2, -usi - 2uh, usi, usir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "int\n" );
-	for ( i = 1; i != 0; i <<= 1 ) {
-		ir1 = ceiling( i, i ); ir2 = ceiling( i + 2hh, i ); ir3 = ceiling( -i - 2hh, i );
-		printf( "ceiling(%d, %d) = %d, ceiling(%d, %d) = %d, ceiling(%d, %d) = %d\n", i, i, ir1, i + 2h, i, ir2, -i - 2h, i, ir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned int\n" );
-	for ( ui = 1; ui != 0; ui <<= 1 ) {
-		uir1 = ceiling( ui, ui ); uir2 = ceiling( ui + 2hh, ui ); uir3 = ceiling( -ui - 2hh, ui );
-		printf( "ceiling(%u, %u) = %u, ceiling(%u, %u) = %u, ceiling(%u, %u) = %u\n", ui, ui, uir1, ui + 2h, ui, uir2, -ui - 2h, ui, uir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "long int\n" );
-	for ( li = 1; li != 0; li <<= 1 ) {
-		lir1 = ceiling( li, li ); lir2 = ceiling( li + 2hh, li ); lir3 = ceiling( -li - 2hh, li );
-		printf( "ceiling(%ld, %ld) = %ld, ceiling(%ld, %ld) = %ld, ceiling(%ld, %ld) = %ld\n", li, li, lir1, li + 2h, li, lir2, -li - 2h, li, lir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned long int\n" );
-	for ( uli = 1; uli != 0; uli <<= 1 ) {
-		ulir1 = ceiling( uli, uli ); ulir2 = ceiling( uli + 2hh, uli ); ulir3 = ceiling( -uli - 2hh, uli );
-		printf( "ceiling(%lu, %lu) = %lu, ceiling(%lu, %lu) = %lu, ceiling(%lu, %lu) = %lu\n", uli, uli, ulir1, uli + 2h, uli, ulir2, -uli - 2h, uli, ulir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "long long int\n" );
-	for ( lli = 1; lli != 0; lli <<= 1 ) {
-		llir1 = ceiling( lli, lli ); llir2 = ceiling( lli + 2hh, lli ); llir3 = ceiling( -lli - 2hh, lli );
-		printf( "ceiling(%lld, %lld) = %lld, ceiling(%lld, %lld) = %lld, ceiling(%lld, %lld) = %lld\n", lli, lli, llir1, lli + 2h, lli, llir2, -lli - 2h, lli, llir3 );
-	} // for
-	printf( "\n" );
-
-	printf( "unsigned long long int\n" );
-	for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
-		ullir1 = ceiling( ulli, ulli ); ullir2 = ceiling( ulli + 2hh, ulli ); ullir3 = ceiling( -ulli - 2hh, ulli );
-		printf( "ceiling(%llu, %llu) = %llu, ceiling(%llu, %llu) = %llu, ceiling(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
 	} // for
 	printf( "\n" );
Index: tests/concurrent/cluster.cfa
===================================================================
--- tests/concurrent/cluster.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/concurrent/cluster.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,35 @@
+#include <kernel.hfa>
+#include <thread.hfa>
+
+static cluster * the_cluster;
+
+thread MyThread {};
+void ?{}( MyThread & this ) {
+	((thread&)this){ *the_cluster };
+}
+
+void main( MyThread & this ) {
+	for(50) {
+		yield();
+	}
+}
+
+struct MyProc {
+	processor self;
+};
+
+void ?{}( MyProc & this ) {
+	(this.self){ *the_cluster };
+}
+
+int main() {
+	cluster cl;
+	the_cluster = &cl;
+	{
+		MyProc procs[4];
+		{
+			MyThread threads[17];
+		}
+	}
+	return 0;
+}
Index: tests/copyfile.cfa
===================================================================
--- tests/copyfile.cfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/copyfile.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -10,6 +10,6 @@
 // Created On       : Fri Jun 19 13:44:05 2020
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Jul  5 11:27:43 2020
-// Update Count     : 5
+// Last Modified On : Sat Aug 15 15:00:48 2020
+// Update Count     : 6
 // 
 
@@ -45,5 +45,5 @@
 	  if ( eof( in ) ) break;							// eof ?
 		out | ch;
-	} //for
+	} // for
 } // main
 
Index: tests/errors/.expect/completeType.x64.txt
===================================================================
--- tests/errors/.expect/completeType.x64.txt	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/errors/.expect/completeType.x64.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -6,7 +6,5 @@
     Name: x
 
-... to: nothing
-with resolved type:
-  void  Alternatives are:
+... to: nothing Alternatives are:
 Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
       Application of
@@ -22,26 +20,8 @@
 
 
-        with resolved type:
-          pointer to forall
-            _90_4_DT: data type
-            function
-          ... with parameters
-            intrinsic pointer to instance of type _90_4_DT (not function type)
-          ... returning
-            _retval__operator_deref: reference to instance of type _90_4_DT (not function type)
-            ... with attributes:
-              Attribute with name: unused
-
-
       ... to arguments
         Variable Expression: x: pointer to instance of struct A with body 0
-        with resolved type:
-          pointer to instance of struct A with body 0
 
-      with resolved type:
-        reference to instance of struct A with body 0
     ... to: nothing
-    with resolved type:
-      void 
   (types:
     void 
@@ -63,26 +43,8 @@
 
 
-        with resolved type:
-          pointer to forall
-            _90_4_DT: data type
-            function
-          ... with parameters
-            intrinsic pointer to instance of type _90_4_DT (not function type)
-          ... returning
-            _retval__operator_deref: reference to instance of type _90_4_DT (not function type)
-            ... with attributes:
-              Attribute with name: unused
-
-
       ... to arguments
         Variable Expression: x: pointer to instance of struct B with body 1
-        with resolved type:
-          pointer to instance of struct B with body 1
 
-      with resolved type:
-        reference to instance of struct B with body 1
     ... to: nothing
-    with resolved type:
-      void 
   (types:
     void 
@@ -159,47 +121,7 @@
             ... returning nothing
 
-            with resolved type:
-              pointer to forall
-                _109_0_T: sized data type
-                ... with assertions
-                  ?=?: pointer to function
-                  ... with parameters
-                    reference to instance of type _109_0_T (not function type)
-                    instance of type _109_0_T (not function type)
-                  ... returning
-                    _retval__operator_assign: instance of type _109_0_T (not function type)
-                    ... with attributes:
-                      Attribute with name: unused
-
-
-                  ?{}: pointer to function
-                  ... with parameters
-                    reference to instance of type _109_0_T (not function type)
-                  ... returning nothing
-
-                  ?{}: pointer to function
-                  ... with parameters
-                    reference to instance of type _109_0_T (not function type)
-                    instance of type _109_0_T (not function type)
-                  ... returning nothing
-
-                  ^?{}: pointer to function
-                  ... with parameters
-                    reference to instance of type _109_0_T (not function type)
-                  ... returning nothing
-
-
-                function
-              ... with parameters
-                pointer to instance of type _109_0_T (not function type)
-              ... returning nothing
-
           ... to arguments
             Variable Expression: z: pointer to instance of type T (not function type)
-            with resolved type:
-              pointer to instance of type T (not function type)
 
-          with resolved type:
-            void 
         (types:
           void 
Index: tests/exceptions/polymorphic.cfa
===================================================================
--- tests/exceptions/polymorphic.cfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/exceptions/polymorphic.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -11,5 +11,5 @@
 POLY_VTABLE_INSTANCE(proxy, char)(msg);
 
-void proxy_test () {
+void proxy_test(void) {
     try {
 		throw (proxy(int)){};
Index: tests/literals.cfa
===================================================================
--- tests/literals.cfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/literals.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  9 16:34:38 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Aug 20 13:51:12 2020
-// Update Count     : 225
+// Last Modified On : Sat Aug 29 10:57:56 2020
+// Update Count     : 226
 //
 
@@ -151,4 +151,5 @@
 	-0X0123456789.0123456789P-09;  -0X0123456789.0123456789P-09f;  -0X0123456789.0123456789P-09l;  -0X0123456789.0123456789P-09F;  -0X0123456789.0123456789P-09L;
 
+#if defined( __i386 ) || defined( __x86_64 )
 #if defined(__GNUC__) && __GNUC_PREREQ(7,0)				// gcc version >= 7
 // floating with length, gcc f16/f128x unsupported and no prelude code for any _FloatXXx, so they work by conversion to long double
@@ -194,4 +195,5 @@
 	/* -0x123456789.0123456789P-09F16; */  -0x123456789.0123456789P-09F32;  -0x123456789.0123456789P-09F32x;  -0x123456789.0123456789P-09F64;  -0x123456789.0123456789P-09F64x;  -0x123456789.0123456789P-09W;  -0x123456789.0123456789P-09F128;  -0x123456789.0123456789P-09q;  /* -0x123456789.0123456789P-09q; */
 #endif // __GNUC_PREREQ(7,0)
+#endif // __i386 ) || __x86_64
 
 #ifdef __CFA__
Index: tests/malloc.cfa
===================================================================
--- tests/malloc.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
+++ tests/malloc.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -0,0 +1,580 @@
+#include <assert.h>
+#include <malloc.h>										// malloc_usable_size
+#include <stdint.h>										// uintptr_t
+#include <stdlib.h>										// posix_memalign
+#include <fstream.hfa>
+#include <stdlib.hfa>									// access C malloc, realloc
+#include <unistd.h>										// getpagesize
+
+int tests_total;
+int tests_failed;
+size_t tAlign = 32;
+struct S1 { int d1; } __attribute__((aligned(32)));
+typedef struct S1 T1;
+
+void test_base( void * ip, size_t size, size_t align) {
+	tests_total += 1;
+	bool passed = (malloc_size(ip) == size) && (malloc_usable_size(ip) >= size) && (malloc_alignment(ip) == align) && ((uintptr_t)ip % align  == 0);
+	if (!passed) {
+		printf("failed test %2d: %4lu %4lu but got %4lu ( %3lu ) %4lu\n", tests_total, size, align, malloc_size(ip), malloc_usable_size(ip), malloc_alignment(ip));
+		tests_failed += 1;
+	}
+}
+
+void test_fill( void * ip_, size_t start, size_t end, char fill) {
+	tests_total += 1;
+	bool passed = true;
+	char * ip = (char *) ip_;
+	for (i; start ~ end) passed = passed && (ip[i] == fill);
+	if (!passed) {
+		printf("failed test %2d: fill\n", tests_total);
+		tests_failed += 1;
+	}
+}
+
+void test_use( void * ip_) {
+	tests_total += 1;
+	bool passed = true;
+	int * ip = (int *) ip_;
+	size_t size = malloc_size(ip);
+	for (i; 0 ~ size ~ sizeof(int)) ip[i/sizeof(int)] = 0xdeadbeef;
+	for (i; 0 ~ size ~ sizeof(int)) passed = passed &&  (ip[i/sizeof(int)] == 0xdeadbeef);
+	size_t usize = malloc_usable_size(ip);
+	for (i; size ~ usize ~ sizeof(int)) ip[i/sizeof(int)] = -1;
+	for (i; size ~ usize ~ sizeof(int)) passed = passed &&  (ip[i/sizeof(int)] == -1);
+	if (!passed) {
+		printf("failed test %2d: use\n", tests_total);
+		tests_failed += 1;
+	}
+}
+
+int main( void ) {
+	size_t elemSize = sizeof(int);
+	size_t dim = 8;
+	size_t size = dim * elemSize;
+	size_t align = 64;
+	const size_t libAlign = libAlign();
+	char fill = '\xde';
+	int * ip;
+	T1 * tp;
+
+	// testing C   malloc
+
+	tests_total = 0;
+	tests_failed = 0;
+
+	ip = (int *) (void *) malloc( size );
+	test_base(ip, size, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) malloc( 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) aalloc( dim, elemSize );
+	test_base(ip, size, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) aalloc( 0, elemSize );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) aalloc( dim, 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) aalloc( 0, 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) calloc( dim, elemSize );
+	test_base(ip, size, libAlign);
+	test_fill(ip, 0, size, '\0');
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) calloc( 0, elemSize );
+	test_base(ip, 0, libAlign);
+	test_fill(ip, 0, 0, '\0');
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) calloc( dim, 0 );
+	test_base(ip, 0, libAlign);
+	test_fill(ip, 0, 0, '\0');
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) malloc( size );
+	ip = (int *) (void *) resize( (void *) ip, size / 4 );
+	test_base(ip, size / 4, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) malloc( size );
+	ip = (int *) (void *) resize( (void *) ip, size * 4 );
+	test_base(ip, size * 4, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) malloc( size );
+	ip = (int *) (void *) resize( (void *) ip, 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) resize( NULL, size );
+	test_base(ip, size, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) resize( 0p, size );
+	test_base(ip, size, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) calloc( dim, elemSize );
+	ip = (int *) (void *) realloc( (void *) ip, size / 4 );
+	test_base(ip, size / 4, libAlign);
+	test_fill(ip, 0, size / 4, '\0');
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) calloc( dim, elemSize );
+	ip = (int *) (void *) realloc( (void *) ip, size * 4 );
+	test_base(ip, size * 4, libAlign);
+	test_fill(ip, 0, size * 4, '\0');
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) calloc( dim, elemSize );
+	ip = (int *) (void *) realloc( (void *) ip, 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) realloc( NULL, size  );
+	test_base(ip, size , libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) realloc( 0p, size );
+	test_base(ip, size, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) memalign( align, size );
+	test_base(ip, size, align);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) memalign( align, 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) amemalign( align, dim, elemSize );
+	test_base(ip, size, align);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) amemalign( align, 0, elemSize );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) amemalign( align, dim, 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) cmemalign( align, dim, elemSize );
+	test_base(ip, size, align);
+	test_fill(ip, 0, size, '\0');
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) cmemalign( align, 0, elemSize );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) cmemalign( align, dim, 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) aligned_alloc( align, size );
+	test_base(ip, size, align);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) aligned_alloc( align, 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	(int) posix_memalign( (void **) &ip, align, size );
+	test_base(ip, size, align);
+	test_use(ip);
+	free(ip);
+
+	(int) posix_memalign( (void **) &ip, align, 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) valloc( size );
+	test_base(ip, size, getpagesize());
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) valloc( 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) pvalloc( getpagesize() * 3 / 2 );
+	test_base(ip, getpagesize() * 2, getpagesize());
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) pvalloc( 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) malloc( size );
+	ip = (int *) (void *) resize( (void *) ip, align, size / 4 );
+	test_base(ip, size / 4, align);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) malloc( size );
+	ip = (int *) (void *) resize( (void *) ip, align, 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) resize( NULL, align, size );
+	test_base(ip, size, align);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) resize( 0p, align, size );
+	test_base(ip, size, align);
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) calloc( dim, elemSize );
+	ip = (int *) (void *) realloc( (void *) ip, align, size / 4 );
+	test_base(ip, size / 4, align);
+	test_fill(ip, 0, size / 4, '\0');
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) calloc( dim, elemSize );
+	ip = (int *) (void *) realloc( (void *) ip, 0, size * 4 );
+	test_base(ip, size * 4, libAlign);
+	test_fill(ip, 0, size * 4, '\0');
+	test_use(ip);
+	free(ip);
+
+	ip = (int *) (void *) calloc( dim, elemSize );
+	ip = (int *) (void *) realloc( (void *) ip, align, 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	free( 0p ); // sanity check
+	free( NULL ); // sanity check
+
+	if (tests_failed == 0) printf("PASSED C malloc tests\n\n");
+	else printf("failed C malloc tests : %d/%d\n\n", tests_failed, tests_total);
+
+	// testing CFA malloc
+
+	tests_total = 0;
+	tests_failed = 0;
+
+	ip = malloc();
+	test_base(ip, elemSize, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = aalloc( dim );
+	test_base(ip, size, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = aalloc( 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = calloc( dim );
+	test_base(ip, size, libAlign);
+	test_fill(ip, 0, size, '\0');
+	test_use(ip);
+	free(ip);
+
+	ip = calloc( 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = aalloc( dim );
+	ip = resize( ip, size / 4 );
+	test_base(ip, size / 4, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = aalloc( dim );
+	ip = resize( ip, size * 4 );
+	test_base(ip, size * 4, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = aalloc( dim );
+	ip = resize( ip, 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = resize( NULL, size );
+	test_base(ip, size, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = resize( 0p, size );
+	test_base(ip, size, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = calloc( dim );
+	ip = realloc( ip, size / 4 );
+	test_base(ip, size / 4, libAlign);
+	test_fill(ip, 0, size / 4, '\0');
+	test_use(ip);
+	free(ip);
+
+	ip = calloc( dim );
+	ip = realloc( ip, size * 4 );
+	test_base(ip, size * 4, libAlign);
+	test_fill(ip, 0, size, '\0');
+	test_use(ip);
+	free(ip);
+
+	ip = calloc( dim );
+	ip = realloc( ip, 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = realloc( NULL, size );
+	test_base(ip, size , libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = realloc( 0p, size );
+	test_base(ip, size, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = memalign( align );
+	test_base(ip, elemSize, align);
+	test_use(ip);
+	free(ip);
+
+	ip = amemalign( align, dim );
+	test_base(ip, size, align);
+	test_use(ip);
+	free(ip);
+
+	ip = amemalign( align, 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = cmemalign( align, dim );
+	test_base(ip, size, align);
+	test_fill(ip, 0, size, '\0');
+	test_use(ip);
+	free(ip);
+
+	ip = cmemalign( align, 0 );
+	test_base(ip, 0, libAlign);
+	test_use(ip);
+	free(ip);
+
+	ip = aligned_alloc( align );
+	test_base(ip, elemSize, align);
+	test_use(ip);
+	free(ip);
+
+	(int) posix_memalign( (int **) &ip, align );
+	test_base(ip, elemSize, align);
+	test_use(ip);
+	free(ip);
+
+	ip = valloc();
+	test_base(ip, elemSize, getpagesize());
+	test_use(ip);
+	free(ip);
+
+	ip = pvalloc();
+	test_base(ip, getpagesize(), getpagesize());
+	test_use(ip);
+	free(ip);
+
+	if (tests_failed == 0) printf("PASSED CFA malloc tests\n\n");
+	else printf("failed CFA malloc tests : %d/%d\n\n", tests_failed, tests_total);
+
+	// testing CFA malloc
+
+	elemSize = sizeof(T1);
+	size = dim * elemSize;
+	tests_total = 0;
+	tests_failed = 0;
+
+	tp = malloc();
+	test_base(tp, elemSize, tAlign );
+	test_use(tp);
+	free(tp);
+
+	tp = aalloc( dim );
+	test_base(tp, size, tAlign );
+	test_use(tp);
+	free(tp);
+
+	tp = aalloc( 0 );
+	test_base(tp, 0, libAlign);
+	test_use(tp);
+	free(tp);
+
+	tp = calloc( dim );
+	test_base(tp, size, tAlign );
+	test_fill(tp, 0, size, '\0');
+	test_use(tp);
+	free(tp);
+
+	tp = calloc( 0 );
+	test_base(tp, 0, libAlign);
+	test_use(tp);
+	free(tp);
+
+	tp = aalloc( dim );
+	tp = resize( tp, size / 4 );
+	test_base(tp, size / 4, tAlign );
+	test_use(tp);
+	free(tp);
+
+	tp = malloc();
+	tp = resize( tp, size * 4 );
+	test_base(tp, size * 4, tAlign );
+	test_use(tp);
+	free(tp);
+
+	tp = aalloc( dim );
+	tp = resize( tp, 0 );
+	test_base(tp, 0, libAlign);
+	test_use(tp);
+	free(tp);
+
+	tp = resize( NULL, size );
+	test_base(tp, size, tAlign );
+	test_use(tp);
+	free(tp);
+
+	tp = resize( 0p, size );
+	test_base(tp, size, tAlign );
+	test_use(tp);
+	free(tp);
+
+	tp = calloc( dim );
+	tp = realloc( tp, size / 4 );
+	test_base(tp, size / 4, tAlign );
+	test_fill(tp, 0, size / 4, '\0');
+	test_use(tp);
+	free(tp);
+
+	tp = calloc( dim );
+	tp = realloc( tp, size * 4 );
+	test_base(tp, size * 4, tAlign );
+	test_fill(tp, 0, size, '\0');
+	test_use(tp);
+	free(tp);
+
+	tp = calloc( dim );
+	tp = realloc( tp, 0 );
+	test_base(tp, 0, libAlign);
+	test_use(tp);
+	free(tp);
+
+	tp = realloc( NULL, size  );
+	test_base(tp, size , tAlign );
+	test_use(tp);
+	free(tp);
+
+	tp = realloc( 0p, size );
+	test_base(tp, size, tAlign );
+	test_use(tp);
+	free(tp);
+
+	tp = memalign( align );
+	test_base(tp, elemSize, align);
+	test_use(tp);
+	free(tp);
+
+	tp = amemalign( align, dim );
+	test_base(tp, size, align);
+	test_use(tp);
+	free(tp);
+
+	tp = amemalign( align, 0 );
+	test_base(tp, 0, libAlign);
+	test_use(tp);
+	free(tp);
+
+	tp = cmemalign( align, dim );
+	test_base(tp, size, align);
+	test_fill(tp, 0, size, '\0');
+	test_use(tp);
+	free(tp);
+
+	tp = cmemalign( align, 0 );
+	test_base(tp, 0, libAlign);
+	test_use(tp);
+	free(tp);
+
+	tp = aligned_alloc( align );
+	test_base(tp, elemSize, align);
+	test_use(tp);
+	free(tp);
+
+	(int) posix_memalign( (int **) &tp, align );
+	test_base(tp, elemSize, align);
+	test_use(tp);
+	free(tp);
+
+	tp = valloc();
+	test_base(tp, elemSize, getpagesize());
+	test_use(tp);
+	free(tp);
+
+	tp = pvalloc();
+	test_base(tp, getpagesize(), getpagesize());
+	test_use(tp);
+	free(tp);
+
+	if (tests_failed == 0) printf("PASSED CFA malloc tests (aligned struct)\n\n");
+	else printf("failed CFA malloc tests (aligned struct) : %d/%d\n\n", tests_failed, tests_total);
+
+	return 0;
+}
Index: tests/math4.cfa
===================================================================
--- tests/math4.cfa	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/math4.cfa	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -10,6 +10,6 @@
 // Created On       : Thu May 24 20:56:54 2018
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Dec  4 18:15:01 2018
-// Update Count     : 4
+// Last Modified On : Tue Aug 25 17:56:45 2020
+// Update Count     : 7
 //
 
@@ -18,4 +18,15 @@
 
 int main( void ) {
+	signed char sc, scr1, scr2, scr3;
+	unsigned char uc, ucr1, ucr2, ucr3;
+	short int si, sir1, sir2, sir3;
+	unsigned short int usi, usir1, usir2, usir3;
+	int i, ir1, ir2, ir3;
+	unsigned int ui, uir1, uir2, uir3;
+	long int li, lir1, lir2, lir3;
+	unsigned long int uli, ulir1, ulir2, ulir3;
+	long long int lli, llir1, llir2, llir3;
+	unsigned long long int ulli, ullir1, ullir2, ullir3;
+
 	float f;
 	double d;
@@ -23,4 +34,227 @@
 
 	//---------------------- Nearest Integer ----------------------
+
+	//============================================================
+#if 1
+	sout | nl | "floor" | nl | nl;
+
+	printf( "signed char\n" );
+	for ( sc = 1; sc != 0; sc <<= 1 ) {
+		scr1 = floor( sc, sc ); scr2 = floor( sc + 2hh, sc ); scr3 = floor( -sc - 2hh, sc );
+		printf( "floor(%hhd, %hhd) = %hhd, floor(%hhd, %hhd) = %hhd, floor(%hhd, %hhd) = %hhd\n", sc, sc, scr1, sc + 2hh, sc, scr2, -sc - 2hh, sc, scr3 );
+	} // for
+	printf( "\n" );
+
+	printf( "unsigned char\n" );
+	for ( uc = 1; uc != 0; uc <<= 1 ) {
+		ucr1 = floor( uc, uc ); ucr2 = floor( uc + 2hh, uc ); ucr3 = floor( -uc - 2hh, uc );
+		printf( "floor(%hhu, %hhu) = %hhu, floor(%hhu, %hhu) = %hhu, floor(%hhu, %hhu) = %hhu\n", uc, uc, ucr1, uc + 2uhh, uc, ucr2, -uc - 2uhh, uc, ucr3 );
+	} // for
+	printf( "\n" );
+
+	printf( "short int\n" );
+	for ( si = 1; si != 0; si <<= 1 ) {
+		sir1 = floor( si, si ); sir2 = floor( si + 2hh, si ); sir3 = floor( -si - 2hh, si );
+		printf( "floor(%hd, %hd) = %hd, floor(%hd, %hd) = %hd, floor(%hd, %hd) = %hd\n", si, si, sir1, si + 2h, si, sir2, -si - 2h, si, sir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "unsigned short int\n" );
+	for ( usi = 1; usi != 0; usi <<= 1 ) {
+		usir1 = floor( usi, usi ); usir2 = floor( usi + 2hh, usi ); usir3 = floor( -usi - 2hh, usi );
+		printf( "floor(%hu, %hu) = %hu, floor(%hu, %hu) = %hu, floor(%hu, %hu) = %hu\n", usi, usi, usir1, usi + 2uh, usi, usir2, -usi - 2uh, usi, usir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "int\n" );
+	for ( i = 1; i != 0; i <<= 1 ) {
+		ir1 = floor( i, i ); ir2 = floor( i + 2hh, i ); ir3 = floor( -i - 2hh, i );
+		printf( "floor(%d, %d) = %d, floor(%d, %d) = %d, floor(%d, %d) = %d\n", i, i, ir1, i + 2h, i, ir2, -i - 2h, i, ir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "unsigned int\n" );
+	for ( ui = 1; ui != 0; ui <<= 1 ) {
+		uir1 = floor( ui, ui ); uir2 = floor( ui + 2hh, ui ); uir3 = floor( -ui - 2hh, ui );
+		printf( "floor(%u, %u) = %u, floor(%u, %u) = %u, floor(%u, %u) = %u\n", ui, ui, uir1, ui + 2h, ui, uir2, -ui - 2h, ui, uir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "long int\n" );
+	for ( li = 1; li != 0; li <<= 1 ) {
+		lir1 = floor( li, li ); lir2 = floor( li + 2hh, li ); lir3 = floor( -li - 2hh, li );
+		printf( "floor(%ld, %ld) = %ld, floor(%ld, %ld) = %ld, floor(%ld, %ld) = %ld\n", li, li, lir1, li + 2h, li, lir2, -li - 2h, li, lir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "unsigned long int\n" );
+	for ( uli = 1; uli != 0; uli <<= 1 ) {
+		ulir1 = floor( uli, uli ); ulir2 = floor( uli + 2hh, uli ); ulir3 = floor( -uli - 2hh, uli );
+		printf( "floor(%lu, %lu) = %lu, floor(%lu, %lu) = %lu, floor(%lu, %lu) = %lu\n", uli, uli, ulir1, uli + 2h, uli, ulir2, -uli - 2h, uli, ulir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "long long int\n" );
+	for ( lli = 1; lli != 0; lli <<= 1 ) {
+		llir1 = floor( lli, lli ); llir2 = floor( lli + 2hh, lli ); llir3 = floor( -lli - 2hh, lli );
+		printf( "floor(%lld, %lld) = %lld, floor(%lld, %lld) = %lld, floor(%lld, %lld) = %lld\n", lli, lli, llir1, lli + 2h, lli, llir2, -lli - 2h, lli, llir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "unsigned long long int\n" );
+	for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
+		ullir1 = floor( ulli, ulli ); ullir2 = floor( ulli + 2hh, ulli ); ullir3 = floor( -ulli - 2hh, ulli );
+		printf( "floor(%llu, %llu) = %llu, floor(%llu, %llu) = %llu, floor(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
+	} // for
+	printf( "\n" );
+#endif // 0
+	//============================================================
+#if 1
+	sout | nl | "ceiling_div" | nl | nl;
+
+	printf( "signed char\n" );
+	for ( sc = 1; sc != 0; sc <<= 1 ) {
+		scr1 = ceiling_div( sc, sc ); scr2 = ceiling_div( sc + 2hh, sc ); scr3 = ceiling_div( -sc - 2hh, sc );
+		printf( "ceiling_div(%hhd, %hhd) = %hhd, ceiling_div(%hhd, %hhd) = %hhd, ceiling_div(%hhd, %hhd) = %hhd\n", sc, sc, scr1, sc + 2hh, sc, scr2, -sc - 2hh, sc, scr3 );
+	} // for
+	printf( "\n" );
+
+	printf( "unsigned char\n" );
+	for ( uc = 1; uc != 0; uc <<= 1 ) {
+		ucr1 = ceiling_div( uc, uc ); ucr2 = ceiling_div( uc + 2hh, uc ); ucr3 = ceiling_div( -uc - 2hh, uc );
+		printf( "ceiling_div(%hhu, %hhu) = %hhu, ceiling_div(%hhu, %hhu) = %hhu, ceiling_div(%hhu, %hhu) = %hhu\n", uc, uc, ucr1, uc + 2uhh, uc, ucr2, -uc - 2uhh, uc, ucr3 );
+	} // for
+	printf( "\n" );
+
+	printf( "short int\n" );
+	for ( si = 1; si != 0; si <<= 1 ) {
+		sir1 = ceiling_div( si, si ); sir2 = ceiling_div( si + 2hh, si ); sir3 = ceiling_div( -si - 2hh, si );
+		printf( "ceiling_div(%hd, %hd) = %hd, ceiling_div(%hd, %hd) = %hd, ceiling_div(%hd, %hd) = %hd\n", si, si, sir1, si + 2h, si, sir2, -si - 2h, si, sir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "unsigned short int\n" );
+	for ( usi = 1; usi != 0; usi <<= 1 ) {
+		usir1 = ceiling_div( usi, usi ); usir2 = ceiling_div( usi + 2hh, usi ); usir3 = ceiling_div( -usi - 2hh, usi );
+		printf( "ceiling_div(%hu, %hu) = %hu, ceiling_div(%hu, %hu) = %hu, ceiling_div(%hu, %hu) = %hu\n", usi, usi, usir1, usi + 2uh, usi, usir2, -usi - 2uh, usi, usir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "int\n" );
+	for ( i = 1; i != 0; i <<= 1 ) {
+		ir1 = ceiling_div( i, i ); ir2 = ceiling_div( i + 2hh, i ); ir3 = ceiling_div( -i - 2hh, i );
+		printf( "ceiling_div(%d, %d) = %d, ceiling_div(%d, %d) = %d, ceiling_div(%d, %d) = %d\n", i, i, ir1, i + 2h, i, ir2, -i - 2h, i, ir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "unsigned int\n" );
+	for ( ui = 1; ui != 0; ui <<= 1 ) {
+		uir1 = ceiling_div( ui, ui ); uir2 = ceiling_div( ui + 2hh, ui ); uir3 = ceiling_div( -ui - 2hh, ui );
+		printf( "ceiling_div(%u, %u) = %u, ceiling_div(%u, %u) = %u, ceiling_div(%u, %u) = %u\n", ui, ui, uir1, ui + 2h, ui, uir2, -ui - 2h, ui, uir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "long int\n" );
+	for ( li = 1; li != 0; li <<= 1 ) {
+		lir1 = ceiling_div( li, li ); lir2 = ceiling_div( li + 2hh, li ); lir3 = ceiling_div( -li - 2hh, li );
+		printf( "ceiling_div(%ld, %ld) = %ld, ceiling_div(%ld, %ld) = %ld, ceiling_div(%ld, %ld) = %ld\n", li, li, lir1, li + 2h, li, lir2, -li - 2h, li, lir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "unsigned long int\n" );
+	for ( uli = 1; uli != 0; uli <<= 1 ) {
+		ulir1 = ceiling_div( uli, uli ); ulir2 = ceiling_div( uli + 2hh, uli ); ulir3 = ceiling_div( -uli - 2hh, uli );
+		printf( "ceiling_div(%lu, %lu) = %lu, ceiling_div(%lu, %lu) = %lu, ceiling_div(%lu, %lu) = %lu\n", uli, uli, ulir1, uli + 2h, uli, ulir2, -uli - 2h, uli, ulir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "long long int\n" );
+	for ( lli = 1; lli != 0; lli <<= 1 ) {
+		llir1 = ceiling_div( lli, lli ); llir2 = ceiling_div( lli + 2hh, lli ); llir3 = ceiling_div( -lli - 2hh, lli );
+		printf( "ceiling_div(%lld, %lld) = %lld, ceiling_div(%lld, %lld) = %lld, ceiling_div(%lld, %lld) = %lld\n", lli, lli, llir1, lli + 2h, lli, llir2, -lli - 2h, lli, llir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "unsigned long long int\n" );
+	for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
+		ullir1 = ceiling_div( ulli, ulli ); ullir2 = ceiling_div( ulli + 2hh, ulli ); ullir3 = ceiling_div( -ulli - 2hh, ulli );
+		printf( "ceiling_div(%llu, %llu) = %llu, ceiling_div(%llu, %llu) = %llu, ceiling_div(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
+	} // for
+	printf( "\n" );
+#endif // 0
+	//============================================================
+#if 1
+	sout | nl | "ceiling" | nl | nl;
+
+	printf( "signed char\n" );
+	for ( sc = 1; sc != 0; sc <<= 1 ) {
+		scr1 = ceiling( sc, sc ); scr2 = ceiling( sc + 2hh, sc ); scr3 = ceiling( -sc - 2hh, sc );
+		printf( "ceiling(%hhd, %hhd) = %hhd, ceiling(%hhd, %hhd) = %hhd, ceiling(%hhd, %hhd) = %hhd\n", sc, sc, scr1, sc + 2hh, sc, scr2, -sc - 2hh, sc, scr3 );
+	} // for
+	printf( "\n" );
+
+	printf( "unsigned char\n" );
+	for ( uc = 1; uc != 0; uc <<= 1 ) {
+		ucr1 = ceiling( uc, uc ); ucr2 = ceiling( uc + 2hh, uc ); ucr3 = ceiling( -uc - 2hh, uc );
+		printf( "ceiling(%hhu, %hhu) = %hhu, ceiling(%hhu, %hhu) = %hhu, ceiling(%hhu, %hhu) = %hhu\n", uc, uc, ucr1, uc + 2uhh, uc, ucr2, -uc - 2uhh, uc, ucr3 );
+	} // for
+	printf( "\n" );
+
+	printf( "short int\n" );
+	for ( si = 1; si != 0; si <<= 1 ) {
+		sir1 = ceiling( si, si ); sir2 = ceiling( si + 2hh, si ); sir3 = ceiling( -si - 2hh, si );
+		printf( "ceiling(%hd, %hd) = %hd, ceiling(%hd, %hd) = %hd, ceiling(%hd, %hd) = %hd\n", si, si, sir1, si + 2h, si, sir2, -si - 2h, si, sir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "unsigned short int\n" );
+	for ( usi = 1; usi != 0; usi <<= 1 ) {
+		usir1 = ceiling( usi, usi ); usir2 = ceiling( usi + 2hh, usi ); usir3 = ceiling( -usi - 2hh, usi );
+		printf( "ceiling(%hu, %hu) = %hu, ceiling(%hu, %hu) = %hu, ceiling(%hu, %hu) = %hu\n", usi, usi, usir1, usi + 2uh, usi, usir2, -usi - 2uh, usi, usir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "int\n" );
+	for ( i = 1; i != 0; i <<= 1 ) {
+		ir1 = ceiling( i, i ); ir2 = ceiling( i + 2hh, i ); ir3 = ceiling( -i - 2hh, i );
+		printf( "ceiling(%d, %d) = %d, ceiling(%d, %d) = %d, ceiling(%d, %d) = %d\n", i, i, ir1, i + 2h, i, ir2, -i - 2h, i, ir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "unsigned int\n" );
+	for ( ui = 1; ui != 0; ui <<= 1 ) {
+		uir1 = ceiling( ui, ui ); uir2 = ceiling( ui + 2hh, ui ); uir3 = ceiling( -ui - 2hh, ui );
+		printf( "ceiling(%u, %u) = %u, ceiling(%u, %u) = %u, ceiling(%u, %u) = %u\n", ui, ui, uir1, ui + 2h, ui, uir2, -ui - 2h, ui, uir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "long int\n" );
+	for ( li = 1; li != 0; li <<= 1 ) {
+		lir1 = ceiling( li, li ); lir2 = ceiling( li + 2hh, li ); lir3 = ceiling( -li - 2hh, li );
+		printf( "ceiling(%ld, %ld) = %ld, ceiling(%ld, %ld) = %ld, ceiling(%ld, %ld) = %ld\n", li, li, lir1, li + 2h, li, lir2, -li - 2h, li, lir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "unsigned long int\n" );
+	for ( uli = 1; uli != 0; uli <<= 1 ) {
+		ulir1 = ceiling( uli, uli ); ulir2 = ceiling( uli + 2hh, uli ); ulir3 = ceiling( -uli - 2hh, uli );
+		printf( "ceiling(%lu, %lu) = %lu, ceiling(%lu, %lu) = %lu, ceiling(%lu, %lu) = %lu\n", uli, uli, ulir1, uli + 2h, uli, ulir2, -uli - 2h, uli, ulir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "long long int\n" );
+	for ( lli = 1; lli != 0; lli <<= 1 ) {
+		llir1 = ceiling( lli, lli ); llir2 = ceiling( lli + 2hh, lli ); llir3 = ceiling( -lli - 2hh, lli );
+		printf( "ceiling(%lld, %lld) = %lld, ceiling(%lld, %lld) = %lld, ceiling(%lld, %lld) = %lld\n", lli, lli, llir1, lli + 2h, lli, llir2, -lli - 2h, lli, llir3 );
+	} // for
+	printf( "\n" );
+
+	printf( "unsigned long long int\n" );
+	for ( ulli = 1; ulli != 0; ulli <<= 1 ) {
+		ullir1 = ceiling( ulli, ulli ); ullir2 = ceiling( ulli + 2hh, ulli ); ullir3 = ceiling( -ulli - 2hh, ulli );
+		printf( "ceiling(%llu, %llu) = %llu, ceiling(%llu, %llu) = %llu, ceiling(%llu, %llu) = %llu\n", ulli, ulli, ullir1, ulli + 2h, ulli, ullir2, -ulli - 2h, ulli, ullir3 );
+	} // for
+	printf( "\n" );
+#endif // 0
 
 	sout | "floor:" | floor( 1.2F ) | floor( 1.2D ) | floor( 1.2L );
@@ -69,4 +303,4 @@
 // Local Variables: //
 // tab-width: 4 //
-// compile-command: "cfa math3.cfa" //
+// compile-command: "cfa math4.cfa" //
 // End: //
Index: tests/pybin/settings.py
===================================================================
--- tests/pybin/settings.py	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/pybin/settings.py	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -27,16 +27,22 @@
 		'x86_64'      : 'x64',
 		'x86'         : 'x86',
-		'aarch64'     : 'arm',
+		'aarch64'     : 'arm64',
+		'arm64'       : 'arm64',
+		'ARM64'       : 'arm64',
 		'i386'        : 'x86',
 		'i486'        : 'x86',
 		'i686'        : 'x86',
 		'Intel 80386' : 'x86',
-		'arm'         : 'arm',
-		'ARM'         : 'arm',
+		'arm'         : 'arm32',
+		'ARM'         : 'arm32',
+		'arm32'       : 'arm32',
+		'ARM32'       : 'arm32',
 	}
 
 	CrossCompileFlags = {
-		'x64' : 'ARCH_FLAGS=-m64',
-		'x86' : 'ARCH_FLAGS=-m32',
+		'x64'  : 'ARCH_FLAGS=-m64',
+		'x86'  : 'ARCH_FLAGS=-m32',
+		'arm64': 'ARCH_FLAGS=',
+		'arm32': 'ARCH_FLAGS=',
 	}
 
Index: tests/pybin/tools.py
===================================================================
--- tests/pybin/tools.py	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/pybin/tools.py	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -238,5 +238,5 @@
 # helper function to check if a files contains only a specific string
 def file_contains_only(file, text) :
-	with open(file) as f:
+	with open(file, encoding="latin-1") as f: # use latin-1 so all chars mean something.
 		ff = f.read().strip()
 		result = ff == text.strip()
Index: tests/raii/.expect/ctor-autogen-ERR1.txt
===================================================================
--- tests/raii/.expect/ctor-autogen-ERR1.txt	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/raii/.expect/ctor-autogen-ERR1.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -7,11 +7,4 @@
         x: signed int
       ... returning nothing
-
-      with resolved type:
-        function
-        ... with parameters
-          _dst: reference to instance of struct Managed with body 1
-          x: signed int
-        ... returning nothing
 
       ... deleted by: ?{}: function
@@ -33,15 +26,4 @@
 
 
-              with resolved type:
-                pointer to function
-                ... with parameters
-                  intrinsic reference to signed int
-                  intrinsic signed int
-                ... returning
-                  _retval__operator_assign: signed int
-                  ... with attributes:
-                    Attribute with name: unused
-
-
             ... to arguments
               Generated Cast of:
@@ -51,27 +33,13 @@
                   Generated Cast of:
                     Variable Expression: m: reference to instance of struct Managed with body 1
-                    with resolved type:
-                      reference to instance of struct Managed with body 1
                   ... to:
                     instance of struct Managed with body 1
-                  with resolved type:
-                    instance of struct Managed with body 1
-                with resolved type:
-                  signed int
               ... to:
-                reference to signed int
-              with resolved type:
                 reference to signed int
               Generated Cast of:
                 constant expression (0 0: zero_t)
-                with resolved type:
-                  zero_t
               ... to:
                 signed int
-              with resolved type:
-                signed int
 
-            with resolved type:
-              signed int
             ... with environment:
               Types:
@@ -82,17 +50,7 @@
     Generated Cast of:
       Variable Expression: x: instance of struct Managed with body 1
-      with resolved type:
-        instance of struct Managed with body 1
     ... to:
       reference to instance of struct Managed with body 1
-    with resolved type:
-      reference to instance of struct Managed with body 1
     constant expression (123 123: signed int)
-    with resolved type:
-      signed int
 
-  with resolved type:
-    void 
 ... to: nothing
-with resolved type:
-  void 
Index: tests/test.py
===================================================================
--- tests/test.py	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/test.py	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -194,5 +194,5 @@
 		if success(retcode):
 			if settings.generating :
-				# if we are ounly generating the output we still need to check that the test actually exists
+				# if we are only generating the output we still need to check that the test actually exists
 				if no_rule(out_file, test.target()) :
 					retcode = 1
Index: tests/warnings/.expect/self-assignment.txt
===================================================================
--- tests/warnings/.expect/self-assignment.txt	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tests/warnings/.expect/self-assignment.txt	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -1,17 +1,9 @@
 warnings/self-assignment.cfa:29:1 warning: self assignment of expression: Generated Cast of:
   Variable Expression: j: signed int
-  with resolved type:
-    signed int
 ... to:
-  reference to signed int
-with resolved type:
   reference to signed int
 warnings/self-assignment.cfa:30:1 warning: self assignment of expression: Generated Cast of:
   Variable Expression: s: instance of struct S with body 1
-  with resolved type:
-    instance of struct S with body 1
 ... to:
-  reference to instance of struct S with body 1
-with resolved type:
   reference to instance of struct S with body 1
 warnings/self-assignment.cfa:31:1 warning: self assignment of expression: Generated Cast of:
@@ -20,11 +12,5 @@
   ... from aggregate:
     Variable Expression: s: instance of struct S with body 1
-    with resolved type:
-      instance of struct S with body 1
-  with resolved type:
-    signed int
 ... to:
-  reference to signed int
-with resolved type:
   reference to signed int
 warnings/self-assignment.cfa:32:1 warning: self assignment of expression: Generated Cast of:
@@ -36,12 +22,4 @@
     ... from aggregate:
       Variable Expression: t: instance of struct T with body 1
-      with resolved type:
-        instance of struct T with body 1
-    with resolved type:
-      instance of struct S with body 1
-  with resolved type:
-    signed int
 ... to:
   reference to signed int
-with resolved type:
-  reference to signed int
Index: tools/Makefile.am
===================================================================
--- tools/Makefile.am	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tools/Makefile.am	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -18,11 +18,12 @@
 ACLOCAL_AMFLAGS  = -I automake
 
-AM_CFLAGS = -Wall -Wextra -O2 -g
+EXTRA_DIST = build/distcc_hash build/push2dist.sh
 
 noinst_PROGRAMS = busy catchsig repeat watchdog
+AM_CFLAGS = -Wall -Wextra -O2 -g
+busy_LDFLAGS     = -pthread
 
-busy_SOURCES     = busy.c
-busy_LDFLAGS     = -pthread
-catchsig_SOURCES = catchsig.c
-repeat_SOURCES   = repeat.c
-watchdog_SOURCES = watchdog.c
+nodist_busy_SOURCES     = busy.c
+nodist_catchsig_SOURCES = catchsig.c
+nodist_repeat_SOURCES   = repeat.c
+nodist_watchdog_SOURCES = watchdog.c
Index: tools/build/cfa.m4
===================================================================
--- tools/build/cfa.m4	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tools/build/cfa.m4	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -66,5 +66,7 @@
 		"x86-64"     ) cannon_arch_name="x64";;
 		"x86_64"     ) cannon_arch_name="x64";;
-		"aarch64"    ) cannon_arch_name="arm";;
+		"aarch64"    ) cannon_arch_name="arm64";;
+		"arm4"       ) cannon_arch_name="arm64";;
+		"ARM64"      ) cannon_arch_name="arm64";;
 		"x86"        ) cannon_arch_name="x86";;
 		"i386"       ) cannon_arch_name="x86";;
@@ -72,7 +74,9 @@
 		"i686"       ) cannon_arch_name="x86";;
 		"Intel 80386") cannon_arch_name="x86";;
-		"arm"        ) cannon_arch_name="arm";;
-		"ARM"        ) cannon_arch_name="arm";;
-		"armv7l"     ) cannon_arch_name="arm";;
+		"arm"        ) cannon_arch_name="arm32";;
+		"ARM"        ) cannon_arch_name="arm32";;
+		"arm32"      ) cannon_arch_name="arm32";;
+		"ARM32"      ) cannon_arch_name="arm32";;
+		"armv7l"     ) cannon_arch_name="arm32";;
 		*)
 		>&2 echo "Unknown architecture " $arch_name;
Index: tools/prettyprinter/Makefile.am
===================================================================
--- tools/prettyprinter/Makefile.am	(revision 8d8ac3bbf7435ae27e31e4195ddf5824bbe9c0da)
+++ tools/prettyprinter/Makefile.am	(revision 25a1cb0abecbae548991f77808901e855a5a2134)
@@ -30,5 +30,5 @@
 tools_prettyprinter_PROGRAMS = pretty
 tools_prettyprinterdir = ../
-pretty_SOURCES = ${SRC}
+nodist_pretty_SOURCES = ${SRC}
 pretty_LDADD = ${LEXLIB} -ldl			# yywrap
 pretty_CXXFLAGS = -Wno-deprecated -Wall -DYY_NO_INPUT -O2 -g -std=c++14
