Changes in / [8465b4d:1eb239e4]
- Files:
-
- 43 added
- 3 deleted
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
.gitignore
r8465b4d r1eb239e4 4 4 5 5 # generated by configure 6 aclocal.m47 automake8 6 autom4te.cache 9 7 config.h … … 11 9 config.log 12 10 config.py 13 configure 11 stamp-h1 14 12 libtool 15 stamp-h116 13 /Makefile 17 /Makefile.in18 14 **/Makefile 19 **/Makefile.in20 15 /version 21 16 -
Jenkinsfile
r8465b4d r1eb239e4 114 114 release = Settings.RunAllTests || Settings.RunBenchmark 115 115 build_stage('Build : configure', true) { 116 // Configure must be run inside the tree117 dir (SrcDir) {118 // Generate the necessary build files119 sh './autogen.sh'120 }121 122 116 // Build outside of the src tree to ease cleaning 123 117 dir (BuildDir) { -
benchmark/Makefile.am
r8465b4d r1eb239e4 19 19 20 20 # applies to both programs 21 include $(top_srcdir)/ tools/build/cfa.make21 include $(top_srcdir)/src/cfa.make 22 22 23 23 AM_CFLAGS = -O2 -Wall -Wextra -I$(srcdir) -lrt -pthread # -Werror -
configure.ac
r8465b4d r1eb239e4 6 6 AC_CONFIG_AUX_DIR([automake]) 7 7 AC_CONFIG_MACRO_DIRS([automake]) 8 #AC_CONFIG_SRCDIR([src/main.cc]) 8 9 AC_CONFIG_HEADERS([config.h:src/config.h.in]) 9 10 AM_SILENT_RULES([yes]) 10 11 11 m4_include([ tools/build/cfa.m4])12 m4_include([automake/cfa.m4]) 12 13 13 14 # don't use the default CFLAGS as they unconditonnaly add -O2 -
libcfa/configure.ac
r8465b4d r1eb239e4 8 8 AM_SILENT_RULES([yes]) 9 9 10 m4_include([../ tools/build/cfa.m4])10 m4_include([../automake/cfa.m4]) 11 11 12 12 AM_INIT_AUTOMAKE([subdir-objects]) -
libcfa/prelude/defines.hfa.in
r8465b4d r1eb239e4 1 /* prelude/defines.hfa.in. Generated from configure.ac by autoheader. */ 1 // 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo 3 // 4 // The contents of this file are covered under the licence agreement in the 5 // file "LICENCE" distributed with Cforall. 6 // 7 // defines.hfa.in -- 8 // 9 // Author : Thierry Delisle 10 // Created On : Thu Apr 30 15:23:00 2020 11 // Last Modified By : 12 // Last Modified On : 13 // Update Count : 14 // 2 15 3 /* Location of cfa command. */ 4 #undef CFA_BINDIR 16 //----------------------------------------------------------------------- 17 // Global Support 18 /* Defined if io_uring support is present when compiling libcfathread. */ 19 #undef CFA_HAVE_LINUX_IO_URING_H 20 21 //----------------------------------------------------------------------- 22 // Operations 23 /* Defined if io_uring support is present when compiling libcfathread and 24 supports the operation IORING_OP_NOP. */ 25 #undef CFA_HAVE_IORING_OP_NOP 26 27 /* Defined if io_uring support is present when compiling libcfathread and 28 supports the operation IORING_OP_READV. */ 29 #undef CFA_HAVE_IORING_OP_READV 30 31 /* Defined if io_uring support is present when compiling libcfathread and 32 supports the operation IORING_OP_WRITEV. */ 33 #undef CFA_HAVE_IORING_OP_WRITEV 34 35 /* Defined if io_uring support is present when compiling libcfathread and 36 supports the operation IORING_OP_FSYNC. */ 37 #undef CFA_HAVE_IORING_OP_FSYNC 38 39 /* Defined if io_uring support is present when compiling libcfathread and 40 supports the operation IORING_OP_READ_FIXED. */ 41 #undef CFA_HAVE_IORING_OP_READ_FIXED 42 43 /* Defined if io_uring support is present when compiling libcfathread and 44 supports the operation IORING_OP_WRITE_FIXED. */ 45 #undef CFA_HAVE_IORING_OP_WRITE_FIXED 46 47 /* Defined if io_uring support is present when compiling libcfathread and 48 supports the operation IORING_OP_POLL_ADD. */ 49 #undef CFA_HAVE_IORING_OP_POLL_ADD 50 51 /* Defined if io_uring support is present when compiling libcfathread and 52 supports the operation IORING_OP_POLL_REMOVE. */ 53 #undef CFA_HAVE_IORING_OP_POLL_REMOVE 54 55 /* Defined if io_uring support is present when compiling libcfathread and 56 supports the operation IORING_OP_SYNC_FILE_RANGE. */ 57 #undef CFA_HAVE_IORING_OP_SYNC_FILE_RANGE 58 59 /* Defined if io_uring support is present when compiling libcfathread and 60 supports the operation IORING_OP_SENDMSG. */ 61 #undef CFA_HAVE_IORING_OP_SENDMSG 62 63 /* Defined if io_uring support is present when compiling libcfathread and 64 supports the operation IORING_OP_RECVMSG. */ 65 #undef CFA_HAVE_IORING_OP_RECVMSG 66 67 /* Defined if io_uring support is present when compiling libcfathread and 68 supports the operation IORING_OP_TIMEOUT. */ 69 #undef CFA_HAVE_IORING_OP_TIMEOUT 70 71 /* Defined if io_uring support is present when compiling libcfathread and 72 supports the operation IORING_OP_TIMEOUT_REMOVE. */ 73 #undef CFA_HAVE_IORING_OP_TIMEOUT_REMOVE 5 74 6 75 /* Defined if io_uring support is present when compiling libcfathread and … … 13 82 14 83 /* Defined if io_uring support is present when compiling libcfathread and 15 supports the operation IORING_OP_ CLOSE. */16 #undef CFA_HAVE_IORING_OP_ CLOSE84 supports the operation IORING_OP_LINK_TIMEOUT. */ 85 #undef CFA_HAVE_IORING_OP_LINK_TIMEOUT 17 86 18 87 /* Defined if io_uring support is present when compiling libcfathread and … … 21 90 22 91 /* Defined if io_uring support is present when compiling libcfathread and 23 supports the operation IORING_OP_EPOLL_CTL. */ 24 #undef CFA_HAVE_IORING_OP_EPOLL_CTL 92 supports the operation IORING_OP_FALLOCATE. */ 93 #undef CFA_HAVE_IORING_OP_FALLOCATE 94 95 /* Defined if io_uring support is present when compiling libcfathread and 96 supports the operation IORING_OP_OPENAT. */ 97 #undef CFA_HAVE_IORING_OP_OPENAT 98 99 /* Defined if io_uring support is present when compiling libcfathread and 100 supports the operation IORING_OP_CLOSE. */ 101 #undef CFA_HAVE_IORING_OP_CLOSE 102 103 /* Defined if io_uring support is present when compiling libcfathread and 104 supports the operation IORING_OP_FILES_UPDATE. */ 105 #undef CFA_HAVE_IORING_OP_FILES_UPDATE 106 107 /* Defined if io_uring support is present when compiling libcfathread and 108 supports the operation IORING_OP_STATX. */ 109 #undef CFA_HAVE_IORING_OP_STATX 110 111 /* Defined if io_uring support is present when compiling libcfathread and 112 supports the operation IORING_OP_READ. */ 113 #undef CFA_HAVE_IORING_OP_READ 114 115 /* Defined if io_uring support is present when compiling libcfathread and 116 supports the operation IORING_OP_WRITE. */ 117 #undef CFA_HAVE_IORING_OP_WRITE 25 118 26 119 /* Defined if io_uring support is present when compiling libcfathread and … … 29 122 30 123 /* Defined if io_uring support is present when compiling libcfathread and 31 supports the operation IORING_OP_FALLOCATE. */32 #undef CFA_HAVE_IORING_OP_FALLOCATE33 34 /* Defined if io_uring support is present when compiling libcfathread and35 supports the operation IORING_OP_FILES_UPDATE. */36 #undef CFA_HAVE_IORING_OP_FILES_UPDATE37 38 /* Defined if io_uring support is present when compiling libcfathread and39 supports the operation IORING_OP_FSYNC. */40 #undef CFA_HAVE_IORING_OP_FSYNC41 42 /* Defined if io_uring support is present when compiling libcfathread and43 supports the operation IORING_OP_LINK_TIMEOUT. */44 #undef CFA_HAVE_IORING_OP_LINK_TIMEOUT45 46 /* Defined if io_uring support is present when compiling libcfathread and47 124 supports the operation IORING_OP_MADVISE. */ 48 125 #undef CFA_HAVE_IORING_OP_MADVISE 49 126 50 127 /* Defined if io_uring support is present when compiling libcfathread and 51 supports the operation IORING_OP_ NOP. */52 #undef CFA_HAVE_IORING_OP_ NOP128 supports the operation IORING_OP_SEND. */ 129 #undef CFA_HAVE_IORING_OP_SEND 53 130 54 131 /* Defined if io_uring support is present when compiling libcfathread and 55 supports the operation IORING_OP_ OPENAT. */56 #undef CFA_HAVE_IORING_OP_ OPENAT132 supports the operation IORING_OP_RECV. */ 133 #undef CFA_HAVE_IORING_OP_RECV 57 134 58 135 /* Defined if io_uring support is present when compiling libcfathread and … … 61 138 62 139 /* Defined if io_uring support is present when compiling libcfathread and 63 supports the operation IORING_OP_ POLL_ADD. */64 #undef CFA_HAVE_IORING_OP_ POLL_ADD140 supports the operation IORING_OP_EPOLL_CTL. */ 141 #undef CFA_HAVE_IORING_OP_EPOLL_CTL 65 142 66 143 /* Defined if io_uring support is present when compiling libcfathread and 67 supports the operation IORING_OP_ POLL_REMOVE. */68 #undef CFA_HAVE_IORING_OP_ POLL_REMOVE144 supports the operation IORING_OP_SPLICE. */ 145 #undef CFA_HAVE_IORING_OP_SPLICE 69 146 70 147 /* Defined if io_uring support is present when compiling libcfathread and … … 73 150 74 151 /* Defined if io_uring support is present when compiling libcfathread and 75 supports the operation IORING_OP_READ. */76 #undef CFA_HAVE_IORING_OP_READ77 78 /* Defined if io_uring support is present when compiling libcfathread and79 supports the operation IORING_OP_READV. */80 #undef CFA_HAVE_IORING_OP_READV81 82 /* Defined if io_uring support is present when compiling libcfathread and83 supports the operation IORING_OP_READ_FIXED. */84 #undef CFA_HAVE_IORING_OP_READ_FIXED85 86 /* Defined if io_uring support is present when compiling libcfathread and87 supports the operation IORING_OP_RECV. */88 #undef CFA_HAVE_IORING_OP_RECV89 90 /* Defined if io_uring support is present when compiling libcfathread and91 supports the operation IORING_OP_RECVMSG. */92 #undef CFA_HAVE_IORING_OP_RECVMSG93 94 /* Defined if io_uring support is present when compiling libcfathread and95 152 supports the operation IORING_OP_REMOVE_BUFFER. */ 96 153 #undef CFA_HAVE_IORING_OP_REMOVE_BUFFER 97 154 98 /* Defined if io_uring support is present when compiling libcfathread and 99 supports the operation IORING_OP_SEND. */ 100 #undef CFA_HAVE_IORING_OP_SEND 101 102 /* Defined if io_uring support is present when compiling libcfathread and 103 supports the operation IORING_OP_SENDMSG. */ 104 #undef CFA_HAVE_IORING_OP_SENDMSG 105 106 /* Defined if io_uring support is present when compiling libcfathread and 107 supports the operation IORING_OP_SPLICE. */ 108 #undef CFA_HAVE_IORING_OP_SPLICE 109 110 /* Defined if io_uring support is present when compiling libcfathread and 111 supports the operation IORING_OP_STATX. */ 112 #undef CFA_HAVE_IORING_OP_STATX 113 114 /* Defined if io_uring support is present when compiling libcfathread and 115 supports the operation IORING_OP_SYNC_FILE_RANGE. */ 116 #undef CFA_HAVE_IORING_OP_SYNC_FILE_RANGE 117 118 /* Defined if io_uring support is present when compiling libcfathread and 119 supports the operation IORING_OP_TIMEOUT. */ 120 #undef CFA_HAVE_IORING_OP_TIMEOUT 121 122 /* Defined if io_uring support is present when compiling libcfathread and 123 supports the operation IORING_OP_TIMEOUT_REMOVE. */ 124 #undef CFA_HAVE_IORING_OP_TIMEOUT_REMOVE 125 126 /* Defined if io_uring support is present when compiling libcfathread and 127 supports the operation IORING_OP_WRITE. */ 128 #undef CFA_HAVE_IORING_OP_WRITE 129 130 /* Defined if io_uring support is present when compiling libcfathread and 131 supports the operation IORING_OP_WRITEV. */ 132 #undef CFA_HAVE_IORING_OP_WRITEV 133 134 /* Defined if io_uring support is present when compiling libcfathread and 135 supports the operation IORING_OP_WRITE_FIXED. */ 136 #undef CFA_HAVE_IORING_OP_WRITE_FIXED 137 138 /* Defined if io_uring support is present when compiling libcfathread and 139 supports the flag ASYNC. */ 140 #undef CFA_HAVE_IOSQE_ASYNC 141 155 //----------------------------------------------------------------------- 156 // Flags 142 157 /* Defined if io_uring support is present when compiling libcfathread and 143 158 supports the flag FIXED_FILE. */ … … 149 164 150 165 /* Defined if io_uring support is present when compiling libcfathread and 151 supports the flag IO_HARDLINK. */152 #undef CFA_HAVE_IOSQE_ IO_HARDLINK166 supports the flag ASYNC. */ 167 #undef CFA_HAVE_IOSQE_ASYNC 153 168 154 169 /* Defined if io_uring support is present when compiling libcfathread and … … 156 171 #undef CFA_HAVE_IOSQE_IO_LINK 157 172 158 /* Defined if io_uring support is present when compiling libcfathread. */ 159 #undef CFA_HAVE_LINUX_IO_URING_H 173 /* Defined if io_uring support is present when compiling libcfathread and 174 supports the flag IO_HARDLINK. */ 175 #undef CFA_HAVE_IOSQE_IO_HARDLINK 160 176 161 177 /* Defined if io_uring support is present when compiling libcfathread and … … 163 179 #undef CFA_HAVE_SPLICE_F_FD_IN_FIXED 164 180 165 /* Location of include files. */ 166 #undef CFA_INCDIR 167 168 /* Location of cc1 and cfa-cpp commands. */ 169 #undef CFA_LIBDIR 170 171 /* Location of cfa install. */ 172 #undef CFA_PREFIX 173 174 /* Define to 1 if you have the <dlfcn.h> header file. */ 175 #undef HAVE_DLFCN_H 176 177 /* Define to 1 if you have the <inttypes.h> header file. */ 178 #undef HAVE_INTTYPES_H 179 180 /* Define to 1 if you have the <linux/io_uring.h> header file. */ 181 #undef HAVE_LINUX_IO_URING_H 182 183 /* Define to 1 if you have the <memory.h> header file. */ 184 #undef HAVE_MEMORY_H 185 181 //----------------------------------------------------------------------- 182 // Other calls 186 183 /* Define to 1 if you have the `preadv2' function. */ 187 184 #undef HAVE_PREADV2 … … 190 187 #undef HAVE_PWRITEV2 191 188 192 /* Define to 1 if you have the <stdint.h> header file. */ 193 #undef HAVE_STDINT_H 194 195 /* Define to 1 if you have the <stdlib.h> header file. */ 196 #undef HAVE_STDLIB_H 197 198 /* Define to 1 if you have the <strings.h> header file. */ 199 #undef HAVE_STRINGS_H 200 201 /* Define to 1 if you have the <string.h> header file. */ 202 #undef HAVE_STRING_H 203 204 /* Define to 1 if you have the <sys/stat.h> header file. */ 205 #undef HAVE_SYS_STAT_H 206 207 /* Define to 1 if you have the <sys/types.h> header file. */ 208 #undef HAVE_SYS_TYPES_H 209 210 /* Define to 1 if you have the <unistd.h> header file. */ 211 #undef HAVE_UNISTD_H 212 213 /* Define to the sub-directory where libtool stores uninstalled libraries. */ 214 #undef LT_OBJDIR 215 216 /* Name of package */ 217 #undef PACKAGE 218 219 /* Define to the address where bug reports for this package should be sent. */ 220 #undef PACKAGE_BUGREPORT 221 222 /* Define to the full name of this package. */ 223 #undef PACKAGE_NAME 224 225 /* Define to the full name and version of this package. */ 226 #undef PACKAGE_STRING 227 228 /* Define to the one symbol short name of this package. */ 229 #undef PACKAGE_TARNAME 230 231 /* Define to the home page for this package. */ 232 #undef PACKAGE_URL 233 234 /* Define to the version of this package. */ 235 #undef PACKAGE_VERSION 236 237 /* Define to 1 if you have the ANSI C header files. */ 238 #undef STDC_HEADERS 239 240 /* Version number of package */ 241 #undef VERSION 242 189 //----------------------------------------------------------------------- 190 // Statistics 243 191 /* Defined if libcfathread was compiled without support for statistics. */ 244 192 #undef __CFA_NO_STATISTICS__ -
libcfa/src/Makefile.am
r8465b4d r1eb239e4 19 19 ACLOCAL_AMFLAGS = -I automake 20 20 21 include $( top_srcdir)/../tools/build/cfa.make21 include $(srcdir)/../../src/cfa.make 22 22 23 23 libdir = ${CFA_LIBDIR} -
libcfa/src/bitmanip.hfa
r8465b4d r1eb239e4 11 11 // Created On : Sat Mar 14 18:12:27 2020 12 12 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Mon Aug 10 09:21:02202014 // Update Count : 1 3913 // Last Modified On : Tue Jun 9 15:14:04 2020 14 // Update Count : 123 15 15 // 16 16 … … 21 21 // Bits are numbered 1-N. 22 22 23 #include <assert.h>23 //#include <assert.h> 24 24 25 25 #define __bitsizeof( n ) (sizeof(n) * __CHAR_BIT__) … … 89 89 90 90 // Returns n aligned at the floor of align, clear bits above or equal to align, giving n % align. 91 signed char floor2( signed char n, signed char align ) { verify( is_pow2( align ) );return n & -align; }92 unsigned char floor2( unsigned char n, unsigned char align ) { verify( is_pow2( align ) );return n & -align; }93 short int floor2( short int n, short int align ) { verify( is_pow2( align ) );return n & -align; }94 unsigned short int floor2( unsigned short int n, unsigned short int align ) { verify( is_pow2( align ) );return n & -align; }95 int floor2( int n, int align ) { verify( is_pow2( align ) );return n & -align; }96 unsigned int floor2( unsigned int n, unsigned int align ) { verify( is_pow2( align ) );return n & -align; }97 long int floor2( long int n, long int align ) { verify( is_pow2( align ) );return n & -align; }98 unsigned long int floor2( unsigned long int n, unsigned long int align ) { verify( is_pow2( align ) );return n & -align; }99 long long int floor2( long long int n, long long int align ) { verify( is_pow2( align ) );return n & -align; }100 unsigned long long int floor2( unsigned long long int n, unsigned long long int align ) { verify( is_pow2( align ) );return n & -align; }91 signed char floor2( signed char n, char align ) { /*assert( is_pow2( align ) );*/ return n & -align; } 92 unsigned char floor2( unsigned char n, unsigned char align ) { /*assert( is_pow2( align ) );*/ return n & -align; } 93 short int floor2( short int n, short int align ) { /*assert( is_pow2( align ) );*/ return n & -align; } 94 unsigned short int floor2( unsigned short int n, unsigned short int align ) { /*assert( is_pow2( align ) );*/ return n & -align; } 95 int floor2( int n, int align ) { /*assert( is_pow2( align ) );*/ return n & -align; } 96 unsigned int floor2( unsigned int n, unsigned int align ) { /*assert( is_pow2( align ) );*/ return n & -align; } 97 long int floor2( long int n, long int align ) { /*assert( is_pow2( align ) );*/ return n & -align; } 98 unsigned long int floor2( unsigned long int n, unsigned long int align ) { /*assert( is_pow2( align ) );*/ return n & -align; } 99 long long int floor2( long long int n, long long int align ) { /*assert( is_pow2( align ) );*/ return n & -align; } 100 unsigned long long int floor2( unsigned long long int n, unsigned long long int align ) { /*assert( is_pow2( align ) );*/ return n & -align; } 101 101 102 102 // forall( otype T | { T ?&?( T, T ); T -?( T ); } ) 103 // T floor2( T n, T align ) { verify( is_pow2( align ) );return n & -align; }103 // T floor2( T n, T align ) { /* assert( is_pow2( align ) ); */ return n & -align; } 104 104 105 signed char floor( signed char n, signedchar align ) { return n / align * align; }105 signed char floor( signed char n, char align ) { return n / align * align; } 106 106 unsigned char floor( unsigned char n, unsigned char align ) { return n / align * align; } 107 107 short int floor( short int n, short int align ) { return n / align * align; } … … 118 118 119 119 // Returns n aligned at the ceiling of align, negate, round down, negate is the same as round up. 120 signed char ceiling2( signed char n, signed char align ) { verify( is_pow2( align ) );return -floor2( -n, align ); }121 unsigned char ceiling2( unsigned char n, unsigned char align ) { verify( is_pow2( align ) );return -floor2( -n, align ); }122 short int ceiling2( short int n, short int align ) { verify( is_pow2( align ) );return -floor2( -n, align ); }123 unsigned short int ceiling2( unsigned short int n, unsigned short int align ) { verify( is_pow2( align ) );return -floor2( -n, align ); }124 int ceiling2( int n, int align ) { verify( is_pow2( align ) );return -floor2( -n, align ); }125 unsigned int ceiling2( unsigned int n, unsigned int align ) { verify( is_pow2( align ) );return -floor2( -n, align ); }126 long int ceiling2( long int n, long int align ) { verify( is_pow2( align ) );return -floor2( -n, align ); }127 unsigned long int ceiling2( unsigned long int n, unsigned long int align ) { verify( is_pow2( align ) );return -floor2( -n, align ); }128 long long int ceiling2( long long int n, long long int align ) { verify( is_pow2( align ) );return -floor2( -n, align ); }129 unsigned long long int ceiling2( unsigned long long int n, unsigned long long int align ) { verify( is_pow2( align ) );return -floor2( -n, align ); }120 signed char ceiling2( signed char n, char align ) { /*assert( is_pow2( align ) );*/ return -floor2( -n, align ); } 121 unsigned char ceiling2( unsigned char n, unsigned char align ) { /*assert( is_pow2( align ) );*/ return -floor2( -n, align ); } 122 short int ceiling2( short int n, short int align ) { /*assert( is_pow2( align ) );*/ return -floor2( -n, align ); } 123 unsigned short int ceiling2( unsigned short int n, unsigned short int align ) { /*assert( is_pow2( align ) );*/ return -floor2( -n, align ); } 124 int ceiling2( int n, int align ) { /*assert( is_pow2( align ) );*/ return -floor2( -n, align ); } 125 unsigned int ceiling2( unsigned int n, unsigned int align ) { /*assert( is_pow2( align ) );*/ return -floor2( -n, align ); } 126 long int ceiling2( long int n, long int align ) { /*assert( is_pow2( align ) );*/ return -floor2( -n, align ); } 127 unsigned long int ceiling2( unsigned long int n, unsigned long int align ) { /*assert( is_pow2( align ) );*/ return -floor2( -n, align ); } 128 long long int ceiling2( long long int n, long long int align ) { /*assert( is_pow2( align ) );*/ return -floor2( -n, align ); } 129 unsigned long long int ceiling2( unsigned long long int n, unsigned long long int align ) { /*assert( is_pow2( align ) );*/ return -floor2( -n, align ); } 130 130 131 131 // forall( otype T | { T floor2( T, T ); T -?( T ); } ) 132 // T ceiling2( T n, T align ) { verify( is_pow2( align ) );return -floor2( -n, align ); }132 // T ceiling2( T n, T align ) { /* assert( is_pow2( align ) ); */ return -floor2( -n, align ); } 133 133 134 signed char ceiling_div( signed char n, char align ) { return (n + (align - 1)) / align; } 135 unsigned char ceiling_div( unsigned char n, unsigned char align ) { return (n + (align - 1)) / align; } 136 short int ceiling_div( short int n, short int align ) { return (n + (align - 1)) / align; } 137 unsigned short int ceiling_div( unsigned short int n, unsigned short int align ) { return (n + (align - 1)) / align; } 138 int ceiling_div( int n, int align ) { return (n + (align - 1)) / align; } 139 unsigned int ceiling_div( unsigned int n, unsigned int align ) { return (n + (align - 1)) / align; } 140 long int ceiling_div( long int n, long int align ) { return (n + (align - 1)) / align; } 141 unsigned long int ceiling_div( unsigned long int n, unsigned long int align ) { return (n + (align - 1)) / align; } 142 long long int ceiling_div( long long int n, long long int align ) { return (n + (align - 1)) / align; } 143 unsigned long long int ceiling_div( unsigned long long int n, unsigned long long int align ) { return (n + (align - 1)) / align; } 144 145 // forall( otype T | { T ?+?( T, T ); T ?-?( T, T ); T ?%?( T, T ); } ) 146 // T ceiling_div( T n, T align ) { verify( is_pow2( align ) );return (n + (align - 1)) / align; } 147 148 // gcc notices the div/mod pair and saves both so only one div. 149 signed char ceiling( signed char n, signed char align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 150 unsigned char ceiling( unsigned char n, unsigned char align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 151 short int ceiling( short int n, short int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 152 unsigned short int ceiling( unsigned short int n, unsigned short int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 153 int ceiling( int n, int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 154 unsigned int ceiling( unsigned int n, unsigned int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 155 long int ceiling( long int n, long int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 156 unsigned long int ceiling( unsigned long int n, unsigned long int align ) { return floor( n + (n % align != 0 ? align - 1 : 0) , align); } 157 long long int ceiling( long long int n, long long int align ) { return floor( n + (n % align != 0 ? align - 1 : 0), align ); } 158 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 ); } 134 signed char ceiling( signed char n, char align ) { return (n + (align - 1)) / align; } 135 unsigned char ceiling( unsigned char n, unsigned char align ) { return (n + (align - 1)) / align; } 136 short int ceiling( short int n, short int align ) { return (n + (align - 1)) / align; } 137 unsigned short int ceiling( unsigned short int n, unsigned short int align ) { return (n + (align - 1)) / align; } 138 int ceiling( int n, int align ) { return (n + (align - 1)) / align; } 139 unsigned int ceiling( unsigned int n, unsigned int align ) { return (n + (align - 1)) / align; } 140 long int ceiling( long int n, long int align ) { return (n + (align - 1)) / align; } 141 unsigned long int ceiling( unsigned long int n, unsigned long int align ) { return (n + (align - 1)) / align; } 142 long long int ceiling( long long int n, long long int align ) { return (n + (align - 1)) / align; } 143 unsigned long long int ceiling( unsigned long long int n, unsigned long long int align ) { return (n + (align - 1)) / align; } 159 144 160 145 // forall( otype T | { void ?{}( T &, one_t ); T ?+?( T, T ); T ?-?( T, T ); T ?/?( T, T ); } ) 161 // T ceiling( T n, T align ) { return return floor( n + (n % align != 0 ? align - 1 : 0), align ); *}146 // T ceiling( T n, T align ) { return (n + (align - (T){1})) / align; } 162 147 } // distribution 163 148 -
libcfa/src/heap.cfa
r8465b4d r1eb239e4 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // heap.c fa--7 // heap.c -- 8 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Tue Dec 19 21:58:35 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 9 12:23:20202013 // Update Count : 8 9412 // Last Modified On : Wed Aug 5 22:21:27 2020 13 // Update Count : 853 14 14 // 15 15 … … 23 23 #include <sys/mman.h> // mmap, munmap 24 24 25 #include "bits/align.hfa" // lib Align25 #include "bits/align.hfa" // libPow2 26 26 #include "bits/defs.hfa" // likely, unlikely 27 27 #include "bits/locks.hfa" // __spinlock_t … … 88 88 } // default_heap_expansion 89 89 90 bool default_heap_exhausted() __attribute__(( weak )) { // find and free some storage 91 // Returning false prints "out of heap memory" message and aborts. 92 return false; 93 } // default_heap_exhausted 94 90 95 91 96 #ifdef __CFA_DEBUG__ 92 static size_t allocUnfreed;// running total of allocations minus frees97 static unsigned int allocFree; // running total of allocations minus frees 93 98 94 99 static void prtUnfreed() { 95 if ( alloc Unfreed!= 0 ) {100 if ( allocFree != 0 ) { 96 101 // DO NOT USE STREAMS AS THEY MAY BE UNAVAILABLE AT THIS POINT. 97 102 char helpText[512]; 98 int len = snprintf( helpText, sizeof(helpText), "CFA warning (UNIX pid:%ld) : program terminating with % zu(0x%zx) bytes of storage allocated but not freed.\n"103 int len = snprintf( helpText, sizeof(helpText), "CFA warning (UNIX pid:%ld) : program terminating with %u(0x%x) bytes of storage allocated but not freed.\n" 99 104 "Possible cause is unfreed storage allocated by the program or system/library routines called from the program.\n", 100 (long int)getpid(), alloc Unfreed, allocUnfreed); // always print the UNIX pid105 (long int)getpid(), allocFree, allocFree ); // always print the UNIX pid 101 106 __cfaabi_bits_write( STDERR_FILENO, helpText, len ); // print debug/nodebug 102 107 } // if … … 105 110 extern "C" { 106 111 void heapAppStart() { // called by __cfaabi_appready_startup 107 alloc Unfreed= 0;112 allocFree = 0; 108 113 } // heapAppStart 109 114 … … 221 226 #define __STATISTICS__ 222 227 223 // Size of array must harmonize with NoBucketSizes and individual bucket sizesmust be multiple of 16.228 // Bucket size must be multiple of 16. 224 229 // Smaller multiples of 16 and powers of 2 are common allocation sizes, so make them generate the minimum required bucket size. 225 230 // malloc(0) returns 0p, so no bucket is necessary for 0 bytes returning an address that can be freed. … … 244 249 }; 245 250 246 static_assert( NoBucketSizes == sizeof(bucketSizes) / sizeof(bucketSizes[0] 251 static_assert( NoBucketSizes == sizeof(bucketSizes) / sizeof(bucketSizes[0]), "size of bucket array wrong" ); 247 252 248 253 #ifdef FASTLOOKUP … … 262 267 #ifdef __STATISTICS__ 263 268 // Heap statistics counters. 269 static unsigned long long int mmap_storage; 270 static unsigned int mmap_calls; 271 static unsigned long long int munmap_storage; 272 static unsigned int munmap_calls; 273 static unsigned long long int sbrk_storage; 274 static unsigned int sbrk_calls; 275 static unsigned long long int malloc_storage; 264 276 static unsigned int malloc_calls; 265 static unsigned long long int malloc_storage; 277 static unsigned long long int free_storage; 278 static unsigned int free_calls; 279 static unsigned long long int aalloc_storage; 266 280 static unsigned int aalloc_calls; 267 static unsigned long long int aalloc_storage;281 static unsigned long long int calloc_storage; 268 282 static unsigned int calloc_calls; 269 static unsigned long long int calloc_storage;283 static unsigned long long int memalign_storage; 270 284 static unsigned int memalign_calls; 271 static unsigned long long int memalign_storage;285 static unsigned long long int amemalign_storage; 272 286 static unsigned int amemalign_calls; 273 static unsigned long long int amemalign_storage;287 static unsigned long long int cmemalign_storage; 274 288 static unsigned int cmemalign_calls; 275 static unsigned long long int cmemalign_storage;289 static unsigned long long int resize_storage; 276 290 static unsigned int resize_calls; 277 static unsigned long long int re size_storage;291 static unsigned long long int realloc_storage; 278 292 static unsigned int realloc_calls; 279 static unsigned long long int realloc_storage;280 static unsigned int free_calls;281 static unsigned long long int free_storage;282 static unsigned int mmap_calls;283 static unsigned long long int mmap_storage;284 static unsigned int munmap_calls;285 static unsigned long long int munmap_storage;286 static unsigned int sbrk_calls;287 static unsigned long long int sbrk_storage;288 293 // Statistics file descriptor (changed by malloc_stats_fd). 289 static int stat _fd = STDERR_FILENO; // default stderr294 static int statfd = STDERR_FILENO; // default stderr 290 295 291 296 // Use "write" because streams may be shutdown when calls are made. … … 307 312 " sbrk: calls %u / storage %llu\n", 308 313 malloc_calls, malloc_storage, 309 aalloc_calls, aalloc_storage,314 aalloc_calls, calloc_storage, 310 315 calloc_calls, calloc_storage, 311 316 memalign_calls, memalign_storage, … … 405 410 406 411 412 // static inline void noMemory() { 413 // abort( "Heap memory exhausted at %zu bytes.\n" 414 // "Possible cause is very large memory allocation and/or large amount of unfreed storage allocated by the program or system/library routines.", 415 // ((char *)(sbrk( 0 )) - (char *)(heapManager.heapBegin)) ); 416 // } // noMemory 417 418 407 419 static inline void checkAlign( size_t alignment ) { 408 if ( alignment < libAlign() || ! is_pow2( alignment ) ) {420 if ( alignment < libAlign() || ! libPow2( alignment ) ) { 409 421 abort( "Alignment %zu for memory allocation is less than %d and/or not a power of 2.", alignment, libAlign() ); 410 422 } // if … … 429 441 header = realHeader( header ); // backup from fake to real header 430 442 } else { 431 alignment = libAlign(); // => no fake header443 alignment = 0; 432 444 } // if 433 445 } // fakeHeader … … 438 450 header = headerAddr( addr ); 439 451 440 452 if ( unlikely( heapEnd < addr ) ) { // mmapped ? 441 453 fakeHeader( header, alignment ); 442 454 size = header->kind.real.blockSize & -3; // mmap size … … 466 478 } // headers 467 479 468 #define NO_MEMORY_MSG " insufficientheap memory available for allocating %zd new bytes."480 #define NO_MEMORY_MSG "no heap memory available for allocating %zd new bytes." 469 481 470 482 static inline void * extend( size_t size ) with( heapManager ) { … … 474 486 // If the size requested is bigger than the current remaining storage, increase the size of the heap. 475 487 476 size_t increase = ceiling2( size > heapExpand ? size : heapExpand, libAlign() ); 477 if ( sbrk( increase ) == (void *)-1 ) { // failed, no memory ? 488 size_t increase = libCeiling( size > heapExpand ? size : heapExpand, libAlign() ); 489 Succeed: 490 { 491 if ( sbrk( increase ) != (void *)-1 ) break Succeed; // succeed ? 492 if ( default_heap_exhausted() ) { // try fix 493 if ( sbrk( increase ) != (void *)-1 ) break Succeed; // succeed ? 494 } // if 478 495 unlock( extlock ); 479 496 abort( NO_MEMORY_MSG, size ); // give up 480 } // if497 } 481 498 #ifdef __STATISTICS__ 482 499 sbrk_calls += 1; … … 514 531 posn = Bsearchl( (unsigned int)tsize, bucketSizes, (size_t)maxBucketsUsed ); 515 532 HeapManager.FreeHeader * freeElem = &freeLists[posn]; 516 verify( freeElem <= &freeLists[maxBucketsUsed] ); // subscripting error ? 517 verify( tsize <= freeElem->blockSize ); // search failure ? 533 // #ifdef FASTLOOKUP 534 // if ( tsize < LookupSizes ) 535 // freeElem = &freeLists[lookup[tsize]]; 536 // else 537 // #endif // FASTLOOKUP 538 // freeElem = bsearchl( tsize, freeLists, (size_t)maxBucketsUsed ); // binary search 539 // HeapManager.FreeHeader * freeElem = 540 // #ifdef FASTLOOKUP 541 // tsize < LookupSizes ? &freeLists[lookup[tsize]] : 542 // #endif // FASTLOOKUP 543 // bsearchl( tsize, freeLists, (size_t)maxBucketsUsed ); // binary search 544 assert( freeElem <= &freeLists[maxBucketsUsed] ); // subscripting error ? 545 assert( tsize <= freeElem->blockSize ); // search failure ? 518 546 tsize = freeElem->blockSize; // total space needed for request 519 547 … … 545 573 } else { // large size => mmap 546 574 if ( unlikely( size > ULONG_MAX - pageSize ) ) return 0p; 547 tsize = ceiling2( tsize, pageSize ); // must be multiple of page size575 tsize = libCeiling( tsize, pageSize ); // must be multiple of page size 548 576 #ifdef __STATISTICS__ 549 577 __atomic_add_fetch( &mmap_calls, 1, __ATOMIC_SEQ_CST ); 550 578 __atomic_add_fetch( &mmap_storage, tsize, __ATOMIC_SEQ_CST ); 551 579 #endif // __STATISTICS__ 552 553 block = (HeapManager.Storage *)mmap( 0, tsize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, mmapFd, 0 ); 554 if ( block == (HeapManager.Storage *)MAP_FAILED ) { // failed ? 555 if ( errno == ENOMEM ) abort( NO_MEMORY_MSG, tsize ); // no memory 580 Succeed: 581 { 582 block = (HeapManager.Storage *)mmap( 0, tsize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, mmapFd, 0 ); 583 if ( block != (HeapManager.Storage *)MAP_FAILED ) break Succeed; // succeed ? 584 if ( errno == ENOMEM && default_heap_exhausted() ) { // out of memory and try again ? 585 block = (HeapManager.Storage *)mmap( 0, tsize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, mmapFd, 0 ); 586 if ( block != (HeapManager.Storage *)MAP_FAILED ) break Succeed; // succeed ? 587 } // if 588 if ( errno == ENOMEM ) abort( NO_MEMORY_MSG, tsize ); 556 589 // Do not call strerror( errno ) as it may call malloc. 557 590 abort( "(HeapManager &)0x%p.doMalloc() : internal error, mmap failure, size:%zu error:%d.", &heapManager, tsize, errno ); 558 } //if591 } 559 592 #ifdef __CFA_DEBUG__ 560 593 // Set new memory to garbage so subsequent uninitialized usages might fail. … … 566 599 block->header.kind.real.size = size; // store allocation size 567 600 void * addr = &(block->data); // adjust off header to user bytes 568 verify( ((uintptr_t)addr & (libAlign() - 1)) == 0 ); // minimum alignment ?569 601 570 602 #ifdef __CFA_DEBUG__ 571 __atomic_add_fetch( &allocUnfreed, tsize, __ATOMIC_SEQ_CST ); 603 assert( ((uintptr_t)addr & (libAlign() - 1)) == 0 ); // minimum alignment ? 604 __atomic_add_fetch( &allocFree, tsize, __ATOMIC_SEQ_CST ); 572 605 if ( traceHeap() ) { 573 606 enum { BufferSize = 64 }; 574 607 char helpText[BufferSize]; 575 608 int len = snprintf( helpText, BufferSize, "%p = Malloc( %zu ) (allocated %zu)\n", addr, size, tsize ); 609 // int len = snprintf( helpText, BufferSize, "Malloc %p %zu\n", addr, size ); 576 610 __cfaabi_bits_write( STDERR_FILENO, helpText, len ); // print debug/nodebug 577 611 } // if … … 625 659 626 660 #ifdef __CFA_DEBUG__ 627 __atomic_add_fetch( &alloc Unfreed, -size, __ATOMIC_SEQ_CST );661 __atomic_add_fetch( &allocFree, -size, __ATOMIC_SEQ_CST ); 628 662 if ( traceHeap() ) { 629 char helpText[64]; 663 enum { BufferSize = 64 }; 664 char helpText[BufferSize]; 630 665 int len = snprintf( helpText, sizeof(helpText), "Free( %p ) size:%zu\n", addr, size ); 631 666 __cfaabi_bits_write( STDERR_FILENO, helpText, len ); // print debug/nodebug … … 650 685 for ( HeapManager.Storage * p = freeLists[i].freeList; p != 0p; p = p->header.kind.real.next ) { 651 686 #else 652 for ( HeapManager.Storage * p = top( freeLists[i].freeList ); p != 0p; p = (p)`next->top ) { 687 for ( HeapManager.Storage * p = top( freeLists[i].freeList ); p != 0p; /* p = getNext( p )->top */) { 688 typeof(p) temp = ( p )`next->top; // FIX ME: direct assignent fails, initialization works 689 p = temp; 653 690 #endif // BUCKETLOCK 654 691 total += size; … … 692 729 693 730 char * end = (char *)sbrk( 0 ); 694 heapBegin = heapEnd = sbrk( (char *) ceiling2( (long unsigned int)end, libAlign() ) - end ); // move start of heap to multiple of alignment731 heapBegin = heapEnd = sbrk( (char *)libCeiling( (long unsigned int)end, libAlign() ) - end ); // move start of heap to multiple of alignment 695 732 } // HeapManager 696 733 … … 700 737 if ( traceHeapTerm() ) { 701 738 printStats(); 702 // prtUnfreed() called in heapAppStop()739 // if ( prtfree() ) prtFree( heapManager, true ); 703 740 } // if 704 741 #endif // __STATISTICS__ … … 709 746 void memory_startup( void ) { 710 747 #ifdef __CFA_DEBUG__ 711 if ( heapBoot ) {// check for recursion during system boot748 if ( unlikely( heapBoot ) ) { // check for recursion during system boot 712 749 // DO NOT USE STREAMS AS THEY MAY BE UNAVAILABLE AT THIS POINT. 713 750 abort( "boot() : internal error, recursively invoked during system boot." ); … … 716 753 #endif // __CFA_DEBUG__ 717 754 718 // verify( heapManager.heapBegin != 0 );755 //assert( heapManager.heapBegin != 0 ); 719 756 //heapManager{}; 720 757 if ( heapManager.heapBegin == 0p ) heapManager{}; // sanity check … … 728 765 729 766 static inline void * mallocNoStats( size_t size ) { // necessary for malloc statistics 730 verify( heapManager.heapBegin != 0 p); // called before memory_startup ?767 verify( heapManager.heapBegin != 0 ); // called before memory_startup ? 731 768 if ( unlikely( size ) == 0 ) return 0p; // 0 BYTE ALLOCATION RETURNS NULL POINTER 732 769 … … 764 801 765 802 766 static inline void * memalignNoStats( size_t alignment, size_t size ) { 803 static inline void * memalignNoStats( size_t alignment, size_t size ) { // necessary for malloc statistics 767 804 if ( unlikely( size ) == 0 ) return 0p; // 0 BYTE ALLOCATION RETURNS NULL POINTER 768 805 … … 786 823 787 824 // address in the block of the "next" alignment address 788 char * user = (char *) ceiling2( (uintptr_t)(addr + sizeof(HeapManager.Storage)), alignment );825 char * user = (char *)libCeiling( (uintptr_t)(addr + sizeof(HeapManager.Storage)), alignment ); 789 826 790 827 // address of header from malloc … … 814 851 #endif // __CFA_DEBUG__ 815 852 headers( "cmemalign", addr, header, freeElem, bsize, alignment ); 853 #ifndef __CFA_DEBUG__ 816 854 817 855 // Mapped storage is zero filled, but in debug mode mapped memory is scrubbed in doMalloc, so it has to be reset to zero. 818 #ifndef __CFA_DEBUG__819 856 if ( ! mapped ) 820 857 #endif // __CFA_DEBUG__ … … 828 865 829 866 867 // supported mallopt options 868 #ifndef M_MMAP_THRESHOLD 869 #define M_MMAP_THRESHOLD (-1) 870 #endif // M_TOP_PAD 871 #ifndef M_TOP_PAD 872 #define M_TOP_PAD (-2) 873 #endif // M_TOP_PAD 874 875 830 876 extern "C" { 831 877 // Allocates size bytes and returns a pointer to the allocated memory. The contents are undefined. If size is 0, … … 843 889 // Same as malloc() except size bytes is an array of dim elements each of elemSize bytes. 844 890 void * aalloc( size_t dim, size_t elemSize ) { 845 size_t size = dim * elemSize;846 891 #ifdef __STATISTICS__ 847 892 __atomic_add_fetch( &aalloc_calls, 1, __ATOMIC_SEQ_CST ); 848 __atomic_add_fetch( &aalloc_storage, size, __ATOMIC_SEQ_CST );849 #endif // __STATISTICS__ 850 851 return mallocNoStats( size );893 __atomic_add_fetch( &aalloc_storage, dim * elemSize, __ATOMIC_SEQ_CST ); 894 #endif // __STATISTICS__ 895 896 return mallocNoStats( dim * elemSize ); 852 897 } // aalloc 853 898 … … 862 907 return callocNoStats( dim, elemSize ); 863 908 } // calloc 864 865 909 866 910 // Change the size of the memory block pointed to by oaddr to size bytes. The contents are undefined. If oaddr is … … 871 915 #ifdef __STATISTICS__ 872 916 __atomic_add_fetch( &resize_calls, 1, __ATOMIC_SEQ_CST ); 917 __atomic_add_fetch( &resize_storage, size, __ATOMIC_SEQ_CST ); 873 918 #endif // __STATISTICS__ 874 919 875 920 // If size is equal to 0, either NULL or a pointer suitable to be passed to free() is returned. 876 921 if ( unlikely( size == 0 ) ) { free( oaddr ); return 0p; } // special cases 877 if ( unlikely( oaddr == 0p ) ) { 878 #ifdef __STATISTICS__ 879 __atomic_add_fetch( &resize_storage, size, __ATOMIC_SEQ_CST ); 880 #endif // __STATISTICS__ 881 return mallocNoStats( size ); 882 } // if 922 if ( unlikely( oaddr == 0p ) ) return mallocNoStats( size ); 883 923 884 924 HeapManager.Storage.Header * header; 885 925 HeapManager.FreeHeader * freeElem; 886 size_t bsize, oalign ;926 size_t bsize, oalign = 0; 887 927 headers( "resize", oaddr, header, freeElem, bsize, oalign ); 888 928 889 929 size_t odsize = dataStorage( bsize, oaddr, header ); // data storage available in bucket 890 930 // same size, DO NOT preserve STICKY PROPERTIES. 891 if ( oalign <= libAlign()&& size <= odsize && odsize <= size * 2 ) { // allow 50% wasted storage for smaller size931 if ( oalign == 0 && size <= odsize && odsize <= size * 2 ) { // allow 50% wasted storage for smaller size 892 932 header->kind.real.blockSize &= -2; // no alignment and turn off 0 fill 893 933 header->kind.real.size = size; // reset allocation size 894 934 return oaddr; 895 935 } // if 896 897 #ifdef __STATISTICS__898 __atomic_add_fetch( &resize_storage, size, __ATOMIC_SEQ_CST );899 #endif // __STATISTICS__900 936 901 937 // change size, DO NOT preserve STICKY PROPERTIES. … … 910 946 #ifdef __STATISTICS__ 911 947 __atomic_add_fetch( &realloc_calls, 1, __ATOMIC_SEQ_CST ); 948 __atomic_add_fetch( &realloc_storage, size, __ATOMIC_SEQ_CST ); 912 949 #endif // __STATISTICS__ 913 950 914 951 // If size is equal to 0, either NULL or a pointer suitable to be passed to free() is returned. 915 952 if ( unlikely( size == 0 ) ) { free( oaddr ); return 0p; } // special cases 916 if ( unlikely( oaddr == 0p ) ) { 917 #ifdef __STATISTICS__ 918 __atomic_add_fetch( &realloc_storage, size, __ATOMIC_SEQ_CST ); 919 #endif // __STATISTICS__ 920 return mallocNoStats( size ); 921 } // if 953 if ( unlikely( oaddr == 0p ) ) return mallocNoStats( size ); 922 954 923 955 HeapManager.Storage.Header * header; 924 956 HeapManager.FreeHeader * freeElem; 925 size_t bsize, oalign ;957 size_t bsize, oalign = 0; 926 958 headers( "realloc", oaddr, header, freeElem, bsize, oalign ); 927 959 … … 937 969 } // if 938 970 939 #ifdef __STATISTICS__940 __atomic_add_fetch( &realloc_storage, size, __ATOMIC_SEQ_CST );941 #endif // __STATISTICS__942 943 971 // change size and copy old content to new storage 944 972 945 973 void * naddr; 946 if ( likely( oalign <= libAlign() ) ) { // previous request not aligned?974 if ( likely( oalign == 0 ) ) { // previous request memalign? 947 975 naddr = mallocNoStats( size ); // create new area 948 976 } else { … … 963 991 } // realloc 964 992 965 966 993 // Same as malloc() except the memory address is a multiple of alignment, which must be a power of two. (obsolete) 967 994 void * memalign( size_t alignment, size_t size ) { … … 977 1004 // Same as aalloc() with memory alignment. 978 1005 void * amemalign( size_t alignment, size_t dim, size_t elemSize ) { 979 size_t size = dim * elemSize;980 1006 #ifdef __STATISTICS__ 981 1007 __atomic_add_fetch( &cmemalign_calls, 1, __ATOMIC_SEQ_CST ); 982 __atomic_add_fetch( &cmemalign_storage, size, __ATOMIC_SEQ_CST );983 #endif // __STATISTICS__ 984 985 return memalignNoStats( alignment, size );1008 __atomic_add_fetch( &cmemalign_storage, dim * elemSize, __ATOMIC_SEQ_CST ); 1009 #endif // __STATISTICS__ 1010 1011 return memalignNoStats( alignment, dim * elemSize ); 986 1012 } // amemalign 987 1013 … … 1009 1035 // free(3). 1010 1036 int posix_memalign( void ** memptr, size_t alignment, size_t size ) { 1011 if ( alignment < libAlign() || ! is_pow2( alignment ) ) return EINVAL; // check alignment1037 if ( alignment < sizeof(void *) || ! libPow2( alignment ) ) return EINVAL; // check alignment 1012 1038 * memptr = memalign( alignment, size ); 1013 1039 return 0; … … 1023 1049 // Same as valloc but rounds size to multiple of page size. 1024 1050 void * pvalloc( size_t size ) { 1025 return memalign( pageSize, ceiling2( size, pageSize ) );1051 return memalign( pageSize, libCeiling( size, pageSize ) ); 1026 1052 } // pvalloc 1027 1053 … … 1061 1087 } // malloc_alignment 1062 1088 1063 1064 1089 // Set the alignment for an the allocation and return previous alignment or 0 if no alignment. 1065 1090 size_t $malloc_alignment_set( void * addr, size_t alignment ) { … … 1144 1169 } // malloc_stats 1145 1170 1146 1147 1171 // Changes the file descripter where malloc_stats() writes statistics. 1148 1172 int malloc_stats_fd( int fd __attribute__(( unused )) ) { 1149 1173 #ifdef __STATISTICS__ 1150 int temp = stat _fd;1151 stat _fd = fd;1174 int temp = statfd; 1175 statfd = fd; 1152 1176 return temp; 1153 1177 #else … … 1170 1194 } // mallopt 1171 1195 1172 1173 1196 // Attempt to release free memory at the top of the heap (by calling sbrk with a suitable argument). 1174 1197 int malloc_trim( size_t ) { … … 1181 1204 // malloc). 1182 1205 int malloc_info( int options, FILE * stream ) { 1183 if ( options != 0 ) { errno = EINVAL; return -1; } 1184 #ifdef __STATISTICS__ 1206 if ( options != 0 ) { errno = EINVAL; return -1; } 1185 1207 return printStatsXML( stream ); 1186 #else1187 return 0; // unsupported1188 #endif // __STATISTICS__1189 1208 } // malloc_info 1190 1209 … … 1201 1220 // Restores the state of all malloc internal bookkeeping variables to the values recorded in the opaque data 1202 1221 // structure pointed to by state. 1203 int malloc_set_state( void * ) {1222 int malloc_set_state( void * ptr ) { 1204 1223 return 0; // unsupported 1205 1224 } // malloc_set_state … … 1211 1230 #ifdef __STATISTICS__ 1212 1231 __atomic_add_fetch( &resize_calls, 1, __ATOMIC_SEQ_CST ); 1232 __atomic_add_fetch( &resize_storage, size, __ATOMIC_SEQ_CST ); 1213 1233 #endif // __STATISTICS__ 1214 1234 1215 1235 // If size is equal to 0, either NULL or a pointer suitable to be passed to free() is returned. 1216 1236 if ( unlikely( size == 0 ) ) { free( oaddr ); return 0p; } // special cases 1217 if ( unlikely( oaddr == 0p ) ) { 1218 #ifdef __STATISTICS__ 1219 __atomic_add_fetch( &resize_storage, size, __ATOMIC_SEQ_CST ); 1220 #endif // __STATISTICS__ 1221 return memalignNoStats( nalign, size ); 1222 } // if 1223 1224 if ( unlikely( nalign < libAlign() ) ) nalign = libAlign(); // reset alignment to minimum 1237 if ( unlikely( oaddr == 0p ) ) return memalignNoStats( nalign, size ); 1238 1239 if ( unlikely( nalign == 0 ) ) nalign = libAlign(); // reset alignment to minimum 1225 1240 #ifdef __CFA_DEBUG__ 1226 1241 else … … 1230 1245 HeapManager.Storage.Header * header; 1231 1246 HeapManager.FreeHeader * freeElem; 1232 size_t bsize, oalign ;1247 size_t bsize, oalign = 0; 1233 1248 headers( "resize", oaddr, header, freeElem, bsize, oalign ); 1234 1249 size_t odsize = dataStorage( bsize, oaddr, header ); // data storage available in bucket 1235 1250 1236 1251 if ( oalign <= nalign && (uintptr_t)oaddr % nalign == 0 ) { // <= alignment and new alignment happens to match 1237 if ( oalign > libAlign() ) { // fake header ?1252 if ( oalign >= libAlign() ) { // fake header ? 1238 1253 headerAddr( oaddr )->kind.fake.alignment = nalign | 1; // update alignment (could be the same) 1239 1254 } // if … … 1245 1260 } // if 1246 1261 1247 #ifdef __STATISTICS__1248 __atomic_add_fetch( &resize_storage, size, __ATOMIC_SEQ_CST );1249 #endif // __STATISTICS__1250 1251 1262 // change size, DO NOT preserve STICKY PROPERTIES. 1252 1263 free( oaddr ); … … 1256 1267 1257 1268 void * realloc( void * oaddr, size_t nalign, size_t size ) { 1258 if ( unlikely( nalign < libAlign() ) ) nalign = libAlign();// reset alignment to minimum1269 if ( unlikely( nalign == 0 ) ) nalign = libAlign(); // reset alignment to minimum 1259 1270 #ifdef __CFA_DEBUG__ 1260 1271 else … … 1264 1275 HeapManager.Storage.Header * header; 1265 1276 HeapManager.FreeHeader * freeElem; 1266 size_t bsize, oalign ;1277 size_t bsize, oalign = 0; 1267 1278 headers( "realloc", oaddr, header, freeElem, bsize, oalign ); 1268 1279 1269 1280 if ( oalign <= nalign && (uintptr_t)oaddr % nalign == 0 ) { // <= alignment and new alignment happens to match 1270 if ( oalign > libAlign() ) { // fake header ?1281 if ( oalign >= libAlign() ) { // fake header ? 1271 1282 headerAddr( oaddr )->kind.fake.alignment = nalign | 1; // update alignment (could be the same) 1272 1283 } // if -
libcfa/src/heap.hfa
r8465b4d r1eb239e4 10 10 // Created On : Tue May 26 11:23:55 2020 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Aug 8 17:36:48202013 // Update Count : 1 612 // Last Modified On : Wed Aug 5 14:55:55 2020 13 // Update Count : 14 14 14 // 15 15 … … 18 18 size_t default_mmap_start(); // CFA extras 19 19 size_t default_heap_expansion(); 20 bool default_heap_exhausted(); // unsafe to call printf! 20 21 21 22 bool traceHeap(); … … 30 31 bool checkFreeOn(); 31 32 bool checkFreeOff(); 32 33 // supported mallopt options34 #ifndef M_MMAP_THRESHOLD35 #define M_MMAP_THRESHOLD (-1)36 #endif // M_TOP_PAD37 #ifndef M_TOP_PAD38 #define M_TOP_PAD (-2)39 #endif // M_TOP_PAD40 33 41 34 extern "C" { -
libcfa/src/iostream.cfa
r8465b4d r1eb239e4 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 10 09:32:14202013 // Update Count : 112 612 // Last Modified On : Mon Jul 20 15:00:37 2020 13 // Update Count : 1124 14 14 // 15 15 … … 615 615 sepOff( os ); \ 616 616 fmt2.flags.left = true; \ 617 int msigd = ceiling _div( high1( fmt.val ), 3 ); \617 int msigd = ceiling( high1( fmt.val ), 3 ); \ 618 618 fmt2.wd = f.wd - (fmt.pc > msigd ? fmt.pc : msigd); \ 619 619 if ( ! fmt.flags.nobsdp ) fmt2.wd -= 1; /* compensate for 0 base specifier */ \ … … 704 704 if ( f.base == 'd' && (f.flags.neg || f.flags.sign) ) bs = 1; // sign ? 705 705 } else { 706 dig = ceiling _div( high1( f.val ), bits );706 dig = ceiling( high1( f.val ), bits ); 707 707 if ( ! f.flags.nobsdp ) { // base prefix ? 708 708 if ( f.base == 'o' ) { -
longrun_tests/Makefile.am
r8465b4d r1eb239e4 18 18 ACLOCAL_AMFLAGS = -I automake 19 19 20 include $(top_srcdir)/ tools/build/cfa.make20 include $(top_srcdir)/src/cfa.make 21 21 22 22 repeats=10 -
tests/.expect/bitmanip3.x64.txt
r8465b4d r1eb239e4 404 404 405 405 signed char 406 floor2(0, 0) = 0, floor2(2, 0) = 0, floor2(-2, 0) = 0 406 407 floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(-3, 1) = -3 407 408 floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(-4, 2) = -4 … … 414 415 415 416 unsigned char 417 floor2(0, 0) = 0, floor2(2, 0) = 0, floor2(254, 0) = 0 416 418 floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(253, 1) = 253 417 419 floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(252, 2) = 252 … … 424 426 425 427 short int 428 floor2(0, 0) = 0, floor2(2, 0) = 0, floor2(-2, 0) = 0 426 429 floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(-3, 1) = -3 427 430 floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(-4, 2) = -4 … … 442 445 443 446 unsigned short int 447 floor2(0, 0) = 0, floor2(2, 0) = 0, floor2(65534, 0) = 0 444 448 floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(65533, 1) = 65533 445 449 floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(65532, 2) = 65532 … … 460 464 461 465 int 466 floor2(0, 0) = 0, floor2(2, 0) = 0, floor2(-2, 0) = 0 462 467 floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(-3, 1) = -3 463 468 floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(-4, 2) = -4 … … 494 499 495 500 unsigned int 501 floor2(0, 0) = 0, floor2(2, 0) = 0, floor2(4294967294, 0) = 0 496 502 floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(4294967293, 1) = 4294967293 497 503 floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(4294967292, 2) = 4294967292 … … 528 534 529 535 long int 536 floor2(0, 0) = 0, floor2(2, 0) = 0, floor2(-2, 0) = 0 530 537 floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(-3, 1) = -3 531 538 floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(-4, 2) = -4 … … 594 601 595 602 unsigned long int 603 floor2(0, 0) = 0, floor2(2, 0) = 0, floor2(18446744073709551614, 0) = 0 596 604 floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(18446744073709551613, 1) = 18446744073709551613 597 605 floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(18446744073709551612, 2) = 18446744073709551612 … … 660 668 661 669 long long int 670 floor2(0, 0) = 0, floor2(2, 0) = 0, floor2(-2, 0) = 0 662 671 floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(-3, 1) = -3 663 672 floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(-4, 2) = -4 … … 726 735 727 736 unsigned long long int 737 floor2(0, 0) = 0, floor2(2, 0) = 0, floor2(18446744073709551614, 0) = 0 728 738 floor2(1, 1) = 1, floor2(3, 1) = 3, floor2(18446744073709551613, 1) = 18446744073709551613 729 739 floor2(2, 2) = 2, floor2(4, 2) = 4, floor2(18446744073709551612, 2) = 18446744073709551612 … … 1186 1196 1187 1197 signed char 1198 ceiling2(0, 0) = 0, ceiling2(2, 0) = 0, ceiling2(-2, 0) = 0 1188 1199 ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(-3, 1) = -3 1189 1200 ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(-4, 2) = -4 … … 1196 1207 1197 1208 unsigned char 1209 ceiling2(0, 0) = 0, ceiling2(2, 0) = 0, ceiling2(254, 0) = 0 1198 1210 ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(253, 1) = 253 1199 1211 ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(252, 2) = 252 … … 1206 1218 1207 1219 short int 1220 ceiling2(0, 0) = 0, ceiling2(2, 0) = 0, ceiling2(-2, 0) = 0 1208 1221 ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(-3, 1) = -3 1209 1222 ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(-4, 2) = -4 … … 1224 1237 1225 1238 unsigned short int 1239 ceiling2(0, 0) = 0, ceiling2(2, 0) = 0, ceiling2(65534, 0) = 0 1226 1240 ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(65533, 1) = 65533 1227 1241 ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(65532, 2) = 65532 … … 1242 1256 1243 1257 int 1258 ceiling2(0, 0) = 0, ceiling2(2, 0) = 0, ceiling2(-2, 0) = 0 1244 1259 ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(-3, 1) = -3 1245 1260 ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(-4, 2) = -4 … … 1276 1291 1277 1292 unsigned int 1293 ceiling2(0, 0) = 0, ceiling2(2, 0) = 0, ceiling2(4294967294, 0) = 0 1278 1294 ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(4294967293, 1) = 4294967293 1279 1295 ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(4294967292, 2) = 4294967292 … … 1310 1326 1311 1327 long int 1328 ceiling2(0, 0) = 0, ceiling2(2, 0) = 0, ceiling2(-2, 0) = 0 1312 1329 ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(-3, 1) = -3 1313 1330 ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(-4, 2) = -4 … … 1376 1393 1377 1394 unsigned long int 1395 ceiling2(0, 0) = 0, ceiling2(2, 0) = 0, ceiling2(18446744073709551614, 0) = 0 1378 1396 ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(18446744073709551613, 1) = 18446744073709551613 1379 1397 ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(18446744073709551612, 2) = 18446744073709551612 … … 1442 1460 1443 1461 long long int 1462 ceiling2(0, 0) = 0, ceiling2(2, 0) = 0, ceiling2(-2, 0) = 0 1444 1463 ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(-3, 1) = -3 1445 1464 ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(-4, 2) = -4 … … 1508 1527 1509 1528 unsigned long long int 1529 ceiling2(0, 0) = 0, ceiling2(2, 0) = 0, ceiling2(18446744073709551614, 0) = 0 1510 1530 ceiling2(1, 1) = 1, ceiling2(3, 1) = 3, ceiling2(18446744073709551613, 1) = 18446744073709551613 1511 1531 ceiling2(2, 2) = 2, ceiling2(4, 2) = 4, ceiling2(18446744073709551612, 2) = 18446744073709551612 … … 1574 1594 1575 1595 1576 ceiling_div1577 1578 signed char1579 ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -31580 ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -11581 ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 01582 ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 01583 ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 01584 ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 01585 ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 01586 ceiling_div(-128, -128) = 2, ceiling_div(-126, -128) = 1, ceiling_div(126, -128) = 01587 1588 unsigned char1589 ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(253, 1) = 2531590 ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(252, 2) = 1261591 ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(250, 4) = 631592 ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(246, 8) = 311593 ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(238, 16) = 151594 ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(222, 32) = 71595 ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(190, 64) = 31596 ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(126, 128) = 11597 1598 short int1599 ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -31600 ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -11601 ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 01602 ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 01603 ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 01604 ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 01605 ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 01606 ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 01607 ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 01608 ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 01609 ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 01610 ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 01611 ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 01612 ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 01613 ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 01614 ceiling_div(-32768, -32768) = 2, ceiling_div(-32766, -32768) = 1, ceiling_div(32766, -32768) = 01615 1616 unsigned short int1617 ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(65533, 1) = 655331618 ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(65532, 2) = 327661619 ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(65530, 4) = 163831620 ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(65526, 8) = 81911621 ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(65518, 16) = 40951622 ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(65502, 32) = 20471623 ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(65470, 64) = 10231624 ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(65406, 128) = 5111625 ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(65278, 256) = 2551626 ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(65022, 512) = 1271627 ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(64510, 1024) = 631628 ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(63486, 2048) = 311629 ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(61438, 4096) = 151630 ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(57342, 8192) = 71631 ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(49150, 16384) = 31632 ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(32766, 32768) = 11633 1634 int1635 ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -31636 ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -11637 ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 01638 ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 01639 ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 01640 ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 01641 ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 01642 ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 01643 ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 01644 ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 01645 ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 01646 ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 01647 ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 01648 ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 01649 ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 01650 ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 01651 ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 01652 ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 01653 ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 01654 ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 01655 ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 01656 ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 01657 ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 01658 ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 01659 ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 01660 ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 01661 ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 01662 ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 01663 ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 01664 ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 01665 ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = -1, ceiling_div(-1073741826, 1073741824) = 01666 ceiling_div(-2147483648, -2147483648) = 0, ceiling_div(-2147483646, -2147483648) = 0, ceiling_div(2147483646, -2147483648) = 01667 1668 unsigned int1669 ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(4294967293, 1) = 42949672931670 ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(4294967292, 2) = 21474836461671 ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(4294967290, 4) = 10737418231672 ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(4294967286, 8) = 5368709111673 ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(4294967278, 16) = 2684354551674 ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(4294967262, 32) = 1342177271675 ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(4294967230, 64) = 671088631676 ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(4294967166, 128) = 335544311677 ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(4294967038, 256) = 167772151678 ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(4294966782, 512) = 83886071679 ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(4294966270, 1024) = 41943031680 ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(4294965246, 2048) = 20971511681 ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(4294963198, 4096) = 10485751682 ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(4294959102, 8192) = 5242871683 ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(4294950910, 16384) = 2621431684 ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(4294934526, 32768) = 1310711685 ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(4294901758, 65536) = 655351686 ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(4294836222, 131072) = 327671687 ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(4294705150, 262144) = 163831688 ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(4294443006, 524288) = 81911689 ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(4293918718, 1048576) = 40951690 ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(4292870142, 2097152) = 20471691 ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(4290772990, 4194304) = 10231692 ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(4286578686, 8388608) = 5111693 ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(4278190078, 16777216) = 2551694 ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(4261412862, 33554432) = 1271695 ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(4227858430, 67108864) = 631696 ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(4160749566, 134217728) = 311697 ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(4026531838, 268435456) = 151698 ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(3758096382, 536870912) = 71699 ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(3221225470, 1073741824) = 31700 ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 0, ceiling_div(2147483646, 2147483648) = 11701 1702 long int1703 ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -31704 ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -11705 ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 01706 ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 01707 ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 01708 ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 01709 ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 01710 ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 01711 ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 01712 ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 01713 ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 01714 ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 01715 ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 01716 ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 01717 ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 01718 ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 01719 ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 01720 ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 01721 ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 01722 ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 01723 ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 01724 ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 01725 ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 01726 ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 01727 ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 01728 ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 01729 ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 01730 ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 01731 ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 01732 ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 01733 ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(-1073741826, 1073741824) = 01734 ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(-2147483650, 2147483648) = 01735 ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(-4294967298, 4294967296) = 01736 ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(-8589934594, 8589934592) = 01737 ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(-17179869186, 17179869184) = 01738 ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(-34359738370, 34359738368) = 01739 ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(-68719476738, 68719476736) = 01740 ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(-137438953474, 137438953472) = 01741 ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(-274877906946, 274877906944) = 01742 ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(-549755813890, 549755813888) = 01743 ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(-1099511627778, 1099511627776) = 01744 ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(-2199023255554, 2199023255552) = 01745 ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(-4398046511106, 4398046511104) = 01746 ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(-8796093022210, 8796093022208) = 01747 ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(-17592186044418, 17592186044416) = 01748 ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(-35184372088834, 35184372088832) = 01749 ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(-70368744177666, 70368744177664) = 01750 ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(-140737488355330, 140737488355328) = 01751 ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(-281474976710658, 281474976710656) = 01752 ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(-562949953421314, 562949953421312) = 01753 ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(-1125899906842626, 1125899906842624) = 01754 ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(-2251799813685250, 2251799813685248) = 01755 ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(-4503599627370498, 4503599627370496) = 01756 ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(-9007199254740994, 9007199254740992) = 01757 ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(-18014398509481986, 18014398509481984) = 01758 ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(-36028797018963970, 36028797018963968) = 01759 ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(-72057594037927938, 72057594037927936) = 01760 ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(-144115188075855874, 144115188075855872) = 01761 ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(-288230376151711746, 288230376151711744) = 01762 ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(-576460752303423490, 576460752303423488) = 01763 ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(-1152921504606846978, 1152921504606846976) = 01764 ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(-2305843009213693954, 2305843009213693952) = 01765 ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = -1, ceiling_div(-4611686018427387906, 4611686018427387904) = 01766 ceiling_div(-9223372036854775808, -9223372036854775808) = 0, ceiling_div(-9223372036854775806, -9223372036854775808) = 0, ceiling_div(9223372036854775806, -9223372036854775808) = 01767 1768 unsigned long int1769 ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(18446744073709551613, 1) = 184467440737095516131770 ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(18446744073709551612, 2) = 92233720368547758061771 ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(18446744073709551610, 4) = 46116860184273879031772 ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(18446744073709551606, 8) = 23058430092136939511773 ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(18446744073709551598, 16) = 11529215046068469751774 ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(18446744073709551582, 32) = 5764607523034234871775 ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(18446744073709551550, 64) = 2882303761517117431776 ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(18446744073709551486, 128) = 1441151880758558711777 ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(18446744073709551358, 256) = 720575940379279351778 ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(18446744073709551102, 512) = 360287970189639671779 ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(18446744073709550590, 1024) = 180143985094819831780 ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(18446744073709549566, 2048) = 90071992547409911781 ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(18446744073709547518, 4096) = 45035996273704951782 ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(18446744073709543422, 8192) = 22517998136852471783 ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(18446744073709535230, 16384) = 11258999068426231784 ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(18446744073709518846, 32768) = 5629499534213111785 ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(18446744073709486078, 65536) = 2814749767106551786 ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(18446744073709420542, 131072) = 1407374883553271787 ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(18446744073709289470, 262144) = 703687441776631788 ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(18446744073709027326, 524288) = 351843720888311789 ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(18446744073708503038, 1048576) = 175921860444151790 ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(18446744073707454462, 2097152) = 87960930222071791 ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(18446744073705357310, 4194304) = 43980465111031792 ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(18446744073701163006, 8388608) = 21990232555511793 ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(18446744073692774398, 16777216) = 10995116277751794 ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(18446744073675997182, 33554432) = 5497558138871795 ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(18446744073642442750, 67108864) = 2748779069431796 ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(18446744073575333886, 134217728) = 1374389534711797 ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(18446744073441116158, 268435456) = 687194767351798 ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(18446744073172680702, 536870912) = 343597383671799 ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(18446744072635809790, 1073741824) = 171798691831800 ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(18446744071562067966, 2147483648) = 85899345911801 ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(18446744069414584318, 4294967296) = 42949672951802 ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(18446744065119617022, 8589934592) = 21474836471803 ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(18446744056529682430, 17179869184) = 10737418231804 ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(18446744039349813246, 34359738368) = 5368709111805 ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(18446744004990074878, 68719476736) = 2684354551806 ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(18446743936270598142, 137438953472) = 1342177271807 ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(18446743798831644670, 274877906944) = 671088631808 ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(18446743523953737726, 549755813888) = 335544311809 ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(18446742974197923838, 1099511627776) = 167772151810 ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(18446741874686296062, 2199023255552) = 83886071811 ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(18446739675663040510, 4398046511104) = 41943031812 ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(18446735277616529406, 8796093022208) = 20971511813 ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(18446726481523507198, 17592186044416) = 10485751814 ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(18446708889337462782, 35184372088832) = 5242871815 ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(18446673704965373950, 70368744177664) = 2621431816 ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(18446603336221196286, 140737488355328) = 1310711817 ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(18446462598732840958, 281474976710656) = 655351818 ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(18446181123756130302, 562949953421312) = 327671819 ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(18445618173802708990, 1125899906842624) = 163831820 ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(18444492273895866366, 2251799813685248) = 81911821 ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(18442240474082181118, 4503599627370496) = 40951822 ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(18437736874454810622, 9007199254740992) = 20471823 ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(18428729675200069630, 18014398509481984) = 10231824 ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(18410715276690587646, 36028797018963968) = 5111825 ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(18374686479671623678, 72057594037927936) = 2551826 ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(18302628885633695742, 144115188075855872) = 1271827 ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(18158513697557839870, 288230376151711744) = 631828 ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(17870283321406128126, 576460752303423488) = 311829 ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(17293822569102704638, 1152921504606846976) = 151830 ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(16140901064495857662, 2305843009213693952) = 71831 ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = 2, ceiling_div(13835058055282163710, 4611686018427387904) = 31832 ceiling_div(9223372036854775808, 9223372036854775808) = 1, ceiling_div(9223372036854775810, 9223372036854775808) = 0, ceiling_div(9223372036854775806, 9223372036854775808) = 11833 1834 long long int1835 ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(-3, 1) = -31836 ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(-4, 2) = -11837 ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(-6, 4) = 01838 ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(-10, 8) = 01839 ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(-18, 16) = 01840 ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(-34, 32) = 01841 ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(-66, 64) = 01842 ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(-130, 128) = 01843 ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(-258, 256) = 01844 ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(-514, 512) = 01845 ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(-1026, 1024) = 01846 ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(-2050, 2048) = 01847 ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(-4098, 4096) = 01848 ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(-8194, 8192) = 01849 ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(-16386, 16384) = 01850 ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(-32770, 32768) = 01851 ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(-65538, 65536) = 01852 ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(-131074, 131072) = 01853 ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(-262146, 262144) = 01854 ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(-524290, 524288) = 01855 ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(-1048578, 1048576) = 01856 ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(-2097154, 2097152) = 01857 ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(-4194306, 4194304) = 01858 ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(-8388610, 8388608) = 01859 ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(-16777218, 16777216) = 01860 ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(-33554434, 33554432) = 01861 ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(-67108866, 67108864) = 01862 ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(-134217730, 134217728) = 01863 ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(-268435458, 268435456) = 01864 ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(-536870914, 536870912) = 01865 ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(-1073741826, 1073741824) = 01866 ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(-2147483650, 2147483648) = 01867 ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(-4294967298, 4294967296) = 01868 ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(-8589934594, 8589934592) = 01869 ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(-17179869186, 17179869184) = 01870 ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(-34359738370, 34359738368) = 01871 ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(-68719476738, 68719476736) = 01872 ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(-137438953474, 137438953472) = 01873 ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(-274877906946, 274877906944) = 01874 ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(-549755813890, 549755813888) = 01875 ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(-1099511627778, 1099511627776) = 01876 ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(-2199023255554, 2199023255552) = 01877 ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(-4398046511106, 4398046511104) = 01878 ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(-8796093022210, 8796093022208) = 01879 ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(-17592186044418, 17592186044416) = 01880 ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(-35184372088834, 35184372088832) = 01881 ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(-70368744177666, 70368744177664) = 01882 ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(-140737488355330, 140737488355328) = 01883 ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(-281474976710658, 281474976710656) = 01884 ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(-562949953421314, 562949953421312) = 01885 ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(-1125899906842626, 1125899906842624) = 01886 ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(-2251799813685250, 2251799813685248) = 01887 ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(-4503599627370498, 4503599627370496) = 01888 ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(-9007199254740994, 9007199254740992) = 01889 ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(-18014398509481986, 18014398509481984) = 01890 ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(-36028797018963970, 36028797018963968) = 01891 ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(-72057594037927938, 72057594037927936) = 01892 ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(-144115188075855874, 144115188075855872) = 01893 ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(-288230376151711746, 288230376151711744) = 01894 ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(-576460752303423490, 576460752303423488) = 01895 ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(-1152921504606846978, 1152921504606846976) = 01896 ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(-2305843009213693954, 2305843009213693952) = 01897 ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = -1, ceiling_div(-4611686018427387906, 4611686018427387904) = 01898 ceiling_div(-9223372036854775808, -9223372036854775808) = 0, ceiling_div(-9223372036854775806, -9223372036854775808) = 0, ceiling_div(9223372036854775806, -9223372036854775808) = 01899 1900 unsigned long long int1901 ceiling_div(1, 1) = 1, ceiling_div(3, 1) = 3, ceiling_div(18446744073709551613, 1) = 184467440737095516131902 ceiling_div(2, 2) = 1, ceiling_div(4, 2) = 2, ceiling_div(18446744073709551612, 2) = 92233720368547758061903 ceiling_div(4, 4) = 1, ceiling_div(6, 4) = 2, ceiling_div(18446744073709551610, 4) = 46116860184273879031904 ceiling_div(8, 8) = 1, ceiling_div(10, 8) = 2, ceiling_div(18446744073709551606, 8) = 23058430092136939511905 ceiling_div(16, 16) = 1, ceiling_div(18, 16) = 2, ceiling_div(18446744073709551598, 16) = 11529215046068469751906 ceiling_div(32, 32) = 1, ceiling_div(34, 32) = 2, ceiling_div(18446744073709551582, 32) = 5764607523034234871907 ceiling_div(64, 64) = 1, ceiling_div(66, 64) = 2, ceiling_div(18446744073709551550, 64) = 2882303761517117431908 ceiling_div(128, 128) = 1, ceiling_div(130, 128) = 2, ceiling_div(18446744073709551486, 128) = 1441151880758558711909 ceiling_div(256, 256) = 1, ceiling_div(258, 256) = 2, ceiling_div(18446744073709551358, 256) = 720575940379279351910 ceiling_div(512, 512) = 1, ceiling_div(514, 512) = 2, ceiling_div(18446744073709551102, 512) = 360287970189639671911 ceiling_div(1024, 1024) = 1, ceiling_div(1026, 1024) = 2, ceiling_div(18446744073709550590, 1024) = 180143985094819831912 ceiling_div(2048, 2048) = 1, ceiling_div(2050, 2048) = 2, ceiling_div(18446744073709549566, 2048) = 90071992547409911913 ceiling_div(4096, 4096) = 1, ceiling_div(4098, 4096) = 2, ceiling_div(18446744073709547518, 4096) = 45035996273704951914 ceiling_div(8192, 8192) = 1, ceiling_div(8194, 8192) = 2, ceiling_div(18446744073709543422, 8192) = 22517998136852471915 ceiling_div(16384, 16384) = 1, ceiling_div(16386, 16384) = 2, ceiling_div(18446744073709535230, 16384) = 11258999068426231916 ceiling_div(32768, 32768) = 1, ceiling_div(32770, 32768) = 2, ceiling_div(18446744073709518846, 32768) = 5629499534213111917 ceiling_div(65536, 65536) = 1, ceiling_div(65538, 65536) = 2, ceiling_div(18446744073709486078, 65536) = 2814749767106551918 ceiling_div(131072, 131072) = 1, ceiling_div(131074, 131072) = 2, ceiling_div(18446744073709420542, 131072) = 1407374883553271919 ceiling_div(262144, 262144) = 1, ceiling_div(262146, 262144) = 2, ceiling_div(18446744073709289470, 262144) = 703687441776631920 ceiling_div(524288, 524288) = 1, ceiling_div(524290, 524288) = 2, ceiling_div(18446744073709027326, 524288) = 351843720888311921 ceiling_div(1048576, 1048576) = 1, ceiling_div(1048578, 1048576) = 2, ceiling_div(18446744073708503038, 1048576) = 175921860444151922 ceiling_div(2097152, 2097152) = 1, ceiling_div(2097154, 2097152) = 2, ceiling_div(18446744073707454462, 2097152) = 87960930222071923 ceiling_div(4194304, 4194304) = 1, ceiling_div(4194306, 4194304) = 2, ceiling_div(18446744073705357310, 4194304) = 43980465111031924 ceiling_div(8388608, 8388608) = 1, ceiling_div(8388610, 8388608) = 2, ceiling_div(18446744073701163006, 8388608) = 21990232555511925 ceiling_div(16777216, 16777216) = 1, ceiling_div(16777218, 16777216) = 2, ceiling_div(18446744073692774398, 16777216) = 10995116277751926 ceiling_div(33554432, 33554432) = 1, ceiling_div(33554434, 33554432) = 2, ceiling_div(18446744073675997182, 33554432) = 5497558138871927 ceiling_div(67108864, 67108864) = 1, ceiling_div(67108866, 67108864) = 2, ceiling_div(18446744073642442750, 67108864) = 2748779069431928 ceiling_div(134217728, 134217728) = 1, ceiling_div(134217730, 134217728) = 2, ceiling_div(18446744073575333886, 134217728) = 1374389534711929 ceiling_div(268435456, 268435456) = 1, ceiling_div(268435458, 268435456) = 2, ceiling_div(18446744073441116158, 268435456) = 687194767351930 ceiling_div(536870912, 536870912) = 1, ceiling_div(536870914, 536870912) = 2, ceiling_div(18446744073172680702, 536870912) = 343597383671931 ceiling_div(1073741824, 1073741824) = 1, ceiling_div(1073741826, 1073741824) = 2, ceiling_div(18446744072635809790, 1073741824) = 171798691831932 ceiling_div(2147483648, 2147483648) = 1, ceiling_div(2147483650, 2147483648) = 2, ceiling_div(18446744071562067966, 2147483648) = 85899345911933 ceiling_div(4294967296, 4294967296) = 1, ceiling_div(4294967298, 4294967296) = 2, ceiling_div(18446744069414584318, 4294967296) = 42949672951934 ceiling_div(8589934592, 8589934592) = 1, ceiling_div(8589934594, 8589934592) = 2, ceiling_div(18446744065119617022, 8589934592) = 21474836471935 ceiling_div(17179869184, 17179869184) = 1, ceiling_div(17179869186, 17179869184) = 2, ceiling_div(18446744056529682430, 17179869184) = 10737418231936 ceiling_div(34359738368, 34359738368) = 1, ceiling_div(34359738370, 34359738368) = 2, ceiling_div(18446744039349813246, 34359738368) = 5368709111937 ceiling_div(68719476736, 68719476736) = 1, ceiling_div(68719476738, 68719476736) = 2, ceiling_div(18446744004990074878, 68719476736) = 2684354551938 ceiling_div(137438953472, 137438953472) = 1, ceiling_div(137438953474, 137438953472) = 2, ceiling_div(18446743936270598142, 137438953472) = 1342177271939 ceiling_div(274877906944, 274877906944) = 1, ceiling_div(274877906946, 274877906944) = 2, ceiling_div(18446743798831644670, 274877906944) = 671088631940 ceiling_div(549755813888, 549755813888) = 1, ceiling_div(549755813890, 549755813888) = 2, ceiling_div(18446743523953737726, 549755813888) = 335544311941 ceiling_div(1099511627776, 1099511627776) = 1, ceiling_div(1099511627778, 1099511627776) = 2, ceiling_div(18446742974197923838, 1099511627776) = 167772151942 ceiling_div(2199023255552, 2199023255552) = 1, ceiling_div(2199023255554, 2199023255552) = 2, ceiling_div(18446741874686296062, 2199023255552) = 83886071943 ceiling_div(4398046511104, 4398046511104) = 1, ceiling_div(4398046511106, 4398046511104) = 2, ceiling_div(18446739675663040510, 4398046511104) = 41943031944 ceiling_div(8796093022208, 8796093022208) = 1, ceiling_div(8796093022210, 8796093022208) = 2, ceiling_div(18446735277616529406, 8796093022208) = 20971511945 ceiling_div(17592186044416, 17592186044416) = 1, ceiling_div(17592186044418, 17592186044416) = 2, ceiling_div(18446726481523507198, 17592186044416) = 10485751946 ceiling_div(35184372088832, 35184372088832) = 1, ceiling_div(35184372088834, 35184372088832) = 2, ceiling_div(18446708889337462782, 35184372088832) = 5242871947 ceiling_div(70368744177664, 70368744177664) = 1, ceiling_div(70368744177666, 70368744177664) = 2, ceiling_div(18446673704965373950, 70368744177664) = 2621431948 ceiling_div(140737488355328, 140737488355328) = 1, ceiling_div(140737488355330, 140737488355328) = 2, ceiling_div(18446603336221196286, 140737488355328) = 1310711949 ceiling_div(281474976710656, 281474976710656) = 1, ceiling_div(281474976710658, 281474976710656) = 2, ceiling_div(18446462598732840958, 281474976710656) = 655351950 ceiling_div(562949953421312, 562949953421312) = 1, ceiling_div(562949953421314, 562949953421312) = 2, ceiling_div(18446181123756130302, 562949953421312) = 327671951 ceiling_div(1125899906842624, 1125899906842624) = 1, ceiling_div(1125899906842626, 1125899906842624) = 2, ceiling_div(18445618173802708990, 1125899906842624) = 163831952 ceiling_div(2251799813685248, 2251799813685248) = 1, ceiling_div(2251799813685250, 2251799813685248) = 2, ceiling_div(18444492273895866366, 2251799813685248) = 81911953 ceiling_div(4503599627370496, 4503599627370496) = 1, ceiling_div(4503599627370498, 4503599627370496) = 2, ceiling_div(18442240474082181118, 4503599627370496) = 40951954 ceiling_div(9007199254740992, 9007199254740992) = 1, ceiling_div(9007199254740994, 9007199254740992) = 2, ceiling_div(18437736874454810622, 9007199254740992) = 20471955 ceiling_div(18014398509481984, 18014398509481984) = 1, ceiling_div(18014398509481986, 18014398509481984) = 2, ceiling_div(18428729675200069630, 18014398509481984) = 10231956 ceiling_div(36028797018963968, 36028797018963968) = 1, ceiling_div(36028797018963970, 36028797018963968) = 2, ceiling_div(18410715276690587646, 36028797018963968) = 5111957 ceiling_div(72057594037927936, 72057594037927936) = 1, ceiling_div(72057594037927938, 72057594037927936) = 2, ceiling_div(18374686479671623678, 72057594037927936) = 2551958 ceiling_div(144115188075855872, 144115188075855872) = 1, ceiling_div(144115188075855874, 144115188075855872) = 2, ceiling_div(18302628885633695742, 144115188075855872) = 1271959 ceiling_div(288230376151711744, 288230376151711744) = 1, ceiling_div(288230376151711746, 288230376151711744) = 2, ceiling_div(18158513697557839870, 288230376151711744) = 631960 ceiling_div(576460752303423488, 576460752303423488) = 1, ceiling_div(576460752303423490, 576460752303423488) = 2, ceiling_div(17870283321406128126, 576460752303423488) = 311961 ceiling_div(1152921504606846976, 1152921504606846976) = 1, ceiling_div(1152921504606846978, 1152921504606846976) = 2, ceiling_div(17293822569102704638, 1152921504606846976) = 151962 ceiling_div(2305843009213693952, 2305843009213693952) = 1, ceiling_div(2305843009213693954, 2305843009213693952) = 2, ceiling_div(16140901064495857662, 2305843009213693952) = 71963 ceiling_div(4611686018427387904, 4611686018427387904) = 1, ceiling_div(4611686018427387906, 4611686018427387904) = 2, ceiling_div(13835058055282163710, 4611686018427387904) = 31964 ceiling_div(9223372036854775808, 9223372036854775808) = 1, ceiling_div(9223372036854775810, 9223372036854775808) = 0, ceiling_div(9223372036854775806, 9223372036854775808) = 11965 1966 1967 1596 ceiling 1968 1597 1969 1598 signed char 1970 1599 ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3 1971 ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -41972 ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 01973 ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 01974 ceiling(16, 16) = 1 6, ceiling(18, 16) = 32, ceiling(-18, 16) = 01975 ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 01976 ceiling(64, 64) = 64, ceiling(66, 64) = -128, ceiling(-66, 64) = 01977 ceiling(-128, -128) = -128, ceiling(-126, -128) = -128, ceiling(126, -128) = 01600 ceiling(2, 2) = 1, ceiling(4, 2) = 2, ceiling(-4, 2) = -1 1601 ceiling(4, 4) = 1, ceiling(6, 4) = 2, ceiling(-6, 4) = 0 1602 ceiling(8, 8) = 1, ceiling(10, 8) = 2, ceiling(-10, 8) = 0 1603 ceiling(16, 16) = 1, ceiling(18, 16) = 2, ceiling(-18, 16) = 0 1604 ceiling(32, 32) = 1, ceiling(34, 32) = 2, ceiling(-34, 32) = 0 1605 ceiling(64, 64) = 1, ceiling(66, 64) = 2, ceiling(-66, 64) = 0 1606 ceiling(-128, -128) = 2, ceiling(-126, -128) = 1, ceiling(126, -128) = 0 1978 1607 1979 1608 unsigned char 1980 1609 ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(253, 1) = 253 1981 ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(252, 2) = 2521982 ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(250, 4) = 2521983 ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(246, 8) = 2481984 ceiling(16, 16) = 1 6, ceiling(18, 16) = 32, ceiling(238, 16) = 2401985 ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(222, 32) = 2241986 ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(190, 64) = 1921987 ceiling(128, 128) = 1 28, ceiling(130, 128) = 0, ceiling(126, 128) = 1281610 ceiling(2, 2) = 1, ceiling(4, 2) = 2, ceiling(252, 2) = 126 1611 ceiling(4, 4) = 1, ceiling(6, 4) = 2, ceiling(250, 4) = 63 1612 ceiling(8, 8) = 1, ceiling(10, 8) = 2, ceiling(246, 8) = 31 1613 ceiling(16, 16) = 1, ceiling(18, 16) = 2, ceiling(238, 16) = 15 1614 ceiling(32, 32) = 1, ceiling(34, 32) = 2, ceiling(222, 32) = 7 1615 ceiling(64, 64) = 1, ceiling(66, 64) = 2, ceiling(190, 64) = 3 1616 ceiling(128, 128) = 1, ceiling(130, 128) = 2, ceiling(126, 128) = 1 1988 1617 1989 1618 short int 1990 1619 ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3 1991 ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -41992 ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 01993 ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 01994 ceiling(16, 16) = 1 6, ceiling(18, 16) = 32, ceiling(-18, 16) = 01995 ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 01996 ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 01997 ceiling(128, 128) = 1 28, ceiling(130, 128) = 256, ceiling(-130, 128) = 01998 ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 01999 ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 02000 ceiling(1024, 1024) = 1 024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 02001 ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 02002 ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 02003 ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 02004 ceiling(16384, 16384) = 1 6384, ceiling(16386, 16384) = -32768, ceiling(-16386, 16384) = 02005 ceiling(-32768, -32768) = -32768, ceiling(-32766, -32768) = -32768, ceiling(32766, -32768) = 01620 ceiling(2, 2) = 1, ceiling(4, 2) = 2, ceiling(-4, 2) = -1 1621 ceiling(4, 4) = 1, ceiling(6, 4) = 2, ceiling(-6, 4) = 0 1622 ceiling(8, 8) = 1, ceiling(10, 8) = 2, ceiling(-10, 8) = 0 1623 ceiling(16, 16) = 1, ceiling(18, 16) = 2, ceiling(-18, 16) = 0 1624 ceiling(32, 32) = 1, ceiling(34, 32) = 2, ceiling(-34, 32) = 0 1625 ceiling(64, 64) = 1, ceiling(66, 64) = 2, ceiling(-66, 64) = 0 1626 ceiling(128, 128) = 1, ceiling(130, 128) = 2, ceiling(-130, 128) = 0 1627 ceiling(256, 256) = 1, ceiling(258, 256) = 2, ceiling(-258, 256) = 0 1628 ceiling(512, 512) = 1, ceiling(514, 512) = 2, ceiling(-514, 512) = 0 1629 ceiling(1024, 1024) = 1, ceiling(1026, 1024) = 2, ceiling(-1026, 1024) = 0 1630 ceiling(2048, 2048) = 1, ceiling(2050, 2048) = 2, ceiling(-2050, 2048) = 0 1631 ceiling(4096, 4096) = 1, ceiling(4098, 4096) = 2, ceiling(-4098, 4096) = 0 1632 ceiling(8192, 8192) = 1, ceiling(8194, 8192) = 2, ceiling(-8194, 8192) = 0 1633 ceiling(16384, 16384) = 1, ceiling(16386, 16384) = 2, ceiling(-16386, 16384) = 0 1634 ceiling(-32768, -32768) = 2, ceiling(-32766, -32768) = 1, ceiling(32766, -32768) = 0 2006 1635 2007 1636 unsigned short int 2008 1637 ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(65533, 1) = 65533 2009 ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(65532, 2) = 655322010 ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(65530, 4) = 655322011 ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(65526, 8) = 655282012 ceiling(16, 16) = 1 6, ceiling(18, 16) = 32, ceiling(65518, 16) = 655202013 ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(65502, 32) = 655042014 ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(65470, 64) = 654722015 ceiling(128, 128) = 1 28, ceiling(130, 128) = 256, ceiling(65406, 128) = 654082016 ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(65278, 256) = 652802017 ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(65022, 512) = 650242018 ceiling(1024, 1024) = 1 024, ceiling(1026, 1024) = 2048, ceiling(64510, 1024) = 645122019 ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(63486, 2048) = 634882020 ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(61438, 4096) = 614402021 ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(57342, 8192) = 573442022 ceiling(16384, 16384) = 1 6384, ceiling(16386, 16384) = 32768, ceiling(49150, 16384) = 491522023 ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 0, ceiling(32766, 32768) = 327681638 ceiling(2, 2) = 1, ceiling(4, 2) = 2, ceiling(65532, 2) = 32766 1639 ceiling(4, 4) = 1, ceiling(6, 4) = 2, ceiling(65530, 4) = 16383 1640 ceiling(8, 8) = 1, ceiling(10, 8) = 2, ceiling(65526, 8) = 8191 1641 ceiling(16, 16) = 1, ceiling(18, 16) = 2, ceiling(65518, 16) = 4095 1642 ceiling(32, 32) = 1, ceiling(34, 32) = 2, ceiling(65502, 32) = 2047 1643 ceiling(64, 64) = 1, ceiling(66, 64) = 2, ceiling(65470, 64) = 1023 1644 ceiling(128, 128) = 1, ceiling(130, 128) = 2, ceiling(65406, 128) = 511 1645 ceiling(256, 256) = 1, ceiling(258, 256) = 2, ceiling(65278, 256) = 255 1646 ceiling(512, 512) = 1, ceiling(514, 512) = 2, ceiling(65022, 512) = 127 1647 ceiling(1024, 1024) = 1, ceiling(1026, 1024) = 2, ceiling(64510, 1024) = 63 1648 ceiling(2048, 2048) = 1, ceiling(2050, 2048) = 2, ceiling(63486, 2048) = 31 1649 ceiling(4096, 4096) = 1, ceiling(4098, 4096) = 2, ceiling(61438, 4096) = 15 1650 ceiling(8192, 8192) = 1, ceiling(8194, 8192) = 2, ceiling(57342, 8192) = 7 1651 ceiling(16384, 16384) = 1, ceiling(16386, 16384) = 2, ceiling(49150, 16384) = 3 1652 ceiling(32768, 32768) = 1, ceiling(32770, 32768) = 2, ceiling(32766, 32768) = 1 2024 1653 2025 1654 int 2026 1655 ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3 2027 ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -42028 ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 02029 ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 02030 ceiling(16, 16) = 1 6, ceiling(18, 16) = 32, ceiling(-18, 16) = 02031 ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 02032 ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 02033 ceiling(128, 128) = 1 28, ceiling(130, 128) = 256, ceiling(-130, 128) = 02034 ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 02035 ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 02036 ceiling(1024, 1024) = 1 024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 02037 ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 02038 ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 02039 ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 02040 ceiling(16384, 16384) = 1 6384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 02041 ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 02042 ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 02043 ceiling(131072, 131072) = 1 31072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 02044 ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 02045 ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 02046 ceiling(1048576, 1048576) = 1 048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 02047 ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 02048 ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 02049 ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 02050 ceiling(16777216, 16777216) = 1 6777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 02051 ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 02052 ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 02053 ceiling(134217728, 134217728) = 1 34217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 02054 ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 02055 ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 02056 ceiling(1073741824, 1073741824) = 1 073741824, ceiling(1073741826, 1073741824) = -1073741824, ceiling(-1073741826, 1073741824) = 02057 ceiling(-2147483648, -2147483648) = -2147483648, ceiling(-2147483646, -2147483648) = 0, ceiling(2147483646, -2147483648) = 01656 ceiling(2, 2) = 1, ceiling(4, 2) = 2, ceiling(-4, 2) = -1 1657 ceiling(4, 4) = 1, ceiling(6, 4) = 2, ceiling(-6, 4) = 0 1658 ceiling(8, 8) = 1, ceiling(10, 8) = 2, ceiling(-10, 8) = 0 1659 ceiling(16, 16) = 1, ceiling(18, 16) = 2, ceiling(-18, 16) = 0 1660 ceiling(32, 32) = 1, ceiling(34, 32) = 2, ceiling(-34, 32) = 0 1661 ceiling(64, 64) = 1, ceiling(66, 64) = 2, ceiling(-66, 64) = 0 1662 ceiling(128, 128) = 1, ceiling(130, 128) = 2, ceiling(-130, 128) = 0 1663 ceiling(256, 256) = 1, ceiling(258, 256) = 2, ceiling(-258, 256) = 0 1664 ceiling(512, 512) = 1, ceiling(514, 512) = 2, ceiling(-514, 512) = 0 1665 ceiling(1024, 1024) = 1, ceiling(1026, 1024) = 2, ceiling(-1026, 1024) = 0 1666 ceiling(2048, 2048) = 1, ceiling(2050, 2048) = 2, ceiling(-2050, 2048) = 0 1667 ceiling(4096, 4096) = 1, ceiling(4098, 4096) = 2, ceiling(-4098, 4096) = 0 1668 ceiling(8192, 8192) = 1, ceiling(8194, 8192) = 2, ceiling(-8194, 8192) = 0 1669 ceiling(16384, 16384) = 1, ceiling(16386, 16384) = 2, ceiling(-16386, 16384) = 0 1670 ceiling(32768, 32768) = 1, ceiling(32770, 32768) = 2, ceiling(-32770, 32768) = 0 1671 ceiling(65536, 65536) = 1, ceiling(65538, 65536) = 2, ceiling(-65538, 65536) = 0 1672 ceiling(131072, 131072) = 1, ceiling(131074, 131072) = 2, ceiling(-131074, 131072) = 0 1673 ceiling(262144, 262144) = 1, ceiling(262146, 262144) = 2, ceiling(-262146, 262144) = 0 1674 ceiling(524288, 524288) = 1, ceiling(524290, 524288) = 2, ceiling(-524290, 524288) = 0 1675 ceiling(1048576, 1048576) = 1, ceiling(1048578, 1048576) = 2, ceiling(-1048578, 1048576) = 0 1676 ceiling(2097152, 2097152) = 1, ceiling(2097154, 2097152) = 2, ceiling(-2097154, 2097152) = 0 1677 ceiling(4194304, 4194304) = 1, ceiling(4194306, 4194304) = 2, ceiling(-4194306, 4194304) = 0 1678 ceiling(8388608, 8388608) = 1, ceiling(8388610, 8388608) = 2, ceiling(-8388610, 8388608) = 0 1679 ceiling(16777216, 16777216) = 1, ceiling(16777218, 16777216) = 2, ceiling(-16777218, 16777216) = 0 1680 ceiling(33554432, 33554432) = 1, ceiling(33554434, 33554432) = 2, ceiling(-33554434, 33554432) = 0 1681 ceiling(67108864, 67108864) = 1, ceiling(67108866, 67108864) = 2, ceiling(-67108866, 67108864) = 0 1682 ceiling(134217728, 134217728) = 1, ceiling(134217730, 134217728) = 2, ceiling(-134217730, 134217728) = 0 1683 ceiling(268435456, 268435456) = 1, ceiling(268435458, 268435456) = 2, ceiling(-268435458, 268435456) = 0 1684 ceiling(536870912, 536870912) = 1, ceiling(536870914, 536870912) = 2, ceiling(-536870914, 536870912) = 0 1685 ceiling(1073741824, 1073741824) = 1, ceiling(1073741826, 1073741824) = -1, ceiling(-1073741826, 1073741824) = 0 1686 ceiling(-2147483648, -2147483648) = 0, ceiling(-2147483646, -2147483648) = 0, ceiling(2147483646, -2147483648) = 0 2058 1687 2059 1688 unsigned int 2060 1689 ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(4294967293, 1) = 4294967293 2061 ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(4294967292, 2) = 42949672922062 ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(4294967290, 4) = 42949672922063 ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(4294967286, 8) = 42949672882064 ceiling(16, 16) = 1 6, ceiling(18, 16) = 32, ceiling(4294967278, 16) = 42949672802065 ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(4294967262, 32) = 42949672642066 ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(4294967230, 64) = 42949672322067 ceiling(128, 128) = 1 28, ceiling(130, 128) = 256, ceiling(4294967166, 128) = 42949671682068 ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(4294967038, 256) = 42949670402069 ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(4294966782, 512) = 42949667842070 ceiling(1024, 1024) = 1 024, ceiling(1026, 1024) = 2048, ceiling(4294966270, 1024) = 42949662722071 ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(4294965246, 2048) = 42949652482072 ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(4294963198, 4096) = 42949632002073 ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(4294959102, 8192) = 42949591042074 ceiling(16384, 16384) = 1 6384, ceiling(16386, 16384) = 32768, ceiling(4294950910, 16384) = 42949509122075 ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(4294934526, 32768) = 42949345282076 ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(4294901758, 65536) = 42949017602077 ceiling(131072, 131072) = 1 31072, ceiling(131074, 131072) = 262144, ceiling(4294836222, 131072) = 42948362242078 ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(4294705150, 262144) = 42947051522079 ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(4294443006, 524288) = 42944430082080 ceiling(1048576, 1048576) = 1 048576, ceiling(1048578, 1048576) = 2097152, ceiling(4293918718, 1048576) = 42939187202081 ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(4292870142, 2097152) = 42928701442082 ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(4290772990, 4194304) = 42907729922083 ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(4286578686, 8388608) = 42865786882084 ceiling(16777216, 16777216) = 1 6777216, ceiling(16777218, 16777216) = 33554432, ceiling(4278190078, 16777216) = 42781900802085 ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(4261412862, 33554432) = 42614128642086 ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(4227858430, 67108864) = 42278584322087 ceiling(134217728, 134217728) = 1 34217728, ceiling(134217730, 134217728) = 268435456, ceiling(4160749566, 134217728) = 41607495682088 ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(4026531838, 268435456) = 40265318402089 ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(3758096382, 536870912) = 37580963842090 ceiling(1073741824, 1073741824) = 1 073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(3221225470, 1073741824) = 32212254722091 ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 0, ceiling(2147483646, 2147483648) = 21474836481690 ceiling(2, 2) = 1, ceiling(4, 2) = 2, ceiling(4294967292, 2) = 2147483646 1691 ceiling(4, 4) = 1, ceiling(6, 4) = 2, ceiling(4294967290, 4) = 1073741823 1692 ceiling(8, 8) = 1, ceiling(10, 8) = 2, ceiling(4294967286, 8) = 536870911 1693 ceiling(16, 16) = 1, ceiling(18, 16) = 2, ceiling(4294967278, 16) = 268435455 1694 ceiling(32, 32) = 1, ceiling(34, 32) = 2, ceiling(4294967262, 32) = 134217727 1695 ceiling(64, 64) = 1, ceiling(66, 64) = 2, ceiling(4294967230, 64) = 67108863 1696 ceiling(128, 128) = 1, ceiling(130, 128) = 2, ceiling(4294967166, 128) = 33554431 1697 ceiling(256, 256) = 1, ceiling(258, 256) = 2, ceiling(4294967038, 256) = 16777215 1698 ceiling(512, 512) = 1, ceiling(514, 512) = 2, ceiling(4294966782, 512) = 8388607 1699 ceiling(1024, 1024) = 1, ceiling(1026, 1024) = 2, ceiling(4294966270, 1024) = 4194303 1700 ceiling(2048, 2048) = 1, ceiling(2050, 2048) = 2, ceiling(4294965246, 2048) = 2097151 1701 ceiling(4096, 4096) = 1, ceiling(4098, 4096) = 2, ceiling(4294963198, 4096) = 1048575 1702 ceiling(8192, 8192) = 1, ceiling(8194, 8192) = 2, ceiling(4294959102, 8192) = 524287 1703 ceiling(16384, 16384) = 1, ceiling(16386, 16384) = 2, ceiling(4294950910, 16384) = 262143 1704 ceiling(32768, 32768) = 1, ceiling(32770, 32768) = 2, ceiling(4294934526, 32768) = 131071 1705 ceiling(65536, 65536) = 1, ceiling(65538, 65536) = 2, ceiling(4294901758, 65536) = 65535 1706 ceiling(131072, 131072) = 1, ceiling(131074, 131072) = 2, ceiling(4294836222, 131072) = 32767 1707 ceiling(262144, 262144) = 1, ceiling(262146, 262144) = 2, ceiling(4294705150, 262144) = 16383 1708 ceiling(524288, 524288) = 1, ceiling(524290, 524288) = 2, ceiling(4294443006, 524288) = 8191 1709 ceiling(1048576, 1048576) = 1, ceiling(1048578, 1048576) = 2, ceiling(4293918718, 1048576) = 4095 1710 ceiling(2097152, 2097152) = 1, ceiling(2097154, 2097152) = 2, ceiling(4292870142, 2097152) = 2047 1711 ceiling(4194304, 4194304) = 1, ceiling(4194306, 4194304) = 2, ceiling(4290772990, 4194304) = 1023 1712 ceiling(8388608, 8388608) = 1, ceiling(8388610, 8388608) = 2, ceiling(4286578686, 8388608) = 511 1713 ceiling(16777216, 16777216) = 1, ceiling(16777218, 16777216) = 2, ceiling(4278190078, 16777216) = 255 1714 ceiling(33554432, 33554432) = 1, ceiling(33554434, 33554432) = 2, ceiling(4261412862, 33554432) = 127 1715 ceiling(67108864, 67108864) = 1, ceiling(67108866, 67108864) = 2, ceiling(4227858430, 67108864) = 63 1716 ceiling(134217728, 134217728) = 1, ceiling(134217730, 134217728) = 2, ceiling(4160749566, 134217728) = 31 1717 ceiling(268435456, 268435456) = 1, ceiling(268435458, 268435456) = 2, ceiling(4026531838, 268435456) = 15 1718 ceiling(536870912, 536870912) = 1, ceiling(536870914, 536870912) = 2, ceiling(3758096382, 536870912) = 7 1719 ceiling(1073741824, 1073741824) = 1, ceiling(1073741826, 1073741824) = 2, ceiling(3221225470, 1073741824) = 3 1720 ceiling(2147483648, 2147483648) = 1, ceiling(2147483650, 2147483648) = 0, ceiling(2147483646, 2147483648) = 1 2092 1721 2093 1722 long int 2094 1723 ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3 2095 ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -42096 ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 02097 ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 02098 ceiling(16, 16) = 1 6, ceiling(18, 16) = 32, ceiling(-18, 16) = 02099 ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 02100 ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 02101 ceiling(128, 128) = 1 28, ceiling(130, 128) = 256, ceiling(-130, 128) = 02102 ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 02103 ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 02104 ceiling(1024, 1024) = 1 024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 02105 ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 02106 ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 02107 ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 02108 ceiling(16384, 16384) = 1 6384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 02109 ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 02110 ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 02111 ceiling(131072, 131072) = 1 31072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 02112 ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 02113 ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 02114 ceiling(1048576, 1048576) = 1 048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 02115 ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 02116 ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 02117 ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 02118 ceiling(16777216, 16777216) = 1 6777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 02119 ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 02120 ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 02121 ceiling(134217728, 134217728) = 1 34217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 02122 ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 02123 ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 02124 ceiling(1073741824, 1073741824) = 1 073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(-1073741826, 1073741824) = 02125 ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(-2147483650, 2147483648) = 02126 ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(-4294967298, 4294967296) = 02127 ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(-8589934594, 8589934592) = 02128 ceiling(17179869184, 17179869184) = 1 7179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(-17179869186, 17179869184) = 02129 ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(-34359738370, 34359738368) = 02130 ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(-68719476738, 68719476736) = 02131 ceiling(137438953472, 137438953472) = 1 37438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(-137438953474, 137438953472) = 02132 ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(-274877906946, 274877906944) = 02133 ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(-549755813890, 549755813888) = 02134 ceiling(1099511627776, 1099511627776) = 1 099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(-1099511627778, 1099511627776) = 02135 ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(-2199023255554, 2199023255552) = 02136 ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(-4398046511106, 4398046511104) = 02137 ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(-8796093022210, 8796093022208) = 02138 ceiling(17592186044416, 17592186044416) = 1 7592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(-17592186044418, 17592186044416) = 02139 ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(-35184372088834, 35184372088832) = 02140 ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(-70368744177666, 70368744177664) = 02141 ceiling(140737488355328, 140737488355328) = 1 40737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(-140737488355330, 140737488355328) = 02142 ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(-281474976710658, 281474976710656) = 02143 ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(-562949953421314, 562949953421312) = 02144 ceiling(1125899906842624, 1125899906842624) = 1 125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(-1125899906842626, 1125899906842624) = 02145 ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(-2251799813685250, 2251799813685248) = 02146 ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(-4503599627370498, 4503599627370496) = 02147 ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(-9007199254740994, 9007199254740992) = 02148 ceiling(18014398509481984, 18014398509481984) = 1 8014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(-18014398509481986, 18014398509481984) = 02149 ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(-36028797018963970, 36028797018963968) = 02150 ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(-72057594037927938, 72057594037927936) = 02151 ceiling(144115188075855872, 144115188075855872) = 1 44115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(-144115188075855874, 144115188075855872) = 02152 ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(-288230376151711746, 288230376151711744) = 02153 ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(-576460752303423490, 576460752303423488) = 02154 ceiling(1152921504606846976, 1152921504606846976) = 1 152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(-1152921504606846978, 1152921504606846976) = 02155 ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(-2305843009213693954, 2305843009213693952) = 02156 ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = -4611686018427387904, ceiling(-4611686018427387906, 4611686018427387904) = 02157 ceiling(-9223372036854775808, -9223372036854775808) = -9223372036854775808, ceiling(-9223372036854775806, -9223372036854775808) = 0, ceiling(9223372036854775806, -9223372036854775808) = 01724 ceiling(2, 2) = 1, ceiling(4, 2) = 2, ceiling(-4, 2) = -1 1725 ceiling(4, 4) = 1, ceiling(6, 4) = 2, ceiling(-6, 4) = 0 1726 ceiling(8, 8) = 1, ceiling(10, 8) = 2, ceiling(-10, 8) = 0 1727 ceiling(16, 16) = 1, ceiling(18, 16) = 2, ceiling(-18, 16) = 0 1728 ceiling(32, 32) = 1, ceiling(34, 32) = 2, ceiling(-34, 32) = 0 1729 ceiling(64, 64) = 1, ceiling(66, 64) = 2, ceiling(-66, 64) = 0 1730 ceiling(128, 128) = 1, ceiling(130, 128) = 2, ceiling(-130, 128) = 0 1731 ceiling(256, 256) = 1, ceiling(258, 256) = 2, ceiling(-258, 256) = 0 1732 ceiling(512, 512) = 1, ceiling(514, 512) = 2, ceiling(-514, 512) = 0 1733 ceiling(1024, 1024) = 1, ceiling(1026, 1024) = 2, ceiling(-1026, 1024) = 0 1734 ceiling(2048, 2048) = 1, ceiling(2050, 2048) = 2, ceiling(-2050, 2048) = 0 1735 ceiling(4096, 4096) = 1, ceiling(4098, 4096) = 2, ceiling(-4098, 4096) = 0 1736 ceiling(8192, 8192) = 1, ceiling(8194, 8192) = 2, ceiling(-8194, 8192) = 0 1737 ceiling(16384, 16384) = 1, ceiling(16386, 16384) = 2, ceiling(-16386, 16384) = 0 1738 ceiling(32768, 32768) = 1, ceiling(32770, 32768) = 2, ceiling(-32770, 32768) = 0 1739 ceiling(65536, 65536) = 1, ceiling(65538, 65536) = 2, ceiling(-65538, 65536) = 0 1740 ceiling(131072, 131072) = 1, ceiling(131074, 131072) = 2, ceiling(-131074, 131072) = 0 1741 ceiling(262144, 262144) = 1, ceiling(262146, 262144) = 2, ceiling(-262146, 262144) = 0 1742 ceiling(524288, 524288) = 1, ceiling(524290, 524288) = 2, ceiling(-524290, 524288) = 0 1743 ceiling(1048576, 1048576) = 1, ceiling(1048578, 1048576) = 2, ceiling(-1048578, 1048576) = 0 1744 ceiling(2097152, 2097152) = 1, ceiling(2097154, 2097152) = 2, ceiling(-2097154, 2097152) = 0 1745 ceiling(4194304, 4194304) = 1, ceiling(4194306, 4194304) = 2, ceiling(-4194306, 4194304) = 0 1746 ceiling(8388608, 8388608) = 1, ceiling(8388610, 8388608) = 2, ceiling(-8388610, 8388608) = 0 1747 ceiling(16777216, 16777216) = 1, ceiling(16777218, 16777216) = 2, ceiling(-16777218, 16777216) = 0 1748 ceiling(33554432, 33554432) = 1, ceiling(33554434, 33554432) = 2, ceiling(-33554434, 33554432) = 0 1749 ceiling(67108864, 67108864) = 1, ceiling(67108866, 67108864) = 2, ceiling(-67108866, 67108864) = 0 1750 ceiling(134217728, 134217728) = 1, ceiling(134217730, 134217728) = 2, ceiling(-134217730, 134217728) = 0 1751 ceiling(268435456, 268435456) = 1, ceiling(268435458, 268435456) = 2, ceiling(-268435458, 268435456) = 0 1752 ceiling(536870912, 536870912) = 1, ceiling(536870914, 536870912) = 2, ceiling(-536870914, 536870912) = 0 1753 ceiling(1073741824, 1073741824) = 1, ceiling(1073741826, 1073741824) = 2, ceiling(-1073741826, 1073741824) = 0 1754 ceiling(2147483648, 2147483648) = 1, ceiling(2147483650, 2147483648) = 2, ceiling(-2147483650, 2147483648) = 0 1755 ceiling(4294967296, 4294967296) = 1, ceiling(4294967298, 4294967296) = 2, ceiling(-4294967298, 4294967296) = 0 1756 ceiling(8589934592, 8589934592) = 1, ceiling(8589934594, 8589934592) = 2, ceiling(-8589934594, 8589934592) = 0 1757 ceiling(17179869184, 17179869184) = 1, ceiling(17179869186, 17179869184) = 2, ceiling(-17179869186, 17179869184) = 0 1758 ceiling(34359738368, 34359738368) = 1, ceiling(34359738370, 34359738368) = 2, ceiling(-34359738370, 34359738368) = 0 1759 ceiling(68719476736, 68719476736) = 1, ceiling(68719476738, 68719476736) = 2, ceiling(-68719476738, 68719476736) = 0 1760 ceiling(137438953472, 137438953472) = 1, ceiling(137438953474, 137438953472) = 2, ceiling(-137438953474, 137438953472) = 0 1761 ceiling(274877906944, 274877906944) = 1, ceiling(274877906946, 274877906944) = 2, ceiling(-274877906946, 274877906944) = 0 1762 ceiling(549755813888, 549755813888) = 1, ceiling(549755813890, 549755813888) = 2, ceiling(-549755813890, 549755813888) = 0 1763 ceiling(1099511627776, 1099511627776) = 1, ceiling(1099511627778, 1099511627776) = 2, ceiling(-1099511627778, 1099511627776) = 0 1764 ceiling(2199023255552, 2199023255552) = 1, ceiling(2199023255554, 2199023255552) = 2, ceiling(-2199023255554, 2199023255552) = 0 1765 ceiling(4398046511104, 4398046511104) = 1, ceiling(4398046511106, 4398046511104) = 2, ceiling(-4398046511106, 4398046511104) = 0 1766 ceiling(8796093022208, 8796093022208) = 1, ceiling(8796093022210, 8796093022208) = 2, ceiling(-8796093022210, 8796093022208) = 0 1767 ceiling(17592186044416, 17592186044416) = 1, ceiling(17592186044418, 17592186044416) = 2, ceiling(-17592186044418, 17592186044416) = 0 1768 ceiling(35184372088832, 35184372088832) = 1, ceiling(35184372088834, 35184372088832) = 2, ceiling(-35184372088834, 35184372088832) = 0 1769 ceiling(70368744177664, 70368744177664) = 1, ceiling(70368744177666, 70368744177664) = 2, ceiling(-70368744177666, 70368744177664) = 0 1770 ceiling(140737488355328, 140737488355328) = 1, ceiling(140737488355330, 140737488355328) = 2, ceiling(-140737488355330, 140737488355328) = 0 1771 ceiling(281474976710656, 281474976710656) = 1, ceiling(281474976710658, 281474976710656) = 2, ceiling(-281474976710658, 281474976710656) = 0 1772 ceiling(562949953421312, 562949953421312) = 1, ceiling(562949953421314, 562949953421312) = 2, ceiling(-562949953421314, 562949953421312) = 0 1773 ceiling(1125899906842624, 1125899906842624) = 1, ceiling(1125899906842626, 1125899906842624) = 2, ceiling(-1125899906842626, 1125899906842624) = 0 1774 ceiling(2251799813685248, 2251799813685248) = 1, ceiling(2251799813685250, 2251799813685248) = 2, ceiling(-2251799813685250, 2251799813685248) = 0 1775 ceiling(4503599627370496, 4503599627370496) = 1, ceiling(4503599627370498, 4503599627370496) = 2, ceiling(-4503599627370498, 4503599627370496) = 0 1776 ceiling(9007199254740992, 9007199254740992) = 1, ceiling(9007199254740994, 9007199254740992) = 2, ceiling(-9007199254740994, 9007199254740992) = 0 1777 ceiling(18014398509481984, 18014398509481984) = 1, ceiling(18014398509481986, 18014398509481984) = 2, ceiling(-18014398509481986, 18014398509481984) = 0 1778 ceiling(36028797018963968, 36028797018963968) = 1, ceiling(36028797018963970, 36028797018963968) = 2, ceiling(-36028797018963970, 36028797018963968) = 0 1779 ceiling(72057594037927936, 72057594037927936) = 1, ceiling(72057594037927938, 72057594037927936) = 2, ceiling(-72057594037927938, 72057594037927936) = 0 1780 ceiling(144115188075855872, 144115188075855872) = 1, ceiling(144115188075855874, 144115188075855872) = 2, ceiling(-144115188075855874, 144115188075855872) = 0 1781 ceiling(288230376151711744, 288230376151711744) = 1, ceiling(288230376151711746, 288230376151711744) = 2, ceiling(-288230376151711746, 288230376151711744) = 0 1782 ceiling(576460752303423488, 576460752303423488) = 1, ceiling(576460752303423490, 576460752303423488) = 2, ceiling(-576460752303423490, 576460752303423488) = 0 1783 ceiling(1152921504606846976, 1152921504606846976) = 1, ceiling(1152921504606846978, 1152921504606846976) = 2, ceiling(-1152921504606846978, 1152921504606846976) = 0 1784 ceiling(2305843009213693952, 2305843009213693952) = 1, ceiling(2305843009213693954, 2305843009213693952) = 2, ceiling(-2305843009213693954, 2305843009213693952) = 0 1785 ceiling(4611686018427387904, 4611686018427387904) = 1, ceiling(4611686018427387906, 4611686018427387904) = -1, ceiling(-4611686018427387906, 4611686018427387904) = 0 1786 ceiling(-9223372036854775808, -9223372036854775808) = 0, ceiling(-9223372036854775806, -9223372036854775808) = 0, ceiling(9223372036854775806, -9223372036854775808) = 0 2158 1787 2159 1788 unsigned long int 2160 1789 ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(18446744073709551613, 1) = 18446744073709551613 2161 ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(18446744073709551612, 2) = 184467440737095516122162 ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(18446744073709551610, 4) = 184467440737095516122163 ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(18446744073709551606, 8) = 184467440737095516082164 ceiling(16, 16) = 1 6, ceiling(18, 16) = 32, ceiling(18446744073709551598, 16) = 184467440737095516002165 ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(18446744073709551582, 32) = 184467440737095515842166 ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(18446744073709551550, 64) = 184467440737095515522167 ceiling(128, 128) = 1 28, ceiling(130, 128) = 256, ceiling(18446744073709551486, 128) = 184467440737095514882168 ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(18446744073709551358, 256) = 184467440737095513602169 ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(18446744073709551102, 512) = 184467440737095511042170 ceiling(1024, 1024) = 1 024, ceiling(1026, 1024) = 2048, ceiling(18446744073709550590, 1024) = 184467440737095505922171 ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(18446744073709549566, 2048) = 184467440737095495682172 ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(18446744073709547518, 4096) = 184467440737095475202173 ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(18446744073709543422, 8192) = 184467440737095434242174 ceiling(16384, 16384) = 1 6384, ceiling(16386, 16384) = 32768, ceiling(18446744073709535230, 16384) = 184467440737095352322175 ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(18446744073709518846, 32768) = 184467440737095188482176 ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(18446744073709486078, 65536) = 184467440737094860802177 ceiling(131072, 131072) = 1 31072, ceiling(131074, 131072) = 262144, ceiling(18446744073709420542, 131072) = 184467440737094205442178 ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(18446744073709289470, 262144) = 184467440737092894722179 ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(18446744073709027326, 524288) = 184467440737090273282180 ceiling(1048576, 1048576) = 1 048576, ceiling(1048578, 1048576) = 2097152, ceiling(18446744073708503038, 1048576) = 184467440737085030402181 ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(18446744073707454462, 2097152) = 184467440737074544642182 ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(18446744073705357310, 4194304) = 184467440737053573122183 ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(18446744073701163006, 8388608) = 184467440737011630082184 ceiling(16777216, 16777216) = 1 6777216, ceiling(16777218, 16777216) = 33554432, ceiling(18446744073692774398, 16777216) = 184467440736927744002185 ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(18446744073675997182, 33554432) = 184467440736759971842186 ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(18446744073642442750, 67108864) = 184467440736424427522187 ceiling(134217728, 134217728) = 1 34217728, ceiling(134217730, 134217728) = 268435456, ceiling(18446744073575333886, 134217728) = 184467440735753338882188 ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(18446744073441116158, 268435456) = 184467440734411161602189 ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(18446744073172680702, 536870912) = 184467440731726807042190 ceiling(1073741824, 1073741824) = 1 073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(18446744072635809790, 1073741824) = 184467440726358097922191 ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(18446744071562067966, 2147483648) = 184467440715620679682192 ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(18446744069414584318, 4294967296) = 184467440694145843202193 ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(18446744065119617022, 8589934592) = 184467440651196170242194 ceiling(17179869184, 17179869184) = 1 7179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(18446744056529682430, 17179869184) = 184467440565296824322195 ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(18446744039349813246, 34359738368) = 184467440393498132482196 ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(18446744004990074878, 68719476736) = 184467440049900748802197 ceiling(137438953472, 137438953472) = 1 37438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(18446743936270598142, 137438953472) = 184467439362705981442198 ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(18446743798831644670, 274877906944) = 184467437988316446722199 ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(18446743523953737726, 549755813888) = 184467435239537377282200 ceiling(1099511627776, 1099511627776) = 1 099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(18446742974197923838, 1099511627776) = 184467429741979238402201 ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(18446741874686296062, 2199023255552) = 184467418746862960642202 ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(18446739675663040510, 4398046511104) = 184467396756630405122203 ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(18446735277616529406, 8796093022208) = 184467352776165294082204 ceiling(17592186044416, 17592186044416) = 1 7592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(18446726481523507198, 17592186044416) = 184467264815235072002205 ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(18446708889337462782, 35184372088832) = 184467088893374627842206 ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(18446673704965373950, 70368744177664) = 184466737049653739522207 ceiling(140737488355328, 140737488355328) = 1 40737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(18446603336221196286, 140737488355328) = 184466033362211962882208 ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(18446462598732840958, 281474976710656) = 184464625987328409602209 ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(18446181123756130302, 562949953421312) = 184461811237561303042210 ceiling(1125899906842624, 1125899906842624) = 1 125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(18445618173802708990, 1125899906842624) = 184456181738027089922211 ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(18444492273895866366, 2251799813685248) = 184444922738958663682212 ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(18442240474082181118, 4503599627370496) = 184422404740821811202213 ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(18437736874454810622, 9007199254740992) = 184377368744548106242214 ceiling(18014398509481984, 18014398509481984) = 1 8014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(18428729675200069630, 18014398509481984) = 184287296752000696322215 ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(18410715276690587646, 36028797018963968) = 184107152766905876482216 ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(18374686479671623678, 72057594037927936) = 183746864796716236802217 ceiling(144115188075855872, 144115188075855872) = 1 44115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(18302628885633695742, 144115188075855872) = 183026288856336957442218 ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(18158513697557839870, 288230376151711744) = 181585136975578398722219 ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(17870283321406128126, 576460752303423488) = 178702833214061281282220 ceiling(1152921504606846976, 1152921504606846976) = 1 152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(17293822569102704638, 1152921504606846976) = 172938225691027046402221 ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(16140901064495857662, 2305843009213693952) = 161409010644958576642222 ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = 9223372036854775808, ceiling(13835058055282163710, 4611686018427387904) = 138350580552821637122223 ceiling(9223372036854775808, 9223372036854775808) = 9223372036854775808, ceiling(9223372036854775810, 9223372036854775808) = 0, ceiling(9223372036854775806, 9223372036854775808) = 92233720368547758081790 ceiling(2, 2) = 1, ceiling(4, 2) = 2, ceiling(18446744073709551612, 2) = 9223372036854775806 1791 ceiling(4, 4) = 1, ceiling(6, 4) = 2, ceiling(18446744073709551610, 4) = 4611686018427387903 1792 ceiling(8, 8) = 1, ceiling(10, 8) = 2, ceiling(18446744073709551606, 8) = 2305843009213693951 1793 ceiling(16, 16) = 1, ceiling(18, 16) = 2, ceiling(18446744073709551598, 16) = 1152921504606846975 1794 ceiling(32, 32) = 1, ceiling(34, 32) = 2, ceiling(18446744073709551582, 32) = 576460752303423487 1795 ceiling(64, 64) = 1, ceiling(66, 64) = 2, ceiling(18446744073709551550, 64) = 288230376151711743 1796 ceiling(128, 128) = 1, ceiling(130, 128) = 2, ceiling(18446744073709551486, 128) = 144115188075855871 1797 ceiling(256, 256) = 1, ceiling(258, 256) = 2, ceiling(18446744073709551358, 256) = 72057594037927935 1798 ceiling(512, 512) = 1, ceiling(514, 512) = 2, ceiling(18446744073709551102, 512) = 36028797018963967 1799 ceiling(1024, 1024) = 1, ceiling(1026, 1024) = 2, ceiling(18446744073709550590, 1024) = 18014398509481983 1800 ceiling(2048, 2048) = 1, ceiling(2050, 2048) = 2, ceiling(18446744073709549566, 2048) = 9007199254740991 1801 ceiling(4096, 4096) = 1, ceiling(4098, 4096) = 2, ceiling(18446744073709547518, 4096) = 4503599627370495 1802 ceiling(8192, 8192) = 1, ceiling(8194, 8192) = 2, ceiling(18446744073709543422, 8192) = 2251799813685247 1803 ceiling(16384, 16384) = 1, ceiling(16386, 16384) = 2, ceiling(18446744073709535230, 16384) = 1125899906842623 1804 ceiling(32768, 32768) = 1, ceiling(32770, 32768) = 2, ceiling(18446744073709518846, 32768) = 562949953421311 1805 ceiling(65536, 65536) = 1, ceiling(65538, 65536) = 2, ceiling(18446744073709486078, 65536) = 281474976710655 1806 ceiling(131072, 131072) = 1, ceiling(131074, 131072) = 2, ceiling(18446744073709420542, 131072) = 140737488355327 1807 ceiling(262144, 262144) = 1, ceiling(262146, 262144) = 2, ceiling(18446744073709289470, 262144) = 70368744177663 1808 ceiling(524288, 524288) = 1, ceiling(524290, 524288) = 2, ceiling(18446744073709027326, 524288) = 35184372088831 1809 ceiling(1048576, 1048576) = 1, ceiling(1048578, 1048576) = 2, ceiling(18446744073708503038, 1048576) = 17592186044415 1810 ceiling(2097152, 2097152) = 1, ceiling(2097154, 2097152) = 2, ceiling(18446744073707454462, 2097152) = 8796093022207 1811 ceiling(4194304, 4194304) = 1, ceiling(4194306, 4194304) = 2, ceiling(18446744073705357310, 4194304) = 4398046511103 1812 ceiling(8388608, 8388608) = 1, ceiling(8388610, 8388608) = 2, ceiling(18446744073701163006, 8388608) = 2199023255551 1813 ceiling(16777216, 16777216) = 1, ceiling(16777218, 16777216) = 2, ceiling(18446744073692774398, 16777216) = 1099511627775 1814 ceiling(33554432, 33554432) = 1, ceiling(33554434, 33554432) = 2, ceiling(18446744073675997182, 33554432) = 549755813887 1815 ceiling(67108864, 67108864) = 1, ceiling(67108866, 67108864) = 2, ceiling(18446744073642442750, 67108864) = 274877906943 1816 ceiling(134217728, 134217728) = 1, ceiling(134217730, 134217728) = 2, ceiling(18446744073575333886, 134217728) = 137438953471 1817 ceiling(268435456, 268435456) = 1, ceiling(268435458, 268435456) = 2, ceiling(18446744073441116158, 268435456) = 68719476735 1818 ceiling(536870912, 536870912) = 1, ceiling(536870914, 536870912) = 2, ceiling(18446744073172680702, 536870912) = 34359738367 1819 ceiling(1073741824, 1073741824) = 1, ceiling(1073741826, 1073741824) = 2, ceiling(18446744072635809790, 1073741824) = 17179869183 1820 ceiling(2147483648, 2147483648) = 1, ceiling(2147483650, 2147483648) = 2, ceiling(18446744071562067966, 2147483648) = 8589934591 1821 ceiling(4294967296, 4294967296) = 1, ceiling(4294967298, 4294967296) = 2, ceiling(18446744069414584318, 4294967296) = 4294967295 1822 ceiling(8589934592, 8589934592) = 1, ceiling(8589934594, 8589934592) = 2, ceiling(18446744065119617022, 8589934592) = 2147483647 1823 ceiling(17179869184, 17179869184) = 1, ceiling(17179869186, 17179869184) = 2, ceiling(18446744056529682430, 17179869184) = 1073741823 1824 ceiling(34359738368, 34359738368) = 1, ceiling(34359738370, 34359738368) = 2, ceiling(18446744039349813246, 34359738368) = 536870911 1825 ceiling(68719476736, 68719476736) = 1, ceiling(68719476738, 68719476736) = 2, ceiling(18446744004990074878, 68719476736) = 268435455 1826 ceiling(137438953472, 137438953472) = 1, ceiling(137438953474, 137438953472) = 2, ceiling(18446743936270598142, 137438953472) = 134217727 1827 ceiling(274877906944, 274877906944) = 1, ceiling(274877906946, 274877906944) = 2, ceiling(18446743798831644670, 274877906944) = 67108863 1828 ceiling(549755813888, 549755813888) = 1, ceiling(549755813890, 549755813888) = 2, ceiling(18446743523953737726, 549755813888) = 33554431 1829 ceiling(1099511627776, 1099511627776) = 1, ceiling(1099511627778, 1099511627776) = 2, ceiling(18446742974197923838, 1099511627776) = 16777215 1830 ceiling(2199023255552, 2199023255552) = 1, ceiling(2199023255554, 2199023255552) = 2, ceiling(18446741874686296062, 2199023255552) = 8388607 1831 ceiling(4398046511104, 4398046511104) = 1, ceiling(4398046511106, 4398046511104) = 2, ceiling(18446739675663040510, 4398046511104) = 4194303 1832 ceiling(8796093022208, 8796093022208) = 1, ceiling(8796093022210, 8796093022208) = 2, ceiling(18446735277616529406, 8796093022208) = 2097151 1833 ceiling(17592186044416, 17592186044416) = 1, ceiling(17592186044418, 17592186044416) = 2, ceiling(18446726481523507198, 17592186044416) = 1048575 1834 ceiling(35184372088832, 35184372088832) = 1, ceiling(35184372088834, 35184372088832) = 2, ceiling(18446708889337462782, 35184372088832) = 524287 1835 ceiling(70368744177664, 70368744177664) = 1, ceiling(70368744177666, 70368744177664) = 2, ceiling(18446673704965373950, 70368744177664) = 262143 1836 ceiling(140737488355328, 140737488355328) = 1, ceiling(140737488355330, 140737488355328) = 2, ceiling(18446603336221196286, 140737488355328) = 131071 1837 ceiling(281474976710656, 281474976710656) = 1, ceiling(281474976710658, 281474976710656) = 2, ceiling(18446462598732840958, 281474976710656) = 65535 1838 ceiling(562949953421312, 562949953421312) = 1, ceiling(562949953421314, 562949953421312) = 2, ceiling(18446181123756130302, 562949953421312) = 32767 1839 ceiling(1125899906842624, 1125899906842624) = 1, ceiling(1125899906842626, 1125899906842624) = 2, ceiling(18445618173802708990, 1125899906842624) = 16383 1840 ceiling(2251799813685248, 2251799813685248) = 1, ceiling(2251799813685250, 2251799813685248) = 2, ceiling(18444492273895866366, 2251799813685248) = 8191 1841 ceiling(4503599627370496, 4503599627370496) = 1, ceiling(4503599627370498, 4503599627370496) = 2, ceiling(18442240474082181118, 4503599627370496) = 4095 1842 ceiling(9007199254740992, 9007199254740992) = 1, ceiling(9007199254740994, 9007199254740992) = 2, ceiling(18437736874454810622, 9007199254740992) = 2047 1843 ceiling(18014398509481984, 18014398509481984) = 1, ceiling(18014398509481986, 18014398509481984) = 2, ceiling(18428729675200069630, 18014398509481984) = 1023 1844 ceiling(36028797018963968, 36028797018963968) = 1, ceiling(36028797018963970, 36028797018963968) = 2, ceiling(18410715276690587646, 36028797018963968) = 511 1845 ceiling(72057594037927936, 72057594037927936) = 1, ceiling(72057594037927938, 72057594037927936) = 2, ceiling(18374686479671623678, 72057594037927936) = 255 1846 ceiling(144115188075855872, 144115188075855872) = 1, ceiling(144115188075855874, 144115188075855872) = 2, ceiling(18302628885633695742, 144115188075855872) = 127 1847 ceiling(288230376151711744, 288230376151711744) = 1, ceiling(288230376151711746, 288230376151711744) = 2, ceiling(18158513697557839870, 288230376151711744) = 63 1848 ceiling(576460752303423488, 576460752303423488) = 1, ceiling(576460752303423490, 576460752303423488) = 2, ceiling(17870283321406128126, 576460752303423488) = 31 1849 ceiling(1152921504606846976, 1152921504606846976) = 1, ceiling(1152921504606846978, 1152921504606846976) = 2, ceiling(17293822569102704638, 1152921504606846976) = 15 1850 ceiling(2305843009213693952, 2305843009213693952) = 1, ceiling(2305843009213693954, 2305843009213693952) = 2, ceiling(16140901064495857662, 2305843009213693952) = 7 1851 ceiling(4611686018427387904, 4611686018427387904) = 1, ceiling(4611686018427387906, 4611686018427387904) = 2, ceiling(13835058055282163710, 4611686018427387904) = 3 1852 ceiling(9223372036854775808, 9223372036854775808) = 1, ceiling(9223372036854775810, 9223372036854775808) = 0, ceiling(9223372036854775806, 9223372036854775808) = 1 2224 1853 2225 1854 long long int 2226 1855 ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(-3, 1) = -3 2227 ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(-4, 2) = -42228 ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(-6, 4) = 02229 ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(-10, 8) = 02230 ceiling(16, 16) = 1 6, ceiling(18, 16) = 32, ceiling(-18, 16) = 02231 ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(-34, 32) = 02232 ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(-66, 64) = 02233 ceiling(128, 128) = 1 28, ceiling(130, 128) = 256, ceiling(-130, 128) = 02234 ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(-258, 256) = 02235 ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(-514, 512) = 02236 ceiling(1024, 1024) = 1 024, ceiling(1026, 1024) = 2048, ceiling(-1026, 1024) = 02237 ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(-2050, 2048) = 02238 ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(-4098, 4096) = 02239 ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(-8194, 8192) = 02240 ceiling(16384, 16384) = 1 6384, ceiling(16386, 16384) = 32768, ceiling(-16386, 16384) = 02241 ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(-32770, 32768) = 02242 ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(-65538, 65536) = 02243 ceiling(131072, 131072) = 1 31072, ceiling(131074, 131072) = 262144, ceiling(-131074, 131072) = 02244 ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(-262146, 262144) = 02245 ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(-524290, 524288) = 02246 ceiling(1048576, 1048576) = 1 048576, ceiling(1048578, 1048576) = 2097152, ceiling(-1048578, 1048576) = 02247 ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(-2097154, 2097152) = 02248 ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(-4194306, 4194304) = 02249 ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(-8388610, 8388608) = 02250 ceiling(16777216, 16777216) = 1 6777216, ceiling(16777218, 16777216) = 33554432, ceiling(-16777218, 16777216) = 02251 ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(-33554434, 33554432) = 02252 ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(-67108866, 67108864) = 02253 ceiling(134217728, 134217728) = 1 34217728, ceiling(134217730, 134217728) = 268435456, ceiling(-134217730, 134217728) = 02254 ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(-268435458, 268435456) = 02255 ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(-536870914, 536870912) = 02256 ceiling(1073741824, 1073741824) = 1 073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(-1073741826, 1073741824) = 02257 ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(-2147483650, 2147483648) = 02258 ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(-4294967298, 4294967296) = 02259 ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(-8589934594, 8589934592) = 02260 ceiling(17179869184, 17179869184) = 1 7179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(-17179869186, 17179869184) = 02261 ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(-34359738370, 34359738368) = 02262 ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(-68719476738, 68719476736) = 02263 ceiling(137438953472, 137438953472) = 1 37438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(-137438953474, 137438953472) = 02264 ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(-274877906946, 274877906944) = 02265 ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(-549755813890, 549755813888) = 02266 ceiling(1099511627776, 1099511627776) = 1 099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(-1099511627778, 1099511627776) = 02267 ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(-2199023255554, 2199023255552) = 02268 ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(-4398046511106, 4398046511104) = 02269 ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(-8796093022210, 8796093022208) = 02270 ceiling(17592186044416, 17592186044416) = 1 7592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(-17592186044418, 17592186044416) = 02271 ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(-35184372088834, 35184372088832) = 02272 ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(-70368744177666, 70368744177664) = 02273 ceiling(140737488355328, 140737488355328) = 1 40737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(-140737488355330, 140737488355328) = 02274 ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(-281474976710658, 281474976710656) = 02275 ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(-562949953421314, 562949953421312) = 02276 ceiling(1125899906842624, 1125899906842624) = 1 125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(-1125899906842626, 1125899906842624) = 02277 ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(-2251799813685250, 2251799813685248) = 02278 ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(-4503599627370498, 4503599627370496) = 02279 ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(-9007199254740994, 9007199254740992) = 02280 ceiling(18014398509481984, 18014398509481984) = 1 8014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(-18014398509481986, 18014398509481984) = 02281 ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(-36028797018963970, 36028797018963968) = 02282 ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(-72057594037927938, 72057594037927936) = 02283 ceiling(144115188075855872, 144115188075855872) = 1 44115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(-144115188075855874, 144115188075855872) = 02284 ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(-288230376151711746, 288230376151711744) = 02285 ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(-576460752303423490, 576460752303423488) = 02286 ceiling(1152921504606846976, 1152921504606846976) = 1 152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(-1152921504606846978, 1152921504606846976) = 02287 ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(-2305843009213693954, 2305843009213693952) = 02288 ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = -4611686018427387904, ceiling(-4611686018427387906, 4611686018427387904) = 02289 ceiling(-9223372036854775808, -9223372036854775808) = -9223372036854775808, ceiling(-9223372036854775806, -9223372036854775808) = 0, ceiling(9223372036854775806, -9223372036854775808) = 01856 ceiling(2, 2) = 1, ceiling(4, 2) = 2, ceiling(-4, 2) = -1 1857 ceiling(4, 4) = 1, ceiling(6, 4) = 2, ceiling(-6, 4) = 0 1858 ceiling(8, 8) = 1, ceiling(10, 8) = 2, ceiling(-10, 8) = 0 1859 ceiling(16, 16) = 1, ceiling(18, 16) = 2, ceiling(-18, 16) = 0 1860 ceiling(32, 32) = 1, ceiling(34, 32) = 2, ceiling(-34, 32) = 0 1861 ceiling(64, 64) = 1, ceiling(66, 64) = 2, ceiling(-66, 64) = 0 1862 ceiling(128, 128) = 1, ceiling(130, 128) = 2, ceiling(-130, 128) = 0 1863 ceiling(256, 256) = 1, ceiling(258, 256) = 2, ceiling(-258, 256) = 0 1864 ceiling(512, 512) = 1, ceiling(514, 512) = 2, ceiling(-514, 512) = 0 1865 ceiling(1024, 1024) = 1, ceiling(1026, 1024) = 2, ceiling(-1026, 1024) = 0 1866 ceiling(2048, 2048) = 1, ceiling(2050, 2048) = 2, ceiling(-2050, 2048) = 0 1867 ceiling(4096, 4096) = 1, ceiling(4098, 4096) = 2, ceiling(-4098, 4096) = 0 1868 ceiling(8192, 8192) = 1, ceiling(8194, 8192) = 2, ceiling(-8194, 8192) = 0 1869 ceiling(16384, 16384) = 1, ceiling(16386, 16384) = 2, ceiling(-16386, 16384) = 0 1870 ceiling(32768, 32768) = 1, ceiling(32770, 32768) = 2, ceiling(-32770, 32768) = 0 1871 ceiling(65536, 65536) = 1, ceiling(65538, 65536) = 2, ceiling(-65538, 65536) = 0 1872 ceiling(131072, 131072) = 1, ceiling(131074, 131072) = 2, ceiling(-131074, 131072) = 0 1873 ceiling(262144, 262144) = 1, ceiling(262146, 262144) = 2, ceiling(-262146, 262144) = 0 1874 ceiling(524288, 524288) = 1, ceiling(524290, 524288) = 2, ceiling(-524290, 524288) = 0 1875 ceiling(1048576, 1048576) = 1, ceiling(1048578, 1048576) = 2, ceiling(-1048578, 1048576) = 0 1876 ceiling(2097152, 2097152) = 1, ceiling(2097154, 2097152) = 2, ceiling(-2097154, 2097152) = 0 1877 ceiling(4194304, 4194304) = 1, ceiling(4194306, 4194304) = 2, ceiling(-4194306, 4194304) = 0 1878 ceiling(8388608, 8388608) = 1, ceiling(8388610, 8388608) = 2, ceiling(-8388610, 8388608) = 0 1879 ceiling(16777216, 16777216) = 1, ceiling(16777218, 16777216) = 2, ceiling(-16777218, 16777216) = 0 1880 ceiling(33554432, 33554432) = 1, ceiling(33554434, 33554432) = 2, ceiling(-33554434, 33554432) = 0 1881 ceiling(67108864, 67108864) = 1, ceiling(67108866, 67108864) = 2, ceiling(-67108866, 67108864) = 0 1882 ceiling(134217728, 134217728) = 1, ceiling(134217730, 134217728) = 2, ceiling(-134217730, 134217728) = 0 1883 ceiling(268435456, 268435456) = 1, ceiling(268435458, 268435456) = 2, ceiling(-268435458, 268435456) = 0 1884 ceiling(536870912, 536870912) = 1, ceiling(536870914, 536870912) = 2, ceiling(-536870914, 536870912) = 0 1885 ceiling(1073741824, 1073741824) = 1, ceiling(1073741826, 1073741824) = 2, ceiling(-1073741826, 1073741824) = 0 1886 ceiling(2147483648, 2147483648) = 1, ceiling(2147483650, 2147483648) = 2, ceiling(-2147483650, 2147483648) = 0 1887 ceiling(4294967296, 4294967296) = 1, ceiling(4294967298, 4294967296) = 2, ceiling(-4294967298, 4294967296) = 0 1888 ceiling(8589934592, 8589934592) = 1, ceiling(8589934594, 8589934592) = 2, ceiling(-8589934594, 8589934592) = 0 1889 ceiling(17179869184, 17179869184) = 1, ceiling(17179869186, 17179869184) = 2, ceiling(-17179869186, 17179869184) = 0 1890 ceiling(34359738368, 34359738368) = 1, ceiling(34359738370, 34359738368) = 2, ceiling(-34359738370, 34359738368) = 0 1891 ceiling(68719476736, 68719476736) = 1, ceiling(68719476738, 68719476736) = 2, ceiling(-68719476738, 68719476736) = 0 1892 ceiling(137438953472, 137438953472) = 1, ceiling(137438953474, 137438953472) = 2, ceiling(-137438953474, 137438953472) = 0 1893 ceiling(274877906944, 274877906944) = 1, ceiling(274877906946, 274877906944) = 2, ceiling(-274877906946, 274877906944) = 0 1894 ceiling(549755813888, 549755813888) = 1, ceiling(549755813890, 549755813888) = 2, ceiling(-549755813890, 549755813888) = 0 1895 ceiling(1099511627776, 1099511627776) = 1, ceiling(1099511627778, 1099511627776) = 2, ceiling(-1099511627778, 1099511627776) = 0 1896 ceiling(2199023255552, 2199023255552) = 1, ceiling(2199023255554, 2199023255552) = 2, ceiling(-2199023255554, 2199023255552) = 0 1897 ceiling(4398046511104, 4398046511104) = 1, ceiling(4398046511106, 4398046511104) = 2, ceiling(-4398046511106, 4398046511104) = 0 1898 ceiling(8796093022208, 8796093022208) = 1, ceiling(8796093022210, 8796093022208) = 2, ceiling(-8796093022210, 8796093022208) = 0 1899 ceiling(17592186044416, 17592186044416) = 1, ceiling(17592186044418, 17592186044416) = 2, ceiling(-17592186044418, 17592186044416) = 0 1900 ceiling(35184372088832, 35184372088832) = 1, ceiling(35184372088834, 35184372088832) = 2, ceiling(-35184372088834, 35184372088832) = 0 1901 ceiling(70368744177664, 70368744177664) = 1, ceiling(70368744177666, 70368744177664) = 2, ceiling(-70368744177666, 70368744177664) = 0 1902 ceiling(140737488355328, 140737488355328) = 1, ceiling(140737488355330, 140737488355328) = 2, ceiling(-140737488355330, 140737488355328) = 0 1903 ceiling(281474976710656, 281474976710656) = 1, ceiling(281474976710658, 281474976710656) = 2, ceiling(-281474976710658, 281474976710656) = 0 1904 ceiling(562949953421312, 562949953421312) = 1, ceiling(562949953421314, 562949953421312) = 2, ceiling(-562949953421314, 562949953421312) = 0 1905 ceiling(1125899906842624, 1125899906842624) = 1, ceiling(1125899906842626, 1125899906842624) = 2, ceiling(-1125899906842626, 1125899906842624) = 0 1906 ceiling(2251799813685248, 2251799813685248) = 1, ceiling(2251799813685250, 2251799813685248) = 2, ceiling(-2251799813685250, 2251799813685248) = 0 1907 ceiling(4503599627370496, 4503599627370496) = 1, ceiling(4503599627370498, 4503599627370496) = 2, ceiling(-4503599627370498, 4503599627370496) = 0 1908 ceiling(9007199254740992, 9007199254740992) = 1, ceiling(9007199254740994, 9007199254740992) = 2, ceiling(-9007199254740994, 9007199254740992) = 0 1909 ceiling(18014398509481984, 18014398509481984) = 1, ceiling(18014398509481986, 18014398509481984) = 2, ceiling(-18014398509481986, 18014398509481984) = 0 1910 ceiling(36028797018963968, 36028797018963968) = 1, ceiling(36028797018963970, 36028797018963968) = 2, ceiling(-36028797018963970, 36028797018963968) = 0 1911 ceiling(72057594037927936, 72057594037927936) = 1, ceiling(72057594037927938, 72057594037927936) = 2, ceiling(-72057594037927938, 72057594037927936) = 0 1912 ceiling(144115188075855872, 144115188075855872) = 1, ceiling(144115188075855874, 144115188075855872) = 2, ceiling(-144115188075855874, 144115188075855872) = 0 1913 ceiling(288230376151711744, 288230376151711744) = 1, ceiling(288230376151711746, 288230376151711744) = 2, ceiling(-288230376151711746, 288230376151711744) = 0 1914 ceiling(576460752303423488, 576460752303423488) = 1, ceiling(576460752303423490, 576460752303423488) = 2, ceiling(-576460752303423490, 576460752303423488) = 0 1915 ceiling(1152921504606846976, 1152921504606846976) = 1, ceiling(1152921504606846978, 1152921504606846976) = 2, ceiling(-1152921504606846978, 1152921504606846976) = 0 1916 ceiling(2305843009213693952, 2305843009213693952) = 1, ceiling(2305843009213693954, 2305843009213693952) = 2, ceiling(-2305843009213693954, 2305843009213693952) = 0 1917 ceiling(4611686018427387904, 4611686018427387904) = 1, ceiling(4611686018427387906, 4611686018427387904) = -1, ceiling(-4611686018427387906, 4611686018427387904) = 0 1918 ceiling(-9223372036854775808, -9223372036854775808) = 0, ceiling(-9223372036854775806, -9223372036854775808) = 0, ceiling(9223372036854775806, -9223372036854775808) = 0 2290 1919 2291 1920 unsigned long long int 2292 1921 ceiling(1, 1) = 1, ceiling(3, 1) = 3, ceiling(18446744073709551613, 1) = 18446744073709551613 2293 ceiling(2, 2) = 2, ceiling(4, 2) = 4, ceiling(18446744073709551612, 2) = 184467440737095516122294 ceiling(4, 4) = 4, ceiling(6, 4) = 8, ceiling(18446744073709551610, 4) = 184467440737095516122295 ceiling(8, 8) = 8, ceiling(10, 8) = 16, ceiling(18446744073709551606, 8) = 184467440737095516082296 ceiling(16, 16) = 1 6, ceiling(18, 16) = 32, ceiling(18446744073709551598, 16) = 184467440737095516002297 ceiling(32, 32) = 32, ceiling(34, 32) = 64, ceiling(18446744073709551582, 32) = 184467440737095515842298 ceiling(64, 64) = 64, ceiling(66, 64) = 128, ceiling(18446744073709551550, 64) = 184467440737095515522299 ceiling(128, 128) = 1 28, ceiling(130, 128) = 256, ceiling(18446744073709551486, 128) = 184467440737095514882300 ceiling(256, 256) = 256, ceiling(258, 256) = 512, ceiling(18446744073709551358, 256) = 184467440737095513602301 ceiling(512, 512) = 512, ceiling(514, 512) = 1024, ceiling(18446744073709551102, 512) = 184467440737095511042302 ceiling(1024, 1024) = 1 024, ceiling(1026, 1024) = 2048, ceiling(18446744073709550590, 1024) = 184467440737095505922303 ceiling(2048, 2048) = 2048, ceiling(2050, 2048) = 4096, ceiling(18446744073709549566, 2048) = 184467440737095495682304 ceiling(4096, 4096) = 4096, ceiling(4098, 4096) = 8192, ceiling(18446744073709547518, 4096) = 184467440737095475202305 ceiling(8192, 8192) = 8192, ceiling(8194, 8192) = 16384, ceiling(18446744073709543422, 8192) = 184467440737095434242306 ceiling(16384, 16384) = 1 6384, ceiling(16386, 16384) = 32768, ceiling(18446744073709535230, 16384) = 184467440737095352322307 ceiling(32768, 32768) = 32768, ceiling(32770, 32768) = 65536, ceiling(18446744073709518846, 32768) = 184467440737095188482308 ceiling(65536, 65536) = 65536, ceiling(65538, 65536) = 131072, ceiling(18446744073709486078, 65536) = 184467440737094860802309 ceiling(131072, 131072) = 1 31072, ceiling(131074, 131072) = 262144, ceiling(18446744073709420542, 131072) = 184467440737094205442310 ceiling(262144, 262144) = 262144, ceiling(262146, 262144) = 524288, ceiling(18446744073709289470, 262144) = 184467440737092894722311 ceiling(524288, 524288) = 524288, ceiling(524290, 524288) = 1048576, ceiling(18446744073709027326, 524288) = 184467440737090273282312 ceiling(1048576, 1048576) = 1 048576, ceiling(1048578, 1048576) = 2097152, ceiling(18446744073708503038, 1048576) = 184467440737085030402313 ceiling(2097152, 2097152) = 2097152, ceiling(2097154, 2097152) = 4194304, ceiling(18446744073707454462, 2097152) = 184467440737074544642314 ceiling(4194304, 4194304) = 4194304, ceiling(4194306, 4194304) = 8388608, ceiling(18446744073705357310, 4194304) = 184467440737053573122315 ceiling(8388608, 8388608) = 8388608, ceiling(8388610, 8388608) = 16777216, ceiling(18446744073701163006, 8388608) = 184467440737011630082316 ceiling(16777216, 16777216) = 1 6777216, ceiling(16777218, 16777216) = 33554432, ceiling(18446744073692774398, 16777216) = 184467440736927744002317 ceiling(33554432, 33554432) = 33554432, ceiling(33554434, 33554432) = 67108864, ceiling(18446744073675997182, 33554432) = 184467440736759971842318 ceiling(67108864, 67108864) = 67108864, ceiling(67108866, 67108864) = 134217728, ceiling(18446744073642442750, 67108864) = 184467440736424427522319 ceiling(134217728, 134217728) = 1 34217728, ceiling(134217730, 134217728) = 268435456, ceiling(18446744073575333886, 134217728) = 184467440735753338882320 ceiling(268435456, 268435456) = 268435456, ceiling(268435458, 268435456) = 536870912, ceiling(18446744073441116158, 268435456) = 184467440734411161602321 ceiling(536870912, 536870912) = 536870912, ceiling(536870914, 536870912) = 1073741824, ceiling(18446744073172680702, 536870912) = 184467440731726807042322 ceiling(1073741824, 1073741824) = 1 073741824, ceiling(1073741826, 1073741824) = 2147483648, ceiling(18446744072635809790, 1073741824) = 184467440726358097922323 ceiling(2147483648, 2147483648) = 2147483648, ceiling(2147483650, 2147483648) = 4294967296, ceiling(18446744071562067966, 2147483648) = 184467440715620679682324 ceiling(4294967296, 4294967296) = 4294967296, ceiling(4294967298, 4294967296) = 8589934592, ceiling(18446744069414584318, 4294967296) = 184467440694145843202325 ceiling(8589934592, 8589934592) = 8589934592, ceiling(8589934594, 8589934592) = 17179869184, ceiling(18446744065119617022, 8589934592) = 184467440651196170242326 ceiling(17179869184, 17179869184) = 1 7179869184, ceiling(17179869186, 17179869184) = 34359738368, ceiling(18446744056529682430, 17179869184) = 184467440565296824322327 ceiling(34359738368, 34359738368) = 34359738368, ceiling(34359738370, 34359738368) = 68719476736, ceiling(18446744039349813246, 34359738368) = 184467440393498132482328 ceiling(68719476736, 68719476736) = 68719476736, ceiling(68719476738, 68719476736) = 137438953472, ceiling(18446744004990074878, 68719476736) = 184467440049900748802329 ceiling(137438953472, 137438953472) = 1 37438953472, ceiling(137438953474, 137438953472) = 274877906944, ceiling(18446743936270598142, 137438953472) = 184467439362705981442330 ceiling(274877906944, 274877906944) = 274877906944, ceiling(274877906946, 274877906944) = 549755813888, ceiling(18446743798831644670, 274877906944) = 184467437988316446722331 ceiling(549755813888, 549755813888) = 549755813888, ceiling(549755813890, 549755813888) = 1099511627776, ceiling(18446743523953737726, 549755813888) = 184467435239537377282332 ceiling(1099511627776, 1099511627776) = 1 099511627776, ceiling(1099511627778, 1099511627776) = 2199023255552, ceiling(18446742974197923838, 1099511627776) = 184467429741979238402333 ceiling(2199023255552, 2199023255552) = 2199023255552, ceiling(2199023255554, 2199023255552) = 4398046511104, ceiling(18446741874686296062, 2199023255552) = 184467418746862960642334 ceiling(4398046511104, 4398046511104) = 4398046511104, ceiling(4398046511106, 4398046511104) = 8796093022208, ceiling(18446739675663040510, 4398046511104) = 184467396756630405122335 ceiling(8796093022208, 8796093022208) = 8796093022208, ceiling(8796093022210, 8796093022208) = 17592186044416, ceiling(18446735277616529406, 8796093022208) = 184467352776165294082336 ceiling(17592186044416, 17592186044416) = 1 7592186044416, ceiling(17592186044418, 17592186044416) = 35184372088832, ceiling(18446726481523507198, 17592186044416) = 184467264815235072002337 ceiling(35184372088832, 35184372088832) = 35184372088832, ceiling(35184372088834, 35184372088832) = 70368744177664, ceiling(18446708889337462782, 35184372088832) = 184467088893374627842338 ceiling(70368744177664, 70368744177664) = 70368744177664, ceiling(70368744177666, 70368744177664) = 140737488355328, ceiling(18446673704965373950, 70368744177664) = 184466737049653739522339 ceiling(140737488355328, 140737488355328) = 1 40737488355328, ceiling(140737488355330, 140737488355328) = 281474976710656, ceiling(18446603336221196286, 140737488355328) = 184466033362211962882340 ceiling(281474976710656, 281474976710656) = 281474976710656, ceiling(281474976710658, 281474976710656) = 562949953421312, ceiling(18446462598732840958, 281474976710656) = 184464625987328409602341 ceiling(562949953421312, 562949953421312) = 562949953421312, ceiling(562949953421314, 562949953421312) = 1125899906842624, ceiling(18446181123756130302, 562949953421312) = 184461811237561303042342 ceiling(1125899906842624, 1125899906842624) = 1 125899906842624, ceiling(1125899906842626, 1125899906842624) = 2251799813685248, ceiling(18445618173802708990, 1125899906842624) = 184456181738027089922343 ceiling(2251799813685248, 2251799813685248) = 2251799813685248, ceiling(2251799813685250, 2251799813685248) = 4503599627370496, ceiling(18444492273895866366, 2251799813685248) = 184444922738958663682344 ceiling(4503599627370496, 4503599627370496) = 4503599627370496, ceiling(4503599627370498, 4503599627370496) = 9007199254740992, ceiling(18442240474082181118, 4503599627370496) = 184422404740821811202345 ceiling(9007199254740992, 9007199254740992) = 9007199254740992, ceiling(9007199254740994, 9007199254740992) = 18014398509481984, ceiling(18437736874454810622, 9007199254740992) = 184377368744548106242346 ceiling(18014398509481984, 18014398509481984) = 1 8014398509481984, ceiling(18014398509481986, 18014398509481984) = 36028797018963968, ceiling(18428729675200069630, 18014398509481984) = 184287296752000696322347 ceiling(36028797018963968, 36028797018963968) = 36028797018963968, ceiling(36028797018963970, 36028797018963968) = 72057594037927936, ceiling(18410715276690587646, 36028797018963968) = 184107152766905876482348 ceiling(72057594037927936, 72057594037927936) = 72057594037927936, ceiling(72057594037927938, 72057594037927936) = 144115188075855872, ceiling(18374686479671623678, 72057594037927936) = 183746864796716236802349 ceiling(144115188075855872, 144115188075855872) = 1 44115188075855872, ceiling(144115188075855874, 144115188075855872) = 288230376151711744, ceiling(18302628885633695742, 144115188075855872) = 183026288856336957442350 ceiling(288230376151711744, 288230376151711744) = 288230376151711744, ceiling(288230376151711746, 288230376151711744) = 576460752303423488, ceiling(18158513697557839870, 288230376151711744) = 181585136975578398722351 ceiling(576460752303423488, 576460752303423488) = 576460752303423488, ceiling(576460752303423490, 576460752303423488) = 1152921504606846976, ceiling(17870283321406128126, 576460752303423488) = 178702833214061281282352 ceiling(1152921504606846976, 1152921504606846976) = 1 152921504606846976, ceiling(1152921504606846978, 1152921504606846976) = 2305843009213693952, ceiling(17293822569102704638, 1152921504606846976) = 172938225691027046402353 ceiling(2305843009213693952, 2305843009213693952) = 2305843009213693952, ceiling(2305843009213693954, 2305843009213693952) = 4611686018427387904, ceiling(16140901064495857662, 2305843009213693952) = 161409010644958576642354 ceiling(4611686018427387904, 4611686018427387904) = 4611686018427387904, ceiling(4611686018427387906, 4611686018427387904) = 9223372036854775808, ceiling(13835058055282163710, 4611686018427387904) = 138350580552821637122355 ceiling(9223372036854775808, 9223372036854775808) = 9223372036854775808, ceiling(9223372036854775810, 9223372036854775808) = 0, ceiling(9223372036854775806, 9223372036854775808) = 92233720368547758082356 1922 ceiling(2, 2) = 1, ceiling(4, 2) = 2, ceiling(18446744073709551612, 2) = 9223372036854775806 1923 ceiling(4, 4) = 1, ceiling(6, 4) = 2, ceiling(18446744073709551610, 4) = 4611686018427387903 1924 ceiling(8, 8) = 1, ceiling(10, 8) = 2, ceiling(18446744073709551606, 8) = 2305843009213693951 1925 ceiling(16, 16) = 1, ceiling(18, 16) = 2, ceiling(18446744073709551598, 16) = 1152921504606846975 1926 ceiling(32, 32) = 1, ceiling(34, 32) = 2, ceiling(18446744073709551582, 32) = 576460752303423487 1927 ceiling(64, 64) = 1, ceiling(66, 64) = 2, ceiling(18446744073709551550, 64) = 288230376151711743 1928 ceiling(128, 128) = 1, ceiling(130, 128) = 2, ceiling(18446744073709551486, 128) = 144115188075855871 1929 ceiling(256, 256) = 1, ceiling(258, 256) = 2, ceiling(18446744073709551358, 256) = 72057594037927935 1930 ceiling(512, 512) = 1, ceiling(514, 512) = 2, ceiling(18446744073709551102, 512) = 36028797018963967 1931 ceiling(1024, 1024) = 1, ceiling(1026, 1024) = 2, ceiling(18446744073709550590, 1024) = 18014398509481983 1932 ceiling(2048, 2048) = 1, ceiling(2050, 2048) = 2, ceiling(18446744073709549566, 2048) = 9007199254740991 1933 ceiling(4096, 4096) = 1, ceiling(4098, 4096) = 2, ceiling(18446744073709547518, 4096) = 4503599627370495 1934 ceiling(8192, 8192) = 1, ceiling(8194, 8192) = 2, ceiling(18446744073709543422, 8192) = 2251799813685247 1935 ceiling(16384, 16384) = 1, ceiling(16386, 16384) = 2, ceiling(18446744073709535230, 16384) = 1125899906842623 1936 ceiling(32768, 32768) = 1, ceiling(32770, 32768) = 2, ceiling(18446744073709518846, 32768) = 562949953421311 1937 ceiling(65536, 65536) = 1, ceiling(65538, 65536) = 2, ceiling(18446744073709486078, 65536) = 281474976710655 1938 ceiling(131072, 131072) = 1, ceiling(131074, 131072) = 2, ceiling(18446744073709420542, 131072) = 140737488355327 1939 ceiling(262144, 262144) = 1, ceiling(262146, 262144) = 2, ceiling(18446744073709289470, 262144) = 70368744177663 1940 ceiling(524288, 524288) = 1, ceiling(524290, 524288) = 2, ceiling(18446744073709027326, 524288) = 35184372088831 1941 ceiling(1048576, 1048576) = 1, ceiling(1048578, 1048576) = 2, ceiling(18446744073708503038, 1048576) = 17592186044415 1942 ceiling(2097152, 2097152) = 1, ceiling(2097154, 2097152) = 2, ceiling(18446744073707454462, 2097152) = 8796093022207 1943 ceiling(4194304, 4194304) = 1, ceiling(4194306, 4194304) = 2, ceiling(18446744073705357310, 4194304) = 4398046511103 1944 ceiling(8388608, 8388608) = 1, ceiling(8388610, 8388608) = 2, ceiling(18446744073701163006, 8388608) = 2199023255551 1945 ceiling(16777216, 16777216) = 1, ceiling(16777218, 16777216) = 2, ceiling(18446744073692774398, 16777216) = 1099511627775 1946 ceiling(33554432, 33554432) = 1, ceiling(33554434, 33554432) = 2, ceiling(18446744073675997182, 33554432) = 549755813887 1947 ceiling(67108864, 67108864) = 1, ceiling(67108866, 67108864) = 2, ceiling(18446744073642442750, 67108864) = 274877906943 1948 ceiling(134217728, 134217728) = 1, ceiling(134217730, 134217728) = 2, ceiling(18446744073575333886, 134217728) = 137438953471 1949 ceiling(268435456, 268435456) = 1, ceiling(268435458, 268435456) = 2, ceiling(18446744073441116158, 268435456) = 68719476735 1950 ceiling(536870912, 536870912) = 1, ceiling(536870914, 536870912) = 2, ceiling(18446744073172680702, 536870912) = 34359738367 1951 ceiling(1073741824, 1073741824) = 1, ceiling(1073741826, 1073741824) = 2, ceiling(18446744072635809790, 1073741824) = 17179869183 1952 ceiling(2147483648, 2147483648) = 1, ceiling(2147483650, 2147483648) = 2, ceiling(18446744071562067966, 2147483648) = 8589934591 1953 ceiling(4294967296, 4294967296) = 1, ceiling(4294967298, 4294967296) = 2, ceiling(18446744069414584318, 4294967296) = 4294967295 1954 ceiling(8589934592, 8589934592) = 1, ceiling(8589934594, 8589934592) = 2, ceiling(18446744065119617022, 8589934592) = 2147483647 1955 ceiling(17179869184, 17179869184) = 1, ceiling(17179869186, 17179869184) = 2, ceiling(18446744056529682430, 17179869184) = 1073741823 1956 ceiling(34359738368, 34359738368) = 1, ceiling(34359738370, 34359738368) = 2, ceiling(18446744039349813246, 34359738368) = 536870911 1957 ceiling(68719476736, 68719476736) = 1, ceiling(68719476738, 68719476736) = 2, ceiling(18446744004990074878, 68719476736) = 268435455 1958 ceiling(137438953472, 137438953472) = 1, ceiling(137438953474, 137438953472) = 2, ceiling(18446743936270598142, 137438953472) = 134217727 1959 ceiling(274877906944, 274877906944) = 1, ceiling(274877906946, 274877906944) = 2, ceiling(18446743798831644670, 274877906944) = 67108863 1960 ceiling(549755813888, 549755813888) = 1, ceiling(549755813890, 549755813888) = 2, ceiling(18446743523953737726, 549755813888) = 33554431 1961 ceiling(1099511627776, 1099511627776) = 1, ceiling(1099511627778, 1099511627776) = 2, ceiling(18446742974197923838, 1099511627776) = 16777215 1962 ceiling(2199023255552, 2199023255552) = 1, ceiling(2199023255554, 2199023255552) = 2, ceiling(18446741874686296062, 2199023255552) = 8388607 1963 ceiling(4398046511104, 4398046511104) = 1, ceiling(4398046511106, 4398046511104) = 2, ceiling(18446739675663040510, 4398046511104) = 4194303 1964 ceiling(8796093022208, 8796093022208) = 1, ceiling(8796093022210, 8796093022208) = 2, ceiling(18446735277616529406, 8796093022208) = 2097151 1965 ceiling(17592186044416, 17592186044416) = 1, ceiling(17592186044418, 17592186044416) = 2, ceiling(18446726481523507198, 17592186044416) = 1048575 1966 ceiling(35184372088832, 35184372088832) = 1, ceiling(35184372088834, 35184372088832) = 2, ceiling(18446708889337462782, 35184372088832) = 524287 1967 ceiling(70368744177664, 70368744177664) = 1, ceiling(70368744177666, 70368744177664) = 2, ceiling(18446673704965373950, 70368744177664) = 262143 1968 ceiling(140737488355328, 140737488355328) = 1, ceiling(140737488355330, 140737488355328) = 2, ceiling(18446603336221196286, 140737488355328) = 131071 1969 ceiling(281474976710656, 281474976710656) = 1, ceiling(281474976710658, 281474976710656) = 2, ceiling(18446462598732840958, 281474976710656) = 65535 1970 ceiling(562949953421312, 562949953421312) = 1, ceiling(562949953421314, 562949953421312) = 2, ceiling(18446181123756130302, 562949953421312) = 32767 1971 ceiling(1125899906842624, 1125899906842624) = 1, ceiling(1125899906842626, 1125899906842624) = 2, ceiling(18445618173802708990, 1125899906842624) = 16383 1972 ceiling(2251799813685248, 2251799813685248) = 1, ceiling(2251799813685250, 2251799813685248) = 2, ceiling(18444492273895866366, 2251799813685248) = 8191 1973 ceiling(4503599627370496, 4503599627370496) = 1, ceiling(4503599627370498, 4503599627370496) = 2, ceiling(18442240474082181118, 4503599627370496) = 4095 1974 ceiling(9007199254740992, 9007199254740992) = 1, ceiling(9007199254740994, 9007199254740992) = 2, ceiling(18437736874454810622, 9007199254740992) = 2047 1975 ceiling(18014398509481984, 18014398509481984) = 1, ceiling(18014398509481986, 18014398509481984) = 2, ceiling(18428729675200069630, 18014398509481984) = 1023 1976 ceiling(36028797018963968, 36028797018963968) = 1, ceiling(36028797018963970, 36028797018963968) = 2, ceiling(18410715276690587646, 36028797018963968) = 511 1977 ceiling(72057594037927936, 72057594037927936) = 1, ceiling(72057594037927938, 72057594037927936) = 2, ceiling(18374686479671623678, 72057594037927936) = 255 1978 ceiling(144115188075855872, 144115188075855872) = 1, ceiling(144115188075855874, 144115188075855872) = 2, ceiling(18302628885633695742, 144115188075855872) = 127 1979 ceiling(288230376151711744, 288230376151711744) = 1, ceiling(288230376151711746, 288230376151711744) = 2, ceiling(18158513697557839870, 288230376151711744) = 63 1980 ceiling(576460752303423488, 576460752303423488) = 1, ceiling(576460752303423490, 576460752303423488) = 2, ceiling(17870283321406128126, 576460752303423488) = 31 1981 ceiling(1152921504606846976, 1152921504606846976) = 1, ceiling(1152921504606846978, 1152921504606846976) = 2, ceiling(17293822569102704638, 1152921504606846976) = 15 1982 ceiling(2305843009213693952, 2305843009213693952) = 1, ceiling(2305843009213693954, 2305843009213693952) = 2, ceiling(16140901064495857662, 2305843009213693952) = 7 1983 ceiling(4611686018427387904, 4611686018427387904) = 1, ceiling(4611686018427387906, 4611686018427387904) = 2, ceiling(13835058055282163710, 4611686018427387904) = 3 1984 ceiling(9223372036854775808, 9223372036854775808) = 1, ceiling(9223372036854775810, 9223372036854775808) = 0, ceiling(9223372036854775806, 9223372036854775808) = 1 1985 -
tests/Makefile.am
r8465b4d r1eb239e4 18 18 ACLOCAL_AMFLAGS = -I automake 19 19 20 include $(top_srcdir)/ tools/build/cfa.make20 include $(top_srcdir)/src/cfa.make 21 21 22 22 DEFAULT_INCLUDES = -I${abs_srcdir} -
tests/bitmanip3.cfa
r8465b4d r1eb239e4 10 10 // Created On : Tue Apr 7 21:22:59 2020 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 10 09:31:35202013 // Update Count : 6 512 // Last Modified On : Tue Apr 21 16:25:09 2020 13 // Update Count : 61 14 14 // 15 15 … … 134 134 135 135 printf( "signed char\n" ); 136 //sc = 0;137 //scr1 = floor2( sc, sc ), scr2 = floor2( sc + 2hh, sc ), scr3 = floor2( -sc - 2hh, sc );138 //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 );136 sc = 0; 137 scr1 = floor2( sc, sc ), scr2 = floor2( sc + 2hh, sc ), scr3 = floor2( -sc - 2hh, sc ); 138 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 ); 139 139 for ( sc = 1; sc != 0; sc <<= 1 ) { 140 140 scr1 = floor2( sc, sc ); scr2 = floor2( sc + 2hh, sc ); scr3 = floor2( -sc - 2hh, sc ); … … 144 144 145 145 printf( "unsigned char\n" ); 146 //uc = 0;147 //ucr1 = floor2( uc, uc ), ucr2 = floor2( uc + 2hh, uc ), ucr3 = floor2( -uc - 2hh, uc );148 //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 );146 uc = 0; 147 ucr1 = floor2( uc, uc ), ucr2 = floor2( uc + 2hh, uc ), ucr3 = floor2( -uc - 2hh, uc ); 148 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 ); 149 149 for ( uc = 1; uc != 0; uc <<= 1 ) { 150 150 ucr1 = floor2( uc, uc ); ucr2 = floor2( uc + 2hh, uc ); ucr3 = floor2( -uc - 2hh, uc ); … … 154 154 155 155 printf( "short int\n" ); 156 //si = 0;157 //sir1 = floor2( si, si ), sir2 = floor2( si + 2hh, si ), sir3 = floor2( -si - 2hh, si );158 //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 );156 si = 0; 157 sir1 = floor2( si, si ), sir2 = floor2( si + 2hh, si ), sir3 = floor2( -si - 2hh, si ); 158 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 ); 159 159 for ( si = 1; si != 0; si <<= 1 ) { 160 160 sir1 = floor2( si, si ); sir2 = floor2( si + 2hh, si ); sir3 = floor2( -si - 2hh, si ); … … 164 164 165 165 printf( "unsigned short int\n" ); 166 //usi = 0;167 //usir1 = floor2( usi, usi ), usir2 = floor2( usi + 2hh, usi ), usir3 = floor2( -usi - 2hh, usi );168 //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 );166 usi = 0; 167 usir1 = floor2( usi, usi ), usir2 = floor2( usi + 2hh, usi ), usir3 = floor2( -usi - 2hh, usi ); 168 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 ); 169 169 for ( usi = 1; usi != 0; usi <<= 1 ) { 170 170 usir1 = floor2( usi, usi ); usir2 = floor2( usi + 2hh, usi ); usir3 = floor2( -usi - 2hh, usi ); … … 174 174 175 175 printf( "int\n" ); 176 //i = 0;177 //ir1 = floor2( i, i ), ir2 = floor2( i + 2hh, i ), ir3 = floor2( -i - 2hh, i );178 //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 );176 i = 0; 177 ir1 = floor2( i, i ), ir2 = floor2( i + 2hh, i ), ir3 = floor2( -i - 2hh, i ); 178 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 ); 179 179 for ( i = 1; i != 0; i <<= 1 ) { 180 180 ir1 = floor2( i, i ); ir2 = floor2( i + 2hh, i ); ir3 = floor2( -i - 2hh, i ); … … 184 184 185 185 printf( "unsigned int\n" ); 186 //ui = 0;187 //uir1 = floor2( ui, ui ), uir2 = floor2( ui + 2hh, ui ), uir3 = floor2( -ui - 2hh, ui );188 //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 );186 ui = 0; 187 uir1 = floor2( ui, ui ), uir2 = floor2( ui + 2hh, ui ), uir3 = floor2( -ui - 2hh, ui ); 188 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 ); 189 189 for ( ui = 1; ui != 0; ui <<= 1 ) { 190 190 uir1 = floor2( ui, ui ); uir2 = floor2( ui + 2hh, ui ); uir3 = floor2( -ui - 2hh, ui ); … … 194 194 195 195 printf( "long int\n" ); 196 //li = 0;197 //lir1 = floor2( li, li ), lir2 = floor2( li + 2hh, li ), lir3 = floor2( -li - 2hh, li );198 //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 );196 li = 0; 197 lir1 = floor2( li, li ), lir2 = floor2( li + 2hh, li ), lir3 = floor2( -li - 2hh, li ); 198 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 ); 199 199 for ( li = 1; li != 0; li <<= 1 ) { 200 200 lir1 = floor2( li, li ); lir2 = floor2( li + 2hh, li ); lir3 = floor2( -li - 2hh, li ); … … 204 204 205 205 printf( "unsigned long int\n" ); 206 //uli = 0;207 //ulir1 = floor2( uli, uli ), ulir2 = floor2( uli + 2hh, uli ), ulir3 = floor2( -uli - 2hh, uli );208 //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 );206 uli = 0; 207 ulir1 = floor2( uli, uli ), ulir2 = floor2( uli + 2hh, uli ), ulir3 = floor2( -uli - 2hh, uli ); 208 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 ); 209 209 for ( uli = 1; uli != 0; uli <<= 1 ) { 210 210 ulir1 = floor2( uli, uli ); ulir2 = floor2( uli + 2hh, uli ); ulir3 = floor2( -uli - 2hh, uli ); … … 214 214 215 215 printf( "long long int\n" ); 216 //lli = 0;217 //llir1 = floor2( lli, lli ), llir2 = floor2( lli + 2hh, lli ), llir3 = floor2( -lli - 2hh, lli );218 //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 );216 lli = 0; 217 llir1 = floor2( lli, lli ), llir2 = floor2( lli + 2hh, lli ), llir3 = floor2( -lli - 2hh, lli ); 218 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 ); 219 219 for ( lli = 1; lli != 0; lli <<= 1 ) { 220 220 llir1 = floor2( lli, lli ); llir2 = floor2( lli + 2hh, lli ); llir3 = floor2( -lli - 2hh, lli ); … … 224 224 225 225 printf( "unsigned long long int\n" ); 226 //ulli = 0;227 //ullir1 = floor2( ulli, ulli ), ullir2 = floor2( ulli + 2hh, ulli ), ullir3 = floor2( -ulli - 2hh, ulli );228 //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 );226 ulli = 0; 227 ullir1 = floor2( ulli, ulli ), ullir2 = floor2( ulli + 2hh, ulli ), ullir3 = floor2( -ulli - 2hh, ulli ); 228 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 ); 229 229 for ( ulli = 1; ulli != 0; ulli <<= 1 ) { 230 230 ullir1 = floor2( ulli, ulli ); ullir2 = floor2( ulli + 2hh, ulli ); ullir3 = floor2( -ulli - 2hh, ulli ); … … 312 312 313 313 printf( "signed char\n" ); 314 //sc = 0;315 //scr1 = ceiling2( sc, sc ), scr2 = ceiling2( sc + 2hh, sc ), scr3 = ceiling2( -sc - 2hh, sc );316 //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 );314 sc = 0; 315 scr1 = ceiling2( sc, sc ), scr2 = ceiling2( sc + 2hh, sc ), scr3 = ceiling2( -sc - 2hh, sc ); 316 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 ); 317 317 for ( sc = 1; sc != 0; sc <<= 1 ) { 318 318 scr1 = ceiling2( sc, sc ); scr2 = ceiling2( sc + 2hh, sc ); scr3 = ceiling2( -sc - 2hh, sc ); … … 322 322 323 323 printf( "unsigned char\n" ); 324 //uc = 0;325 //ucr1 = ceiling2( uc, uc ), ucr2 = ceiling2( uc + 2hh, uc ), ucr3 = ceiling2( -uc - 2hh, uc );326 //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 );324 uc = 0; 325 ucr1 = ceiling2( uc, uc ), ucr2 = ceiling2( uc + 2hh, uc ), ucr3 = ceiling2( -uc - 2hh, uc ); 326 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 ); 327 327 for ( uc = 1; uc != 0; uc <<= 1 ) { 328 328 ucr1 = ceiling2( uc, uc ); ucr2 = ceiling2( uc + 2hh, uc ); ucr3 = ceiling2( -uc - 2hh, uc ); … … 332 332 333 333 printf( "short int\n" ); 334 //si = 0;335 //sir1 = ceiling2( si, si ), sir2 = ceiling2( si + 2hh, si ), sir3 = ceiling2( -si - 2hh, si );336 //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 );334 si = 0; 335 sir1 = ceiling2( si, si ), sir2 = ceiling2( si + 2hh, si ), sir3 = ceiling2( -si - 2hh, si ); 336 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 ); 337 337 for ( si = 1; si != 0; si <<= 1 ) { 338 338 sir1 = ceiling2( si, si ); sir2 = ceiling2( si + 2hh, si ); sir3 = ceiling2( -si - 2hh, si ); … … 342 342 343 343 printf( "unsigned short int\n" ); 344 //usi = 0;345 //usir1 = ceiling2( usi, usi ), usir2 = ceiling2( usi + 2hh, usi ), usir3 = ceiling2( -usi - 2hh, usi );346 //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 );344 usi = 0; 345 usir1 = ceiling2( usi, usi ), usir2 = ceiling2( usi + 2hh, usi ), usir3 = ceiling2( -usi - 2hh, usi ); 346 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 ); 347 347 for ( usi = 1; usi != 0; usi <<= 1 ) { 348 348 usir1 = ceiling2( usi, usi ); usir2 = ceiling2( usi + 2hh, usi ); usir3 = ceiling2( -usi - 2hh, usi ); … … 352 352 353 353 printf( "int\n" ); 354 //i = 0;355 //ir1 = ceiling2( i, i ), ir2 = ceiling2( i + 2hh, i ), ir3 = ceiling2( -i - 2hh, i );356 //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 );354 i = 0; 355 ir1 = ceiling2( i, i ), ir2 = ceiling2( i + 2hh, i ), ir3 = ceiling2( -i - 2hh, i ); 356 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 ); 357 357 for ( i = 1; i != 0; i <<= 1 ) { 358 358 ir1 = ceiling2( i, i ); ir2 = ceiling2( i + 2hh, i ); ir3 = ceiling2( -i - 2hh, i ); … … 362 362 363 363 printf( "unsigned int\n" ); 364 //ui = 0;365 //uir1 = ceiling2( ui, ui ), uir2 = ceiling2( ui + 2hh, ui ), uir3 = ceiling2( -ui - 2hh, ui );366 //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 );364 ui = 0; 365 uir1 = ceiling2( ui, ui ), uir2 = ceiling2( ui + 2hh, ui ), uir3 = ceiling2( -ui - 2hh, ui ); 366 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 ); 367 367 for ( ui = 1; ui != 0; ui <<= 1 ) { 368 368 uir1 = ceiling2( ui, ui ); uir2 = ceiling2( ui + 2hh, ui ); uir3 = ceiling2( -ui - 2hh, ui ); … … 372 372 373 373 printf( "long int\n" ); 374 //li = 0;375 //lir1 = ceiling2( li, li ), lir2 = ceiling2( li + 2hh, li ), lir3 = ceiling2( -li - 2hh, li );376 //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 );374 li = 0; 375 lir1 = ceiling2( li, li ), lir2 = ceiling2( li + 2hh, li ), lir3 = ceiling2( -li - 2hh, li ); 376 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 ); 377 377 for ( li = 1; li != 0; li <<= 1 ) { 378 378 lir1 = ceiling2( li, li ); lir2 = ceiling2( li + 2hh, li ); lir3 = ceiling2( -li - 2hh, li ); … … 382 382 383 383 printf( "unsigned long int\n" ); 384 //uli = 0;385 //ulir1 = ceiling2( uli, uli ), ulir2 = ceiling2( uli + 2hh, uli ), ulir3 = ceiling2( -uli - 2hh, uli );386 //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 );384 uli = 0; 385 ulir1 = ceiling2( uli, uli ), ulir2 = ceiling2( uli + 2hh, uli ), ulir3 = ceiling2( -uli - 2hh, uli ); 386 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 ); 387 387 for ( uli = 1; uli != 0; uli <<= 1 ) { 388 388 ulir1 = ceiling2( uli, uli ); ulir2 = ceiling2( uli + 2hh, uli ); ulir3 = ceiling2( -uli - 2hh, uli ); … … 392 392 393 393 printf( "long long int\n" ); 394 //lli = 0;395 //llir1 = ceiling2( lli, lli ), llir2 = ceiling2( lli + 2hh, lli ), llir3 = ceiling2( -lli - 2hh, lli );396 //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 );394 lli = 0; 395 llir1 = ceiling2( lli, lli ), llir2 = ceiling2( lli + 2hh, lli ), llir3 = ceiling2( -lli - 2hh, lli ); 396 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 ); 397 397 for ( lli = 1; lli != 0; lli <<= 1 ) { 398 398 llir1 = ceiling2( lli, lli ); llir2 = ceiling2( lli + 2hh, lli ); llir3 = ceiling2( -lli - 2hh, lli ); … … 402 402 403 403 printf( "unsigned long long int\n" ); 404 //ulli = 0;405 //ullir1 = ceiling2( ulli, ulli ), ullir2 = ceiling2( ulli + 2hh, ulli ), ullir3 = ceiling2( -ulli - 2hh, ulli );406 //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 );404 ulli = 0; 405 ullir1 = ceiling2( ulli, ulli ), ullir2 = ceiling2( ulli + 2hh, ulli ), ullir3 = ceiling2( -ulli - 2hh, ulli ); 406 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 ); 407 407 for ( ulli = 1; ulli != 0; ulli <<= 1 ) { 408 408 ullir1 = ceiling2( ulli, ulli ); ullir2 = ceiling2( ulli + 2hh, ulli ); ullir3 = ceiling2( -ulli - 2hh, ulli ); 409 409 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 ); 410 } // for411 printf( "\n" );412 #endif // 0413 //============================================================414 #if 1415 sout | nl | "ceiling_div" | nl | nl;416 417 printf( "signed char\n" );418 for ( sc = 1; sc != 0; sc <<= 1 ) {419 scr1 = ceiling_div( sc, sc ); scr2 = ceiling_div( sc + 2hh, sc ); scr3 = ceiling_div( -sc - 2hh, sc );420 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 );421 } // for422 printf( "\n" );423 424 printf( "unsigned char\n" );425 for ( uc = 1; uc != 0; uc <<= 1 ) {426 ucr1 = ceiling_div( uc, uc ); ucr2 = ceiling_div( uc + 2hh, uc ); ucr3 = ceiling_div( -uc - 2hh, uc );427 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 );428 } // for429 printf( "\n" );430 431 printf( "short int\n" );432 for ( si = 1; si != 0; si <<= 1 ) {433 sir1 = ceiling_div( si, si ); sir2 = ceiling_div( si + 2hh, si ); sir3 = ceiling_div( -si - 2hh, si );434 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 );435 } // for436 printf( "\n" );437 438 printf( "unsigned short int\n" );439 for ( usi = 1; usi != 0; usi <<= 1 ) {440 usir1 = ceiling_div( usi, usi ); usir2 = ceiling_div( usi + 2hh, usi ); usir3 = ceiling_div( -usi - 2hh, usi );441 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 );442 } // for443 printf( "\n" );444 445 printf( "int\n" );446 for ( i = 1; i != 0; i <<= 1 ) {447 ir1 = ceiling_div( i, i ); ir2 = ceiling_div( i + 2hh, i ); ir3 = ceiling_div( -i - 2hh, i );448 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 );449 } // for450 printf( "\n" );451 452 printf( "unsigned int\n" );453 for ( ui = 1; ui != 0; ui <<= 1 ) {454 uir1 = ceiling_div( ui, ui ); uir2 = ceiling_div( ui + 2hh, ui ); uir3 = ceiling_div( -ui - 2hh, ui );455 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 );456 } // for457 printf( "\n" );458 459 printf( "long int\n" );460 for ( li = 1; li != 0; li <<= 1 ) {461 lir1 = ceiling_div( li, li ); lir2 = ceiling_div( li + 2hh, li ); lir3 = ceiling_div( -li - 2hh, li );462 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 );463 } // for464 printf( "\n" );465 466 printf( "unsigned long int\n" );467 for ( uli = 1; uli != 0; uli <<= 1 ) {468 ulir1 = ceiling_div( uli, uli ); ulir2 = ceiling_div( uli + 2hh, uli ); ulir3 = ceiling_div( -uli - 2hh, uli );469 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 );470 } // for471 printf( "\n" );472 473 printf( "long long int\n" );474 for ( lli = 1; lli != 0; lli <<= 1 ) {475 llir1 = ceiling_div( lli, lli ); llir2 = ceiling_div( lli + 2hh, lli ); llir3 = ceiling_div( -lli - 2hh, lli );476 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 );477 } // for478 printf( "\n" );479 480 printf( "unsigned long long int\n" );481 for ( ulli = 1; ulli != 0; ulli <<= 1 ) {482 ullir1 = ceiling_div( ulli, ulli ); ullir2 = ceiling_div( ulli + 2hh, ulli ); ullir3 = ceiling_div( -ulli - 2hh, ulli );483 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 );484 410 } // for 485 411 printf( "\n" );
Note: See TracChangeset
for help on using the changeset viewer.